Skip to main content
Glama
getagentomy

Agentomy MCP Gateway

Official
by getagentomy

Agentomy MCP Gateway

Открытая часть Agentomy — слоя управления для ИИ-агентов в регулируемых предприятиях. Смотрите другие на github.com/getagentomy.

License focus

Управляет любым stdio MCP-сервером, располагаясь между агентом и сервером. Каждый вызов tools/call проверяется на соответствие вашей политике до того, как достигнет сервера. Отказ обрабатывается шлюзом и никогда не пересылается, поэтому побочный эффект не происходит.

Ничего в вышестоящем сервере не меняется. Он не патчится, не форкается и никогда не узнаёт, что им управляют.

Почему вмешиваться, а не наблюдать

Сайдкар, который наблюдает за MCP-трафиком и сообщает о нём, создаёт запись о том, что ему не удалось остановить. Нахождение на линии связи превращает отчёт в отказ.

Related MCP server: Dmint MCP Proxy

Установка и запуск

# Instead of launching the MCP server directly:
#   my-mcp-server --flag
# launch it through the gateway:
AGENTOMY_ENDPOINT=https://your-agentomy \
AGENTOMY_API_KEY=... \
  agentomy-mcp-gateway, my-mcp-server --flag

В MCP-конфигурации агента замените command и args сервера:

{
  "mcpServers": {
    "dev-tools": {
      "command": "agentomy-mcp-gateway",
      "args": ["--", "the-original-command", "--its", "--flags"],
      "env": { "AGENTOMY_ENDPOINT": "https://your-agentomy", "AGENTOMY_API_KEY": "..." }
    }
  }
}

Это вся интеграция. Одно изменение конфигурации на агента, выполняемое оператором.

Variable

Required

Meaning

AGENTOMY_ENDPOINT

да

Базовый URL платформы

AGENTOMY_API_KEY

нет

Токен Bearer

AGENTOMY_AGENT_ID

нет

Идентичность при принятии решения, по умолчанию mcp-gateway

AGENTOMY_TIMEOUT_MS

нет

Таймаут решения, по умолчанию 5000

Что он делает с протоколом

Message

Behaviour

tools/call, permitted

Пересылается без изменений

tools/call, refused

Не пересылается. Ошибка JSON-RPC -32000 с тем же id, с data.governed = true и причиной

tools/call, refused, no id

Отброшено. Уведомление никогда не должно получать ответ, поэтому вызов останавливается, а ответ удерживается

Everything else

Пересылается без изменений

Upstream to agent

Пересылается дословно. Результаты не переписываются

Запросы обрабатываются в порядке поступления. Параллельное принятие решений позволило бы более позднему вызову достичь сервера раньше, чем был разрешён более ранний, что является ошибкой переупорядочивания, которая проявляется только под нагрузкой.

Отказ по умолчанию и чем это вам обходится

Каждый путь отказа приводит к отказу:

Condition

Reason returned

Конечная точка недоступна

governance_unreachable

Таймаут решения

governance_timeout

Ответ не 2xx

governance_http_error

Тело не JSON или нет логического поля authorized

governance_malformed_response

Флот остановлен

agent_halted

Политика отказала

policy_denied

Честный компромисс: если платформа недоступна, управляемые инструменты перестают работать. Это правильное поведение для компонента управления, и это реальная связность по доступности. Запускайте платформу соответственно.

Причины различаются намеренно. Оператор, видящий governance_unreachable, имеет дело с отказом; видящий policy_denied — с вопросом политики. Сведение их к «denied» сделало бы их неразличимыми именно в тот момент, когда разница важна.

Отсутствующее поле authorized приводит к отказу, а не интерпретируется как истинность, потому что проверка истинности превращает любую неожиданную полезную нагрузку, включая объект ошибки, в разрешение.

Чего он не делает

Он управляет действиями, а не обнаружением. tools/list проходит насквозь. Сужение того, что агент может видеть, оставляя неуправляемым то, что он может делать, было бы театром не в том месте.

Он не переписывает результаты. Шлюз выносит решения по запросам; если заставить его редактировать ответы, он станет участником разговора, а не воротами на нём.

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

Лицензия

Apache-2.0.

Maintenance

ActivitySlowing
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Governance proxy for MCP servers. Wraps any MCP server with policy evaluation, human approval workflows, and hash-chain audit trails. Supports stdio and Streamable HTTP transports.
    1
    4 npm
    15
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables developers to wrap existing MCP servers with a deterministic policy enforcement gate that intercepts tool discovery and tools/call requests over stdio, allowing only authorized calls to reach the downstream server. It supports dynamic tool exposure or hiding, allow/deny/approval-required decisions, configurable error disclosure modes, and Ed25519-signed retry credentials for approved workflows.
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Sits in front of any MCP server to enforce allow/ask/block policies on tool calls, paths, shell commands, and network domains, with local approval prompts and an audit log.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A transparent MCP stdio proxy that sits between an agent client and a real MCP server, intercepting tools/call requests to enforce runtime guardrails derived from the same YAML rules used for CI regression testing. It blocks forbidden, out-of-whitelist, looping, or non-idempotent tool invocations with JSON-RPC errors and writes every decision to an audit log.
    1
    MIT