mcp-policy-gateway
mcp-policy-gateway
Референсная реализация MCP-сервера с политиками в приоритете. Она показывает, как предоставить агенту полезные инструменты, не позволяя модели самостоятельно принимать решения об авторизации, пересекать границы тенантов, раскрывать прямые PII или выполнять высокорисковые изменения.
Это портфолио/референсная реализация. Все записи синтетические; это не производственное программное обеспечение, и оно не претендует на интеграцию с банком, платёжным процессором или клиентской системой.
Зачем это нужно
Обычная MCP-демонстрация открывает модели доступ к сырому API и рассматривает успешный вызов инструмента как модель безопасности. Этот проект придерживается противоположной позиции:
Политика детерминирована. Модель не может авторизовать саму себя.
Граница тенанта обеспечивается на стороне сервера. Аргумент инструмента не может переключить тенант.
Вывод инструментов минимизирован. Сводка по счёту намеренно не содержит имя владельца и email.
Высокорисковые действия останавливаются на шлюзе одобрения. Запрос на заморозку не приводит к изменению состояния.
Каждое решение аудируемо. Результаты «разрешено», «отказано» и «требуется одобрение» создают структурированные события аудита.
Запросы на изменение требуют указания причины и ключа идемпотентности.
Related MCP server: scopeguard-mcp
Архитектура
MCP client / agent
│ tool call
▼
FastMCP stdio adapter
│ verified principal (demo fixture here)
▼
GatewayService ──► PolicyEngine ──► allow / deny / require approval
│ │
▼ ▼
synthetic domain data structured audit eventВ production-развёртывании субъект доступа должен выводиться из проверенной идентичности/сессии вне контекста модели. Никогда не принимайте tenant_id, роли или области доступа из аргумента инструмента или вывода модели.
Инструменты
Инструмент | Риск | Поведение |
| Чтение | Разрешает только дела в тенанте вызывающей стороны с нужной областью доступа. |
| Чтение | Возвращает минимизированную сводку; никогда не возвращает прямые PII. |
| Изменение | Требует область доступа, причину и ключ идемпотентности, затем всегда требует одобрения человека. |
Быстрый старт
Требуется Python 3.11+.
python -m venv .venv
.venv/bin/pip install -e '.[dev]'
.venv/bin/pytest
.venv/bin/ruff check .Запустите как MCP stdio-сервер:
.venv/bin/mcp-policy-gatewayАдаптер использует намеренно фиксированный демонстрационный субъект доступа для локального изучения. Реальная передача идентичности намеренно описана как вопрос production-интеграции, а не имитируется здесь.
Продемонстрированные меры защиты от злоупотреблений
Тесты доказывают, что шлюз:
отказывает агенту из
tenant_redпри попытке прочитать данныеtenant_blue;отклоняет вызов инструмента без требуемой области доступа;
не возвращает имя владельца или email через инструмент сводки;
возвращает
require_approvalвместо изменения состояния счёта; иотклоняет запросы, изменяющие состояние, в которых отсутствует причина или ключ идемпотентности.
Модель угроз и не-цели
См. THREAT_MODEL.md. Замысел намеренно узкий: он демонстрирует границу политик вокруг MCP-инструментов, а не полную инфраструктуру идентичности, долговременное хранилище аудита, управление секретами или платёжную/учётную систему.
Описание для собеседования
Краткий способ объяснить проект:
Я спроектировал границу MCP так, чтобы модель могла анализировать безопасные данные в рамках своей области доступа, но не могла принимать решения о доступе или выполнять высокорисковые действия. Авторизация детерминирована, изоляция тенантов обеспечивается на стороне сервера, поверхность инструментов минимизирует PII, а чувствительные изменения завершаются на аудируемом шлюзе одобрения человеком.
Разработка
.venv/bin/pytest
.venv/bin/ruff check .CI запускает обе проверки при каждом push и pull request.
Лицензия
MIT. См. LICENSE.
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
- AlicenseBqualityBmaintenanceA governance and policy enforcement gateway for MCP servers that provides hard guardrails, dynamic parameter bounds, human-in-the-loop approvals, and audit telemetry.211MIT
- AlicenseAqualityCmaintenanceEnables policy-first defensive security operations for MCP, providing repository and web-security analysis with controlled authorization, scoped execution, and auditability.9MIT
- FlicenseNot gradedqualityCmaintenanceEnables approval-gated incident response workflows that gather evidence through read-only MCP tools, perform idempotent writes, and preserve a durable audit trail.1
- AlicenseNot gradedqualityCmaintenanceEnforces fine-grained, context-aware access control on MCP tool calls, with a tamper-evident, replayable audit log that records denials and verifies every decision.MIT
Related MCP Connectors
Remote MCP for A2A caller identity, scope policy, verdict receipts, and audit history.
Paid remote MCP for AI Studio Workspace approval gate MCP, structured receipts, audit logs, and revi
Remote MCP for Copilot CLI switch gate MCP, structured receipts, audit logs, and reviewer-ready evid
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/jcorrego/mcp-policy-gateway'
If you have feedback or need assistance with the MCP directory API, please join our Discord server