Skip to main content
Glama
wxsh-hub

mcp-gateway

by wxsh-hub

MCP Gateway

Безопасный промежуточный слой экосистемы MCP — защитный барьер между LLM и серверами инструментов

License: MIT Python 3.10+

Какую проблему это решает?

Когда LLM Agent вызывает внешние инструменты через протокол MCP, существуют три ключевых риска:

  1. Утечка учётных данных — ответы инструментов могут содержать конфиденциальную информацию, такую как API Key, Token, которая напрямую попадает в контекст LLM

  2. Утечка личных данных — личная информация пользователя (имя, ID-номер, номер банковской карты) может передаваться в цепочке вызовов инструментов

  3. Вредоносная инъекция инструментов — в описаниях инструментов могут быть скрыты инструкции prompt injection, побуждающие агента выполнять опасные действия

MCP Gateway выступает в качестве прокси-слоя, перехватывающего весь трафик и выполняющего безопасную фильтрацию до того, как запросы/ответы достигнут агента.

Related MCP server: arc-gate-mcp

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

┌─────────────┐      ┌──────────────────────────────────┐      ┌─────────────┐
│             │      │          MCP Gateway             │      │             │
│   LLM Agent │ ───► │  ┌──────────┐  ┌──────────────┐  │ ───► │  MCP Server │
│             │      │  │ Sanitize │  │   Plugin     │  │      │  (tools)    │
│             │ ◄─── │  │ Request  │  │   Pipeline   │  │ ◄─── │             │
└─────────────┘      │  └──────────┘  └──────────────┘  │      └─────────────┘
                     │         ▲               │         │
                     │         │    ┌──────────▼──┐      │
                     │         │    │  Sanitize   │      │
                     │         │    │  Response   │      │
                     │         │    └─────────────┘      │
                     └──────────────────────────────────┘

Основной процесс:

  • Направление запроса: Plugin Pipeline десенсибилизирует параметры (например, удаляет PII, фильтрует инъекционные инструкции)

  • Направление ответа: применяет маскирование токенов и фильтрацию конфиденциальной информации к возвращаемым значениям инструментов

  • Этап запуска: Security Scanner проводит оценку репутации всех настроенных MCP Server

Быстрый старт

Установка

git clone <your-repo-url>
cd mcp-gateway
pip install -e .

Опциональные зависимости:

pip install -e .[presidio]   # 启用 PII 检测(基于 Microsoft Presidio)

Минимальная конфигурация

Создайте mcp.json в корне проекта:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
    }
  }
}

Запуск

# 启用基础 Token 掩码
mcp-gateway -p basic

# 启用 Token 掩码 + PII 检测
mcp-gateway -p basic -p presidio

# 调试模式
LOGLEVEL=DEBUG mcp-gateway -p basic

Интеграция с Cursor / Claude Desktop

{
  "mcpServers": {
    "mcp-gateway": {
      "command": "mcp-gateway",
      "args": [
        "--mcp-json-path", "~/.cursor/mcp.json",
        "-p", "basic",
        "-p", "xetrack"
      ],
      "servers": {
        "filesystem": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
        }
      }
    }
  }
}
{
  "mcpServers": {
    "mcp-gateway": {
      "command": "<python-path>",
      "args": [
        "-m", "mcp_gateway.server",
        "--mcp-json-path", "<path-to-config>",
        "-p", "basic"
      ],
      "servers": {
        "filesystem": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
        }
      }
    }
  }
}

Возможности защиты

Маскирование токенов (плагин basic)

Автоматически распознаёт и заменяет конфиденциальные учётные данные в ответах, поддерживает форматы ключей 12 основных облачных платформ и инструментов разработки:

Тип

Пример формата

AWS Access Key

AKIA...

GitHub Token

ghp_..., gho_...

Azure Client Secret

связанные с *.azure.com

GCP API Key

AIza...

JWT Token

eyJ...

HuggingFace Token

hf_...

GitLab Session Cookie

_gitlab_session=...

Slack App Token

xapp-...

Microsoft Teams Webhook

*.webhook.office.com

mcp-gateway -p basic

Обнаружение PII (плагин presidio)

На основе движка Microsoft Presidio автоматически распознаёт и анонимизирует персональные данные в тексте:

  • Номера кредитных карт, IP-адреса, электронная почта

  • Номера телефонов, идентификационные номера (SSN)

  • Дополнительные типы сущностей см. в документации Presidio

pip install -e .[presidio]
mcp-gateway -p presidio

Сканер безопасности (--scan)

Перед запуском проводит оценку репутации всех MCP Server и анализ описаний инструментов:

mcp-gateway --scan -p basic

Измерения сканирования:

  • Оценка репутации — вычисляет комплексный балл на основе данных GitHub (Star, Fork, активность Issue) и загрузок NPM

  • Сканирование описаний инструментов — обнаруживает скрытые инструкции prompt injection, ссылки на конфиденциальные пути файлов, инструкции опасных операций

  • Автоматическая блокировка — серверы с репутацией ниже порога (по умолчанию 30 баллов) помечаются как blocked и не загружаются

Результаты сканирования записываются в файл конфигурации:

{
  "servers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "."],
      "blocked": "passed"
    }
  }
}

Значения статуса: "passed" (безопасно) | "blocked" (заблокировано) | "skipped" (пропущено вручную) | null (не сканировано)

Трассировка вызовов

Плагин трассировки Xetrack

Записывает полный контекст всех вызовов инструментов, поддерживает запросы SQLite и DuckDB:

pip install xetrack
mcp-gateway -p xetrack

Конфигурация через переменные окружения:

  • XETRACK_DB_PATH — путь к базе данных SQLite

  • XETRACK_LOGS_PATH — каталог файлов журналов

{
  "mcpServers": {
    "mcp-gateway": {
      "command": "mcp-gateway",
      "args": ["--mcp-json-path", "~/.cursor/mcp.json", "-p", "xetrack"],
      "env": {
        "XETRACK_DB_PATH": "tracing.db",
        "XETRACK_LOGS_PATH": "logs/"
      }
    }
  }
}

Пример запроса:

from xetrack import Reader
df = Reader("tracing.db").to_df()
-- DuckDB
INSTALL sqlite; LOAD sqlite; ATTACH 'tracing.db' (TYPE sqlite);
SELECT server_name, capability_name, content_text FROM db.events LIMIT 10;

Прокси-инструменты

Gateway предоставляет LLM два стандартизированных инструмента:

Инструмент

Функция

get_metadata

Получает список возможностей всех зарегистрированных MCP Server, помогая LLM выбрать подходящий инструмент

run_tool

Выполняет произвольные вызовы MCP-инструментов через Gateway с автоматической безопасной обработкой запросов/ответов

Разработка плагинов

Система плагинов основана на базовом классе ABC + паттерне регистрации через декораторы:

from mcp_gateway.plugins.base import GuardrailPlugin
from mcp_gateway.plugins.manager import register_plugin

@register_plugin
class MyPlugin(GuardrailPlugin):
    @property
    def name(self) -> str:
        return "my-plugin"

    def process_request(self, context):
        # 请求方向的处理逻辑
        return context.arguments

    def process_response(self, context, response):
        # 响应方向的处理逻辑
        return response

Плагины автоматически обнаруживаются и загружаются через PluginManager, поддерживается двусторонний перехват запросов/ответов.

Структура проекта

mcp_gateway/
├── __init__.py              # 包入口
├── server.py                # MCP Server 生命周期管理
├── gateway.py               # 动态工具注册、CLI 参数解析
├── config.py                # 配置文件加载
├── sanitizers.py            # 请求/响应安全分发
├── plugins/
│   ├── base.py              # Plugin ABC 基类
│   ├── manager.py           # 插件发现、注册、Pipeline
│   ├── guardrails/
│   │   ├── basic.py         # Token 掩码插件
│   │   └── presidio.py      # PII 检测插件
│   └── tracing/
│       └── xetrack.py       # 调用追踪插件
├── security_scanner/
│   ├── scanner.py           # 扫描器主入口
│   ├── github_collector.py  # GitHub API 数据采集
│   ├── npm_collector.py     # NPM Registry 数据采集
│   ├── smithery_collector.py# Smithery 市场数据采集
│   ├── project_analyzer.py  # 综合信誉评分算法
│   └── tool_poisoning_analyzer.py  # 工具描述安全分析
└── tests/
    ├── test_sanitizers.py
    ├── test_tool_poisoning_analyzer.py
    ├── test_plugin_pipeline.py
    └── test_config.py

Лицензия

MIT

A
license - permissive license
Not graded
quality - not tested
C
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

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    A transparent proxy and execution firewall that intercepts and audits AI agent tool calls against configurable security policies before forwarding them to downstream MCP servers. It provides safe execution environments with features like data redaction, anti-loop protection, and unified alert dispatching.
  • A
    license
    A
    quality
    B
    maintenance
    Runtime governance proxy for MCP tool calls. Inspects tool results for prompt injection and capability abuse before they reach your agent, blocking attacks that exploit the MCP trust boundary.
    1
    2
    AGPL 3.0
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables secure interaction between LLMs and MCP tools by applying zero-trust security controls, including sensitive data masking, file system protection, and policy enforcement.

View all related MCP servers

Related MCP Connectors

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

  • The WAF for agents. Pattern-based + heuristic firewall scans prompts, RAG documents, tool argume...

  • MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.

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/wxsh-hub/mcp-gateway'

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