Repository navigation
Closed
Labels
bugSomething isn't workingSomething isn't workingux/behaviorDisplay bugs, docs, adoption UXDisplay bugs, docs, adoption UX
Description
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.mdand published documentation,get_architectureis 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...), thehandle_get_architecturefunction 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(beyondrelationship_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_architectureand 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_architecturevia JSON-RPC with only{ "project": "name" }or any combination ofaspects. - Observe that only label/type histograms are returned, not the additional architecture sections described in the README.
Suggested resolution
- Update
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. - Or: if architectural extraction is not intended to be available, clearly update the README and docs to match the much more restricted result set.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingux/behaviorDisplay bugs, docs, adoption UXDisplay bugs, docs, adoption UX
Activity
filhocf commentedon May 3, 2026
Confirmed on v0.5.5 (Linux amd64).
get_architecturereturns only node label counts and edge type counts:{ "node_labels": [{"label": "Section", "count": 481}, {"label": "File", "count": 64}, ...], "edge_types": [{"type": "DEFINES", "count": 656}, {"type": "CONTAINS_FILE", "count": 64}, ...] }Missing from the response (as described in README):
The
aspectsparameter also seems to have no effect — passing["packages", "services", "dependencies"]returns the same histogram output.Tested on a Python+TypeScript project with 750 nodes, 817 edges.
fix(mcp): wire cbm_store_get_architecture into handle_get_architecture (
fix(mcp): wire cbm_store_get_architecture into handle_get_architecture (
fix(mcp): wire cbm_store_get_architecture into handle_get_architecture (
fix(mcp): wire cbm_store_get_architecture into handle_get_architectur…