project-graph-mcp
Provides framework-specific rulesets for Express, enabling code quality analysis and compact code mode for Express projects.
Provides framework-specific rulesets for NestJS, enabling code quality analysis and compact code mode for NestJS projects.
Provides framework-specific rulesets for Next.js, enabling code quality analysis and compact code mode for Next.js projects.
Provides framework-specific rulesets for Node.js, enabling code quality analysis and compact code mode for Node.js projects.
Provides framework-specific rulesets for React, enabling code quality analysis and compact code mode for React projects.
Provides framework-specific rulesets for TypeScript, enabling code quality analysis and compact code mode for TypeScript projects.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@project-graph-mcpfind unused code and complexity in src/"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
project-graph-mcp
Maximize your AI agent's context window. An MCP server that lets agents read and edit your codebase in compact mode — minified source with all variable names preserved. .ctx documentation is injected only in the focus zone, so agents can start with structure and request implementation detail when needed.


19 MCP tools, zero config. Add one line to your MCP config and the server downloads itself on the next IDE restart.
Features
Project Skeleton — compact AST-based JSON graph of files, symbols, and relationships
Compact Code Mode — project-wide
compact/beautify; agents read and edit minified source while names remain available for restorationAI Context Layer — one call loads skeleton + docs + compressed files; progressive loading (Overview → Focus)
Code Quality Analysis — dead code, complexity, duplicates, large files, legacy patterns, JSDoc consistency, Health Score (0-100)
Multi-Language Parsers — JavaScript (AST/Acorn), TypeScript, Python, Go (regex-based)
Doc Dialect — auto-generated
.ctxdocumentation with AST signatures, staleness detection, self-enriching@enrichmarkersDatabase Analysis — schema extraction from SQL migrations, table usage, dead tables
Test Checklists — persistent test state in
.ctx.mdfiles, agent-drivenmark_test_passedMonorepo Support — auto-discovery of sub-projects in
packages/,apps/,services/Framework Rules — 11 rulesets (86 rules) for React, Vue, Next.js, Express, NestJS, TypeScript, Node.js, Symbiote.js
Security — path traversal protection on all operations
Related MCP server: mcp-code-context
Quick Start
Generate the MCP config for your IDE (with correct paths):
npx -y project-graph-mcp configCopy the output JSON into your IDE's MCP config file, then restart.
IDE | Config path |
Antigravity |
|
Gemini CLI |
|
Cursor |
|
Windsurf |
|
Claude Code | Run: |
See CONFIGURATION.md for all supported IDEs.
git clone --recursive https://github.com/rnd-pro/project-graph-mcp
cd project-graph-mcp
npm installNote: The source checkout no longer needs the former
vendor/symbiote-nodesubmodule.
CLI
npx project-graph-mcp skeleton src/ # Project skeleton
npx project-graph-mcp expand SN # Expand minified symbol
npx project-graph-mcp deps SNG # Get dependencies
npx project-graph-mcp deadcode src/ # Find unused code
npx project-graph-mcp complexity src/ # Cyclomatic complexity
npx project-graph-mcp analyze src/ # Full health analysis
npx project-graph-mcp compress src/f.js # Compress file for AI
npx project-graph-mcp docs src/ # Project docs (doc-dialect)
npx project-graph-mcp generate-ctx src/ # Generate .context/ docs
npx project-graph-mcp compact src/ --dry-run # Compact all files
npx project-graph-mcp mode . # Show current editing mode
npx project-graph-mcp help # All commandsWeb Dashboard
project-graph-mcp is a pure stdio MCP server — it does not include a web server. For the visual UI (file tree, code viewer, dependency graph, live monitoring, marketplace), install mcp-agent-portal: npx mcp-agent-portal.
MCP Ecosystem
Best used as part of mcp-agent-portal — a unified MCP aggregator that combines all RND-PRO servers behind a single config entry:
{
"mcpServers": {
"agent-portal": {
"command": "npx",
"args": ["-y", "mcp-agent-portal"]
}
}
}The Portal runs asingleton backend to prevent resource exhaustion when you open multiple IDE windows. It transparently spawns project-graph-mcp as a public child tool server and keeps agent-pool-mcp as its internal execution runtime. One mcp-agent-portal entry replaces separate public configs for child servers.
Also works standalone when you need only project graph tools:
# Generate a config with the correct path for this server:
npx -y project-graph-mcp config
# Or use mcp-agent-portal as the unified orchestration gateway.Agent workers launched by Agent Portal can use their ownproject-graph-mcp instance to navigate the codebase independently without blocking the primary orchestrator.
Documentation
CONFIGURATION.md — Setup for all supported IDEs
GUIDE.md — Comprehensive usage guide with all tools
ARCHITECTURE.md — Source code structure
AGENT_ROLE.md — Full system prompt for agents
Related Projects
mcp-agent-portal — Unified MCP aggregator + web dashboard + AI agent runtime
agent-pool-mcp — Internal execution runtime used by Agent Portal orchestration
Symbiote.js — Isomorphic Reactive Web Components framework
JSDA-Kit — SSG/SSR toolkit for modern web applications
License
MIT © RND-PRO.com
Made with ❤️ by the RND-PRO team
Available Tools
19 toolsanalyzeC
Code quality analysis. Actions: dead_code|similar_functions|complexity|large_files|outdated_patterns|full_analysis|analysis_summary|undocumented
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to scan | |
| level | No | For undocumented: strictness level | |
| action | Yes | Analysis type to run | |
| codeOnly | No | For outdated_patterns: only check code | |
| depsOnly | No | For outdated_patterns: only check deps | |
| threshold | No | For similar_functions: min similarity % (default: 60) | |
| includeItems | No | For full_analysis: include individual items | |
| minComplexity | No | For complexity: minimum threshold (default: 1) | |
| onlyProblematic | No | For complexity/large_files: only show issues |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state whether the tool is read-only, what permissions are needed, what output format to expect, or any side effects. The term 'analysis' implies non-destructive behavior, but that is not explicit, leaving significant ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the purpose ('Code quality analysis') and then lists actions. It is efficient, but the action list duplicates the schema enum values and could be better structured (e.g., separating the action list from the core description). Every word serves a purpose, though the list is somewhat unwieldy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with 9 parameters, 2 required, and no output schema. The description does not explain what each action returns, how parameters like threshold or level affect behavior, or what the output looks like. The schema provides parameter descriptions, but the tool-level description is too sparse to enable correct invocation without additional research.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter semantics beyond what the schema already provides—it merely repeats the action enum values. Since the schema fully documents all 9 parameters with descriptions, the tool-level description adds no extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Code quality analysis' as the resource and lists specific action types, making the tool's purpose clear. It differentiates from sibling tools by focusing on analysis, though it doesn't explicitly compare to alternatives. The verb 'analyze' is implied by the name and action list, so it's more than a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, or how to choose among the listed actions. The action list implies use cases (e.g., dead_code, complexity) but lacks context on prerequisites, limitations, or when not to use it. This is a clear gap for a tool with multiple distinct modes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_custom_rulesB
Run custom rules analysis on a directory. Returns violations found.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to scan | |
| ruleSet | No | Optional: specific ruleset to use | |
| severity | No | Optional: filter by severity (error/warning/info) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits on its own. It only states that it 'Returns violations found,' which implies a read-only analysis but does not specify whether it modifies anything, requires special permissions, or how results are formatted. The lack of details beyond the basic output leaves significant behavioral uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no unnecessary words. It effectively states the action and expected result, earning full marks for conciseness and structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and minimal behavioral context, the description is thin but adequate for a simple analysis tool. It covers the core function and return, but lacks details on output format, error handling, or side effects. For a tool with three parameters and no annotations, it is minimally complete but leaves room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all three parameters (path, ruleSet, severity), so the schema already documents each parameter clearly. The description adds no extra semantic meaning beyond what the schema provides, giving a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Run custom rules analysis on a directory') and its output ('Returns violations found'). It uses a specific verb and resource, distinguishing it from sibling tools like get_custom_rules and set_custom_rule which manage rules rather than execute analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, limitations, or conditions under which another tool should be preferred. The purpose implies usage for analyzing a directory for rule violations, but no explicit context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compactD
Compact code operations. Actions: compact_file|edit|compact_all|beautify|expand_file|expand_project|validate_pipeline|get_mode|set_mode
| Name | Required | Description | Default |
|---|---|---|---|
| fix | No | For validate_pipeline: auto-fix all style issues — generates .ctx documentation from readable code, then minifies (headers, imports, indentation, long names). Bidirectional: expand restores from .ctx. | |
| code | No | For edit: new code for the symbol | |
| mode | No | For set_mode: 1 (compact, recommended) or 2 (full) | |
| path | No | Path to file or directory | |
| action | Yes | Compact action to perform | |
| dryRun | No | Preview without modifying | |
| legend | No | For compact_file: include export legend | |
| strict | No | For validate_pipeline: report fns missing from .ctx | |
| symbol | No | For edit: function/class name to replace | |
| beautify | No | Beautify output (default: true) | |
| stripJSDoc | No | For set_mode: strip JSDoc when compacting | |
| autoValidate | No | For set_mode: auto-validate after edits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing side effects, reversibility, and safety. It only states 'Compact code operations' and lists action names, without explaining what changes occur to files or code.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short but insufficiently structured for a tool with 9 actions; it's a bare list of action names without explanation, so it's under-specified rather than appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with 9 actions and 12 parameters, no output schema, and no annotations, this description is severely incomplete. It omits what each action does, expected outputs, and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions, so the schema does the heavy lifting. The tool description adds no parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Compact code operations' is vague and nearly restates the tool name without explaining what compacting involves. The list of actions provides some scope but doesn't specify a concrete verb-resource pair or distinguish this from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives; no context, prerequisites, or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dbC
Database analysis. Actions: schema|table_usage|dead_tables
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to scan | |
| table | No | For table_usage: filter to specific table | |
| action | Yes | Database analysis action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for disclosing behavioral traits. It does not mention whether the tool performs read-only analysis, any side effects, permission requirements, or what it returns. The lack of any behavioral context makes this a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and lists the actions in a clear, scannable format. However, the brevity is more under-specification than effective conciseness, as it omits essential explanations while still being well-formed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three distinct actions, no annotations, and no output schema, the description is completely inadequate. It fails to explain what schema, table_usage, and dead_tables do, what they return, or under what circumstances they should be invoked, leaving the agent without enough information to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the parameters adequately. However, the description adds no additional meaning beyond the schema—for example, it does not elaborate on what each allowed action entails or how path and table interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool performs 'Database analysis' and lists three specific actions, giving a general sense of its function. However, it lacks a clear verb+resource structure and does not explain what each action does, so it remains vague and does not distinguish itself from the similar sibling tool 'analyze'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool vs alternatives, nor is there any explanation of when each action (schema, table_usage, dead_tables) should be applied. The description simply lists the actions without context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docsC
Documentation (.ctx) management. Actions: get|generate|check_stale|validate_contracts
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | For get: specific file docs | |
| path | Yes | Project root path | |
| scope | No | For generate: "all", "focus" (git diff), or array of file paths | |
| action | Yes | Documentation action to perform | |
| strict | No | For validate_contracts: report functions missing from .ctx | |
| overwrite | No | For generate: overwrite existing (merge preserves descriptions) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description must convey behavioral traits such as side effects or mutation risks. It only says 'management' and lists actions, failing to disclose that 'generate' can modify or overwrite files, that 'overwrite' controls this, or any other operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that is front-loaded with the core purpose. It avoids unnecessary words, though it may be too brief to cover the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This multi-action tool with 6 parameters and no output schema needs a richer description explaining each action's purpose, expected return values, and side effects. The current text is a minimal overview and leaves agents to infer crucial operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for 100% of parameters, so the baseline is 3. The description adds no extra meaning to any parameter; it merely recounts the action names already present in the enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as '.ctx documentation' and lists concrete actions, making the tool's purpose clear. However, it doesn't elaborate on what each action does or how this differs from sibling documentation tools, so it falls short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The action list is present, but the description gives no indication of when to use this tool versus alternatives, nor when to select one action over another. The tool's name implies a scope, but there is no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
filtersC
Filter configuration. Actions: get|set|add_excludes|remove_excludes|reset
| Name | Required | Description | Default |
|---|---|---|---|
| dirs | No | For add_excludes/remove_excludes | |
| action | Yes | Filter action to perform | |
| excludeDirs | No | For set: directories to exclude | |
| useGitignore | No | For set: use .gitignore patterns | |
| includeHidden | No | For set: include hidden directories | |
| excludePatterns | No | For set: file patterns to exclude |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosing behavior. It mentions actions like get/set/reset but gives no details on side effects, persistence, permissions, or return values, which is minimal and insufficient for a mutation-capable tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that lists actions without verbose filler. It is concise and easy to parse, though it could benefit from more structure to separate the actions' purposes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters and no output schema or annotations, the description is too minimal. It fails to explain the semantics of each action, when to use them, or what the tool returns, leaving significant gaps for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's list of actions does not add parameter-level meaning beyond what the schema already provides, so it neither helps nor hurts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Filter configuration' and lists actions, giving a sense of the tool's purpose. However, it lacks a clear verb-resource structure and doesn't specify what 'filters' apply to, making it somewhat vague and not fully distinguishing from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool or when to prefer an alternative. The list of actions is present but without any context on prerequisites, use cases, or exclusions, leaving the agent without direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_instructionsA
Get coding guidelines, architectural standards, and JSDoc rules for this project.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states the tool's purpose but does not mention any side effects, safety profile, or whether the instructions are cached or dynamic. For a simple read-only getter this is acceptable, but it adds no contextual information beyond the action itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the purpose and lists the three content categories. No wasted words, and the structure supports quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters, no output schema, and no annotations, but the description does not fully disambiguate from overlapping sibling tools like 'jsdoc' or 'get_custom_rules'. It covers the core content areas but may leave an agent unsure about the exact scope or relationship to other docs tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the description is not required to explain parameter semantics. The baseline for no parameters is 4, and the description also clarifies the content of the result, which adds value beyond the schema's empty properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' and identifies a concrete resource: coding guidelines, architectural standards, and JSDoc rules for the project. This clearly distinguishes it from sibling tools like get_usage_guide or get_custom_rules by naming the exact content domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when the agent needs project-level coding standards, but it does not explicitly state when to choose this tool over alternatives such as 'docs' or 'jsdoc'. No exclusions or alternative recommendations are given, so the guidance is present but implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ai_contextA
Boot AI agent context. Two modes:
Default: returns skeleton + docs (2-3k tokens) for structure overview.
includeFiles: ['']: returns ALL compressed source code without skeleton/docs (pure code dump). Filters vendored files via .contextignore (auto-created on first call). Call FIRST when starting work. Use [''] for small/medium projects that fit in context.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Project root path | |
| includeDocs | No | Include doc-dialect documentation (default: true, auto-disabled with '*') | |
| includeFiles | No | Files to include. Use ["*"] for ALL source files (filtered by .contextignore). Or specific files: ["parser.js", "tools.js"] | |
| includeSkeleton | No | Include project skeleton (default: true, auto-disabled with '*') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool auto-creates .contextignore on first call, returns 2-3k tokens in default mode, and auto-disables includeDocs/includeSkeleton when '*' is used. These are important behavioral traits that go beyond what the schema reveals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured, using numbered modes to present the two behaviors. Every sentence adds meaningful information: the default mode, the wildcard mode, the .contextignore side effect, and when to use it. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description explains what the tool returns in both modes (skeleton+docs vs. all source code), the token footprint, and the auto-creation of .contextignore. It doesn't specify the output format (e.g., plain text vs JSON), but for an AI context bootstrapping tool this is likely acceptable. Overall, enough detail is provided for correct invocation and expectation setting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already has a detailed description. The description adds value by explaining the interaction between parameters: using includeFiles: ['*'] triggers a 'pure code dump' and automatically disables includeDocs and includeSkeleton. This cross-parameter semantics is not captured in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool 'boots AI agent context' and distinguishes two modes: default returns skeleton+docs, while includeFiles: ['*'] returns all compressed source code. It names the resource (project context) and explicitly positions itself as the first tool to call ('Call FIRST when starting work'), which differentiates it from siblings like get_skeleton and docs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: 'Call FIRST when starting work' and advises using ['*'] for small/medium projects that fit in context. This implies for larger projects one should avoid the wildcard mode. It doesn't name alternative tools or explicitly state when not to use, but the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_custom_rulesA
List all custom code analysis rules. Rules are stored in JSON files in rules/ directory.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It adds useful context about storage location (JSON files in rules/ directory), but it doesn't disclose potential errors, output format, or explicitly confirm read-only behavior. For a simple list tool, this is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences), front-loaded with the verb and resource, and every sentence earns its place by explaining what the tool does and where the data comes from.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description is fairly complete: it states the action, the resource, and the storage location. It might miss explicit return value details, but for a simple listing tool the purpose is sufficiently clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, which per guidelines warrants a baseline of 4. The description adds no parameter-specific information, but none is needed because the schema is empty.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('List') and resource ('all custom code analysis rules'), and distinguishes it from sibling tools like set_custom_rule and check_custom_rules by indicating it's for retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies use when you need to see all rules, though it doesn't explicitly mention alternatives or exclusions. Given the sibling tool names, the context is clear without needing explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_focus_zoneB
Get enriched context for recently modified files. Auto-detects from git or accepts explicit file list.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| useGitDiff | No | Auto-detect from git diff | |
| recentFiles | No | Explicit list of files to expand |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'auto-detects from git' but does not state whether the operation is read-only, what 'enriched context' includes, how conflicts between useGitDiff and recentFiles are handled, or any side effects. This lack of detail is significant for a tool that may depend on git state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: two sentences with no redundant information. Every word adds value, and the format is easy to parse quickly. It earns a perfect score for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having three parameters and no output schema or annotations, the description is too brief. It does not explain the nature or structure of the 'enriched context' result, potential parameter combinations, or edge cases. This leaves the agent with insufficient information to fully understand the tool's behavior and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (useGitDiff and recentFiles have descriptions; path does not). The description adds some context by mentioning 'explicit file list' and 'auto-detects from git', which aligns with recentFiles and useGitDiff. However, it does not clarify the 'path' parameter, so it only marginally improves on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get enriched context for recently modified files.' It specifies the resource (recently modified files) and the action (get enriched context), with additional detail about auto-detection from git or explicit file lists. This distinguishes it from most siblings, though it does not explicitly contrast with similar tools like get_ai_context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context by explaining two modes: auto-detect from git or provide an explicit file list. This implies when the tool is useful (when needing context for recently modified files) but does not specify when to choose this over alternatives or any exclusions (e.g., when not to use git diff).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_framework_referenceA
Get framework-specific AI reference documentation. Auto-detects framework from project or accepts explicit name. Returns full API reference, patterns, and common mistakes as agent context.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Project path for auto-detection (e.g., "src/") | |
| framework | No | Framework reference name (e.g., "symbiote-3x"). If omitted, auto-detects from path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosure. It adds valuable behavioral context by explaining that the tool auto-detects the framework from the project and returns a structured set of documentation (API reference, patterns, common mistakes). For a read-only reference tool, this is substantial, though it does not explicitly state it has no side effects or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences that are front-loaded with the core purpose. The first sentence states the verb and resource, and the second elaborates with mode and output details. No fluff or unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only two optional parameters, no annotations, and no output schema, the description covers the essential aspects: what it does, how it decides the framework, and what it returns. It could improve by explicitly mentioning when to prefer this over sibling documentation tools, but it is otherwise reasonably complete for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage for both parameters, providing names and descriptions. The description does not add additional parameter semantics beyond what the schema provides, though it reinforces the auto-detect vs. explicit-name relationship. With high schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get framework-specific AI reference documentation.' It specifies the resource (framework reference) and the action (get). However, it does not explicitly differentiate from sibling tools like 'docs' or 'get_usage_guide', so it lacks explicit sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context about usage modes: auto-detection from project or explicit framework name. It implies the tool is used when framework-specific reference is needed, but it does not mention alternatives or when-not-to-use compared to sibling tools. Thus, it offers clear context but no exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_skeletonA
Get compact minified project overview (10-50x smaller than source). Returns legend, stats, node summaries, file imports, and W web component summaries when present.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to scan (e.g., "src/components") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It discloses what the tool returns, the size reduction (10-50x), and that W web component summaries appear 'when present.' It is clear this is a read-only operation, but it does not mention potential performance impacts or error behavior, which would be useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that conveys all essential information without waste. Every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides a clear list of what the output contains, enough to understand the tool's purpose and result. Since there is no output schema, this fills the gap. Missing details like edge cases or prerequisites prevent a 5, but it is largely complete for a simple single-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description covers the single 'path' parameter fully, so the description adds no extra meaning. Baseline 3 is appropriate since the schema provides sufficient semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'get a compact minified project overview' with explicit details (legend, stats, node summaries, file imports, W web component summaries). This distinguishes it from siblings like 'docs' or 'compact' by specifying the output format and size reduction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (getting a compact overview) but does not explicitly mention when to use this tool over alternatives or any exclusions. Sibling tools like 'compact' or 'get_focus_zone' are not referenced, so the guidance is indirect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usage_guideA
Get the comprehensive usage guide for project-graph with examples and best practices. Call this FIRST when planning how to analyze, navigate, or audit a codebase. Returns practical examples and recommended workflow for each feature area.
Available topics: navigation, analysis, testing, documentation, rules, workflow. Omit topic to get the full guide.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Optional topic filter: navigation, analysis, testing, documentation, rules, workflow |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behaviors: returns practical examples and workflows, supports topic filtering, and omitting topic returns the full guide. This sufficiently conveys the tool's read-only nature and content structure, though it does not detail output format or response size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with purpose, then usage guidance, then topics. Every sentence provides valuable information without redundancy or fluff, making it concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with one optional parameter and no output schema, the description fully covers purpose, usage timing, available topics, and what the return contains. It is complete enough for an agent to decide when and how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the optional 'topic' parameter. The description reiterates the valid topics and adds the behavior of omitting the topic to get the full guide, but this does not significantly enhance meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and clearly identifies the resource ('comprehensive usage guide for project-graph') and its content ('examples and best practices'). It distinguishes itself from sibling tools by positioning itself as the entry point for codebase analysis, navigation, or auditing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use the tool: 'Call this FIRST when planning how to analyze, navigate, or audit a codebase.' This gives clear context, though it does not mention alternatives or when not to use it, so it falls short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
graph_metadataC
Read and validate project-local graph metadata sidecar. Actions: get|validate
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Project root path | |
| action | Yes | Metadata action to perform | |
| metadata | No | For validate: metadata object to validate instead of reading the sidecar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavior. It indicates read/validate operations, implying no mutation, but fails to disclose error handling, return shape, or side effects. It does specify 'project-local' scope, but otherwise lacks transparency about validation criteria or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short phrases with no fluff. It front-loads the core purpose and action list, making it easily scannable and appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema and the presence of a nested metadata object, the description is too terse. It doesn't explain return values of get/validate, how the metadata parameter is used, or what 'validating' entails. A user cannot fully anticipate behavior from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already documents the three parameters. The description adds no new semantic detail beyond restating the action enum. Therefore the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs 'read' and 'validate' with the resource 'project-local graph metadata sidecar', and clearly enumerates the two actions 'get|validate'. It identifies scope with 'project-local', but doesn't explicitly contrast with sibling tools, so the purpose is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not state when to use this tool or provide alternatives. It lists actions but gives no guidance on choosing between get and validate, nor any conditions for when this tool is appropriate relative to other metadata tools. Usage is only implied by the action names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invalidate_cacheA
Invalidate the cached graph. Use after making code changes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It discloses the core action (invalidating the cached graph) but does not elaborate on side effects, what 'invalidate' means precisely (e.g., clearing vs. marking stale), or any persistence implications. For a simple cache invalidation tool, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the action ('Invalidate the cached graph') and includes a usage hint. There is no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description covers the essential aspects: what it does and when to use it. It could mention what happens after invalidation, but for this complexity level, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing to describe. The baseline for zero parameters is 4, and the description does not need to compensate for any missing parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Invalidate' and specific resource 'cached graph', clearly stating its action. It stands out from sibling tools like graph_metadata or analyze because no other tool mentions invalidation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use after making code changes', providing a clear context for when to invoke. It does not mention alternatives or exclusions, but the guidance is direct and unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jsdocC
JSDoc operations. Actions: check_consistency|check_types|generate
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | For generate: specific function name | |
| path | Yes | Path to scan | |
| files | No | For check_types: specific files | |
| action | Yes | JSDoc action to perform | |
| maxDiagnostics | No | For check_types: max diagnostics (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing side effects, safety, and behavioral traits. It only states 'JSDoc operations' and action names; it does not mention whether generate writes files, whether checks are read-only, or any potential side effects. This is a significant gap for a tool that likely mutates files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the purpose and lists actions compactly. It is efficient, though it could perhaps add a bit more context without bloating, but as written it is free of waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should compensate but does not. It fails to explain return values, side effects, or usage context for the three actions. For a tool with multiple modes, this minimal description is insufficient for an agent to invoke it correctly in varied scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for all parameters with descriptions, so the schema does the heavy lifting. The description only repeats the action list, which adds no new semantic meaning beyond what the schema already offers, such as the purpose of path or maxDiagnostics. Thus, baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as handling JSDoc operations and enumerates three specific actions (check_consistency, check_types, generate). This distinguishes it from sibling tools by domain, though it does not elaborate on what each action does beyond the action names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives or when to choose one action over another. It only lists actions without any context, prerequisites, or exclusions, leaving the agent to infer usage solely from the action names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_custom_ruleA
Add or update a custom code analysis rule. Creates ruleset if it does not exist.
| Name | Required | Description | Default |
|---|---|---|---|
| rule | Yes | Rule definition with id, name, description, pattern, patternType, replacement, severity, filePattern | |
| ruleSet | Yes | Name of ruleset (e.g., "symbiote", "react", "custom") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the side-effect of creating a ruleset if it does not exist, and 'Add or update' implies an upsert behavior. However, it does not mention whether existing rules are overwritten, permissions required, or what the return value or error states look like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action ('Add or update'), and includes the key side-effect. Every word earns its place, with no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple write tool with no output schema and no annotations, the description covers the main purpose and the ruleset-creation side-effect. However, it lacks detail on what happens on success/failure, whether rules are overwritten, and any validation behavior, which would be helpful for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, so the schema already documents ruleSet and rule. The tool description adds no additional meaning about how to format or use the parameters, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Add or update') and resource ('custom code analysis rule'), and adds the side-effect of creating a ruleset if needed. It is specific and distinct from sibling tools like get_custom_rules and check_custom_rules, which are read-only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for adding/updating rules but does not explicitly state when to use this tool versus the read-only sibling tools (e.g., get_custom_rules, check_custom_rules). The context of 'set' vs 'get'/'check' provides implied guidance, but no explicit exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testingC
Test checklist management. Actions: pending|pass|fail|summary|reset
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Path to scan (for pending, summary) | |
| action | Yes | Test action to perform | |
| reason | No | Failure reason (for fail) | |
| testId | No | Test ID (for pass, fail) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral disclosure burden. It fails to describe side effects (e.g., what 'reset' does), state whether the tool mutates or reads data, or clarify any permissions or return values. The actions are listed without explaining their behavioral consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: 'Test checklist management. Actions: pending|pass|fail|summary|reset' is front-loaded with the overall purpose and uses a compact list of actions. It wastes no words and is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 actions, 4 parameters) and the absence of annotations and output schema, the description is insufficient. It doesn't explain what each action does, how parameters relate to actions, or what the tool returns. The schema helps but the overall workflow is undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with each parameter (path, action, reason, testId) documented in the schema. The tool description adds no extra parameter meaning—it only lists action names, which are already in the schema's enum. Therefore, the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Test checklist management' and lists actions (pending|pass|fail|summary|reset), which conveys a general domain but lacks a specific verb+resource. It doesn't clearly state what the tool does with these actions (e.g., whether it updates statuses, lists tests, or generates reports). It also does not distinguish itself from sibling tools like 'filters' or 'analyze'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions. The action list gives a hint for usage, but there is no explicit 'when to use' or 'when not to use' information.
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.
19 tool updates
v2.4.3- First observed
analyze - First observed
check_custom_rules - First observed
compact - First observed
db - First observed
docs - First observed
filters - First observed
get_agent_instructions - First observed
get_ai_context - First observed
get_custom_rules - First observed
get_focus_zone - First observed
get_framework_reference - First observed
get_skeleton - First observed
get_usage_guide - First observed
graph_metadata - First observed
invalidate_cache - First observed
jsdoc - First observed
navigate - First observed
set_custom_rule - First observed
testing
TDQS
Each tool targets a distinct functional area: context provision, navigation, analysis, documentation, custom rules, testing, and caching. Even similar tools like get_skeleton and get_ai_context have clearly differentiated purposes (skeleton-only vs. full context), eliminating ambiguity.
Tool names mix single-word domain identifiers (docs, compact, db, jsdoc, navigate, analyze, testing, filters) with snake_case verb phrases (get_focus_zone, invalidate_cache, set_custom_rule). While descriptive, the lack of a uniform verb_noun or noun_verb pattern across all tools makes naming slightly inconsistent.
The 19 tools are slightly above the ideal 3-15 range, but the server's broad scope (code graph navigation, analysis, documentation, testing, custom rules, AI context) justifies the count. Each tool serves a clear purpose, and no tool feels redundant.
The tool set provides comprehensive coverage of codebase analysis and AI assistance: navigation, quality analysis, test tracking, documentation management, custom rules, and context generation. Minor gaps like a missing delete_custom_rule are workable and do not create dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Codebase intelligence for agents: 152 structured artifacts across 21 programs, one call.
Reduces AI Agent token usage by 40% via three-stage SOP workflow.
Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…
Memory that reasons: continual learning for stateful agents. Better context, fewer tokens.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceToken-optimized semantic code search with automatic context expansion for AI coding assistants, enabling efficient discovery of code relationships and reducing token usage.4MIT
- AlicenseBqualityBmaintenanceEnables LLMs to efficiently read, write, and refactor code using precise AST-based operations, reducing token usage and context window waste.25333MIT

Code Scalpelofficial
AlicenseNot gradedqualityCmaintenanceEnables AI assistants to surgically extract and analyze code, reducing token usage and costs by up to 200x compared to reading entire files.17MIT- AlicenseNot gradedqualityAmaintenancePersistent, compact project memory for AI coding agents, enabling them to read a small digest instead of re-scanning the codebase every session, saving tokens and costs.1732MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rnd-pro/project-graph-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server