Damn Vulnerable MCP Server Demo
Enables support for the creator through Buy Me a Coffee, allowing users to financially contribute to the project developer (pfelilpe) via a direct link in the documentation.
Integrates with Python for running the MCP server, which provides a mathematical addition service that can add two or more numbers when queried through Copilot.
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 MCP Server Demoadd 5 and 7"
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 MCP Server Demo
A simplier implementation of a Damn Vulnerable MCP Server that adds two or more numbers
Overview
The MCP Server Demo is a demonstration of excessive agency that could lead to Remote Code Execution (RCE) if the MCP were running on an external server. 🛡️
Related MCP server: Vulnerable MCP Server
Features
🚀 Basic MCP server implementation.
📂 Demonstrates server functionality with
server.py.
Warning
⚠️ This project is a vulnerable MCP server designed to demonstrate how poor implementation practices can lead to security issues. It is intended for educational purposes only.
❌ Do not use this project in production environments.
Prerequisites
🐍 Python 3.10 or higher.
💡 A virtual environment is recommended for managing dependencies.
Installation
📥 Clone the repository:
git clone <repository-url> cd DVMCP📦 Install dependencies:
pip install -r requirements.txt
Usage
▶️ Link the MCP Server with Copilot:
vscode://settings/mcpAdd the server configuration to the
settings.jsonfile in VS Code:"servers": { "DVMCP": { "command": "uv", "args": [ "run", "--with", "mcp[cli]", "mcp", "run", "/Users/pfelilpe/Documents/DVMCP/server.py" ], "env": {} } }Click on Start Server.
Interact with Copilot in Agent mode, for example:
1+1 with additionExperiment with code injection to explore potential OS Injection vulnerabilities... 🕵️♂️
You can find a safer implementation of this simpler MCP at
/safe/server.py. 🔒
Adding MCP to Your Python Project
We recommend using uv to manage your Python projects. 🛠️
If you haven't created a uv-managed project yet, initialize one:
uv init mcp-server-demo
cd mcp-server-demoThen add MCP to your project dependencies:
uv add "mcp[cli]"Alternatively, for projects using pip for dependencies:
pip install "mcp[cli]"Running the Standalone MCP Development Tools
To run the mcp command with uv:
uv run mcpProject Structure
server.py: 🖥️ Main server implementation.pyproject.toml: 📜 Project configuration file.README.md: 📖 Documentation for the project.uv.lock: 🔒 Lock file for dependencies.__pycache__/: 🗂️ Contains compiled Python files.
Contributing
🤝 Contributions are welcome! Please fork the repository and submit a pull request with your changes.
License
📄 This project is licensed under the terms of the LICENSE file in the root directory.
Created by pfelilpe
Buy Me a Coffee
If you found this project helpful or interesting, consider buying me a coffee to support my work: ☕️

Available Tools
1 tooladditionD
Sum tool
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. 'Sum tool' offers no information on traits like safety, permissions, rate limits, or output behavior. It does not describe what the tool does beyond its name, failing to compensate for the lack of structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with 'Sum tool', which is front-loaded and wastes no words. However, this brevity leads to under-specification, as it lacks necessary details, but it is structurally efficient for its minimal content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple but undefined), lack of annotations, no output schema, and 0% schema coverage, the description is completely inadequate. It fails to explain the tool's purpose, behavior, parameters, or output, making it insufficient for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, and the description 'Sum tool' adds no meaning about the parameter 'a'. It does not explain what 'a' represents (e.g., a number, list, or string), its format, or how it relates to the summation, leaving the parameter undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Sum tool' is a tautology that restates the tool name 'addition' without specifying the verb or resource clearly. It vaguely implies mathematical addition but lacks detail on what is being summed (e.g., numbers, strings) or how it operates, making it unclear and minimally informative beyond the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool, such as context, prerequisites, or alternatives. With no sibling tools, this is less critical, but the description fails to offer any usage instructions, leaving the agent without direction on its application.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
- First observed
addition
TDQS
With only one tool, there is no possibility of confusion or overlap between tools. The tool 'addition' has a single, clearly defined purpose of summing numbers, so an agent can easily identify and select it without ambiguity.
Since there is only one tool, naming consistency is inherently perfect. The tool name 'addition' follows a simple noun pattern, which is appropriate for its function, and there are no other tools to compare it against for inconsistency.
A single tool is too few for most server purposes, making the server feel thin and limited in scope. While the tool 'addition' is straightforward, a server with only one basic arithmetic operation lacks the depth expected for meaningful agent interactions, indicating a mismatch with typical MCP server expectations.
The server's domain appears to be arithmetic or mathematical operations, but with only an addition tool, it is severely incomplete. There are obvious gaps, such as missing subtraction, multiplication, division, or other basic operations, which would cause agent failures when attempting broader mathematical tasks.
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 Connectors
Security research canary remote MCP server for owned-account testing.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA 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.4-
- FlicenseNot gradedqualityDmaintenanceAn 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.-
- FlicenseNot gradedqualityDmaintenanceA deliberately insecure MCP server designed as a pentest lab to demonstrate common vulnerabilities in MCP deployments.-
- FlicenseNot gradedqualityDmaintenanceA vulnerable MCP server designed for educational CTF challenges. It demonstrates various MCP security vulnerabilities in a controlled environment.8-
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/pfelilpe/DVMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server