Damn Vulnerable Model Context Protocol (DVMCP)
Offers containerized deployment of the DVMCP server, enabling isolated and consistent running of the vulnerable MCP implementation for educational purposes.
Provides integration with CLINE, a VSCode Extension that can connect to MCP servers, allowing users to interact with the DVMCP challenges through the VSCode environment.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Damn Vulnerable Model Context Protocol (DVMCP)show me the list of available challenges"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Damn Vulnerable Model Context Protocol (DVMCP)
A deliberately vulnerable implementation of the Model Context Protocol (MCP) for educational purposes.
Overview
The Damn Vulnerable Model Context Protocol (DVMCP) is an educational project designed to demonstrate security vulnerabilities in MCP implementations. It contains 10 challenges of increasing difficulty that showcase different types of vulnerabilities and attack vectors.
This project is intended for security researchers, developers, and AI safety professionals to learn about potential security issues in MCP implementations and how to mitigate them.
Related MCP server: Insecure MCP Demo
What is MCP?
The Model Context Protocol (MCP) is a standardized protocol that allows applications to provide context for Large Language Models (LLMs) in a structured way. It separates the concerns of providing context from the actual LLM interaction, enabling applications to expose resources, tools, and prompts to LLMs.
Recommended MCP Clients
CLINE - VSCode Extension
Refer to this Connecting to a Remote Server - Cline for connecting Cline with MCP server
Quick Start
Once you have cloned the repository, run the following commands:
docker build -t dvmcp .
docker run -p 9001-9010:9001-9010 dvmcpDisclaimer
It's not stable in a Windows environment. If you don't want to use Docker then please use Linux environment. I recommend Docker to run the LAB and I am 100% percent sure it works well in the Docker environment
Security Risks
While MCP provides many benefits, it also introduces new security considerations. This project demonstrates various vulnerabilities that can occur in MCP implementations, including:
Prompt Injection: Manipulating LLM behavior through malicious inputs
Tool Poisoning: Hiding malicious instructions in tool descriptions
Excessive Permissions: Exploiting overly permissive tool access
Rug Pull Attacks: Exploiting tool definition mutations
Tool Shadowing: Overriding legitimate tools with malicious ones
Indirect Prompt Injection: Injecting instructions through data sources
Token Theft: Exploiting insecure token storage
Malicious Code Execution: Executing arbitrary code through vulnerable tools
Remote Access Control: Gaining unauthorized system access
Multi-Vector Attacks: Combining multiple vulnerabilities
Project Structure
damn-vulnerable-MCP-server/
├── README.md # Project overview
├── requirements.txt # Python dependencies
├── challenges/ # Challenge implementations
│ ├── easy/ # Easy difficulty challenges (1-3)
│ │ ├── challenge1/ # Basic Prompt Injection
│ │ ├── challenge2/ # Tool Poisoning
│ │ └── challenge3/ # Excessive Permission Scope
│ ├── medium/ # Medium difficulty challenges (4-7)
│ │ ├── challenge4/ # Rug Pull Attack
│ │ ├── challenge5/ # Tool Shadowing
│ │ ├── challenge6/ # Indirect Prompt Injection
│ │ └── challenge7/ # Token Theft
│ └── hard/ # Hard difficulty challenges (8-10)
│ ├── challenge8/ # Malicious Code Execution
│ ├── challenge9/ # Remote Access Control
│ └── challenge10/ # Multi-Vector Attack
├── docs/ # Documentation
│ ├── setup.md # Setup instructions
│ ├── challenges.md # Challenge descriptions
│ └── mcp_overview.md # MCP protocol overview
├── solutions/ # Solution guides
└── common/ # Shared code and utilitiesGetting Started
See the Setup Guide for detailed instructions on how to install and run the challenges.
Challenges
The project includes 10 challenges across three difficulty levels:
Easy Challenges
Basic Prompt Injection: Exploit unsanitized user input to manipulate LLM behavior
Tool Poisoning: Exploit hidden instructions in tool descriptions
Excessive Permission Scope: Exploit overly permissive tools to access unauthorized resources
Medium Challenges
Rug Pull Attack: Exploit tools that change their behavior after installation
Tool Shadowing: Exploit tool name conflicts to override legitimate tools
Indirect Prompt Injection: Inject malicious instructions through data sources
Token Theft: Extract authentication tokens from insecure storage
Hard Challenges
Malicious Code Execution: Execute arbitrary code through vulnerable tools
Remote Access Control: Gain remote access to the system through command injection
Multi-Vector Attack: Chain multiple vulnerabilities for a sophisticated attack
See the Challenges Guide for detailed descriptions of each challenge.
Solutions
Solution guides are provided for educational purposes. It's recommended to attempt the challenges on your own before consulting the solutions.
See the Solutions Guide for detailed solutions to each challenge.
Disclaimer
This project is for educational purposes only. The vulnerabilities demonstrated in this project should never be implemented in production systems. Always follow security best practices when implementing MCP servers.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
This project is created by Harish Santhanalakshmi Ganesan using cursor IDE and Manus AI.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseCqualityDmaintenanceIMCP - Insecure Model Context Protocol The DVWA for AI Security! Welcome to IMCP – a deliberately vulnerable framework that exposes 16 critical security weaknesses in AI/ML systems. Whether you're a security researcher, developer, or educator, IMCP is your playground for hands-on learning about realLast updated154JavaScript
- Flicense-qualityDmaintenanceA deliberately vulnerable MCP server that allows clients to interact with a database for educational purposes, demonstrating security vulnerabilities including SQL injection, arbitrary code execution, and sensitive data exposure.Last updated4
- Flicense-qualityDmaintenanceAn educational MCP server demonstrating common security vulnerabilities like command injection, path traversal, SQL injection, and XXE attacks. Designed for security training purposes only, not for production use.Last updated
- AlicenseAqualityFmaintenanceAn intentionally vulnerable MCP server for security training, enabling users to practice attacking and defending AI agents through realistic scenarios.Last updated2867MIT
Related MCP Connectors
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
MCP server teaching AI agents to implement TideCloak: auth, E2EE, IGA, security analysis
An MCP server for deep research or task groups
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/harishsg993010/damn-vulnerable-MCP-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server