vulnerable s-lab
A collection of servers which are deliberately vulnerable to learn Pentesting MCP Servers.
claude mcp add appsecco-vulnerable-mcp-servers-lab
How to use
This MCP lab repository hosts a collection of intentionally vulnerable MCP server implementations intended for security training and hands-on demonstrations. Each server is designed to illustrate specific risk scenarios such as unsafe code execution, prompt injection, or handling of untrusted content. To work with a server from this lab, start by selecting the target server from the repository's per-server README files. The documentation for a given server will explain the exact vulnerability being demonstrated, how to run the server locally, and how to exercise the corresponding MCP client/tooling to observe the vulnerability in action. Tools typically include MCP clients, local command interfaces, and example MCP requests that trigger the vulnerable behavior. When operating these servers, follow the lab safety guidance: isolate the environment, avoid real secrets, and treat all outputs as potentially untrusted data. You will learn how insecure configurations or untrusted inputs can lead to data exposure, instruction injection, or code execution within MCP workflows.
How to install
Prerequisites:
- A controllable lab environment (VM or container) with network isolation
- Access to the repository containing the vulnerable MCP server READMEs
- Basic familiarity with MCP and your chosen client/tools
Step-by-step:
- Browse to the specific server directory in the repository that you want to study (for example, the one demonstrating a particular vulnerability).
- Open the per-server README to follow the exact installation and run instructions, as each server may have its own dependencies and runtime (e.g., Node.js, Python, or standalone executables).
- Install dependencies as instructed in that server’s README (for example, install Node.js and run npm install, or install Python requirements).
- Start the MCP server using the command specified in that server’s README (commonly something like node path/to/server.js, python -m module, or a provided startup script).
- In a separate terminal, configure your MCP client orClaude/CTA tooling to point at the localhost address and port exposed by the server, then execute the provided MCP requests to observe the vulnerability in action.
- Stop the server after your testing and clean up the environment as advised in the lab notes.
Additional notes
Tips and caveats:
- Each server demonstrates a different class of vulnerability; read the server’s README thoroughly to understand the threat model and safe testing boundaries.
- Some servers may perform outbound network calls or access local resources; ensure your lab network is isolated and that outbound access is restricted if required.
- Treat all data returned by the server as untrusted. Do not rely on content for any real-world decision making.
- If the server requires specific environment variables or configuration files, the per-server README will indicate what to provide (placeholders are often used in examples).
- When studying these vulnerabilities, keep notes on how input sanitization, access controls, or sandboxing could mitigate the issue observed in the server.
Related MCP Servers
awesome -security
🔥🔒 Awesome MCP (Model Context Protocol) Security 🖥️
MCP-Kali
MCP configuration to connect AI agent to a Linux machine.
ReActMCP
ReActMCP is a reactive MCP client that empowers AI assistants to instantly respond with real-time, Markdown-formatted web search insights powered by the Exa API.
furi
CLI & API for MCP management
mcp-lite-dev
共学《MCP极简开发》项目代码
pentesting s-checklist
A practical, community-driven checklist for pentesting MCP servers. Covers traffic analysis, tool-call behavior, namespace abuse, auth flows, and remote server risks. Maintained by Appsecco and licensed for remixing.