vulnerable-mcp-server-secrets-pii
A simple MCP server with IP, weather, and news tools
pinned to #47b7f20updated last month
Ask your AI client: “install mcps/vulnerable-mcp-server-secrets-pii”.
Requires the metahub MCP server installed in your client. Set up MCP.
mh install mcps/vulnerable-mcp-server-secrets-piiStars
276
Last commit
last month
Latest release
published
Releases
2
- #ai-red-teaming
- #ai-research
- #appsecco
- #bugbounty
- #hacking
- #learning-pentesting
- #mcp
- #mcp-client
- #mcp-server
- #pentesting
- #server
- #tools
- #vulnerable-labs
What this server exposes
Surfaces parsed from this server's source at publish time.
Launches: vulnerable-mcp-server-secrets-pii
Automated checks the publisher passed at publish time — structure, docs, safety, and whether the artifact behaves as claimed.47b7f20· last month
Safety
2 passed1 warningDependencies: known vulnerabilitieswarn
1 high/critical advisory — @modelcontextprotocol/[email protected] (HIGH: GHSA-w48q-cv73-mx4w)
Update the affected packages, then re-publish. (`npm audit` shows the same data locally.)
LICENSE file at repo root
LICENSE
No sensitive files in the repo
scanned for .env, credentials.json, *.pem, .ssh/, AWS / GCP configs — none found
Release history
2Contents
This is an intentionally vulnerable MCP server that looks like a small “utilities” server (IP / weather / news), but also contains embedded PII and sensitive information in source code (lightly obfuscated).
Do not use this outside a controlled lab environment.
What it provides
The server exposes these MCP tools:
get_current_ip: Gets the server’s public IP addressget_temperature_of_city: Gets the current temperature for a city- Expects:
{ "city": "<city name>" }
- Expects:
get_top_news_articles_nytimes: Gets top news articles from the New York Times RSS feed- Optional:
limit(default 10, max 20)
- Optional:
How it is vulnerable
This server demonstrates secrets/PII exposure patterns:
- Sensitive values (for example: contact email / internal strings / endpoints) are stored in source code and “obfuscated” (base64) rather than properly managed.
- On startup, the server prints an “admin contact” value to stderr.
- Even when values are obfuscated, anyone with access to the package source (npm tarball, repo checkout, local install) can recover them.
In real systems, this is how API keys, emails, internal URLs, tokens, and other sensitive values end up leaking through:
- source code
- package artifacts
- logs / stderr output
Requirements
- Node.js (modern version)
- npm
Install dependencies in this folder:
npm install
Run with Claude (using claude_config.json)
This folder includes claude_config.json, which is a ready-to-merge snippet for Claude's MCP server config.
- Install dependencies:
npm install
- Edit
claude_config.jsonand replace the placeholder:
/full/path/to/vulnerable-mcp-server-secrets-pii/index.js
Use an absolute path.
-
Open Claude and edit its MCP configuration (Claude Desktop typically exposes this under Settings -> Developer -> Edit config).
-
Merge the
mcpServersentry into your config. If you already havemcpServers, add just the server entry:
{
"mcpServers": {
"vulnerable-mcp-server-secrets-pii": {
"command": "node",
"args": [
"/absolute/path/to/vulnerable-mcp-server-secrets-pii/index.js"
]
}
}
}
- Restart Claude so it loads the updated MCP configuration.
After Claude restarts, the server should appear as:
vulnerable-mcp-server-secrets-pii
Run manually (for debugging)
This server speaks MCP over stdio (JSON-RPC over stdin/stdout). Most users should run it via an MCP-capable client (like Claude) rather than manually.
If you just want to confirm it starts:
npm install
node index.js
Example usage
From your MCP client:
- Get the server’s public IP:
- Call
get_current_ip
- Call
- Get temperature for a city:
- Call
get_temperature_of_citywithcity: "Paris"
- Call
- Get top NYT articles:
- Call
get_top_news_articles_nytimes(optionally withlimit: 5)
- Call
Notes
- This server makes outbound network calls (IP lookup, weather API, NYT RSS).
- The “obfuscation” used in source code is intentionally weak and is meant to illustrate why base64/encoding is not secrets management.
Links to Appsecco Resources
Reviews
No reviews yet. Be the first.
Related
Github Mcp Server
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Context7
Up-to-date code docs for any prompt
Playwright Mcp
Playwright Tools for MCP
mh install mcps/vulnerable-mcp-server-secrets-pii