Skip to main content
Glama

WLADY_CODE MCP

Advanced codebase intelligence for AI assistants

Version Node MCP License

🌐 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 X defined?"

where

"If I change this function, what breaks?"

fn_impact

"What will this PR affect in production?"

diff_impact

"Are there dead code, god classes, or circular deps?"

audit

"How is this monorepo layered?"

get_architecture

"What's the call path between module A and B?"

path

"Find code that does something similar to X"

search_graph(semantic: true)

"Trace the execution flow from main"

execution_flow

"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

Esc

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

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:

  1. Each symbol is embedded with snowflake-arctic-embed-xs (22M params, 384 dims, ~90 MB, runs fully locally via ONNX Runtime)

  2. At query time: BM25 ranks + cosine similarity ranks are fused via Reciprocal Rank Fusion (RRF)

  3. 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:9750

Or 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-mcp

MCP Tools Reference

Tool

Description

index_repository

Index a full project or update incrementally. Pass embeddings: true to generate semantic embeddings (downloads ~90 MB model on first run).

list_projects

List all indexed projects

delete_project

Remove a project from the index

detect_changes

Detect files modified since last index

Tool

Description

where

Find where a symbol is defined

context

Full symbol context: definition, callers, callees

path

Shortest call path between two symbols

trace_path

All paths upstream/downstream from a symbol

map

Module map and project structure

Tool

Description

search_code

Grep-like text search across all source files

search_graph

BM25 symbol search. Pass semantic: true for hybrid BM25+vector search with RRF (requires embeddings).

query_graph

Direct graph query with filters (kind, role, complexity, file pattern)

brief

Short summary of a file or module

Tool

Description

execution_flow

Trace the call tree from an entry point (or auto-detect). Depth-limited BFS with cycle detection.

list_entry_points

Detect likely entry points: main functions, HTTP handlers, controllers, routers

Tool

Description

fn_impact

All callers affected by modifying a function

diff_impact

Current git diff β†’ affected symbols

branch_compare

Symbol-level comparison between two branches

Tool

Description

audit

Full audit: dead code, god files, high complexity, circular deps

complexity

Cyclomatic + cognitive complexity report per symbol

roles

Classify symbols by role (entry / core / utility / adapter / dead / leaf)

communities

Community/cluster detection in the graph

Tool

Description

get_architecture

High-level view: layers, modules, graph stats

manifesto

Manage quality rules (complexity thresholds, etc.)

check

Evaluate codebase against manifesto rules (PASS / WARN / FAIL)

Tool

Description

adr_list

List all recorded architecture decisions

adr_create

Record a new architecture decision

adr_update

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 --install

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-mcp

npx 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 build

Then 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-project

Or 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

WLADY_UI_PORT

number

Change UI port (default: 9750)

WLADY_UI_PORT

0

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.x

Node 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-deps

EBUSY 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:

  1. Close VS Code (or any IDE with the MCP extension loaded)

  2. Close Claude Desktop / Claude Code

  3. Kill any running node process 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

@modelcontextprotocol/sdk

Database

better-sqlite3 (embedded, synchronous)

AST Parsing

tree-sitter + 11 language grammars (MIT)

Embeddings

@huggingface/transformers Β· snowflake-arctic-embed-xs (Apache-2.0)

Git

simple-git

File watching

chokidar

Visualization

Canvas 2D Β· Prism.js

HTTP server

Node.js built-in http (no Express)

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 tools
adr_createC

Create a new Architecture Decision Record.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesADR title
statusNoInitial statusproposed
contextNoContext and problem statement
decisionNoThe decision that was made
project_idYesProject ID
consequencesNoConsequences of the decision

TDQS

C2.8/5.0
Behavior1/5

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.

Conciseness4/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberNoShow specific ADR by number
statusNoFilter by status: proposed, accepted, deprecated, superseded
project_idYesProject ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoNew title
numberYesADR number to update
statusNoNew status
contextNoUpdated context
decisionNoUpdated decision
project_idYesProject ID
consequencesNoUpdated consequences

TDQS

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
checksNoSpecific checks to run: dead_code, high_complexity, god_files, circular_deps. Default: all.
project_idYesProject ID

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseYesBase branch name (e.g. main)
headYesHead branch name (e.g. feature/xyz)
project_idYesProject ID
project_pathYesPath to the git repository

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesRelative file path
project_idYesProject ID

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
min_sizeNoMinimum community size to show
project_idYesProject ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFilter to specific file (relative path)
limitNoMaximum results
project_idYesProject ID
min_cyclomaticNoMinimum cyclomatic complexity to show

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
radiusNoContext radius (default 1)
symbolYesSymbol name to look up
project_idYesProject ID

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID to delete

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
stagedNoAnalyze staged changes only
project_idYesProject ID
project_pathYesPath to the git repository

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoMaximum call depth to trace (default 5, max 8)
project_idYesProject ID
entry_pointNoSymbol name to use as root. Omit to auto-detect entry points.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesFunction/symbol name to analyze
max_depthNoMaximum caller depth (default 5)
project_idYesProject ID

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID
project_pathNoOptional: project path for git info

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional project name (defaults to directory name)
pathYesAbsolute path to the repository root
embeddingsNoGenerate semantic embeddings for symbols (enables hybrid search). Downloads ~90MB model on first run.
force_rebuildNoForce a full re-index from scratch

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum entry points to return (default 20)
project_idYesProject ID

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to performlist
metricNoMetric name: max_cyclomatic, max_cognitive, max_file_symbols, max_dead_ratio
rule_nameNoRule name (for add/remove)
project_idYesProject ID
fail_thresholdNoFailure threshold value
warn_thresholdNoWarning threshold value

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of top files to show (default 20)
project_idYesProject ID

TDQS

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget symbol name
fromYesSource symbol name
project_idYesProject ID

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results (default 50)
filterNoFilter criteria
order_byNoOrder by field: name, start_line, complexity_cyclomatic, complexity_cognitivename
project_idYesProject ID

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID
reclassifyNoRe-run role classification before showing results
filter_roleNoShow only symbols with this role

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results (default 30)
queryYesText to search for. Wrap in /.../ for regex.
project_idYesProject ID

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
kindsNoFilter by symbol kinds: function, class, method, interface, variable, type, enum
limitNoMaximum results (default 20)
queryYesSearch query. Use semicolons for multi-query: "auth; JWT; token"
semanticNoUse hybrid BM25+vector search with RRF fusion. Only effective if embeddings were generated.
project_idYesProject ID

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesSymbol name
directionNoup=callers, down=calleesdown
max_depthNoMaximum traversal depth (default 5)
project_idYesProject ID

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesSymbol name
project_idYesProject ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 28 tool updatesv0.3.0
    • First observedadr_create
    • First observedadr_list
    • First observedadr_update
    • First observedaudit
    • First observedbranch_compare
    • First observedbrief
    • First observedcheck
    • First observedcommunities
    • First observedcomplexity
    • First observedcontext
    • First observeddelete_project
    • First observeddetect_changes
    • First observeddiff_impact
    • First observedexecution_flow
    • First observedfn_impact
    • First observedget_architecture
    • First observedindex_repository
    • First observedlist_entry_points
    • First observedlist_projects
    • First observedmanifesto
    • First observedmap
    • First observedpath
    • First observedquery_graph
    • First observedroles
    • First observedsearch_code
    • First observedsearch_graph
    • First observedtrace_path
    • First observedwhere

TDQS

B3.2/5.0
Disambiguation4/5

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 Consistency3/5

Naming is mostly lower_case with underscores, but patterns vary (verb_noun, noun_verb, single verb). Consistency is moderate; not chaotic but not uniform.

Tool Count3/5

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.

Completeness5/5

The tool set covers indexing, searching, architecture, impact analysis, quality checks, ADR management, and more. No obvious gaps for the stated purpose.

Maintenance

ActivityStale
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An 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.
    27
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Cross-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-read
    33
    1
    MIT

Latest Blog Posts

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