4.9 KiB
4.9 KiB
MCP Interface
1. Назначение документа
Этот документ фиксирует, как именно платформа публикует agents и operations в виде MCP tools и какой transport используется в целевой модели.
2. Архитектурное решение
mcp-server публикует tools через network-oriented MCP transport.
Решение:
- основной transport:
Streamable HTTP; - отдельный
mcp-serverкак сервис; stdioне является обязательной частью текущего scope.
3. Модель публикации tools
Каждая published operation превращается в один MCP tool внутри конкретного published agent.
Соответствие:
- один published agent;
- набор
AgentOperationBinding; - один tool name на binding;
- одна input schema;
- один результат.
Публикация tool основана на:
agent.slugoperation.nameили binding-leveltool_nametool_descriptioninput_schemapublished runtime view
4. Что делает mcp-server
mcp-server должен:
- загрузить published agents и их bindings из registry;
- преобразовать их в MCP tool definitions;
- принимать вызовы tools от MCP clients;
- валидировать вход;
- делегировать исполнение в runtime;
- возвращать нормализованный output.
5. Что не делает mcp-server
mcp-server не должен:
- читать draft-конфигурации;
- управлять versioning;
- импортировать YAML;
- выполнять CRUD;
- заниматься protobuf discovery;
- содержать бизнес-логику admin UI.
6. Runtime view
В runtime view остаются:
workspace_idagent_idoperation_idprotocoltargetinput_schemaoutput_schemainput_mappingoutput_mappingexecution_configtool_description
В runtime view не попадают:
- raw uploaded samples;
- generated draft metadata;
- YAML import metadata;
- UI-specific helper fields.
7. MCP endpoint model
Канонический endpoint:
/mcp/v1/{workspace_slug}/{agent_slug}
Этот endpoint определяет:
- tenant boundary;
- конкретный curated toolset;
- набор usage и log labels.
8. MCP lifecycle
Поддерживаемые JSON-RPC методы:
initializenotifications/initializedpingtools/listtools/call
Tool listing
- клиент вызывает
tools/list; mcp-serverизвлекаетworkspace_slugиagent_slugиз path;- перечитывает published agent по refresh policy;
- строит или обновляет in-memory catalog tools только для этого agent;
- отдает список tools через MCP JSON-RPC result.
Tool call
- клиент вызывает tool;
mcp-serverопределяетworkspaceиagent;- находит binding нужной operation внутри published agent;
- валидирует input относительно schema;
- делегирует вызов в
crank-runtime; - возвращает результат.
9. Обновление tools
После публикации новой operation version или agent version:
admin-apiфиксирует published version в registry;registryобновляет published operations или published agents;mcp-serverне требует restart;- выполняется controlled refresh опубликованного каталога;
- новый tool contract становится доступен MCP clients.
10. Именование tools
Рекомендуется использовать стабильные tool names:
crm_create_leaduser_get_profileinventory_list_items
Требования:
- имя уникально в пределах одного agent;
- имя не зависит от numeric version;
- один и тот же operation может публиковаться под разными именами в разных agents.
11. Ошибки MCP слоя
На MCP слое нужно различать:
- schema validation error;
- mapping error;
- adapter execution error;
- external service error;
- internal runtime error.
12. Практический итог
mcp-server- отдельный сервис;- transport -
Streamable HTTP; - endpoint определяется парой
workspace + agent; - одна published operation = один MCP tool внутри agent;
- reload published tools без пересборки сервиса;
- никакой draft-логики или admin CRUD в MCP слое.