目录 / viaduct-mcp
MCP
需 API Key
未评级
已上架
viaduct-mcp
MCP for C4 diagraming tool Viaduct
该来源不提供完整文件导出(国内平台多为平台内托管),仅存元数据与原链
接入信息
- 传输形态
- http
- 鉴权方式
- 需 API Key(需要配置:apiToken)
- 端点
https://viaduct-mcp--quietgridlabs.run.tools
该服务需要凭证,请按官方文档申请后替换占位符
{
"mcpServers": {
"viaduct-mcp": {
"headers": {
"Authorization": "Bearer \u003cYOUR_KEY\u003e"
},
"url": "https://viaduct-mcp--quietgridlabs.run.tools"
}
}
}
能力清单
| 工具 | 说明 |
|---|---|
| c4_whoami | Verify C4 API auth and return the current user. |
| c4_list_projects | List Viaduct projects accessible to the authenticated user (includes access role). |
| c4_project_access | Check access for a project. Write tools require canEdit=true (owner or edit share). |
| c4_project_context | Get LLM-ready markdown context for a project: systems, containers/services, components/endpoints (incl. request/response/headers), attached documentation and sequence diagrams. |
| c4_get_element | Get one C4 element (system/container/component/code) with docs and sequences. |
| c4_list_docs | List documentation files for a project (optionally filtered by owner). |
| c4_get_doc | Get a single documentation file by id (searches project docs list). |
| c4_list_sequences | List sequence diagrams attached to containers/components in a project. |
| c4_get_sequence | Get one sequence diagram (PlantUML) by id. |
| c4_list_data_flows | List project-level Magic flows with step outlines (from→to, endpoints, connections, parallelGroupId, branchKind). Use this before creating a flow so you update an existing journey instead of duplicating it. |
| c4_get_data_flow | Get one Magic flow with resolved participant names, steps, endpoints, connections, and optional parallelGroupId / branchKind. |
| c4_search | Search systems/containers/components/code/Magic flows (names, descriptions, endpoints, sequences) in a project. |
| c4_list_change_sets | List implementation change sets for a project: the pieces of work an architect has specified, each pinned to a named architecture revision. |
| c4_get_implementation_bundle | Everything needed to implement ONE change set, and nothing else: the intent, the architecture constraints, the acceptance criteria with stable ids, and only the in-scope elements, their contracts, the connections crossing the boundary, the flows that pass through, and the attached docs. Read this INSTEAD of c4_project_context when implementing. It is scoped to the work and read from a pinned revision, so it stays fixed while you work; c4_project_context returns the whole project and drifts as others edit it. Write a test for every acceptance criterion and put its id in the test name, e.g. it('[ac_19eedf3f7128] returns 201 ...'). That id is how the criterion is later matched to evidence that it holds. |
| c4_create_element | Create a C4 element (system/container/component/endpoint/channel/code). Idempotent by name within parent. For ER tables under a DB container pass columns[]. A broker topic or queue is kind='channel' under its broker container — name it after the topic and give it protocol, schemaFormat and the keySchema / valueSchema / headersSchema contracts instead of the endpoint's method / request / response. Requires edit access. |
| c4_update_element | Patch fields on an existing C4 element. Pass columns[] to set ER table schema, or the channel fields (protocol / schemaFormat / keySchema / valueSchema / headersSchema / compatibility) to edit a broker topic's contract. Requires edit access. |
| c4_delete_element | Delete a C4 element. Fails if it has children unless cascade=true. Requires edit access. |
| c4_upsert_connection | Create or update a connection from sourceId → targetId on the source element. For an edge to a broker, channelRole says which way the source is using it — produce or consume; a service doing both needs one connection per direction. Requires edit access. |
| c4_delete_connection | Delete a connection sourceId → targetId. Requires edit access. |
| c4_upsert_doc | Create or update markdown documentation on an element and attach it to the entity (documentationId / documentations) so the canvas docs badge appears. Pass docId to update; omit to create. Requires edit access. |
| c4_delete_doc | Delete a documentation file. Requires edit access. |
| c4_upsert_sequence | Create or update a PlantUML sequence diagram on a container or component. Requires edit access. |
| c4_delete_sequence | Delete a sequence diagram by id. Requires edit access. |
| c4_upsert_data_flow | Create or update a project-level Magic flow (from→to steps). Consecutive steps sharing parallelGroupId play as one stage: branchKind parallel = async/fan-out (AND), alternative = exclusive choice (OR). Pass flowId to update; omit to create (idempotent by name). Omitted fields on update are preserved. For a single hop prefer c4_upsert_data_flow_step. Optional documentationIds / sequenceIds attach existing docs and PlantUML diagrams. Requires edit access. |
| c4_delete_data_flow | Delete a Magic flow by id. Requires edit access. |
| c4_upsert_data_flow_step | Add or patch one hop on a Magic flow. Pass stepId to update (omitted fields are preserved). Omit stepId to append (from_ + to required). index is 0-based insert/move. Requires edit access. |
| c4_delete_data_flow_step | Delete one hop from a Magic flow. Requires edit access. |
| c4_report_progress | Report what you just finished on a change set. Call this after each meaningful piece of work, not once at the end. Pass `criterionId` (an `ac_...` id from the implementation bundle) when the work proves that acceptance criterion — the criterion is then marked done and your entry becomes the evidence for it. Put the commit sha, PR url or test name in `ref`. Omit `criterionId` for general progress. The change set moves to `implementing` on the first report by itself; you do not need to set that. |
| c4_set_change_set_status | Move a change set to `ready`, `implementing` or `done`. Reporting progress already flips it to `implementing`, so in practice you call this to mark `done` once every acceptance criterion has evidence. |
纠错与举报(发现条目失效、署名有误或涉及侵权?)
提交举报 / 纠错
侵权举报经核验成立后,我们会即时下线该条目并删除已存的内容副本。