Проклятый уязвимый MCP-сервер
В этом документе представлен обзор обновлений, внесённых в проект Damn Vulnerable Model Context Protocol (DVMCP) для обеспечения совместимости с реализацией Server-Sent Events (SSE) в Cursor.
Исходный проект DVMCP был доработан для поддержки реализации SSE в Cursor, что позволяет обращаться к серверам заданий напрямую из Cursor. Это делает задания более доступными и реалистичными, поскольку их можно тестировать с помощью реального MCP-клиента.
Каждый сервер заданий теперь имеет SSE-совместимую версию (server_sse.py), которая реализует:
SseServerTransport из библиотеки MCP/sse, требуемой Cursordamn-vulnerable-mcs/
├── challenges/
│ ├── easy/
│ │ ├── challenge1/
│ │ │ ├── server.py # Original server
│ │ │ └── server_sse.py # SSE-compatible server
│ │ ├── challenge2/
│ │ │ ├── server.py
│ │ │ └── server_sse.py
│ │ └── challenge3/
│ │ ├── server.py
│ │ └── server_sse.py
│ ├── medium/
│ │ ├── challenge4/
│ │ │ ├── server.py
│ │ │ └── server_sse.py
│ │ ├── challenge5/
│ │ │ ├── server.py
│ │ │ └── server_sse.py
│ │ ├── challenge6/
│ │ │ ├── server.py
│ │ │ └── server_sse.py
│ │ └── challenge7/
│ │ ├── server.py
│ │ └── server_sse.py
│ └── hard/
│ ├── challenge8/
│ │ ├── server.py
│ │ └── server_sse.py
│ ├── challenge9/
│ │ ├── server.py
│ │ └── server_sse.py
│ └── challenge10/
│ ├── server.py
│ └── server_sse.py
├── docs/
│ ├── cursor_sse_compatibility.md # This document
│ └── ... (other documentation)
├── start_sse_servers.sh # Script to start all SSE servers
└── requirements.txt # Updated dependencies
Вы можете запускать отдельные серверы:
python3 challenges/easy/challenge1/server_sse.py
Или использовать предоставленный скрипт для запуска всех серверов:
./start_sse_servers.sh
Чтобы подключиться к SSE-совместимому серверу с помощью Cursor:
http://localhost:9001/sse)Для поддержки SSE-совместимости были добавлены следующие зависимости:
fastapi>=0.95.0
uvicorn>=0.21.1
httpx>=0.24.0
mcp[cli]>=0.5.0
starlette>=0.27.0
Каждый сервер заданий использует уникальный порт:
Реализация SSE сохраняет все те же уязвимости, что и исходная реализация, что гарантирует, что задания остаются обучающими для исследователей безопасности.
Подробную информацию о реализации см. в Руководстве по совместимости Cursor SSE.