Example server¶
The repo ships examples/vuln_server.py
— a deliberately simple, intentionally vulnerable MCP server (vuln-shop 🛒) for exercising
every mcpwn command end-to-end.
Intentionally insecure — do not ship it
lookup_user concatenates input straight into a SQL string and config://app leaks a fake
admin token. It exists purely as a safe practice target. Run it only on your own machine.
Running it¶
What it exposes¶
| Kind | Name | Notes |
|---|---|---|
| Tool | lookup_user(name) |
SQL-injectable — the target for sqlmap. |
| Tool | add(a, b) |
Adds two integers — a clean call example. |
| Prompt | pentest_report(target, severity="medium") |
Drafts a short finding. |
| Resource | config://app |
Returns config including a fake admin_token. |
| Resource template | users://{user_id}/email |
Email for a given user id. |
Try every command against it¶
uv run mcpwn enum http://127.0.0.1:8765/mcp/
uv run mcpwn info http://127.0.0.1:8765/mcp/ --tool lookup_user
uv run mcpwn call http://127.0.0.1:8765/mcp/ add -a a=2 -a b=40
uv run mcpwn call http://127.0.0.1:8765/mcp/ lookup_user -a name=alice
uv run mcpwn read http://127.0.0.1:8765/mcp/ "config://app"
uv run mcpwn read http://127.0.0.1:8765/mcp/ "users://7/email"
uv run mcpwn prompt http://127.0.0.1:8765/mcp/ pentest_report -a target=acme.com -a severity=high
uv run mcpwn sqlmap http://127.0.0.1:8765/mcp/ lookup_user --inject name -a name=admin
See the Quickstart for the guided version, or the SQL injection guide for the sqlmap walkthrough.