Skip to main content
Glama
ArcherLin13

cpp-coro-graph

by ArcherLin13

ccg_query

Search C++ symbols, coroutines, classes, declarations, or files by name, qualified name, or path fragment; filter by kind, namespace, or path prefix to navigate a coroutine-aware code graph.

Instructions

Search symbols or file nodes by name/qname/path fragment. Use kind=file for files; namespace= for C++ namespace filter (exact or nested prefix). Empty query + namespace lists that module.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNoFilter by node kind. MUST be one of: function | coroutine | declaration | class | file
limitNo
queryNoSymbol/file fragment (e.g. 'run_net', 'pipeline.hpp', 'file:src/foo.cpp'). May be empty when namespace is set.
namespaceNoC++ namespace filter (exact or prefix). Example: 'airaw::aigc' matches that ns and nested.
path_prefixNoOnly nodes whose file_path starts with this prefix

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden. It never states this is a read-only lookup, says nothing about the default limit of 30 or result truncation/pagination, and does not describe result shape; only the empty-query-plus-namespace listing behavior is disclosed.

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?

Three compact clauses with the core purpose front-loaded and no filler. The final claim about an empty query plus namespace listing 'that module' is slightly terse, but overall it is tightly written.

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?

For a 5-parameter search tool with no annotations and no output schema, the description covers querying and filtering adequately. It is silent on the default limit, result caps, and ordering, which an agent needs to use the tool predictably.

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

Parameters3/5

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

Schema description coverage is 80%, so the schema already documents kind, query, namespace, and path_prefix. The description reinforces kind=file and the exact/nested namespace semantics but adds no format detail beyond the schema, which merits the baseline 3.

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

Purpose4/5

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

States a specific verb (search) and resource (symbols or file nodes) plus the matching basis (name/qname/path fragment). Clear on its own, but it never distinguishes itself from sibling graph tools like ccg_node, ccg_explore, or ccg_path.

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

Usage Guidelines3/5

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

Gives useful conditional guidance ('Use kind=file for files', 'Empty query + namespace lists that module'), which implies how to drive it. It stops short of saying when to pick this over ccg_node or ccg_explore, so usage is inferred rather than stated.

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