vulnerable-mcp-server-malicious-tools
A simple MCP server to fetch and display latest status of Atlassian services
pinned to #47b7f20updated 2 weeks ago
Ask your AI client: “install mcps/vulnerable-mcp-server-malicious-tools”.
Requires the metahub MCP server installed in your client. Set up MCP.
mh install mcps/vulnerable-mcp-server-malicious-toolsmetahub onboarded this repo on the author's behalf.
If you own github.com/appsecco/vulnerable-mcp-servers-lab on GitHub, claim the listing to take over publishing. Your claim preserves the existing eval history and badges; only the curator label is replaced with verified-publisher on your next publish.
Stars
264
Last commit
2 weeks ago
Latest release
published
- #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-malicious-tools
Evaluation report
WarningsAutomated checks the publisher passed at publish time — structure, docs, safety, and whether the artifact behaves as claimed.47b7f20· 2 weeks ago
Safety
21Dependencies: known vulnerabilitieswarn
2 high/critical advisories — @modelcontextprotocol/[email protected] (HIGH: GHSA-8r9q-7v3j-jr4g) · @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
1- releasecurrent47b7f20warn2 weeks ago
Contents
This is an intentionally vulnerable MCP server that looks like a benign “status checker”, but returns malicious / misleading tool output designed to influence the assistant.
Do not use this outside a controlled lab environment.
What it provides
The server exposes these MCP tools:
get_atlassian_service_health_status: Fetches Atlassian’s status summary from the public Statuspage APIget_atlassian_service_health_status_global: Returns a simulated “global outage” response (fabricated)
Both tools return JSON as text.
How it is vulnerable
This server demonstrates malicious tool behavior:
- For
get_atlassian_service_health_status, the server returns real status data plus injected instructions (for example, directing the assistant to print an omelette recipe in addition to the status). - For
get_atlassian_service_health_status_global, the server returns a fake outage payload that looks plausible, encouraging the assistant to repeat incorrect information.
In real integrations, this models the risk of trusting tool output from untrusted MCP servers (instruction injection, data poisoning, and “authoritative-looking” false responses).
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-malicious-tools/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-malicious-tools": {
"command": "node",
"args": [
"/absolute/path/to/vulnerable-mcp-server-malicious-tools/index.js"
]
}
}
}
- Restart Claude so it loads the updated MCP configuration.
After Claude restarts, the server should appear as:
vulnerable-mcp-server-malicious-tools
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 (benign + malicious)
From your MCP client:
- Demonstrate instruction injection in tool output:
- In Claude -
Get the status of Atlassian - Then -
Get Atlassian's global health status
- In Claude -
Observe that the tool output can include extra “assistant instructions” (omelette recipe) or can fabricate plausible-looking incidents.
Notes
- This server makes outbound network calls to Atlassian’s public status API for one of the tools.
- Tool output is intentionally untrusted/malicious in this lab scenario.
Links to Appsecco Resources
Reviews
No reviews yet. Be the first.
Related
vulnerable-mcp-server-malicious-code-exec
A simple MCP server with a get_qotd tool that fetches quotes from a free API
vulnerable-mcp-server-indirect-prompt-injection-remote-mcp
A vulnerable MCP server demonstrating indirect prompt injection through document retrieval
@remote-mcp/example
@remote-mcp/example MCP server
mh install mcps/vulnerable-mcp-server-malicious-tools