Skip to main content
Glama

get_architecture

Read-onlyIdempotent

Retrieve a project's static architecture and poll pending indexing jobs; inspect languages, packages, dependencies, routes, entry points, layers, cycles, and hotspots.

Instructions

Bounded static architecture; poll pending jobs. include_behavior_evidence=true adds indexed call arguments, parameter declarations and return types; not full dataflow or runtime traces.

Input Schema

NameRequiredDescriptionDefault
pathNoDirectory prefix.
formatNotree
aspectsNoDefault: languages/packages/entry_points. overview omits file_tree. cycles/system_structure opt-in; system_structure alone, no path.
projectYes
entry_node_idNoStart symbol.
target_node_idNoRequires entry_node_id.
expected_generationNoRequired generation.
include_behavior_evidenceNosystem_structure only.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv0.12.1
    • changedInput schema / properties / aspects / description
      Previous value: -"all=everything; overview=compact except file_tree; omitted=languages/packages/entry_points; cycles is opt-in."New value: +"Default: languages/packages/entry_points. overview omits file_tree. cycles/system_structure opt-in; system_structure alone, no path."
    • changedInput schema / properties / aspects / items / enum
      Previous value: -[
      -  "all",
      -  "overview",
      -  "structure",
      -  "dependencies",
      -  "routes",
      -  "languages",
      -  "packages",
      -  "entry_points",
      -  "hotspots",
      -  "boundaries",
      -  "layers",
      -  "file_tree",
      -  "clusters",
      -  "cycles"
      -]New value: +[
      +  "all",
      +  "overview",
      +  "structure",
      +  "dependencies",
      +  "routes",
      +  "languages",
      +  "packages",
      +  "entry_points",
      +  "hotspots",
      +  "boundaries",
      +  "layers",
      +  "file_tree",
      +  "clusters",
      +  "cycles",
      +  "system_structure"
      +]
    • addedInput schema / properties / entry_node_id
      Added value: +{
      +  "description": "Start symbol.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / expected_generation
      Added value: +{
      +  "description": "Required generation.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / include_behavior_evidence
      Added value: +{
      +  "default": false,
      +  "description": "system_structure only.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / path / description
      Previous value: -"Directory prefix (for example apps/hoa)."New value: +"Directory prefix."
    • addedInput schema / properties / target_node_id
      Added value: +{
      +  "description": "Requires entry_node_id.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
  2. Changed3 schema fields changedv0.11.0
    • changedInput schema / properties / aspects / description
      Previous value: -"Aspects to include. 'all' = everything; 'overview' = compact summary (all except file_tree); omit = all. 'cycles' is opt-in ONLY (never via all/overview): it scans the whole call graph for circular CALLS dependencies (SCCs of size > 1)."New value: +"all=everything; overview=compact except file_tree; omitted=languages/packages/entry_points; cycles is opt-in."
    • addedInput schema / properties / format
      Added value: +{
      +  "default": "tree",
      +  "enum": [
      +    "tree",
      +    "json"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / path / description
      Previous value: -"Optional directory prefix to scope architecture (e.g. apps/hoa)"New value: +"Directory prefix (for example apps/hoa)."
  3. Changed1 schema field changedv0.10.4
    • changedOutput schema / (root)
      Previous value: -{
      -  "additionalProperties": true,
      -  "type": "object"
      -}New value: +null
  4. Changed2 schema fields changedv0.10.0
    • changedInput schema / properties / aspects / description
      Previous value: -"Aspects to include. 'all' = everything; 'overview' = compact summary (all except file_tree); omit = all."New value: +"Aspects to include. 'all' = everything; 'overview' = compact summary (all except file_tree); omit = all. 'cycles' is opt-in ONLY (never via all/overview): it scans the whole call graph for circular CALLS dependencies (SCCs of size > 1)."
    • changedInput schema / properties / aspects / items / enum
      Previous value: -[
      -  "all",
      -  "overview",
      -  "structure",
      -  "dependencies",
      -  "routes",
      -  "languages",
      -  "packages",
      -  "entry_points",
      -  "hotspots",
      -  "boundaries",
      -  "layers",
      -  "file_tree",
      -  "clusters"
      -]New value: +[
      +  "all",
      +  "overview",
      +  "structure",
      +  "dependencies",
      +  "routes",
      +  "languages",
      +  "packages",
      +  "entry_points",
      +  "hotspots",
      +  "boundaries",
      +  "layers",
      +  "file_tree",
      +  "clusters",
      +  "cycles"
      +]
  5. Changed4 schema fields changedv0.9.0
    • addedInput schema / properties / aspects / description
      Added value: +"Aspects to include. 'all' = everything; 'overview' = compact summary (all except file_tree); omit = all."
    • addedInput schema / properties / aspects / items / enum
      Added value: +[
      +  "all",
      +  "overview",
      +  "structure",
      +  "dependencies",
      +  "routes",
      +  "languages",
      +  "packages",
      +  "entry_points",
      +  "hotspots",
      +  "boundaries",
      +  "layers",
      +  "file_tree",
      +  "clusters"
      +]
    • addedInput schema / properties / path
      Added value: +{
      +  "description": "Optional directory prefix to scope architecture (e.g. apps/hoa)",
      +  "type": "string"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "type": "object"
      +}
  6. First observedv1.0.0

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only/idempotent/non-destructive, so the bar is lower, and the description adds two things annotations cannot: that results are bounded/static rather than full dataflow or runtime traces, and that jobs may be pending and require polling. The polling hint is a material async behavior not derivable from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Roughly 30 words, front-loaded with the core scope statement and then the key parameter behavior. It is telegraphic to the point of terseness, but no sentence is wasted and the most important constraint leads.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, no output schema, and no explanation of entry_node_id, target_node_id, expected_generation, or the return format, the description leaves the agent to reconstruct invocation details from the schema alone. It compensates only partially, covering include_behavior_evidence but neglecting the async/generation mechanics implied by "poll pending jobs" and expected_generation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, and the description goes beyond it by explaining what include_behavior_evidence actually adds (indexed call arguments, parameter declarations, return types) and what it excludes (full dataflow, runtime traces) — the schema only says "system_structure only." That is real added meaning for at least one key parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool returns a "bounded static architecture," which conveys the resource and distinguishes it from runtime-trace tools, but the verb is implied rather than explicit and "bounded" is jargon. It does not differentiate itself from obvious siblings like query_graph, get_graph_schema, or get_file_outline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no named alternative among the many siblings that could serve similar queries. The only routing signal is a negative scope note ("not full dataflow or runtime traces"), which excludes some cases but never says when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.