Summary
The get_architecture MCP tool does not return the rich architecture sections promised in the README (languages, packages, entry points, routes, hotspots, boundaries, layers, clusters). Instead, it only returns histograms: node_labels, edge_types, and (sometimes) relationship_patterns, along with project, total_nodes, and total_edges.
Details and Evidence
- According to
README.md and published documentation, get_architecture is supposed to return an “architecture overview” – with languages, packages, entry points, routes, hotspots, boundaries, layers, clusters, etc.
- In the current implementation (as of v0.6.0, commit
bebc6d8...), the handle_get_architecture function does not call the actual architecture computation layer (cbm_store_get_architecture).
- Instead, the only conditionally emitted outputs (contingent on
aspects) are:
node_labels (when requesting aspect "structure")
edge_types (when requesting aspect "dependencies")
relationship_patterns (when requesting aspect "routes", and only if available)
- No other architecture fields/sections are present, regardless of what’s passed in
aspects (including "all").
- There is never a top-level field or sub-object for
languages, packages, entry_points, routes (beyond relationship_patterns), hotspots, boundaries, layers, clusters, or anything more structured than these label/type histograms.
- The underlying repo’s store and data model do have support for these richer outputs (
cbm_store_get_architecture, cbm_architecture_info_t, etc.), but the MCP handler does not use or expose them. This is not just a documentation error—the implementation simply does not serialize those fields in its responses.
Impact
- Cursor, the CLI, and all clients receive only histogram summaries. There is no way to get e.g. a package or dependency list, route summaries, cluster/layer outputs, or cross-package boundaries via the public API.
- This makes much of the README’s description for
get_architecture and most “architecture-aware” integrations misleading or broken.
Example
A typical get_architecture response (as of v0.6.0):
{
"project": "demo",
"total_nodes": 550,
"total_edges": 2140,
"node_labels": [ ... label histogram ... ],
"edge_types": [ ... type histogram ... ]
}
- There are never block sections for languages/packages/routes/etc.
- aspect blocks or
aspects: ['all'] do not change or expand the available sections.
Steps to reproduce
- Index any (sufficiently large) repository.
- Call
get_architecture via JSON-RPC with only { "project": "name" } or any combination of aspects.
- Observe that only label/type histograms are returned, not the additional architecture sections described in the README.
Suggested resolution
- Update
handle_get_architecture in src/mcp/mcp.c to actually call cbm_store_get_architecture(...) and serialize all available aspects/sections (languages, packages, entry_points, etc.) in the returned JSON, matching README coverage.
- Or: if architectural extraction is not intended to be available, clearly update the README and docs to match the much more restricted result set.
Summary
The
get_architectureMCP tool does not return the rich architecture sections promised in the README (languages, packages, entry points, routes, hotspots, boundaries, layers, clusters). Instead, it only returns histograms:node_labels,edge_types, and (sometimes)relationship_patterns, along withproject,total_nodes, andtotal_edges.Details and Evidence
README.mdand published documentation,get_architectureis supposed to return an “architecture overview” – with languages, packages, entry points, routes, hotspots, boundaries, layers, clusters, etc.bebc6d8...), thehandle_get_architecturefunction does not call the actual architecture computation layer (cbm_store_get_architecture).aspects) are:node_labels(when requesting aspect"structure")edge_types(when requesting aspect"dependencies")relationship_patterns(when requesting aspect"routes", and only if available)aspects(including"all").languages,packages,entry_points,routes(beyondrelationship_patterns),hotspots,boundaries,layers,clusters, or anything more structured than these label/type histograms.cbm_store_get_architecture,cbm_architecture_info_t, etc.), but the MCP handler does not use or expose them. This is not just a documentation error—the implementation simply does not serialize those fields in its responses.Impact
get_architectureand most “architecture-aware” integrations misleading or broken.Example
A typical
get_architectureresponse (as of v0.6.0):{ "project": "demo", "total_nodes": 550, "total_edges": 2140, "node_labels": [ ... label histogram ... ], "edge_types": [ ... type histogram ... ] }aspects: ['all']do not change or expand the available sections.Steps to reproduce
get_architecturevia JSON-RPC with only{ "project": "name" }or any combination ofaspects.Suggested resolution
handle_get_architectureinsrc/mcp/mcp.cto actually callcbm_store_get_architecture(...)and serialize all available aspects/sections (languages, packages, entry_points, etc.) in the returned JSON, matching README coverage.