WLADY_CODE MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@WLADY_CODE MCPwhere is the authenticate function defined?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
WLADY_CODE MCP
Advanced codebase intelligence for AI assistants
π English Β· EspaΓ±ol
An MCP server that turns any codebase into a queryable knowledge graph β and renders it as an interactive galaxy.
What is it?
WLADY_CODE indexes your project, builds a dependency graph, and exposes 27 MCP tools that any compatible AI assistant (Claude, Cursor, etc.) can call to navigate, analyze, and reason about code with surgical precision.
It also spins up a local 3D galaxy visualization at http://localhost:9750 where every file is a star and every dependency is a luminous nebula edge.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β WLADY_CODE MCP β
β β
β ββββββββββββββββββββ ββββββββββββββββββ ββββββββββββββββββ β
β β Indexer ββββΆβ SQLite DB βββββ 27 MCP Tools β β
β β Tree-sitter AST β β ~/.wlady-code β β β β
β β + regex fallback β β -mcp/ β β navigation β β
β ββββββββββββββββββββ β wlady.db β β impact β β
β ββββββββ¬ββββββββββ β analysis β β
β ββββββββββββββββββββββββββββ β β architecture β β
β β Galaxy UI Β· :9750 β β β search + RRF β β
β ββββββββββββββββββββββββββββ β β tracing Β· adr β β
β β ββββββββββββββββββ β
β βββββββββββββββββββββββββββββββ΄βββββββββββ β
β β Embeddings Β· snowflake-arctic-embed β β
β β BM25 + vector β RRF hybrid search β β
β ββββββββββββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββRelated MCP server: Orihime
Why use it?
Question you ask the AI | Tool that answers it |
"Where is function |
|
"If I change this function, what breaks?" |
|
"What will this PR affect in production?" |
|
"Are there dead code, god classes, or circular deps?" |
|
"How is this monorepo layered?" |
|
"What's the call path between module A and B?" |
|
"Find code that does something similar to X" |
|
"Trace the execution flow from main" |
|
"Show me all modules visually" | Galaxy UI at :9750 |
Features
Galaxy Visualization
The built-in web UI uses a stellar spectral color system β files are colored like real stars based on their connectivity:
Color | Spectral type | Meaning |
Blue-white | O / B | Highly connected hubs β the system's core |
White-yellow | A / F | Medium connectivity |
Amber | G / K | Supporting files |
Red | M | Leaf files β minimal dependencies |
Edges use Canvas 2D additive blending (globalCompositeOperation: 'lighter'), making dense dependency clusters glow brighter β the same effect as Three.js AdditiveBlending. Where many imports converge, a nebula appears.
Side panel β 3 tabs:
Tab | Contents |
Files | Collapsible file tree with live search. Click any file to fly to its node. Below the tree, a Symbols section shows all functions and classes in the selected file with their line numbers. |
Filters | Language chips to show/dim nodes by language. Hop-depth filter (1 / 2 / 3) to focus the graph on the neighbourhood of the selected node using BFS with caching. |
Modules | Community list, hotspot files (highest fan-in), and auto-detected entry points (main functions, controllers, routers, index files). |
Controls:
Action | Effect |
Drag | Rotate the graph |
Scroll wheel | Zoom |
Click node | Select + highlight its direct connections |
Double-click node | Open source code with syntax highlighting |
Click symbol in panel | Jump to that function/class in the code panel |
Click community | Highlight all files in that module |
Double-click empty space | Resume auto-rotation |
| Close code panel |
The code panel displays line numbers, highlights the exact line range of the selected symbol, auto-scrolls to it, and uses Prism.js syntax highlighting with explicit grammar loading for 18+ languages. Includes an "Open in VS Code" button via the vscode://file/ protocol.
AST Parser β Tree-sitter
Symbol extraction is powered by Tree-sitter, providing a full AST-based parse for 11 languages with automatic fallback to the regex heuristic parser when a grammar isn't available.
Language | Parser |
JavaScript, TypeScript, TSX | Tree-sitter |
Python, Java, Go, Rust | Tree-sitter |
C#, C++, PHP, Ruby | Tree-sitter |
All other supported languages | Regex fallback |
Semantic Embeddings & Hybrid Search
search_graph supports a hybrid BM25 + vector search mode that finds semantically similar code even when it doesn't share keywords with the query.
How it works:
Each symbol is embedded with
snowflake-arctic-embed-xs(22M params, 384 dims, ~90 MB, runs fully locally via ONNX Runtime)At query time: BM25 ranks + cosine similarity ranks are fused via Reciprocal Rank Fusion (RRF)
Results surface symbols semantically related to the query β not just lexically matching ones
Enable it per project at index time:
index_repository(path: "/my/project", embeddings: true)Then search:
search_graph(project_id: "...", query: "authentication token validation", semantic: true)Embeddings are incremental β only new/modified symbols are re-embedded on subsequent runs.
Execution Flow Tracing
Automatically detect and visualize how your application executes from its entry points.
list_entry_points(project_id: "...")execution_flow(project_id: "...", entry_point: "main", depth: 5)Entry points are detected by: role classification, name patterns (main, handler, router, start, β¦), file conventions (index.ts, app.ts, server.ts, β¦), and HTTP route registration patterns.
The call tree is rendered depth-first with cycle detection (β© marker) and file:line references at each node.
Docker Support
Run WLADY_CODE in any environment without a local Node.js install:
# Build and start
WORKSPACE_PATH=/path/to/your/repo docker compose up
# Galaxy UI opens at http://localhost:9750Or with plain Docker:
docker build -t wlady-code-mcp .
docker run -i --rm \
-p 9750:9750 \
-v wlady-db:/root/.wlady-code-mcp \
-v /path/to/repo:/workspace:ro \
wlady-code-mcpMCP Tools Reference
Tool | Description |
| Index a full project or update incrementally. Pass |
| List all indexed projects |
| Remove a project from the index |
| Detect files modified since last index |
Tool | Description |
| Find where a symbol is defined |
| Full symbol context: definition, callers, callees |
| Shortest call path between two symbols |
| All paths upstream/downstream from a symbol |
| Module map and project structure |
Tool | Description |
| Grep-like text search across all source files |
| BM25 symbol search. Pass |
| Direct graph query with filters (kind, role, complexity, file pattern) |
| Short summary of a file or module |
Tool | Description |
| Trace the call tree from an entry point (or auto-detect). Depth-limited BFS with cycle detection. |
| Detect likely entry points: main functions, HTTP handlers, controllers, routers |
Tool | Description |
| All callers affected by modifying a function |
| Current git diff β affected symbols |
| Symbol-level comparison between two branches |
Tool | Description |
| Full audit: dead code, god files, high complexity, circular deps |
| Cyclomatic + cognitive complexity report per symbol |
| Classify symbols by role (entry / core / utility / adapter / dead / leaf) |
| Community/cluster detection in the graph |
Tool | Description |
| High-level view: layers, modules, graph stats |
| Manage quality rules (complexity thresholds, etc.) |
| Evaluate codebase against manifesto rules (PASS / WARN / FAIL) |
Tool | Description |
| List all recorded architecture decisions |
| Record a new architecture decision |
| Update the status of an existing decision |
Supported Languages
TypeScript Β· JavaScript Β· Java Β· Kotlin Β· Python Β· Go Β· Rust Β· C Β· C++ Β· C# Β· PHP Β· Ruby Β· Swift Β· Dart Β· HTML Β· CSS/SCSS Β· JSON Β· YAML Β· SQL Β· Bash
Installation
Prerequisites
Node.js 18+
Claude Desktop, Cursor, or any MCP-compatible client
Linux / macOS β better-sqlite3 and tree-sitter compile native bindings on install, so you need build tools:
# Debian / Ubuntu
sudo apt install python3 make g++
# Fedora / RHEL
sudo dnf install python3 make gcc-c++
# Arch
sudo pacman -S python make gcc
# macOS (Xcode CLI tools)
xcode-select --installQuick Start β npx (recommended)
No clone or build step required. Add this to your claude_desktop_config.json:
{
"mcpServers": {
"wlady-code": {
"command": "npx",
"args": ["-y", "wlady-code-mcp"]
}
}
}Or via the Claude Code CLI:
claude mcp add wlady-code -s user -- npx -y wlady-code-mcpnpx downloads and runs the latest published version automatically. No path configuration needed.
Build from Source
Only needed if you want to contribute or run a local development build:
git clone https://github.com/wladimania93/wlady-code-mcp
cd wlady-code-mcp
npm install --legacy-peer-deps # required for tree-sitter grammar compatibility
npm run buildThen register the local build:
claude mcp add wlady-code -s user -- node "/absolute/path/to/wlady-code-mcp/dist/index.js"Or manually in claude_desktop_config.json:
{
"mcpServers": {
"wlady-code": {
"command": "node",
"args": ["/absolute/path/to/wlady-code-mcp/dist/index.js"]
}
}
}Index your first project
Ask your AI assistant:
Index the project at /path/to/my-projectOr call the tool directly:
index_repository(path: "/path/to/my-project", name: "My Project")The galaxy visualization opens automatically at http://localhost:9750.
To enable semantic search:
index_repository(path: "/path/to/my-project", embeddings: true)The first run downloads the snowflake-arctic-embed-xs model (~90 MB) into ~/.wlady-code-mcp/models/ and caches it for all future runs.
Environment variables
Variable | Value | Effect |
| number | Change UI port (default: |
|
| Disable the UI entirely |
Troubleshooting
Node.js 24 β compilation error (tree-sitter)
Symptom: MSBuild exited with code 1 / node-gyp rebuild failed with #error "C++20 or later required." on Windows.
Cause: Some tree-sitter grammar packages (tree-sitter-cpp, tree-sitter-java, tree-sitter-ruby, etc.) ship .gyp build files that force /std:c++17, which conflicts with the C++20 requirement introduced in Node.js 24 (V8).
Fix: Use Node.js 22 LTS until the upstream grammar packages are updated.
# with nvm (recommended)
nvm install 22
nvm use 22
# verify
node -v # should print v22.x.xNode 24 is explicitly blocked in engines (<24.0.0) so npx and npm will warn you if your version is unsupported.
Peer dependency conflicts (ERESOLVE)
Symptom: npm ERR! ERESOLVE overriding peer dependency during install.
Cause: Some grammar packages declare peer requirements for older tree-sitter minor versions (e.g. ^0.21.x). The project ships a .npmrc with legacy-peer-deps=true to resolve this automatically. If you are cloning and building from source, this file is included.
If you hit the error anyway:
npm install --legacy-peer-depsEBUSY during reinstallation (Windows)
Symptom: npm ERR! EBUSY: resource busy or locked on better-sqlite3.
Cause: A Node.js process (Claude Code, VS Code extension, or the MCP server itself) still holds the native .node DLL open.
Fix: Before running npm install or npm update:
Close VS Code (or any IDE with the MCP extension loaded)
Close Claude Desktop / Claude Code
Kill any running
nodeprocess that may have loaded the MCP
Then retry the install.
Project Structure
wlady-code-mcp/
βββ src/
β βββ index.ts # MCP entry point + UI server bootstrap
β βββ types.ts # Shared types
β βββ db/ # SQLite access layer + schema (incl. embeddings table)
β βββ parser/
β β βββ index.ts # Parser orchestrator (tree-sitter β regex fallback)
β β βββ tree-sitter.ts # AST parser for 11 languages
β β βββ languages.ts # Language configs for regex fallback
β βββ embeddings/
β β βββ embedder.ts # snowflake-arctic-embed-xs singleton, batch embedding
β βββ indexer/ # Index orchestrator + incremental updates + embedding generation
β βββ graph/ # BFS, DFS, shortest path, cycle detection
β βββ search/
β β βββ bm25.ts # BM25 full-text search engine
β β βββ hybrid.ts # RRF: BM25 + vector search fusion
β βββ analysis/
β β βββ complexity.ts # Cyclomatic + cognitive complexity
β β βββ roles.ts # Symbol role classifier
β β βββ entry-points.ts # Entry point detection (name/file/body patterns)
β βββ git/ # Git integration (diff, branch compare)
β βββ tools/ # All 27 MCP tool handlers (one file per category)
β βββ visualization/
β βββ graph-data.ts # SQLite β graph data queries
β βββ server.ts # HTTP server :9750 + /api/file endpoint
β βββ template.ts # Self-contained UI (HTML + CSS + JS, ~34 KB)
βββ Dockerfile # Multi-stage alpine build
βββ docker-compose.yml # Compose with workspace volume + DB persistence
βββ dist/ # Compiled output (run after npm run build)Tech Stack
Layer | Technology |
Runtime | Node.js 18+ Β· ES Modules |
MCP |
|
Database |
|
AST Parsing |
|
Embeddings |
|
Git |
|
File watching |
|
Visualization | Canvas 2D Β· Prism.js |
HTTP server | Node.js built-in |
Container | Docker Β· Alpine Linux |
Inspiration & Credits
WLADY_CODE was built by combining and extending the best of three excellent projects:
codebase-memory-mcp
The visual philosophy: represent a codebase as a galaxy where file importance maps to stellar spectral type, and dependency density creates glowing nebulae via additive color blending. The O/B/A/F/G/K/M spectral color system and the 3D graph architecture are directly inspired by their React + Three.js + Bloom implementation. Our version reimplements it with native Canvas 2D β eliminating build dependencies and serving a fully self-contained UI from the MCP process itself.
ops-codegraph-tool
The analysis philosophy: treat a codebase as a queryable knowledge graph, with specialized tools for navigation (where is X, what calls Y), impact analysis (if I change Z, what breaks), and quality auditing (dead code, complexity, circular dependencies). The modular handler structure by category and the real-time git integration are directly influenced by this project.
GitNexus
The precision philosophy: AST-level parsing with Tree-sitter for accurate symbol extraction across languages, local vector embeddings for semantic code search, and Reciprocal Rank Fusion to combine keyword and semantic rankings into a single high-quality result set. The approach to embedding storage, the RRF fusion algorithm, and the entry-point tracing patterns were designed with GitNexus as a reference for what best-in-class code intelligence looks like.
The synthesis: an MCP that sees code as a graph (codegraph), renders it as a galaxy (codebase-memory), and understands it semantically (GitNexus) β all inside a single server, MIT licensed, with no external services required.
Changelog
v0.3.0
Galaxy UI β major panel overhaul inspired by GitNexus:
Left panel with 3 tabs: Files, Filters, Modules
Collapsible file tree with live search
Symbol list per file (functions/classes with line numbers)
Language filter chips (toggle dimming by language)
Hop-depth BFS filter (1/2/3 hops from selected node, cached)
Modules tab: communities, hotspot files, auto-detected entry points
Status bar showing project name, node count, edge count
Code panel: line numbers, highlighted symbol range, auto-scroll, fixed text color on dark background
New API endpoints:
/api/symbols,/api/entry-points
v0.2.0
Tree-sitter AST parser for 11 languages
Semantic embeddings + hybrid BM25/vector search (RRF)
Execution flow tracing (
execution_flow,list_entry_points)Docker support
27 MCP tools
WLADY_CODE v0.3.0 Β· Built with Node.js Β· Powered by MCP
Available Tools
28 toolsadr_createC
Create a new Architecture Decision Record.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ADR title | |
| status | No | Initial status | proposed |
| context | No | Context and problem statement | |
| decision | No | The decision that was made | |
| project_id | Yes | Project ID | |
| consequences | No | Consequences of the decision |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits but only says 'Create a new ADR.' It does not mention idempotency, authentication needs, side effects, or any safety considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded, but it could be slightly expanded to include usage hints without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 6 parameters and no output schema, the description is severely incomplete. It does not explain the result, potential errors, or any post-creation effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already explains all parameters. The description adds no additional meaning, achieving the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('Architecture Decision Record'), making it distinct from sibling tools like adr_list and adr_update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites mentioned, and no context about required prior steps such as checking existing ADRs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
adr_listC
List Architecture Decision Records (ADRs) for the project.
| Name | Required | Description | Default |
|---|---|---|---|
| number | No | Show specific ADR by number | |
| status | No | Filter by status: proposed, accepted, deprecated, superseded | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Lacking annotations, the description fails to disclose important behavioral traits such as read-only nature, pagination, or response format. 'List' implies reading, but no explicit confirmation or additional details are given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that immediately states the tool's purpose. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
As a list tool without output schema, the description should hint at response structure or default behavior (e.g., 'returns all ADRs for the project'). It lacks this context, making the tool harder to use without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to add parameter details. However, it adds no value beyond the schemaβno explanation of parameter interactions or usage patterns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb (List) and resource (ADRs), but does not mention the ability to filter by status or number, which is supported by the schema. This slight ambiguity lowers the score from 5 to 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings like adr_create or search_code. The description simply states the action without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
adr_updateB
Update an existing Architecture Decision Record.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | New title | |
| number | Yes | ADR number to update | |
| status | No | New status | |
| context | No | Updated context | |
| decision | No | Updated decision | |
| project_id | Yes | Project ID | |
| consequences | No | Updated consequences |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It only says 'Update an existing Architecture Decision Record' without explaining update semantics (partial vs full), error conditions, authentication needs, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (single sentence) but lacks necessary detail. While efficient, it omits critical information for an agent to use the tool correctly. Conciseness alone does not justify a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and no behavioral details, the description is incomplete. It fails to explain return values, error handling, or whether updates are partial. The description needs more context for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond parameter names and schema descriptions; it simply restates the tool's purpose. The schema already describes parameters adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing Architecture Decision Record', specifying the action (update) and the resource (ADR). Among sibling tools like adr_create and adr_list, this distinguishes the tool's purpose effectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., adr_create for new ADRs) or prerequisites (e.g., need the ADR number). The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auditB
Audit the codebase for quality issues: dead code, high complexity, missing coverage, circular deps.
| Name | Required | Description | Default |
|---|---|---|---|
| checks | No | Specific checks to run: dead_code, high_complexity, god_files, circular_deps. Default: all. | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It conveys a read-only analysis purpose but does not disclose whether modifications occur, permission requirements, or performance implications. Basic transparency is present but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, front-loaded with the verb. It is concise and to the point, though slightly more information could be included without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should explain what the tool returns (e.g., a report or list of issues). It only describes checks but not the output format or behavior, leaving agents uninformed about the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters with 100% coverage. The description adds 'missing coverage' as a check type, which does not appear in the schema's list (which includes 'god_files' instead). This discrepancy may mislead agents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'audit' and the resource 'codebase', listing specific quality issues (dead code, high complexity, missing coverage, circular deps). It distinguishes from sibling tools like 'check' or 'complexity' by focusing on a comprehensive audit with multiple check types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for code quality auditing but does not explicitly state when to use this tool over alternatives like 'check', 'complexity', or 'diff_impact'. No guidance on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
branch_compareC
Compare symbols between two git branches to see what changed.
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Base branch name (e.g. main) | |
| head | Yes | Head branch name (e.g. feature/xyz) | |
| project_id | Yes | Project ID | |
| project_path | Yes | Path to the git repository |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose whether the operation is read-only, what happens if branches don't exist, or any side effects. The tool's behavioral traits are under-specified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence and concise, but it is too terse and lacks structure. It could be improved with additional context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description should explain what the tool returns. It does not mention output format, example results, or constraints like ordering or pagination. This is insufficient for a tool with four required parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with all four parameters described. The description adds no extra meaning beyond the schema, which is adequate but not enhanced. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compares symbols between two git branches, which is specific. However, it could be more precise about what 'symbols' means (e.g., functions, classes) and how it differs from sibling tools like diff_impact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like diff_impact or detect_changes. This is a significant gap given the number of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
briefA
Get a brief overview of a file: its symbols, imports, and exports.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | Relative file path | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation by stating 'Get an overview', but it does not explicitly confirm non-destructiveness or disclose performance, prerequisites, or rate limits. Since no annotations are provided, the description largely fulfills transparency but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no wasted words. It immediately conveys the tool's purpose and expected output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no annotations, the description covers the basics. However, without an output schema, the format of 'symbols, imports, and exports' is unspecified, which could hinder the agent's understanding of the response. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers both parameters with descriptions. The description adds meaning beyond the schema by explaining the tool extracts 'symbols, imports, and exports' from the file, giving context to the output. This surpasses the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get a brief overview of a file: its symbols, imports, and exports.' It uses a specific verb ('Get') and resource ('file'), and distinguishes itself from siblings like list_entry_points or search_code by specifying the content of the overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With many similar sibling tools (e.g., context, list_entry_points), the agent receives no clues about preferred use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
checkB
Run manifesto checks against the current codebase state. Returns PASS/WARN/FAIL per rule.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the burden. It discloses that the tool returns PASS/WARN/FAIL per rule, but does not state whether it modifies state, requires specific permissions, or has rate limits. For a read-only check tool, this is acceptable but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys purpose and return type efficiently. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 required param, no output schema), the description covers the basic function and output. However, it does not clarify how 'manifesto checks' relate to the sibling 'manifesto' tool or what constitutes a manifesto rule, leaving some room for ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'project_id' described as 'Project ID'. The tool description adds no further meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Run manifesto checks against the current codebase state' with a specific verb and resource. It differentiates from siblings like 'manifesto' (which may manage the manifesto itself) and 'audit' (likely a different type of check). However, it does not explicitly contrast with closely related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'audit' or 'manifesto'. No conditions, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
communitiesC
Detect code communities/clusters using graph connectivity analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| min_size | No | Minimum community size to show | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only mentions graph connectivity analysis, but fails to disclose behavioral traits such as whether it is read-only, any side effects, or data requirements. Minimal context beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with 9 words. It is front-loaded and concise, with no wasted words. Perfect conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of community detection and many sibling tools, the description is too brief. It lacks explanation of what constitutes a community, expected output, or relationship to other graph tools. With no output schema, more detail is needed for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema; the schema already documents project_id and min_size. No extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool detects code communities/clusters using graph connectivity analysis. The verb 'detect' and resource 'code communities/clusters' are specific, but it does not differentiate from sibling tools that may also perform graph analysis (e.g., query_graph, search_graph).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The usage is implied (for detecting communities), but there is no explicit context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complexityB
Show complexity metrics for symbols in the project, sorted by complexity.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Filter to specific file (relative path) | |
| limit | No | Maximum results | |
| project_id | Yes | Project ID | |
| min_cyclomatic | No | Minimum cyclomatic complexity to show |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It only states it shows metrics sorted by complexity, but does not disclose what metrics (e.g., cyclomatic), whether read-only, or any behavioral traits beyond the bare action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Information is front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, yet description omits what metrics are returned (e.g., cyclomatic complexity). Given the tool's analytical nature, the description lacks essential detail about outputs and parameters like min_cyclomatic. Incomplete for a 4-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds 'sorted by complexity' and 'for symbols', providing context beyond schema but not substantial new meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it shows complexity metrics for symbols, sorted by complexity. The verb 'show' and resource 'complexity metrics for symbols' is specific and distinguishes from siblings like 'check' or 'audit'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied as complexity analysis, but no explicit guidance on when to use versus alternatives like 'check' or 'audit'. No when-not-to-use or exclusion criteria provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contextA
Get the context around a symbol: its definition, callers, callees, and file siblings.
| Name | Required | Description | Default |
|---|---|---|---|
| radius | No | Context radius (default 1) | |
| symbol | Yes | Symbol name to look up | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It discloses that the tool returns definition, callers, callees, and file siblings, which gives a clear picture of the output. However, it does not mention whether the operation is read-only or any potential performance implications, though these are less critical for a context retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently communicates the tool's purpose without any wasted words. It is front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 params, no output schema), the description adequately explains what the tool does and what it returns (definition, callers, callees, file siblings). It does not explain the radius parameter's impact or the output format, but the schema covers parameters. Overall, it is sufficient for an agent to understand the tool's core functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add extra meaning beyond the schema's parameter descriptions. It mentions 'radius' indirectly via 'context' but does not elaborate on how it affects results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'context around a symbol', and lists what that context includes: definition, callers, callees, and file siblings. This distinguishes it from sibling tools like search_code or path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when you need context around a symbol), but it does not explicitly provide guidance on when not to use it or compare it to alternative tools like trace_path or search_code. No negative guidance or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_projectB
Remove a project and all its indexed data from the database.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must bear the full burden. It implies destructive behavior but does not mention irreversibility, cascading effects, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that gets to the point without extraneous words. Could be slightly more detailed, but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deletion tool, lacks critical context such as error states, idempotency, and whether it requires explicit confirmation. Minimalist approach leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description ('Project ID to delete') is clear. The tool description adds no further semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove') and the resource ('a project and all its indexed data'), making the purpose unambiguous and distinct from sibling tools like list_projects or adr_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention prerequisites, confirmation, or that it is for deleting existing projects only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_changesB
Detect which files have changed since last index (using mtime/hash comparison).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals the comparison method (mtime/hash) and that it checks since the last index, but does not disclose whether the tool is read-only, if it requires specific permissions, or if it modifies state. Annotations are absent, so the description carries full burden but falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no unnecessary words. Front-loaded with the key verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (1 param, no output schema), the description is functional but lacks information about the return format or whether it triggers a re-index. An output schema hint would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a minimal description ('Project ID'). The tool description does not add any parameter-specific semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Detect' and the resource 'files that have changed', with method details (mtime/hash comparison). However, it does not differentiate from sibling tools like branch_compare or diff_impact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., diff_impact, search_code). No prerequisites or context for the last index mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diff_impactC
Analyze the impact of current git changes: which symbols are affected and who calls them.
| Name | Required | Description | Default |
|---|---|---|---|
| staged | No | Analyze staged changes only | |
| project_id | Yes | Project ID | |
| project_path | Yes | Path to the git repository |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must convey behavior. It only states 'analyze impact' without disclosing what operations it performs (e.g., read-only? runs git diff?), side effects, or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with key information, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and the tool's complexity (git analysis), the description lacks details about prerequisites (e.g., clean repo), what 'symbols' means, error handling, and behavior for edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema describes all 3 parameters fully (100% coverage), so the description adds minimal extra meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it analyzes impact of git changes on symbols and their callers, which is specific but doesn't differentiate from sibling tools like fn_impact or detect_changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives; no exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execution_flowA
Trace the execution flow from an entry point (or auto-detect entry points). Shows the call tree depth-first with cycle detection.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Maximum call depth to trace (default 5, max 8) | |
| project_id | Yes | Project ID | |
| entry_point | No | Symbol name to use as root. Omit to auto-detect entry points. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses depth-first traversal and cycle detection, but does not state whether the tool is read-only or any side effects, permissions, or safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each essential: first states purpose, second details behavioral traits. No redundancy, front-loaded with key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately describes input and behavior (call tree, depth-first, cycle detection, auto-detect entry points). Could mention return format explicitly, but sufficient for a tracing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds context beyond schema: clarifies auto-detection of entry points when omitted, and highlights depth-first with cycle detection, which aids understanding of tool behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Trace' and resource 'execution flow', clearly distinguishing from sibling tools like 'trace_path' and 'list_entry_points'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for tracing execution flows from entry points or auto-detection, but lacks explicit guidance on when not to use it or alternatives. No exclusions or comparisons to siblings provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fn_impactB
Analyze the impact of changing a function: find all upstream callers affected.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Function/symbol name to analyze | |
| max_depth | No | Maximum caller depth (default 5) | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose whether the tool is read-only, requires authentication, or any other behavioral traits. The description is too minimal for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the purpose. It is front-loaded and waste-free, though it lacks structure like headings or bullet points. Still very efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should provide more context (e.g., what the output looks like, whether changes are made). It only covers basic purpose, leaving many gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions. It does not compensate or enhance understanding of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: analyze the impact of changing a function by finding upstream callers. It uses a specific verb and resource, and distinguishes from sibling tools like diff_impact and trace_path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when needing to see impact of a function change) but does not provide explicit guidance on when not to use or alternatives. With many sibling tools, more specificity would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_architectureB
Get a high-level architecture overview: layers, modules, dependency graph summary.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID | |
| project_path | No | Optional: project path for git info |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. Implies read-only behavior ('overview') but does not explicitly state non-destructiveness, auth requirements, or limitations. Adequate but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, zero wasted words. Front-loaded with purpose and content summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description hints at output (layers, modules, graph summary). However, lacks guidance on when to use vs siblings and does not cover edge cases or performance implications.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, both parameters have descriptions. Description adds no extra meaning beyond schema; does not elaborate on parameter usage or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly specifies verb ('Get') and resource ('high-level architecture overview') and enumerates contents (layers, modules, dependency graph summary). However, does not differentiate from sibling tools like 'context' or 'map' that might provide similar overviews.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention prerequisites, exclusions, or context for choosing it over sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
index_repositoryA
Index a code repository to build the symbol graph. Supports incremental updates.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional project name (defaults to directory name) | |
| path | Yes | Absolute path to the repository root | |
| embeddings | No | Generate semantic embeddings for symbols (enables hybrid search). Downloads ~90MB model on first run. | |
| force_rebuild | No | Force a full re-index from scratch |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions incremental updates but omits potential side effects such as deletion of previous data (via force_rebuild) or long-running nature. The embedding model download is only in the schema, not the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, each earning its place: the first states the main function, the second highlights a key feature (incremental updates). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a relatively complex tool (indexing can be heavy with side effects), the description is adequate but incomplete. It does not mention prerequisites (e.g., file access), duration, or that force_rebuild erases data. Contextual gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters well. The description adds no additional meaning beyond what is in the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Index' and resource 'code repository' with the specific purpose 'to build the symbol graph'. It also mentions 'supports incremental updates', which distinguishes it from sibling tools that perform queries or analyses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for building/updating a symbol graph, but does not explicitly state when to use it versus alternatives like search_code or when not to use it. It lacks clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_entry_pointsA
Detect and list likely entry points in a project (main, handlers, HTTP routes, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum entry points to return (default 20) | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It describes a read-like operation (detect and list) but does not explicitly confirm it is non-destructive or mention any side effects. The description is adequate but could be more transparent about behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys all necessary information without any fluff. Every word contributes to the understanding, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with fully documented parameters and no output schema, the description provides sufficient context about what the tool returns (likely entry points). It covers the main intent and scope, though it could optionally mention the return format (e.g., list of strings).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for both parameters. The description adds meaning beyond the schema by explaining what 'entry points' are (main, handlers, HTTP routes). This context helps the agent understand the purpose of the parameters, earning a score above baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (detect and list), the resource (entry points in a project), and provides concrete examples (main, handlers, HTTP routes). It distinguishes the tool from siblings by focusing on entry points detection, which is unique among the listed sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for discovering entry points but does not explicitly state when to use this tool versus alternatives like execution_flow or trace_path. No when-not-to-use guidance is provided, leaving room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsB
List all indexed projects with their stats.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only implies a read operation without detailing any behavioral aspects like authentication, rate limits, or side effects. Minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff, front-loaded with verb and resource. Efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool without output schema, the description is adequate but lacks specificity about what 'stats' includes. Could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With no parameters and 100% schema coverage, the description adds no extra meaning beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and resource 'projects' with stats, distinguishing it from sibling tools like adr_list or context. However, 'stats' is vague without elaboration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when or when not to use this tool versus alternatives. No context about prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manifestoC
Manage project quality manifesto rules (thresholds for complexity, dead code, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | list |
| metric | No | Metric name: max_cyclomatic, max_cognitive, max_file_symbols, max_dead_ratio | |
| rule_name | No | Rule name (for add/remove) | |
| project_id | Yes | Project ID | |
| fail_threshold | No | Failure threshold value | |
| warn_threshold | No | Warning threshold value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It only says 'manage', but does not specify side effects (e.g., creation/modification/deletion), required permissions, or the impact of actions like add/remove. The action enum is in the schema but not elaborated in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, highly concise with no wasted words. However, it could be slightly longer to include more guidance without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (6 parameters, multiple actions, thresholds) and no output schema, the description is too brief. It fails to explain how the rules work, the meaning of thresholds, or the return format for list action. Incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema, e.g., it does not explain the relationship between metric, rule_name, and thresholds. It meets the minimum but does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it manages project quality manifesto rules, including examples like complexity and dead code thresholds. This verb+resource combination is specific and distinguishes it from sibling tools like 'complexity' which presumably compute metrics rather than manage rules.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention when not to use it or how it complements sibling tools like 'check' or 'audit'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mapB
Get a structural map of the project: top files by connectivity, module clusters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of top files to show (default 20) | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes output but does not disclose side effects, auth needs, rate limits, or whether it is read-only. Minimal 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but lacks structure. It earns its place but could be more informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and description is too brief for a structural map tool. Missing details on return format, pagination, or how modules are clustered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds no further semantics beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a 'structural map of the project' with two specific aspects: 'top files by connectivity' and 'module clusters'. The verb 'Get' and resource are precise, distinguishing it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs siblings like 'context' or 'search_graph'. The description does not provide conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pathC
Find the shortest call path between two symbols.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target symbol name | |
| from | Yes | Source symbol name | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states the purpose but does not mention whether it is read-only, performance considerations, or behavior when no path exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure. It earns its place but is too brief to provide complete guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that computes shortest paths in a call graph, the description is insufficient. It does not explain the input format, return value, or underlying data model, leaving the agent with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so baseline is 3. The description adds no additional meaning beyond the parameter names and types already documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds the shortest call path between two symbols, using a specific verb and resource. However, it does not differentiate from sibling tools like 'trace_path' which may perform similar path analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as 'trace_path' or 'execution_flow'. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_graphC
Run a raw SQL-like structured query against the symbol graph.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results (default 50) | |
| filter | No | Filter criteria | |
| order_by | No | Order by field: name, start_line, complexity_cyclomatic, complexity_cognitive | name |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It does not state whether the tool is read-only, destructive, or has rate limits. The 'SQL-like' phrasing suggests a query, but lacks explicit clarification of behavior beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it sacrifices completeness. It does not include a summary of key details or front-load critical information, making it less useful for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested filter object and lack of output schema, the description should explain return values, pagination, or default behavior. It provides none of this, leaving significant gaps in understanding the tool's full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds no additional meaning beyond the schema; it labels the query as 'SQL-like' but does not elaborate on parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs a raw SQL-like structured query against the symbol graph, specifying a verb and resource. However, it does not explicitly differentiate from sibling tools like search_code or search_graph, which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The agent receives no information about conditions or exclusions, leaving it to infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rolesB
Classify and display the roles of symbols in the project (entry, core, utility, adapter, dead, leaf).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID | |
| reclassify | No | Re-run role classification before showing results | |
| filter_role | No | Show only symbols with this role |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must cover behavioral traits. It does not mention potential side effects of reclassifying (re-run role classification) or required permissions. The 'reclassify' parameter suggests potential mutation, but this is not disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the main action and the possible role values. It is concise with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description should explain what the tool returns (e.g., a table of symbols and roles) and clarify behavior when reclassify is true. It lacks this completeness, leaving the agent with uncertainty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with property descriptions that are adequate. The tool description adds value by listing the possible roles, which helps understand the filter_role parameter, but does not substantially enhance parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool classifies and displays roles of symbols, listing the specific role categories (entry, core, utility, adapter, dead, leaf). This differentiates it from sibling tools which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like 'check' or 'brief'. No conditions or exclusions are provided, leaving the agent to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_codeA
Search source code text across all files in the project (grep-like).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results (default 30) | |
| query | Yes | Text to search for. Wrap in /.../ for regex. | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It indicates a read-like operation (search) and regex support, but lacks details on permissions, performance, or side effects. It is not contradictory but incomplete for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that immediately conveys the tool's purpose. Every word adds value, and it is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, and the description does not explain the return format or pagination. For a search tool, details on result structure are helpful. However, the tool is simple and the description covers the core functionality sufficiently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3 applies. The description adds 'grep-like' and the query parameter description mentions regex, providing some added context. However, it does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search' and the resource 'source code text across all files', and adds a relatable analogy 'grep-like'. It effectively distinguishes from sibling tools like search_graph which target graph data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via 'grep-like', but provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. Given the sibling list, it is the only code search tool, but more context on context or limitations would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_graphA
Search over the symbol graph. BM25 by default; pass semantic:true for hybrid BM25+vector search (requires embeddings to be generated during index_repository).
| Name | Required | Description | Default |
|---|---|---|---|
| kinds | No | Filter by symbol kinds: function, class, method, interface, variable, type, enum | |
| limit | No | Maximum results (default 20) | |
| query | Yes | Search query. Use semicolons for multi-query: "auth; JWT; token" | |
| semantic | No | Use hybrid BM25+vector search with RRF fusion. Only effective if embeddings were generated. | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It reveals default mode and hybrid option conditions, but lacks details on return format, pagination, auth needs, or potential destructive impacts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences, front-loaded with the core action and purpose. Every word adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and five parameters, the description covers primary behavior and key parameter nuances. Missing return value details, but overall sufficient for agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% across all parameters. The description adds valuable context beyond schema, such as multi-query hint with semicolons and the embedding requirement for semantic search, enhancing the agent's understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches over the symbol graph, specifying BM25 by default and an optional hybrid mode. This distinctly differentiates it from sibling tools like search_code and query_graph, which target different scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use semantic search (hybrid BM25+vector) and the prerequisite for embeddings. However, it does not explicitly contrast with siblings like search_code or query_graph, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_pathB
Trace all call paths from a symbol (upstream callers or downstream callees).
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Symbol name | |
| direction | No | up=callers, down=callees | down |
| max_depth | No | Maximum traversal depth (default 5) | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It states the tool 'trace[s] all call paths' but does not clarify scope (e.g., within project only), whether it is exhaustive, or any performance implications. The read-only nature is implied but not confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the key action and scope. Every word serves a purpose, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of tracing call paths and lack of output schema, the description is too minimal. It does not explain output format, max_depth behavior, handling of cycles, or how results are presented, leaving significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds limited value beyond schema definitions. It frames the tool's purpose around 'upstream callers or downstream callees,' aligning with the direction parameter, but does not enhance parameter understanding significantly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool traces call paths from a symbol, specifying both upstream callers and downstream callees. It is a specific verb-resource combination and distinguishes from siblings like 'execution_flow' and 'path' by focusing on direct call graph traversal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'execution_flow' or 'path'. The description does not mention prerequisites, limitations, or decision criteria for choosing directions or depths.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whereC
Find where a symbol is defined.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Symbol name | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for disclosing behavioral traits. It only says 'find where a symbol is defined', which implies a read operation, but it does not explicitly state that it is read-only, non-destructive, or whether special authentication is needed. No mention of side effects or performance considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single sentence with no redundancy. It is front-loaded with the verb 'Find', clearly communicating the action. Every word serves a purpose, making it efficient for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and the presence of 27 sibling tools, the description is under-specified. It does not explain what 'where' returns (e.g., file location, line number, or multiple definitions). The context is incomplete for an AI agent to fully understand the tool's capabilities without additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add any extra meaning beyond the schema's 'Symbol name' and 'Project ID'. It provides no context on value formats, required vs optional, or examples. It neither harms nor significantly helps beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Find where a symbol is defined' clearly states the verb (find) and resource (symbol definition), making the purpose immediately understandable. It distinguishes from siblings like 'search_code' (general code search) and 'fn_impact' (impact analysis) by focusing specifically on locating definitions. However, it could be more precise about the output (e.g., file and line number).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'search_code' or 'fn_impact'. There is no mention of prerequisites, limitations, or scenarios where other tools would be more appropriate. The description offers no contextual usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
28 tool updates
v0.3.0- First observed
adr_create - First observed
adr_list - First observed
adr_update - First observed
audit - First observed
branch_compare - First observed
brief - First observed
check - First observed
communities - First observed
complexity - First observed
context - First observed
delete_project - First observed
detect_changes - First observed
diff_impact - First observed
execution_flow - First observed
fn_impact - First observed
get_architecture - First observed
index_repository - First observed
list_entry_points - First observed
list_projects - First observed
manifesto - First observed
map - First observed
path - First observed
query_graph - First observed
roles - First observed
search_code - First observed
search_graph - First observed
trace_path - First observed
where
TDQS
Most tools are clearly distinct, but some overlap exists between trace_path and execution_flow, and between audit, check, and manifesto. Overall, the boundaries are well-defined.
Naming is mostly lower_case with underscores, but patterns vary (verb_noun, noun_verb, single verb). Consistency is moderate; not chaotic but not uniform.
28 tools is high but justified by the broad code analysis domain. It slightly exceeds the ideal range, but each tool serves a distinct purpose.
The tool set covers indexing, searching, architecture, impact analysis, quality checks, ADR management, and more. No obvious gaps for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
A MCP server built for developers enabling Git based project management with project and personalβ¦
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that transforms codebases into knowledge graphs using Neo4J, enabling AI assistants to understand code structure, relationships, and metrics for more context-aware assistance.27MIT
- AlicenseAqualityCmaintenanceCross-repository code knowledge graph MCP server for Java, Kotlin, JavaScript, and TypeScript. Indexes source code into embedded KuzuDB via tree-sitter and exposes 30+ tools for call-flow tracing, multi-hop taint analysis (OWASP/CWE/PCI/STIG), entry-point reachability filtering, performance hotspot detection, and license compliance β without reading source files. 95% fewer tokens vs source-read331MIT
- AlicenseNot gradedqualityCmaintenanceSemantic concept graph MCP server for codebases β what your code means, not just what it does.2MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that parses source code into a graph of symbols and relationships, enabling code structure visualization and blast radius analysis via interactive 3D force-graph.-
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/wladimania93/wlady-code-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server