MCP, MCP server
Openstreetmap Mcp Server
Geocode, reverse geocode, and run Overpass spatial queries on OpenStreetMap data via MCP.
Compatibility: Not stated.
Grade C
One Medium finding. Read the report before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
SECRETS_PATH_CREDENTIAL
Why this grade
- SECRETS_PATH_CREDENTIAL Medium
Mentions a credential store path (~/.ssh, id_rsa, .npmrc, .aws/credentials, credentials.json, .netrc).
scripts/devcheck.ts, line 695
':(glob)**/.npmrc',
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Note
requests shell access. The manifest names this permission.
PERMISSION_SHELL_DECLARED
scripts/devcheck.ts, line 156
* Executes a shell command using child_process.spawn and returns a structured result.
Install and update
Concern
dependencies are not pinned.
INSTALL_UNPINNED
package.json, line 92
@cyanheads/mcp-ts-core
Network
Concern
can reach a host that is not written as a fixed address. can reach registry.npmjs.org. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
framework-skills/add-service/SKILL.md, line 147
const response = await fetch(`${this.baseUrl}/items/${id}`, { signal: ctx.signal });
framework-skills/add-tool/SKILL.md, line 669
const articles = await fetch(input.pmids);
framework-skills/add-tool/SKILL.md, line 700
async fetch(pmids: string[], ctx: Context) {
Show more
framework-skills/add-tool/SKILL.md, line 720
return { articles: await ncbi.fetch(input.pmids, ctx) }; // throws bubble unchanged
framework-skills/api-context/SKILL.md, line 633
const response = await fetch(url, { signal: ctx.signal });
framework-skills/api-context/SKILL.md, line 679
const items = await fetch(input.ids);
framework-skills/api-context/SKILL.md, line 719
const items = await fetch(input.ids);
framework-skills/api-context/SKILL.md, line 849
const items = await fetch(input.limit);
Dockerfile, line 166
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 CMD bun -e "fetch('http://localhost:'+(process.env.MCP_HTTP_PORT??'3010')+'/healthz').then((r)=>process.exit(
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_CREDENTIAL SECRETS_PATH_DOTENV
framework-skills/api-workers/SKILL.md, line 197
const apiKey = process.env.MY_API_KEY; // undefined in Workers
framework-skills/api-workers/SKILL.md, line 201
return ServerConfigSchema.parse({ apiKey: process.env.MY_API_KEY });
scripts/devcheck.ts, line 695
':(glob)**/.npmrc',
Show more
framework-skills/api-workers/SKILL.md, line 258
const r2Env = { ...env, STORAGE_PROVIDER_TYPE: 'cloudflare-r2' };
framework-skills/setup/SKILL.md, line 37
.env.example # Copy to .env and fill in
scripts/devcheck.ts, line 687
// `.env.d/`).
scripts/devcheck.ts, line 693
':(glob)**/*.env*',
scripts/devcheck.ts, line 694
':(glob)**/*.env*/**',
scripts/devcheck.ts, line 696
':(glob)**/.netrc',
scripts/devcheck.ts, line 697
':(glob)**/credentials.json',
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Note
a file was over the read cap and was not fully read.
OBFUSCATION_FILE_OVER_READ_CAP
tests/services/overpass/overpass-service.test.ts, line 1
/**
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit 4f9f66f88f8c. requests shell access. The manifest names this permission. dependencies are not pinned. can reach a host that is not written as a fixed address. can reach registry.npmjs.org. The description does not name that host. reads a credential or environment file. a file was over the read cap and was not fully read.
Date and source
Date checked:
github.com
Commit graded: 4f9f66f88f8c918518fe0322fb3d3247c6cc98e8
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.