survos/mcp-bundle
Composer 安装命令:
composer require survos/mcp-bundle
包简介
Exposes a Survos app to AI coding agents as MCP tools (via symfony/ai-mate). Tools are thin wrappers over existing console exports (meta:export, atlas:export, dataset:*), giving agents a queryable view of the app's declared metadata graph and its dataset workflows.
README 文档
README
Exposes a Survos application to AI coding agents as MCP tools, via symfony/ai-mate.
The goal: when an agent is asked to "design a dashboard for a tenant" or
"show me how to display this entity's fields", it can query the app's declared
metadata (field-bundle #[Field] / #[RouteMeta] / #[RouteIdentity], atlas's
route/entity graph) instead of guessing from variable names — and it can drive
dataset workflows (dataset:head, import:convert) by intent.
Status: repurposed scaffold (2026-06). This bundle previously held an experimental MCP client (JSON-RPC over Symfony HttpClient). That code was removed: the official
mcp/sdkMcp\Clientfully supersedes it (typed results, cursor pagination, progress callbacks, HTTP and stdio transports, and it accepts a PSR-18 client — so you can still pass Symfony'sPsr18Client). The bundle now goes the other direction: it provides tools to an agent. See PLAN.md for the full design and build steps.
Architecture
- Transport = ai-mate. This bundle declares
extra.ai-mate.scan-dirs: ["src/Mcp"]and ships#[McpTool]classes (Mcp\Capability\Attribute\McpTool, frommcp/sdk). - Tools wrap existing exports — they don't reinvent them.
meta:export(field-bundle) andatlas:export(atlas-bundle) already emit the metadata graph; the dataset commands already exist. MCP tools call them. - Why wrappers, not services: ai-mate builds its own standalone container and
never boots the app kernel, so a
#[McpTool]cannot autowire app compile-time services (EntityMetaRegistry,DatasetResolver, …). Each tool therefore runsbin/console <command> --format=jsonviasymfony/processand returns the parsed JSON. The in-app console command is the real engine.
Tools (planned — see PLAN.md)
| Tool | Wraps | Answers |
|---|---|---|
describe_entity |
meta:export --entity --fields |
fields, facets, widgets, URL identity for displaying an entity |
routes_for_entity |
meta:export --entity |
routes by Purpose — "design a dashboard for a tenant" |
find_routes_injecting |
meta + atlas | routes that inject an entity (declared + inferred candidates) |
suggest_pages |
meta:export gaps |
missing routes worth adding |
atlas_attributes / atlas_query |
atlas:export |
the raw attribute/route/entity map |
dataset_head / dataset_list / dataset_convert |
dataset:* / import:convert |
dataset workflows by intent |
survos_command |
any bin/console |
generic long-tail fallback |
Installation
composer require survos/mcp-bundle
Then, in the host app: register the bundle, run vendor/bin/mate discover, and
enable the extension in mate/extensions.php. Verify with
vendor/bin/mate debug:capabilities --format=json.
Requires
PHP 8.4+, Symfony 8.1+. Extends Survos\Kit\AbstractSurvosBundle.
统计信息
- 总下载量: 29
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 12
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-09-15