Skip to main content
Glama
sudo-hrmn

MCP-Gatekeeper

by sudo-hrmn

🛡️ MCP-Gatekeeper

Шлюз безопасности времени выполнения и FastMCP-сервер для клиентов Model Context Protocol (MCP) и вышестоящих серверов.

MCP-Gatekeeper — это прокси-сервер с многоуровневой защитой и FastMCP-сервер, который проверяет 100% обновлений списка инструментов и ответов инструментов, предотвращая отравление инструментов, внедрение промптов через ответы (например, атаки MCPoison / CurXecute), скрытую модификацию схемы инструментов («rug pulls») и несанкционированные операции высокого риска.

Разработан для мгновенного развертывания на fastmcp.cloud или локального запуска через CLI fastmcp.


🚀 Ключевые функции и возможности

  1. Готовность к FastMCP Cloud: Однофайловая точка входа FastMCP (server.py), развертываемая напрямую на fastmcp.cloud с транспортом SSE и HTTP.

  2. Защита схемы от «rug pull»: Базовый снимок схемы инструментов при подключении; сравнение 100% обновлений списка инструментов с утвержденными базовыми снимками и блокировка несанкционированных изменений инструментов по умолчанию.

  3. Двухэтапный сканер внедрения в ответах:

    • Этап 1: Высокопроизводительный префильтр на основе правил, нацеленный на известные перехваты инструкций, ловушки эксфильтрации и внедрение shell-команд.

    • Этап 2: Глубокая семантическая классификация с помощью LLM с использованием любого API, совместимого с OpenAI (LLM_API_KEY из .env, поддерживаются OpenAI, Grok, DeepSeek, Anthropic или локальный Ollama).

  4. Безопасная архитектура с отказом по умолчанию (fail-closed): Любой сбой классификатора, тайм-аут сети или необработанное исключение по умолчанию приводит к блокировке полезной нагрузки и созданию инцидента безопасности.

  5. Механизм политик: Настраиваемая оценка правил для каждого инструмента и сервера (allow, block, confirm, rate_limit).

  6. Шлюз подтверждения человеком: Удерживает действия высокого риска до одобрения администратором; при отсутствии ответа в течение настраиваемого тайм-аута отклоняет (fail-closed).

  7. Защищенный от вмешательства журнал аудита: Каждый вызов, ответ, вердикт политики и решение администратора сохраняются с SHA-256 хеш-цепочкой.

  8. Панель управления облачного контрольного центра: Живая HTML-панель администратора, обслуживаемая напрямую через FastMCP по адресу /dashboard.


Related MCP server: guardrails-mcp-server

🛠️ Обзор архитектуры

Высокоуровневая системная архитектура

flowchart TD
    subgraph Clients["AI Clients & Interfaces"]
        C1["Claude Desktop"]
        C2["Claude Code CLI"]
        C3["Google Antigravity"]
        C4["ChatGPT / Custom App"]
    end

    subgraph Gateway["🛡️ MCP-Gatekeeper (FastMCP Cloud)"]
        direction TB
        S["FastMCP Server\nserver.py"]
        
        subgraph Engine["Security & Policy Engines"]
            B["Schema Baseline Manager\n(Rug-Pull Detector)"]
            POL["Policy Engine\n(Allow/Block/Confirm/Rate-Limit)"]
            CONF["Confirmation Manager\n(Human Approval Gate)"]
            
            subgraph Classifier["Two-Stage Response Classifier"]
                R1["Stage 1: Rule Prefilter\n(Fast Pattern Match)"]
                R2["Stage 2: LLM Classifier\n(OpenAI / Grok / DeepSeek / Ollama)"]
            end
        end

        UI["Admin Control Center UI\n/dashboard"]
    end

    subgraph External["Upstream Services & AI APIs"]
        UP["Upstream MCP Servers\n(GitHub, SQL, Web Search, APIs)"]
        LLM["LLM Classifier API\n(OpenAI / Grok / DeepSeek / Ollama)"]
    end

    subgraph Storage["Datastore & Audit"]
        DB[("PostgreSQL / SQLite DB")]
        AUDIT[("Tamper-Evident Audit Log\n(SHA-256 Hash Chained)")]
    end

    Clients -->|MCP SSE / stdio / JSON-RPC| S
    S --> B
    S --> POL
    POL -->|Held Action| CONF
    POL -->|Allowed| UP
    UP -->|Tool Response| Classifier
    Classifier --> R1
    R1 -->|Ambiguous / Suspicious| R2
    R2 -->|API Query| LLM
    Classifier -->|Clean / Safe| Clients
    Classifier -->|Malicious / Timeout| Block["Fail-Closed Block Response"]

    UI -->|Manage Policies & Baselines| DB
    Engine -->|Record Calls & Incidents| DB
    Engine -->|Write Chain Record| AUDIT

Детальный поток выполнения и конвейер безопасности

sequenceDiagram
    autonumber
    actor Client as AI Agent Client
    participant FastMCP as FastMCP Server (server.py)
    participant Base as Schema Baseline Manager
    participant Policy as Policy Engine
    participant Gate as Human Confirmation Gate
    participant Admin as Admin Dashboard (/dashboard)
    participant Upstream as Upstream MCP Server
    participant Stage1 as Stage 1: Rule Prefilter
    participant Stage2 as Stage 2: LLM Classifier
    participant Audit as SHA-256 Audit Log

    Client->>FastMCP: 1. Request check_tool_security (tool_name, payload)
    
    FastMCP->>Base: 2. Check tool baseline schema status
    alt Schema modified or unapproved (Rug-Pull)
        Base-->>FastMCP: Flagged schema mismatch
        FastMCP->>Audit: Log Rug-Pull Incident
        FastMCP-->>Client: Return Error: Tool schema unapproved
    else Approved Baseline
        Base-->>FastMCP: Baseline OK
    end

    FastMCP->>Policy: 3. Evaluate Call Policy
    alt Policy = Blocked / Rate-Limited
        Policy-->>FastMCP: Action Blocked
        FastMCP-->>Client: Return Error: Blocked by security policy
    else Policy = Held for Confirmation
        Policy->>Gate: 4. Create Pending Approval Request
        Gate->>Admin: Notify Admin on Dashboard
        Admin->>Gate: 5. Admin Approves / Denies (or Timeout)
        alt Denied or Timed Out (Fail-Closed)
            Gate-->>FastMCP: Action Denied
            FastMCP-->>Client: Return Error: High-risk action denied
        else Approved
            Gate-->>FastMCP: Action Approved
        end
    end

    FastMCP->>Stage1: 6. Scan Response (Stage 1 Rule Prefilter)
    alt Stage 1 Matches Known Attack Vector
        Stage1-->>FastMCP: Verdict: Malicious
        FastMCP->>Audit: Record Security Incident & Audit Log
        FastMCP-->>Client: Return Safe Error: Response blocked
    else Stage 1 Suspicious / Ambiguous
        FastMCP->>Stage2: 7. Escalate to Stage 2 LLM Classifier
        Stage2-->>FastMCP: Verdict & Reason (or Fail-Closed on Error)
        alt Verdict = Malicious / Error
            FastMCP->>Audit: Record Security Incident & Audit Log
            FastMCP-->>Client: Return Safe Error: Response blocked
        else Verdict = Clean
            FastMCP->>Audit: Write Hash-Chained Audit Entry
            FastMCP-->>Client: 8. Return Verified Clean Response
        end
    else Stage 1 Clean
        FastMCP->>Audit: Write Hash-Chained Audit Entry
        FastMCP-->>Client: 8. Return Verified Clean Response
    end

🔑 Конфигурация окружения (.env)

Шлюз считывает общую конфигурацию LLM-окружения из .env:

# LLM Security Classifier API Key (Supports OpenAI, DeepSeek, Grok, Ollama)
LLM_API_KEY="your-llm-api-key-here"
LLM_API_URL="https://api.openai.com/v1/chat/completions" # or https://api.x.ai/v1/chat/completions, https://api.deepseek.com/v1/chat/completions
LLM_MODEL="gpt-4o-mini" # or grok-2-latest, deepseek-chat, llama3, etc.

ADMIN_API_KEY="trust-gateway-admin-key-secret"
DATABASE_URL="sqlite+aiosqlite:///mcp_trust_gateway.db"
FAIL_CLOSED=true
CLASSIFIER_TIMEOUT_SECONDS=3.0
CONFIRMATION_TIMEOUT_SECONDS=60

☁️ Развертывание и интеграция с клиентами

1. Развертывание в FastMCP Cloud

  1. Отправьте этот репозиторий на GitHub.

  2. Перейдите на fastmcp.cloud и создайте новый сервер:

    • Точка входа: server.py

    • Переменная окружения: LLM_API_KEY = your-api-key-here

  3. Нажмите Deploy. FastMCP Cloud предоставит ваши конечные точки:

    • MCP SSE-сервер: https://mcp.fastmcp.cloud/your-username/mcp-trust-gateway/sse

    • Панель администратора: https://mcp.fastmcp.cloud/your-username/mcp-trust-gateway/dashboard


2. Конфигурации клиентов

🤖 Google Antigravity и Claude Desktop (mcp_config.json)

{
  "mcpServers": {
    "mcp-trust-gateway": {
      "url": "https://mcp.fastmcp.cloud/your-username/mcp-trust-gateway/sse"
    }
  }
}

💻 Claude Code (CLI)

claude mcp add mcp-trust-gateway --transport sse \
  https://mcp.fastmcp.cloud/your-username/mcp-trust-gateway/sse

🧪 Тестирование и набор состязательных регрессионных тестов

Запустите полный набор pytest, включая набор состязательных регрессионных тестов:

pytest -v

Достигнутые показатели

  • 📊 Доля обнаружения состязательных атак: 100% (Цель: ≥95%)

  • 📊 Доля ложных срабатываний: 0% (Цель: <2%)


📝 Проектные решения

  1. Отказ по умолчанию (Fail-Closed): Все неоднозначные ответы, тайм-ауты классификатора, сетевые проблемы или несанкционированные модификации схемы приводят к отказу (блокировка действия и оповещение администраторов).

  2. Редактирование учетных данных: Секреты, API-токены и пароли, соответствующие чувствительным ключам, автоматически редактируются перед сохранением в хранилище аудита.

  3. Быстрый фильтр Этапа 1 + эскалация к LLM: Известные вредоносные шаблоны перехватываются немедленно на Этапе 1, что устраняет задержку и накладные расходы API для очевидных атак, при этом LLM используется для сложного семантического анализа.

  4. Защищенная от вмешательства хеш-цепочка: Каждая запись журнала вычисляет SHA256(actor | action | target | details | prev_hash | timestamp), обеспечивая неотказуемость и обнаружение подделки журналов.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    A
    maintenance
    Security gateway for MCP tool calls. Sits between your LLM client and MCP servers, enforcing per-tool policies (allow/block/approve/read-only), logging every call, and pausing dangerous operations for human approval in terminal or Slack.
    2
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for AI agent security guardrails. Provides input validation, prompt injection detection, PII redaction, output filtering, policy enforcement, rate limiting, and comprehensive audit logging.
    45
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A zero-trust security gateway for MCP tool calls, inspecting tool identity, arguments, execution decisions, and returned content before risk reaches your coding agent.
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    A defensive gateway and firewall for AI agents using MCP servers, scanning tool calls, responses, and manifests for prompt injection, secrets, dangerous commands, and drift before allowing execution.
    MIT

View all related MCP servers

Related MCP Connectors

  • Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.

  • Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.

  • Scans MCP servers for tool poisoning, prompt injection and supply chain risks.

View all MCP Connectors

Latest Blog Posts

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/sudo-hrmn/MCP-Gatekeeper'

If you have feedback or need assistance with the MCP directory API, please join our Discord server