corbel
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool has a clearly distinct purpose: find searches by name to discover symbols, get_symbol returns a single symbol's definition plus its direct callers/callees, and impact walks the transitive reverse call graph for blast-radius analysis. The overlap between get_symbol's caller list and impact's multi-hop traversal is explicitly separated by depth, so an agent should not confuse them.
Naming Consistency3/5The names are all short, lowercase, and readable, but they do not follow a single consistent pattern: get_symbol uses verb_noun, find is a bare verb, and impact is a bare noun. This is not chaotic, but an agent cannot predict the operation style from the naming convention alone.
Tool Count4/5Three tools is on the lean side for a code-intelligence server, but each tool earns its place: discovery, single-symbol resolution, and transitive impact analysis are the core operations for the stated purpose. The count feels slightly minimal rather than bloated or trivial.
Completeness4/5The tool surface covers the main workflow for symbol navigation and refactoring: find a symbol, inspect its definition and direct relationships, then trace its wider impact. Minor gaps exist—such as no file-scoped symbol listing or index status/refresh tool—but agents can work around these with the provided tools.
Average 4.7/5 across 3 of 3 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 79 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
This repository includes a glama.json configuration file.
This server has been verified by its author.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that results are grounded in resolved call relationships, includes depth and resolution semantics, mentions truncation via truncated/truncated_count, and states that results reflect the last corbel index run. This is rich, non-obvious behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average but every sentence adds substantive value, including use case, output field meanings, truncation behavior, and index freshness. It is front-loaded with the core purpose; minor redundancy exists around the comparison to text search, but it is not excessive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a multi-hop reverse-call-graph traversal, no output schema, and no annotations, the description is exceptionally complete. It explains what the tool returns, how results are resolved, when truncation occurs, and what data source backs the analysis, leaving few operational ambiguities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline of 3 applies. The description reinforces that 'name' is the starting symbol and explains why 'file' matters for disambiguation, but it does not add new parameter-level meaning beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete verb and resource: 'Trace the blast radius of changing a symbol' by walking the reverse call graph across multiple hops. It clearly distinguishes itself from a shallow text search and from single-hop 'find references' tools, so an agent can tell it apart from siblings like find and get_symbol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Use this tool before refactoring' and gives concrete scenarios such as changing a function's signature or behavior. It also warns against using a text search or single-hop find references for this purpose, which provides clear when-not-to-use guidance relative to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does so thoroughly. It discloses that the index is built ahead of time by `corbel index` and may be stale, that `resolution` reflects index-wide lookup rather than text matching, explains the difference between `scoped` and `global-unique`, and details truncation behavior (`truncated`, `truncated_count`) and token-budget allocation. This is a very transparent description of behavior and limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then scaffolds into disambiguation, truncation, budget, and staleness, which is logical. It is longer than average, but every sentence earns its place given there are no annotations and no output schema. A small deduction because the budget explanation is somewhat wordy and could be tightened without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and no annotations, the description is highly complete: it names the return components (definition, callers, callees, `resolation`), explains how disambiguation works, covers truncation and budget behavior, and notes index staleness. An agent has enough context to invoke the tool correctly and interpret its results without further lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds substantial meaning beyond the schema. It explains that `file` narrows the lookup, that `line` requires `file` and is for overloaded declarations, and it provides a detailed account of how `token_budgets` is divided across matches and then between callers and callees. This goes well beyond the parameter descriptions in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Look up a single symbol by name in the local corbel index and return where it is defined (file, line, signature), everything that calls it (callers), and everything it calls (callees).' It clearly distinguishes itself from grep/text search and implies a difference from sibling `find` by noting the exact name/file/line triple needed to pin down one match. This is more than adequate for an agent to understand what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains explicit usage guidance: 'Use this tool when you need to jump to a function's or type's definition, inspect its signature, or see who calls it and what it calls, before editing it.' It also advises passing `line` when a name is ambiguous and references the `find` tool's output as a source for the disambiguation triple. It stops short of explicitly stating when NOT to use this tool versus `find` or `impact`, so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it delivers: it discloses substring matching, ASCII-only case folding, the ranking scheme, stable ordering, truncation behavior with truncated/truncated_count, and the fact that results depend on the last corbel index run. This is unusually transparent behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence carries useful information that is not derivable from the schema or annotations. It is front-loaded with the core purpose and differentiator before diving into ranking and truncation details. It could be tightened slightly, but the density justifies the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and no annotations, the description is remarkably complete: it specifies the match fields (name, file, line) and how they map to get_symbol's needs, explains truncation flags, covers index freshness, and clarifies what the tool does not return. An agent has enough context to invoke it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the input schema already covers all three parameters (100% coverage), the description adds substantial meaning beyond it: the hard maximum of 200 for limit, rejection behavior above it, the built-in defaults, how token_budget constrains the response, and how query matching and ranking actually behave. This exceeds the baseline 3 for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search'), a specific resource ('the local corbel index'), and a precise condition ('for when you don't know the exact symbol name to pass to get_symbol'). It clearly distinguishes itself from siblings by naming get_symbol and impact and explaining what this tool does not do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use the tool ('when you don't know the exact symbol name'), and explicitly defines when not to use it: 'This tool does not resolve or return call relationships — use get_symbol or impact on a specific match for that.' This gives an agent direct routing guidance against sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/BETAER-08/corbel'
If you have feedback or need assistance with the MCP directory API, please join our Discord server