Skip to content

get_architecture does not return architecture aspects described in README (only histograms / schema) #280

Closed

Description

@OliverEvans96

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

  1. Index any (sufficiently large) repository.
  2. Call get_architecture via JSON-RPC with only { "project": "name" } or any combination of aspects.
  3. 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.

Activity

  1. filhocf commented on May 3, 2026

    @filhocf

    Confirmed on v0.5.5 (Linux amd64).

    get_architecture returns 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):

    • Package/module hierarchy
    • Service boundaries
    • Dependency graph between modules
    • Entry points
    • Configuration files

    The aspects parameter 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.

  2. added
    bugSomething isn't working
    ux/behaviorDisplay bugs, docs, adoption UX
    on May 4, 2026
  3. added a commit that references this issue on May 9, 2026
    ca5e309
  4. added a commit that references this issue on May 20, 2026
    073ee68
  5. added a commit that references this issue on May 23, 2026
    b532e89
  6. added a commit that references this issue on May 29, 2026
    96b49aa
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingux/behaviorDisplay bugs, docs, adoption UX

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions