MCPGuard-Lab
MCPGuard-Lab
Экспериментальный проект по безопасности вызова инструментов MCP, основанный на реальном SDK mcp==2.0.0. Он не зависит от внешних больших языковых моделей или API-ключей, реализуя белый список инструментов, проверку параметров, границы файлов, защиту от SSRF, подтверждение чувствительных операций, десенсибилизацию вывода, обнаружение отравления описания инструментов и аудит JSONL с помощью детерминированных стратегий, а также использует регрессионные тесты для проверки того, что защита не нарушена последующими изменениями.
Границы использования: данный проект предназначен только для локальных экспериментов, авторизованного тестирования и исследований защиты и не содержит функций атак на неавторизованные цели.
Реализованные возможности
Полноценное тестирование взаимодействия между сервером MCP 2.0 stdio и реальным клиентом.
Шесть демонстрационных инструментов: безопасные вычисления, чтение файлов в корневом каталоге, запрос заметок, запрос к публичным URL, проверка метаданных инструмента, запись заметки после подтверждения.
Белый список инструментов и строгая проверка JSON Schema с отклонением дополнительных параметров.
Нормализация путей к файлам с отклонением абсолютных путей, обхода каталогов и выхода за пределы корневого каталога.
Проверка протокола URL, информации о пользователе, порта, результатов разрешения DNS с отклонением адресов loopback, частных сетей, link-local и других непубличных адресов.
Контроль доступа для операции записи
confirmed=true.Явная маркировка вывода из ненадежных инструментов; рекурсивная десенсибилизация паролей, токенов, API-ключей и учетных данных Bearer.
Обнаружение сигналов внедрения с высоким риском в именах/описаниях инструментов.
Запись каждого решения в JSONL: идентификатор запроса, время, инструмент, параметры, разрешено/отклонено, причина и результат.
Модульные/интеграционные тесты pytest и повторяемый отчет о регрессии атак.
Related MCP server: meok-mcp-injection-scan-mcp
Архитектура
MCP Client
│ stdio / MCP 2.0
▼
MCP Server ──► GuardedGateway ──► PolicyEngine
│ ├─ allowlist + schema
│ ├─ path boundary
│ ├─ URL / SSRF
│ └─ confirmation
├─ Tool handler
├─ untrusted labeling + redaction
└─ JSONL auditОсновной принцип — «сначала решение, затем выполнение, затем очистка вывода, полное отслеживание». Текст подсказки не получает дополнительных привилегий; привилегии определяются белым списком и стратегией в коде.
Быстрый запуск (Windows)
py -3.10 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev]"
.\.venv\Scripts\python.exe -m pytest
.\.venv\Scripts\python.exe -m mcpguard.regressionТакже можно запустить напрямую:
powershell -ExecutionPolicy Bypass -File .\scripts\verify.ps1Отчеты создаются в:
reports/regression-report.mdreports/regression-report.jsonreports/regression-audit.jsonl
Пример конфигурации MCP-клиента
Сначала выполните pip install -e ., затем замените следующую структуру на абсолютный путь текущего репозитория:
{
"mcpServers": {
"mcpguard-lab": {
"command": "D:/path/to/mcpguard-lab/.venv/Scripts/python.exe",
"args": ["-m", "mcpguard.server"],
"env": {
"MCPGUARD_WORKSPACE": "D:/path/to/mcpguard-lab/fixtures/workspace",
"MCPGUARD_NOTES": "D:/path/to/mcpguard-lab/fixtures/workspace/notes",
"MCPGUARD_AUDIT": "D:/path/to/mcpguard-lab/reports/audit.jsonl"
}
}
}
}Реальные границы
Обнаружение отравления описания инструмента представляет собой уровень правил с высоким уровнем сигнала и не может заменить ручную проверку и фиксированный белый список.
confirmed=true— это явный контроль доступа для подтверждения в локальном эксперименте; в производственной среде следует использовать учетные данные подтверждения, выданные хост-интерфейсом/системой идентификации, которые не могут быть подделаны моделью.В настоящее время URL-инструмент отключает перенаправления, чтобы избежать перехода на внутреннюю сеть после прохождения проверки первого перехода; производственная версия должна также ограничивать размер ответа, тип контента и исходящую сеть.
Маркировка ненадежного контента может снизить риск «использования данных в качестве инструкций», но конечный хост-агент по-прежнему должен соблюдать границы доверия.
Регрессионные данные представляют только фиксированные тестовые примеры в репозитории и не гарантируют блокировку всех инъекций подсказок или всех рисков MCP.
Содержание
src/mcpguard/ 核心实现
tests/ 单元测试与真实 MCP stdio 集成测试
fixtures/ 可公开的本地测试数据
reports/ 自动生成的测试和审计证据
scripts/verify.ps1 一键验证入口Ссылки
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
- Flicense-qualityFmaintenanceAn educational project that deliberately implements vulnerable MCP servers to demonstrate various security risks like prompt injection, tool poisoning, and code execution for training security researchers and AI safety professionals.1,334
- AlicenseAqualityCmaintenanceScans MCP servers for prompt-injection, tool-poisoning, and SSRF vulnerabilities using 30+ canonical rules across 5 severity tiers, with optional signed safety reports for procurement.5MIT
- Alicense-qualityBmaintenanceAn MCP server that provides safeguard capabilities to protect against prompt injection and unsafe tool calls.6MIT
- Flicense-qualityBmaintenanceProvides real-time RCE, SSRF, and env leak interception for AI tool calls, with MCP server mode offering diagnostic and repair suggestions.
Related MCP Connectors
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Scans MCP servers for tool poisoning, prompt injection and supply chain risks.
An MCP server for Arcjet - the runtime security platform that ships with your AI code.
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/Lc517/mcpguard-lab'
If you have feedback or need assistance with the MCP directory API, please join our Discord server