CoordMCP
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., "@CoordMCPstart a new project with Python and React"
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.
CoordMCP - Multi-Agent Code Coordination Server
CoordMCP is a coordination server that helps multiple AI coding agents work together on the same project without conflicts.
Why CoordMCP?
When you use AI coding assistants (OpenCode, Cursor, Claude Code, Windsurf) on a project:
Lost decisions - The AI forgets what was decided in previous sessions
Inconsistent choices - Different sessions make different architectural decisions
No coordination - Multiple AI agents don't know what each other is doing
No history - There's no record of why certain decisions were made
CoordMCP solves this by giving your AI agents a shared brain that persists across sessions.
Related MCP server: junto-memory
How It Works
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ YOU │────▶│ AI AGENT │────▶│ CoordMCP │
│ │ │ │ │ Server │
└─────────────┘ └─────────────┘ └──────┬──────┘
│
▼
┌─────────────────┐
│ Shared Memory │
│ • Decisions │
│ • Tech Stack │
│ • File Locks │
└─────────────────┘You just talk to your AI agent normally. CoordMCP works automatically in the background:
Remembers decisions across sessions
Prevents file conflicts between agents
Provides architecture recommendations
Tracks all changes
Example
You say:
"Create a todo app with React and FastAPI"
CoordMCP automatically:
Discovers or creates the project
Registers your AI agent
Locks files before editing
Records "Use React" and "Use FastAPI" decisions
Tracks all created/modified files
Unlocks files when done
Next session: Your AI remembers you're using React and FastAPI.
Quick Start
Install
pip install coordmcp
coordmcp --versionConfigure Your Agent
Option 1: Using coordmcp CLI (recommended)
For most agents, add to your config file:
{
"mcpServers": {
"coordmcp": {
"command": "coordmcp",
"args": [],
"env": {
"COORDMCP_LOG_LEVEL": "INFO"
}
}
}
}Option 2: Using Python module
{
"mcpServers": {
"coordmcp": {
"command": "python",
"args": ["-m", "coordmcp"],
"env": {
"COORDMCP_LOG_LEVEL": "INFO"
}
}
}
}See integrations for specific setup instructions for each agent.
Test It
Restart your AI agent and say:
"What CoordMCP tools are available?"
Documentation
Audience | Start Here |
End Users | |
Developers | |
Contributors | |
Architecture Decisions |
User Guide
What is CoordMCP? - Overview and features
Installation - Install and configure
How It Works - Behind the scenes
Integrations
Developer Guide
API Reference - All 52 tools
Data Models - Data structures
Examples - Usage examples
Contributor Guide
Architecture - System design
Development Setup - Dev environment
Testing - Run and write tests
Extending - Add new features
Reference
Troubleshooting - Common issues
Configuration - All options
Architecture Decision Records - Design decisions
Features
Long-Term Memory
Your AI agent remembers decisions across sessions. If you chose React last week, it knows this week.
Multi-Agent Coordination
Multiple AI agents can work on the same project without conflicts through file locking.
Architecture Guidance
Design pattern recommendations without expensive LLM calls. 9 patterns available: MVC, Repository, Service, Factory, Observer, Adapter, Strategy, Decorator, CRUD.
Task Management
Create, assign, and track tasks across agents. Support for task dependencies, priorities, and completion tracking.
Agent Messaging
Enable communication between agents with direct messages and broadcast capabilities.
Health Dashboard
Monitor project health with comprehensive dashboards showing task progress, agent activity, and actionable recommendations.
Zero LLM Costs
All architectural analysis is rule-based - no external API calls needed.
Development
git clone https://github.com/yourusername/coordmcp.git
cd coordmcp
pip install -e ".[dev]"
python -m pytest src/tests/ -vLicense
MIT License - see LICENSE.
Available Tools
52 toolsanalyze_architectureA
RECOMMENDED: Analyze and understand the current project architecture.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
At the start of work on an existing project to understand the architecture
Before making significant architectural changes
To identify potential improvements or issues in the codebase
When onboarding to a new codebase
To get an overview of modules, dependencies, and complexity
THIS PROVIDES:
Overview of project structure and modules
Dependency analysis
Complexity metrics
Potential architectural issues
Recommendations for improvement
RECOMMENDED: Call this early when working on an existing project to understand the architectural landscape before making changes.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| project_name | No | Project name to look up (alternative to project_id) | |
| workspace_path | No | Workspace directory path (alternative to project_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of safety and side-effect disclosure. It describes what the tool provides (overview, metrics, recommendations) and the lookup priority, but never states whether it is read-only, its return format, or any limitations. 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 well-organized with clear sections and bullet points. It is slightly repetitive with 'RECOMMENDED' appearing both at the beginning and end, but every section earns its place and the content is front-loaded.
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 is fairly complete for a read-oriented analysis tool with no output schema. It explains what it provides and when to use it, but does not describe the exact response format or error behavior, which would be useful given the absence of an output schema.
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 already has 100% coverage with good descriptions for each parameter. The description adds value beyond the schema by explaining that any combination of identifiers works and specifying the priority order (project_id > workspace_path > project_name), which helps disambiguate behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes and understands project architecture, with a specific verb and resource. It lists concrete outputs (dependency analysis, complexity metrics), but does not explicitly differentiate from siblings like get_architecture_recommendation or validate_code_structure.
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?
A dedicated 'WHEN TO USE' section provides five clear scenarios, such as onboarding or before significant changes. It does not mention when not to use it or point to alternative tools, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_taskC
Assign a task to an agent.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID | |
| agent_id | Yes | Agent ID to assign | |
| project_id | Yes | Project ID | |
| requested_by_user | No | Whether this was explicitly requested by user |
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 of disclosing behavior. It only states the action without mentioning side effects, permission requirements, idempotency, or what happens to the task's previous assignee, leaving the agent uninformed about 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 single sentence is concise and front-loaded, containing no unnecessary words. However, it is minimal to the point of under-specification, but the conciseness itself is appropriate for the tool's apparent simplicity.
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?
With no annotations or output schema, the description should explain return values and side effects, but it does neither. The tool is a mutation with four parameters, and the description leaves the agent without enough context to use it safely or effectively.
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 covers all parameters with descriptions, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides, but the parameters are self-explanatory and the schema is sufficient.
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 'Assign a task to an agent' clearly states the action (assign), object (task), and recipient (agent), making it specific and distinguishable from related sibling tools like create_task and update_task_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as whether the agent must belong to the project or if it should be used before updating task status. There are no exclusions, prerequisites, or contextual hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
broadcast_messageC
Broadcast a message to all agents in a project.
Send a message to all agents working on the project.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Message content | |
| project_id | Yes | Project ID | |
| message_type | No | Type - request, update, alert, question, review | update |
| from_agent_id | Yes | Your agent_id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden of explaining side effects and behavioral implications. It only states 'Broadcast a message to all agents' without disclosing whether messages are persisted, notifications triggered, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, but the second sentence is a near-verbatim paraphrase of the first ('Broadcast a message to all agents' vs 'Send a message to all agents working on the project'). It adds no new information and should be removed for true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple messaging tool with fully documented schema, the description is adequate but thin. It lacks usage differentiation, behavioral caveats, and any context about message_type variations, making it minimally complete rather than thorough.
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 all parameters have basic descriptions in the schema. The tool description adds no additional parameter-level semantics, but the schema alone is adequate for understanding the inputs.
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 'Broadcast' and clearly identifies the resource: 'a message to all agents in a project.' This distinguishes it from sibling tools like send_message, which implies a single recipient. The second sentence is redundant but does not harm clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as send_message. There are no exclusions, prerequisites, or examples of appropriate scenarios. The description merely states what it does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_taskC
Mark a task as completed.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID | |
| agent_id | Yes | Agent completing the task | |
| project_id | Yes | Project ID | |
| completion_notes | No | Notes about completion |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose side effects, reversibility, permission requirements, or return behavior. It only states the intended action, offering no additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (five words) and front-loaded, but it is under-specified given the tool has 4 parameters and no additional context. It avoids verbosity but misses opportunities to add useful structural 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?
With no output schema and no annotations, the description must explain what happens on completion, whether notes are stored, and any state changes. The five-word description does none of this, making it inadequate for a tool with 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?
The input schema provides descriptions for all four parameters, achieving 100% coverage. The description adds no additional meaning beyond the schema, so the baseline score 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 'Mark a task as completed' clearly states the action (mark) and the resource (task) with the target state. However, it does not differentiate from the sibling tool 'update_task_status', which may serve a similar purpose, so it lacks 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 no guidance on when to use this tool versus alternatives like 'update_task_status' or 'delete_task'. It does not mention prerequisites, exclusions, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectA
MANDATORY STEP 1: Create a new project in the memory system before starting any work.
CRITICAL: You MUST call this tool FIRST before writing any code or creating files. This establishes the project in CoordMCP for tracking decisions, changes, and context.
WHEN TO USE:
Starting ANY new project or application
User says "Create a todo app", "Build an API", "Make a website", etc.
Beginning work in a new repository or codebase
Starting a new feature that deserves its own project tracking
WORKFLOW:
Call create_project() FIRST
Then register_agent()
Then start_context()
Then begin coding
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | Project description (optional but recommended) - What is this project for? | |
| project_name | Yes | Name of the project (required) - e.g., "Todo App", "User API", "Dashboard" | |
| project_type | No | Type of project - "webapp", "library", "api", "cli", "mobile" (optional) | |
| workspace_path | Yes | Absolute path to the project workspace directory (required) Example: "/home/user/projects/myapp" or "C:\Users\name\projects\myapp" | |
| recommended_workflows | No | List of recommended workflow names (optional) Examples: ["Test-first", "Review-then-Commit", "Feature-branch"] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits itself. It states the tool creates a project and is a prerequisite, but it does not mention side effects such as whether it overwrites existing projects, what happens on duplicate names, required permissions, or the response format. This is a significant gap for a mutation 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 well-structured with bold headings, bullet points, and a numbered workflow, making it easy to scan. However, there is slight redundancy: 'MANDATORY STEP 1' and 'CRITICAL: You MUST call this tool FIRST' convey the same urgency, and some phrases repeat.
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?
With no output schema and no annotations, the description should explain what the tool returns or how to interpret success, but it does not. It does provide rich workflow context and usage triggers, which helps, but it lacks details on return values, error handling, and prerequisites (e.g., whether workspace_path must exist).
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?
All five parameters have descriptions in the input schema (100% coverage), so the baseline is 3. The description does not add any parameter-specific details beyond the schema; it only mentions the tool name and general purpose.
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 and resource: 'Create a new project in the memory system' and 'establishes the project in CoordMCP for tracking decisions, changes, and context.' It clearly distinguishes from sibling read tools like get_project or list_projects by emphasizing creation.
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 'WHEN TO USE' section lists concrete triggers (e.g., 'Starting ANY new project or application', 'User says Create a todo app...') and the workflow explicitly says to call this tool first. However, it does not mention when NOT to use it or alternatives, only implicit differentiation from read tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_taskA
Create a new task in a project.
Use this to track work that needs to be done. Tasks can be assigned to agents, have dependencies, and be organized in a tree structure.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Task title (required) | |
| priority | No | Task priority - critical, high, medium, or low | medium |
| depends_on | No | List of task IDs this task depends on | |
| project_id | No | Project ID | |
| description | No | Task description | |
| project_name | No | Project name (alternative to project_id) | |
| related_files | No | List of file paths related to this task | |
| parent_task_id | No | Parent task ID for creating task branches | |
| workspace_path | No | Workspace path (alternative to project_id) | |
| estimated_hours | No | Estimated hours to complete | |
| requested_agent_id | No | Agent explicitly requested for this task |
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 behavioral context by mentioning that tasks can be assigned, have dependencies, and form a tree structure. However, it does not disclose side effects, permissions, or what the response includes, nor does it clarify behavior around project identification via the multiple possible fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core verb and object, and no wasted words. Each sentence adds meaningful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 11 parameters and no output schema, the description is minimal. It does not explain how to choose among project_id, project_name, and workspace_path, nor does it describe return values or error behavior. While the schema fills in parameter details, the tool-level context is incomplete 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?
The schema provides descriptions for all 11 parameters, so the baseline is 3. The description adds semantic value by grouping parameters into features (assigned agents, dependencies, tree structure), which helps the agent understand the intent behind those fields. This lifts it above the baseline, though it does not clarify all parameter relationships (e.g., project_id vs project_name vs workspace_path).
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 opens with a specific verb and resource ('Create a new task in a project'), which clearly distinguishes it from sibling tools like create_project, update_task_status, or delete_task. It also gives a concise summary of what the tool accomplishes.
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?
It provides a clear use case ('Use this to track work that needs to be done') and mentions key features (assignment, dependencies, tree) that imply when this tool is relevant. However, it does not explicitly name alternatives or state when not to use it, so it falls short of the highest score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_taskA
Delete (soft delete) a task.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Reason for deletion | |
| task_id | Yes | Task ID | |
| agent_id | Yes | Agent deleting the task | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It does disclose the important behavioral trait of being a soft delete, but it does not explain consequences such as whether the task remains visible, whether it can be restored, or any permission requirements. This is helpful but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that immediately conveys the operation and its soft-delete nature. There is no wasted text or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity of the tool (simple parameters, full schema coverage, no output schema), the description is minimally viable. However, it does not mention the return value or what happens after deletion, which would be useful given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all four parameters with 100% coverage, so the baseline is 3. The description adds no additional meaning about parameter usage or relationships beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('a task'), and explicitly qualifies it as a 'soft delete', which distinguishes it from task update or completion tools. This is a specific and unambiguous purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as update_task_status or complete_task. The description implies use when deletion is desired but does not explain how soft deletion differs from status changes or when it should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover_projectA
Discover a CoordMCP project by searching from a directory path.
ESSENTIAL FOR: Joining existing projects, auto-discovering context
This tool searches for a project associated with the given directory. It first checks for an exact match, then searches up to 3 parent directories.
WHEN TO USE:
Starting work in a project directory and want to see if it's tracked
Navigating to a subdirectory and finding the parent project
Auto-discovering projects when you don't know the project_id
First step when joining an existing project
WORKFLOW:
discover_project() - Find the project
register_agent() - Register yourself
get_project_info() - Get full project details
get_active_agents() - See who's working on it
start_context() - Begin working
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Directory path to search from (optional, defaults to current working directory) | |
| max_parent_levels | No | Maximum parent directories to search (default: 3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits on its own. It explains the search order ('first checks for an exact match, then searches up to 3 parent directories') and implies a read-only lookup, but it omits important details such as what happens when no match is found, the exact return format, and any potential side effects. 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 well-organized with clear section headers (ESSENTIAL FOR, WHEN TO USE, WORKFLOW) and bullet points, making it scannable. The content is relevant, though the WORKFLOW section could be considered slightly extraneous for describing this specific tool. Overall, it is concise and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema or annotations, so the description should explain return behavior and error cases. It covers usage context and workflow but does not describe what the tool returns (e.g., project details or an ID) or how it handles a missing project. This leaves gaps for a tool at this complexity level.
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%, providing baseline 3. The description adds meaning by explaining the search algorithm ('exact match', 'parent directories'), which enriches the understanding of the 'path' and 'max_parent_levels' parameters beyond their schema definitions. This additional context justifies a score of 4.
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: 'Discover a CoordMCP project by searching from a directory path.' It specifies the verb ('discover'), resource ('CoordMCP project'), and the search mechanism (directory path, exact match, parent search). This distinguishes it from sibling tools like get_project_info (which retrieves project details) and create_project.
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 includes a dedicated 'WHEN TO USE' section with concrete scenarios, such as 'Starting work in a project directory' and 'First step when joining an existing project.' It also provides a workflow that positions this tool as the initial step in a multi-tool process. However, it does not explicitly state when NOT to use the tool or name alternatives, which keeps it at a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
end_contextA
End your current work context and session.
WHEN TO USE:
At the end of a conversation or coding session
When you've completed the current objective
Before switching to a completely different task
When you want to release all file locks and close the session
IMPORTANT: This will:
Release all file locks you hold
Log the end of your session
Clear your current context
BEST PRACTICE: Always call this before ending a conversation to ensure clean state for the next session.
WORKFLOW:
Complete all work and log changes with log_change()
unlock_files() - Release all locked files
end_context() - End session (THIS STEP)
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Your agent_id from register_agent() (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It clearly discloses the main side effects: releasing file locks, logging session end, and clearing context. It could mention edge cases like errors or idempotency, but the listed effects are sufficient for an agent to understand the tool's impact.
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 well-structured with clear sections and front-loaded purpose. However, some redundancy exists—'End your current work context and session' and 'Clear your current context' repeat similar ideas, and the workflow repeats information from the best practice section.
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 fully covers when to use the tool, what it does, its side effects, and the recommended workflow. For a single-parameter session-close tool, this is complete and actionable.
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 already provides 100% coverage for the single required parameter (agent_id) with a clear description. The tool description does not add additional parameter semantics, 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 states a specific verb and resource: 'End your current work context and session.' It clearly distinguishes this from related session tools like start_context and switch_context by framing it as the terminal workflow step.
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 'WHEN TO USE' section lists explicit scenarios, and the 'WORKFLOW' section gives a clear ordered sequence: log_change(), unlock_files(), then end_context(). This is excellent guidance on when and how to use the tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_agentsA
Get information about active agents.
ESSENTIAL FOR: Understanding team activity and coordination
This tool shows which agents are currently working, optionally filtered by a specific project. Useful for understanding team activity and coordinating with other agents.
WHEN TO USE:
See all active agents across all projects
Check who's working on a specific project before joining
Monitor team activity and coordination opportunities
Find collaborators or check for potential conflicts
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Optional project ID to filter by | |
| project_name | No | Optional project name to filter by | |
| workspace_path | No | Optional workspace path to filter by |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It explains that the tool shows currently working agents with optional project filtering, but does not define 'active', mention the return format, or note potential side effects. 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 well-structured with clear sections and bullet points, making it scannable. However, it is somewhat repetitive, with 'ESSENTIAL FOR' and 'WHEN TO USE' covering overlapping territory, so it is not maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with three optional parameters and no output schema, the description provides adequate context about purpose, usage, and filtering. It does not explain the return value structure, but this is not critical given the tool's simplicity and the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description adds that filtering is by project, but does not clarify the differences between project_id, project_name, and workspace_path. Baseline of 3 applies since the schema already documents all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves information about active agents, with a specific verb and resource. However, it does not explicitly differentiate from sibling tools like get_agents_list or get_agents_in_project, so it misses the highest score for 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 'WHEN TO USE' section provides concrete scenarios and context for using the tool, such as checking who's working on a project. It does not mention when not to use it or alternatives, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_contextA
Retrieve your current work context and session information.
WHEN TO USE:
At the start of a conversation to check if you have an active context
To verify your current objective and project
To see what files you have locked
To understand what you were working on in a previous session
When resuming work after an interruption
RECOMMENDED: Call this at the beginning of each conversation to establish context and understand your current state in the system.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Your agent_id from register_agent() (required) |
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 retrieves current context and session info, including locked files and prior session state. However, it does not address edge cases such as missing context, invalid agent_id, or any potential side effects. The read-only nature is implied by 'Retrieve' but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a main sentence and a bulleted WHEN TO USE section. Each bullet adds a specific scenario, though the RECOMMENDED paragraph partially duplicates the bullets. It's concise and front-loaded.
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 one parameter and no output schema, the description covers the key use cases and recommended timing. It would benefit from noting what happens when no active context exists, but otherwise it's sufficient for an agent to understand when and why to call 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?
The schema already describes the sole parameter 'agent_id' as 'Your agent_id from register_agent() (required)' (100% coverage). The description adds no additional parameter semantics, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's function: 'Retrieve your current work context and session information.' It uses a specific verb and resource. While it doesn't explicitly contrast sibling tools, the WHEN TO USE section implies its scope (active context, locked files, previous sessions), which helps differentiate it from history/log tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit 'WHEN TO USE' list with concrete scenarios (start of conversation, verify objective, see locked files, resume after interruption). It also includes a recommendation to call at the beginning of each conversation. However, it does not mention when not to use or name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_profileA
Retrieve detailed profile information about a specific agent.
WHEN TO USE:
To check your own registration details and capabilities
To understand what another agent is working on
To verify an agent's identity and permissions
When coordinating work between multiple agents
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Agent ID from register_agent() (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. The use of 'Retrieve' implies a read-only operation, and the mention of 'identity and permissions' hints at the data scope. However, it does not explicitly state that the operation is non-destructive, nor does it describe error handling, authorization requirements, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear one-sentence purpose, followed by a focused WHEN TO USE list. Each bullet is concise and relevant, with no filler or redundant content.
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 a single parameter and no output schema, but the description does not specify what fields constitute 'detailed profile information' or the return shape. The scenarios are helpful for context, but the absence of return details leaves a gap given no output schema exists.
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 fully documents agent_id with 100% coverage, including the source from register_agent(). The description adds no meaningful parameter-specific details beyond the schema, so it meets the baseline for schema-covered parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Retrieve' with the resource 'detailed profile information about a specific agent', which clearly states the tool's function. It distinguishes from sibling list tools like get_agents_list by emphasizing 'specific agent'.
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 WHEN TO USE section explicitly lists four appropriate scenarios, such as checking registration details, understanding another agent's work, verifying identity and permissions, and coordinating between agents. However, it does not mention alternatives or when not to use, so it provides clear context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agents_in_projectA
Retrieve all agents currently active in a specific project.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
To check who else is working on this project right now
Before starting work to understand the current activity level
When coordinating multi-agent work
To see what other agents are focused on
USEFUL FOR: Multi-agent coordination and understanding project activity.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| project_name | No | Project name to look up (alternative to project_id) | |
| workspace_path | No | Workspace directory path (alternative to project_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It adds useful information about flexible lookup and the identifier priority (project_id > workspace_path > project_name). However, it does not state what happens if no identifiers are supplied, how 'active' is defined, or the exact return format, leaving some ambiguity for a tool that relies entirely on optional parameters.
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 well-structured with a clear summary, priority rule, and a bulleted 'WHEN TO USE' section. It is moderately sized but every section contributes to understanding the tool's purpose and usage without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple read-only nature and three optional parameters, the description covers the main usage intent, resolution priority, and practical scenarios. It lacks details on edge cases (e.g., no parameters, no matching project) and return value format, but since no output schema exists, these omissions are noticeable yet not critical for a tool of this 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?
Schema coverage is 100%, with each parameter already described. The description adds meaningful value by explaining that parameters can be combined freely and establishing the priority order for resolution, which goes beyond the individual field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Retrieve all agents currently active in a specific project.' It specifies a concrete verb ('retrieve'), a resource ('agents'), and a scope ('in a specific project'), which distinguishes it from siblings like get_active_agents or get_agents_list that may operate globally or in a different 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 'WHEN TO USE' section provides clear scenarios: checking who is working on a project, coordinating multi-agent work, etc. It does not explicitly name alternative tools or provide exclusions, but the context is unambiguous and helps the agent decide when this tool is appropriate versus broader agent-listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agents_listA
Retrieve a list of all registered agents and their current status.
WHEN TO USE:
At the start of work to see who else is working on this project
To check if other agents are currently active
To understand the capabilities of other agents in the system
When coordinating multi-agent work
To see the history of agents that have worked on this project
USEFUL FOR: Multi-agent coordination and understanding the project's agent ecosystem.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by agent status (optional) - "active", "inactive", "deprecated", or "all" (default) | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden of behavioral disclosure. It implies read-only via 'Retrieve' and describes the output (list of agents and status), but it does not explicitly confirm safety or side-effect-free behavior. For a simple read tool this is adequate but not exceptional.
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 front-loaded with the core purpose, followed by a 'WHEN TO USE' list that adds practical guidance. It is well-organized and avoids unnecessary fluff, though some bullets in the list are slightly redundant (e.g., 'see who else is working' and 'check if other agents are currently active').
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 (one optional param, no output schema), and the description adequately explains the return content ('list of all registered agents and their current status') and key usage contexts. It does not detail edge cases like pagination, but for this scope the description 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 input schema already provides 100% coverage for the single optional `status` parameter, including default and allowed values. The description does not add new semantic information about parameters beyond what the schema states, 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 purpose: 'Retrieve a list of all registered agents and their current status.' The verb 'Retrieve' specifies the action, and the resource is explicitly 'all registered agents,' distinguishing it from sibling tools like get_agents_in_project and get_active_agents which likely filter by project or active status.
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 'WHEN TO USE' section provides concrete scenarios such as starting work, checking active agents, and coordinating multi-agent work. It lacks explicit exclusions or named alternatives (e.g., 'use get_agents_in_project for project-specific agents'), but the context is clear enough for an agent to select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_architecture_recommendationA
RECOMMENDED: Get expert architectural guidance before implementing major features.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
Before implementing significant new features or capabilities
When you're unsure about the best architectural approach
For complex features that affect multiple parts of the system
When choosing between different implementation strategies
To ensure consistency with existing architecture
Before making structural changes to the codebase
HIGHLY RECOMMENDED FOR:
New major features
Significant refactoring efforts
Integration with external systems
Changes to core architecture
Performance-critical implementations
THIS PROVIDES:
Recommended approach and design patterns
File structure and organization suggestions
Technology and library recommendations
Implementation steps and considerations
Rationale for the recommendations
AFTER RECEIVING RECOMMENDATIONS:
Review the suggested approach
Save the decision with save_decision() if you adopt the recommendation
Implement following the suggested structure
Update architecture tracking with update_architecture()
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Additional context - requirements, constraints, preferences (optional) | |
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| constraints | No | List of constraints - e.g., ["must use PostgreSQL", "must be stateless"] (optional) | |
| project_name | No | Project name to look up (alternative to project_id) | |
| workspace_path | No | Workspace directory path (alternative to project_id) | |
| feature_description | Yes | Clear description of what you're building (required) - e.g., "User authentication system with JWT tokens" | |
| implementation_style | No | Preferred approach - "modular", "monolithic", or "auto" (default: "modular") | modular |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses project lookup priority (project_id > workspace_path > project_name), the nature of the output (recommendations, design patterns, file structure, etc.), and next steps after receiving recommendations. This goes beyond the schema and provides meaningful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the key purpose but is quite lengthy, including redundant 'WHEN TO USE' and 'HIGHLY RECOMMENDED FOR' sections. While organized in clear sections, it could be condensed without losing meaning.
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?
With no output schema and no annotations, the description compensates by listing what the tool provides (recommended approach, design patterns, implementation steps) and giving post-usage steps. It covers the essential context for using the tool, though it omits potential error 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?
Schema coverage is 100% with all 7 parameters described. The description adds the identifier priority order and the role of feature_description, which clarifies how parameters should be used together, exceeding the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get expert architectural guidance before implementing major features' with a specific verb and resource. However, it doesn't explicitly differentiate from sibling tools like analyze_architecture or get_design_patterns, so it falls short of full differentiation.
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 'WHEN TO USE' and 'HIGHLY RECOMMENDED FOR' sections provide explicit contexts such as before major features, when unsure about approach, and for complex features. It lacks explicit when-not-to-use or named alternatives, 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_context_historyA
Retrieve your recent file operation history and context entries.
WHEN TO USE:
To review what files you've recently worked on
To understand the sequence of operations in your current session
When you need to remember what you did earlier in the conversation
To track the evolution of your work
USEFUL FOR: Understanding your recent activity and maintaining continuity.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of history entries to retrieve (default: 10) | |
| agent_id | Yes | Your agent_id from register_agent() (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must disclose behavioral traits. It indicates the tool returns history/context entries and references 'current session' continuity, but it doesn't describe ordering, time range, or whether entries are cross-session, leaving some 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 brief and well-structured with a short lead-in and a bulleted 'WHEN TO USE' list. It avoids fluff, though the bullets could be seen as somewhat redundant; overall it earns its place.
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 fetch tool without an output schema, this description supplies the essential purpose and usage conditions. It doesn't explain return format or potential differences from sibling tools, but it's enough for basic selection and invocation.
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 covers both parameters ('agent_id' required, 'limit' default 10) with descriptions, so the schema provides the meaning. The description adds no extra parameter context beyond that.
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 'Retrieve your recent file operation history and context entries' with a clear verb and resource. It narrows the scope to 'your recent' history, making it distinct from general project history, though it doesn't explicitly distinguish from siblings like get_recent_changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated 'WHEN TO USE' section lists concrete scenarios like reviewing recently worked files and understanding operation sequences. This provides useful context for when to invoke the tool, but no explicit alternatives or when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_design_patternsA
Browse the catalog of available design patterns and architectural approaches.
WHEN TO USE:
When designing new features and considering architectural patterns
To learn about different design approaches and their use cases
When evaluating which pattern fits your current requirements
To understand best practices for common problems
As reference when making architectural decisions
USEFUL FOR: Understanding available architectural patterns and when to apply them.
Returns: Dictionary with catalog of design patterns including descriptions and best use cases
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 implies a read-only operation through 'Browse' and 'Returns: Dictionary', and discloses the return format. It does not mention side effects, but none are expected for a catalog lookup.
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 well-structured with headers but contains redundancy: the 'WHEN TO USE' bullets largely overlap with 'USEFUL FOR'. It could be condensed without losing meaning, but the organization aids scanning.
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 zero-parameter, simple catalog tool, the description comprehensively covers purpose, use cases, and return value. Since there is no output schema, the explicit 'Returns: Dictionary' note is valuable and 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 and schema coverage is 100%, so parameter descriptions are unnecessary. The baseline for 0-param tools is 4, and the description adds no conflicting or missing 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 clearly states 'Browse the catalog of available design patterns and architectural approaches' with a specific verb and resource. It distinguishes itself from sibling tools like analyze_architecture and get_architecture_recommendation by focusing on a reference catalog rather than analysis or recommendation.
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 an explicit 'WHEN TO USE' list covering design, learning, evaluation, best practices, and architectural decisions. It lacks explicit exclusions or alternatives, but the context is clear and sufficient for this simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_dependenciesA
Analyze file dependencies to understand the impact of changes.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
Before modifying a file to see what else might break
When refactoring to understand the ripple effects
To find all files affected by a bug fix
To understand the codebase architecture and relationships
When deleting files to ensure nothing depends on them
To identify circular dependencies
IMPORTANT: This helps prevent breaking changes and understand refactoring impact. Always check dependencies before making significant modifications.
DIRECTIONS:
"dependencies": What this file imports/uses (downstream)
"dependents": What imports/uses this file (upstream) - USE THIS BEFORE DELETING
"both": Complete dependency graph in both directions
| Name | Required | Description | Default |
|---|---|---|---|
| direction | No | Direction to analyze - "dependencies", "dependents", or "both" (default: "dependencies") | dependencies |
| file_path | Yes | Path of the file to analyze (required) - e.g., "src/auth.ts" | |
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| project_name | No | Project name to look up (alternative to project_id) | |
| workspace_path | No | Workspace directory path (alternative to project_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behavior: the direction parameter semantics ('dependencies': What this file imports/uses, 'dependents': What imports/uses this file) and the project lookup priority (project_id > workspace_path > project_name). It does not explicitly state that the operation is read-only, but the verb 'Analyze' implies it. Could add return format or potential errors, but it's not misleading.
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 well-structured with clear sections (WHEN TO USE, IMPORTANT, DIRECTIONS) and front-loaded with a one-sentence summary. It's slightly long but each section earns its place. The 'IMPORTANT' sentence somewhat restates the value proposition, making it mildly redundant, but overall it is scannable and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema and no annotations, the description does a good job covering the tool's purpose, usage scenarios, direction semantics, and project lookup. The only gap is not describing the exact return format (e.g., list of paths vs. graph), but the phrase 'Complete dependency graph' hints at the output. For a 5-parameter tool, this is reasonably 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?
While the input schema covers 100% of parameters, the description adds essential meaning beyond the schema. For example, the schema only lists 'dependencies', 'dependents', or 'both' for direction, but the description explains what each means in terms of downstream/upstream. It also clarifies how project_id, workspace_path, and project_name resolve, which the schema does not.
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 opens with a specific verb and resource: 'Analyze file dependencies to understand the impact of changes.' It clearly distinguishes itself from sibling tools by focusing on dependency analysis and even clarifies the direction parameter (dependencies vs. dependents vs. both), leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated 'WHEN TO USE' section lists concrete scenarios such as 'Before modifying a file to see what else might break' and 'When deleting files to ensure nothing depends on them.' This explicitly tells the agent when to invoke this tool, effectively differentiating it from alternatives like analyze_architecture or get_module_info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_locked_filesA
Check which files are currently locked and by whom.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
Before planning your work to see what files are unavailable
When you encounter conflicts and need to understand the situation
To coordinate with other agents working on the same project
To check if a specific file is available for editing
USEFUL FOR: Understanding the current state of file locks and planning your work accordingly.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| project_name | No | Project name to look up (alternative to project_id) | |
| workspace_path | No | Workspace directory path (alternative to project_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It clearly states the read-only nature ('Check') and provides the project resolution priority order (project_id > workspace_path > project_name). It does not describe output format in detail, but the returned information ('which files...and by whom') is adequately conveyed.
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 well-structured with a clear opening, a concise priority note, and a bulleted 'WHEN TO USE' section. It is slightly longer than necessary, but each section adds value and the text is not wasteful.
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 read-only lookup tool with three optional parameters and no output schema, the description is largely complete. It explains the core function, usage scenarios, and identifier resolution. It could be improved by explicitly noting that the tool does not modify locks or require authentication, but the overall context is sufficient 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?
Although schema description coverage is 100%, the description adds valuable parameter semantics by explaining that any combination of identifiers can be used and by specifying the resolution priority. This goes beyond the individual field descriptions and helps the agent understand how to flexibly construct queries.
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 opens with a specific verb+resource: 'Check which files are currently locked and by whom.' This clearly distinguishes it from sibling tools like lock_files and unlock_files, which perform different actions on file locks.
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?
A dedicated 'WHEN TO USE' section lists multiple concrete scenarios, such as before planning work or when encountering conflicts. It does not explicitly mention when not to use the tool or alternatives, but the provided contexts are 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_messagesB
Get messages for an agent.
Retrieve messages sent to you by other agents.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum messages to return | |
| agent_id | Yes | Your agent_id | |
| project_id | No | Project ID (or use project_name/workspace_path) | |
| unread_only | No | Only get unread messages | |
| project_name | No | Project name to look up | |
| workspace_path | No | Workspace path to look up |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It mentions the scope (messages from other agents) but does not disclose whether the tool marks messages as read, ordering, pagination, or any side effects. The description does not even explicitly state it is a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise, consisting of two short sentences. It front-loads the core purpose immediately and contains 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?
The tool has six parameters and no output schema, yet the description gives almost no context about return format, filtering behaviors, or default semantics. It does not explain what fields are returned, how messages are ordered, or how 'limit' and 'unread_only' interact. The description is too sparse for an effective agent invocation.
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, so baseline is 3. The description adds no additional meaning to parameters; it only restates the concept of 'messages sent to you' which aligns with 'agent_id'. No parameter-specific insights are provided.
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: retrieving messages sent to you by other agents. It uses a specific verb ('Get'/'Retrieve') and resource ('messages'), and distinguishes itself from sibling tools like 'get_sent_messages' by specifying the direction (incoming).
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 when not to use it. Sibling tools like 'send_message', 'get_sent_messages', and 'mark_message_read' exist but are not referenced. The context of use is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_module_infoA
Retrieve comprehensive information about a logical module in the project.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
To understand the structure and purpose of a specific module
Before working on a module to see its responsibilities and files
To check module dependencies and avoid circular dependencies
When planning module refactoring or restructuring
To understand the relationship between modules
USEFUL FOR: Getting a high-level view of a specific component or subsystem.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| module_name | Yes | Name of the module (required) - e.g., "auth", "database", "ui" | |
| project_name | No | Project name to look up (alternative to project_id) | |
| workspace_path | No | Workspace directory path (alternative to project_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the lookup priority (project_id > workspace_path > project_name) and mentions flexible project resolution, which adds behavioral context. However, it does not explicitly state that the operation is read-only, what 'comprehensive information' includes, or potential error conditions, leaving significant gaps for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a lead sentence, a priority line, a WHEN TO USE list, and a USEFUL FOR line. It is not excessively long, and the sections make it easy to scan. The 'flexible project lookup' paragraph is somewhat redundant with the priority line but still adds context, so it earns a 4 rather than a 5.
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?
With no output schema and no annotations, the description should explain what the agent will receive. It only says 'comprehensive information' and 'high-level view' without listing fields or return structure. It also does not mention prerequisites like the project existing. This is a critical gap for an agent to know what to expect from the 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 already describes all parameters (100% coverage), so baseline is 3. The description adds value by explaining the interaction between identifiers, stating that any combination can be specified and that priority is project_id > workspace_path > project_name. It also clarifies that module_name is required and gives an example, going beyond the schema's individual field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Retrieve comprehensive information about a logical module in the project.' This is a specific verb+resource, and it differentiates from sibling tools like get_project_info by focusing on modules. The 'USEFUL FOR' line reinforces this by describing it as getting a high-level view of a component or subsystem.
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 'WHEN TO USE' section provides five concrete scenarios, such as before working on a module and checking dependencies. While it doesn't explicitly mention alternatives or when not to use, the context is clear. The tool's distinct module focus effectively implies when a project-level tool like get_project_info would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_tasksB
Get all tasks assigned to an agent.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status | |
| agent_id | Yes | Agent ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states a basic read action, omitting whether it returns tasks regardless of status, whether status filters apply by default, or whether 'my' means the current agent. This creates ambiguity about behavior and could lead to incorrect expectations.
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 the core function with no wasted words. It is appropriately sized for a simple getter tool.
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 two-parameter read tool, the description gives the basic function, but gaps remain: it does not clarify the 'my' vs 'any agent' ambiguity, default status behavior, or what the output set looks like. No annotations or output schema exist, so the description should do more, but it is not severely incomplete.
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 parameters are documented, but the descriptions in the schema are minimal ('Agent ID', 'Filter by status'). The description adds context that agent_id is the assignee, but does not explain valid status values or default behavior. This is baseline 3, with modest added 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 clearly states the verb (Get), resource (all tasks), and qualifier (assigned to an agent), which distinguishes it from get_task (single task) and get_project_tasks (by project). However, it does not explicitly differentiate itself from those siblings or clarify whether 'my' refers to the calling agent or any specified agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: use this tool to get tasks for a given agent. But there is no explicit guidance on when to prefer this over get_project_tasks or get_task, nor any mention of alternatives or exclusions. A more concrete 'use this when you need tasks by assignee' would be clearer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectA
Get project information by ID, name, or workspace path.
ESSENTIAL FOR: Flexible project lookup when you have partial information
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
You know the project_id and want full details
You only know the project name
You have the workspace path and want to find the project
Validating that multiple identifiers point to the same project
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Project ID (e.g., "proj-abc-123") | |
| project_name | No | Project name (e.g., "My App") | |
| workspace_path | No | Workspace directory path (e.g., "/home/user/projects/myapp") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosure. It adds useful behavioral context about resolution priority and the ability to combine identifiers, but does not mention whether the operation is read-only, what happens if no match is found, or any authorization requirements. This is a moderate 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 well-structured with clear sections (ESSENTIAL FOR, WHEN TO USE) and the priority line is front-loaded. Every sentence contributes either to understanding the purpose or usage, with no waste. It remains concise despite covering multiple scenarios.
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 lookup tool with 3 optional parameters and no output schema, the description provides sufficient context on usage and resolution behavior. It lacks details about return format and error handling, but these are less critical given the tool's simplicity and the presence of sibling tools that may handle related concerns.
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 baseline is 3. The description adds value beyond the schema by explaining the precedence (project_id > workspace_path > project_name) and the flexibility to combine any identifiers, which are not evident from the parameter descriptions alone.
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 a specific action ('Get project information') and the resource ('project') with multiple identifier options. It distinguishes itself from siblings by emphasizing 'flexible project lookup' with partial information, but it does not explicitly name or contrast with the sibling get_project_info, so it falls short of full sibling differentiation.
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 'WHEN TO USE' section provides concrete scenarios (knowing ID, name, or workspace path, and validating identifiers), and the priority order gives clear guidance on how identifiers are resolved. It does not explicitly state when not to use the tool or name alternatives, so it lacks full exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_dashboardA
Get comprehensive project health dashboard.
Provides a complete overview of project status including health score, task statistics, agent activity, file locks, and actionable recommendations.
WHEN TO USE:
To check overall project health
To see what needs attention
To monitor team progress
To identify bottlenecks
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Project ID | |
| project_name | No | Project name to look up | |
| workspace_path | No | Workspace path to look up |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It discloses the main content of the dashboard (health score, tasks, agent activity, locks, recommendations), which helps the agent expect the response shape. However, it does not explicitly state whether it is read-only, whether it aggregates data from other tools, or any potential side effects or limitations. The listed contents add some transparency, but the absence of a 'does not modify data' statement leaves a gap for a tool with no annotation coverage.
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 well-structured and front-loaded: a clear title, a brief summary paragraph, and a bulleted WHEN TO USE list. There is minor redundancy between 'Get comprehensive project health dashboard' and 'Provides a complete overview of project status', but overall the content is efficient and scannable, earning a high score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool aggregates multiple data types and lacks an output schema, the description does a good job of listing the key return categories: health score, task statistics, agent activity, file locks, and recommendations. It does not cover edge cases like parameter precedence or error scenarios, but for a dashboard overview tool, the content is sufficient for an agent to anticipate the tool's value and select it appropriately.
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% (project_id, project_name, workspace_path), each with simple descriptions like 'Project ID' and 'Project name to look up'. The tool description adds no additional parameter semantics, such as whether the parameters are alternatives or how conflicts are resolved. With high schema coverage, a baseline of 3 is appropriate, as the schema already defines the parameters adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a 'comprehensive project health dashboard' and enumerates specific content: health score, task statistics, agent activity, file locks, and recommendations. It distinguishes from sibling tools like get_project_info or get_project_tasks by being a composite dashboard of multiple aspects, rather than a single-purpose lookup.
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 an explicit 'WHEN TO USE' list covering four common scenarios: checking project health, seeing what needs attention, monitoring team progress, and identifying bottlenecks. It does not include when-not-to-use or alternative tool suggestions, so it stops short of a perfect score, 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_project_decisionsA
Retrieve all recorded architectural and technical decisions for a project.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
Before making new technical decisions to see what was already decided
When you're unsure about the project's architectural direction
To understand why certain patterns or technologies are used
Before contradicting an existing approach - check if there's already a decision
When joining an existing project to understand its evolution
RECOMMENDED: Call this at the start of work to understand the project's decision history. This prevents you from unknowingly contradicting previous architectural choices.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Filter by specific tags - e.g., ["database", "security"] (optional) | |
| status | No | Filter by status - "active" (current), "archived" (old), "superseded" (replaced), or "all" (default) | all |
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| project_name | No | Project name to look up (alternative to project_id) | |
| workspace_path | No | Workspace directory path (alternative to project_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations were provided, the description carries the full burden of behavioral disclosure. It adds valuable context about flexible project lookup and the priority order (project_id > workspace_path > project_name), which goes beyond the schema. It does not detail the return format or error behavior, but the read-only nature is implied by 'retrieve'.
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 well-structured and concise. It opens with the single-sentence purpose, then adds a brief note on flexible lookup, a priority line, and a focused WHEN TO USE section. Every sentence serves a clear purpose, and the structure makes it easy to scan.
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?
With 5 parameters, no output schema, and no annotations, the description covers the main use cases, identifier resolution, and priority ordering well. It doesn't explain the response structure or edge cases (e.g., what if no decisions exist), but the purpose and usage context are strong enough for most agent 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 schema covers 100% of parameters with descriptions, so baseline is 3. The description adds extra meaning by explaining that identifiers can be used in any combination and resolving priority, which enhances understanding of how the parameters relate. This is meaningful value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves all recorded architectural and technical decisions for a project, which is a specific verb+resource combination. It distinguishes itself from sibling tools like save_decision (write) and search_decisions (search) by emphasizing 'all recorded' decisions.
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 WHEN TO USE section provides concrete scenarios (before making new decisions, understanding architectural direction, checking for contradictions) and a strong recommendation to call it at the start of work. However, it does not explicitly mention when NOT to use it or alternatives like search_decisions, so it stops short of full exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_infoA
Get comprehensive information about a project from CoordMCP memory.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
Before starting work to understand project context and history
To check existing tech stack and architectural decisions
To see recent changes made by other agents
When resuming work on an existing project
To understand the project structure before making changes
This retrieves: project metadata, tech stack, recent decisions, file dependencies, and change history.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| project_name | No | Project name to look up (alternative to project_id) | |
| workspace_path | No | Workspace directory path (alternative to project_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes on the full burden of explaining behavior. It discloses the flexible lookup mechanism and priority order among parameters, as well as what information is returned. It does not mention error cases or side effects, but for a read-only tool the disclosed detail is sufficient and goes beyond the schema.
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 well-structured with clear sections and front-loaded with the main purpose. It is a bit longer than strictly necessary, but each sentence contributes useful information, and the structured format aids scannability.
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 and absence of annotations or output schema, the description adequately covers the lookup logic, usage timing, and the nature of returned data. It does not describe the exact return format or error handling, but the provided context is enough for an agent to decide when and how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all three parameters with descriptions, so the baseline is 3. The description adds value by explaining the combination semantics and the priority order (project_id > workspace_path > project_name), which is not explicit in the schema itself.
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 ('Get') and resource ('comprehensive information about a project'). It distinguishes itself from sibling tools by listing the range of data retrieved (metadata, tech stack, decisions, file dependencies, change history), setting it apart from the more specific getters like get_project_tasks or get_tech_stack.
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 'WHEN TO USE' section provides concrete contexts for using the tool, such as before starting work or resuming a project. However, it does not explicitly mention when not to use it or cite alternative tools for narrower queries, so it stops 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.
get_project_onboarding_context_toolA
Get comprehensive onboarding context when entering a project.
Returns a complete 'situation report' including project info, recent activity, active agents, key decisions, and personalized context for the agent.
WHEN TO USE:
When entering a project to understand the current state
Before starting work to see what others are doing
When returning to a project after some time
To get a full overview of project context
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Your agent_id from register_agent() | |
| project_id | Yes | Project ID to get context for |
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 content returned (project info, recent activity, active agents, key decisions, personalized context) but does not explicitly state that the operation is read-only, mention prerequisites (e.g., active registration), or address potential side effects. The name 'get' implies read, but the absence of explicit safety statements keeps it from achieving a higher score.
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 and well-structured. It opens with a clear purpose statement, follows with a one-sentence summary of the return content, and ends with a bulleted 'WHEN TO USE' list. Every sentence earns its place with no redundant or vague 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 complexity (returns multiple categories of context) and the absence of an output schema, the description provides a solid high-level overview of what to expect. However, it does not detail the exact structure of the response, potential errors, or any dependencies between parameters. Still, it covers the key content areas and use cases adequately for an agent to decide whether 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 description coverage is 100%, so the input schema already fully documents both parameters (agent_id and project_id). The description adds no additional semantic detail about the parameters beyond what the schema provides, such as formats, defaults, or constraints. Baseline of 3 is appropriate when schema does the heavy lifting.
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 comprehensive onboarding context when entering a project.' It specifies the resource (project context) and the action (get), and distinguishes from siblings like get_project_info or get_project_dashboard by mentioning the 'complete situation report' with specific content categories (project info, recent activity, active agents, key decisions).
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 a clear 'WHEN TO USE' section with specific scenarios: entering a project, before starting work, returning after time, and getting a full overview. This gives strong contextual guidance. It does not explicitly mention when not to use the tool or name alternative tools, but the use cases are clearly delineated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_tasksC
Get all tasks for a project.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status | |
| project_id | No | Project ID | |
| project_name | No | Project name | |
| workspace_path | No | Workspace path | |
| assigned_agent_id | No | Filter by assigned agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only restates the action. It does not mention return format, whether tasks of all statuses are included, pagination, ordering, or any side effects. The description adds no transparency beyond the tool's name.
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, clear sentence with no unnecessary words. It is appropriately concise and front-loaded, fulfilling the conciseness requirement perfectly.
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 5 optional parameters and no output schema, the description is insufficient. It does not explain the return value, the need for at least one project identifier, or how filtering parameters combine. The ambiguity between project_id, project_name, and workspace_path leaves the tool incomplete for an agent to invoke correctly without additional 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?
Schema coverage is 100%, so parameter names and basic descriptions exist. However, the relationship between project_id, project_name, and workspace_path is unclear, and the description does not clarify whether these are alternatives or required fields. The tool description adds no value beyond the schema, and the schema itself is ambiguous about parameter interplay.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('all tasks') with a scope ('for a project'), making the primary purpose understandable. However, it does not differentiate from similar sibling tools like get_my_tasks or get_task, so it misses the distinction that would warrant a 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?
There is no guidance on when to use this tool over alternatives such as get_my_tasks or get_project_dashboard, nor any clarification on how the various project identifiers (project_id, project_name, workspace_path) relate. The description provides no context for choosing this tool or what distinguishes it from others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_changesA
Retrieve recent changes made to a project for context and continuity.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
At the start of a session to see what was recently worked on
Before making changes to understand the current state
To check if another agent has been working on the same files
To review the evolution of the codebase
After being away from the project for a while
To identify patterns in recent development
RECOMMENDED: Call this when resuming work or joining an active project to understand recent activity and avoid conflicts.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of recent changes to retrieve (default: 20) | |
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| project_name | No | Project name to look up (alternative to project_id) | |
| workspace_path | No | Workspace directory path (alternative to project_id) | |
| architecture_impact_filter | No | Filter by impact level (optional) - "all", "none", "minor", or "significant" | all |
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 does disclose a key behavioral trait: the identifier resolution priority (project_id > workspace_path > project_name). However, it does not describe what the returned changes look like (since no output schema exists), error behavior, or whether the changes are scoped to the current session. The read-only nature is implicit but not explicitly stated.
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 well-structured with clear sections (opening statement, lookup behavior, priority, WHEN TO USE, RECOMMENDED). It is relatively concise for the amount of guidance it provides, though the WHEN TO USE list has some thematic redundancy (e.g., 'At the start of a session' and 'After being away' overlap). The main purpose is front-loaded.
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 moderate complexity (5 optional parameters, no output schema), the description covers the lookup and usage guidance well. However, it does not explain the structure or contents of the returned 'recent changes' list, nor does it describe the architecture_impact_filter parameter in more detail beyond the schema. An agent would still need to infer what fields each change includes, which is a notable gap.
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 covers all 5 parameters with descriptions (100% coverage). The description adds value by explaining how the project identifiers interact: the priority order for resolution. This goes beyond the individual parameter descriptions and helps the agent understand which parameters to provide and how they are handled when combined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Retrieve recent changes made to a project for context and continuity.' It uses a specific verb and resource. It also describes flexible project lookup with identifier priority, which helps define its scope. However, it does not explicitly distinguish this from sibling tools like get_project_info or get_context_history, though the WHEN TO USE list provides some differentiation.
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 includes a dedicated 'WHEN TO USE' section with six concrete scenarios (e.g., 'At the start of a session', 'Before making changes', 'To check if another agent has been working on the same files') and a strong 'RECOMMENDED' call for resuming work. This gives explicit context for usage, but it lacks explicit when-not-to-use guidance or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sent_messagesA
Get messages sent by an agent.
View messages you've sent to others.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum messages to return | |
| agent_id | Yes | Your agent_id | |
| project_id | No | Project ID | |
| project_name | No | Project name to look up | |
| workspace_path | No | Workspace path to look up |
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 accurately describes a read-only operation (get sent messages) with no side effects or surprises. It clarifies that the messages are ones 'you've sent to others,' which is useful context. The slight ambiguity between 'an agent' and 'you' is resolved by the second sentence and the schema's 'Your agent_id' parameter.
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 (two sentences) and front-loaded with the key verb and resource. However, the two sentences are slightly redundant ('Get messages sent by an agent' and 'View messages you've sent to others' essentially repeat the same idea). Still, it is efficient and contains no fluff.
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 read tool with no output schema, the description adequately implies the return value (messages). It does not explain interaction between the 5 parameters (e.g., how project filtering works), but the schema already covers those details. It is complete enough for an agent to invoke 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 baseline is 3. The description does not add any parameter-specific semantics beyond what the schema already provides. The meaning of agent_id, limit, and project filters is fully defined in the schema, so the description's lack of parameter detail is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get messages sent by an agent' and 'View messages you've sent to others.' This uses a specific verb (get/view) and a resource (sent messages) with clear scope, distinguishing it from siblings like get_messages (which likely returns all messages).
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 clear context for when to use the tool—when you need to view messages you've sent. It implies exclusion of received messages, though it does not explicitly name alternative tools like get_messages. This is clear enough for an agent to select appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_logA
Retrieve your complete session log with events and activities.
WHEN TO USE:
To review the full history of your current and past sessions
To understand when contexts were started, switched, or ended
To track the duration and details of your work sessions
For debugging or understanding session state
USEFUL FOR: Getting a comprehensive view of your session activity and timeline.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of log entries to retrieve (default: 50) | |
| agent_id | Yes | Your agent_id from register_agent() (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It claims 'complete session log' and 'full history' but the limit parameter (default 50) caps results, creating an internal contradiction. It also fails to disclose read-only nature, ordering, or pagination behavior, which is essential for a retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses clear headings and bullet points for readability. It is somewhat verbose with the 'USEFUL FOR' line largely repeating the 'WHEN TO USE' content, but the structure is effective and not overly long.
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 retrieval tool with no output schema, the description gives useful high-level context about the contents (events, activities, durations). However, it omits specifics like return format, ordering, and the effect of the limit parameter, making it only partially 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?
Schema description coverage is 100%, so both 'agent_id' and 'limit' are already well-documented. The tool description adds no extra parameter-specific meaning, so 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 starts with a specific verb ('Retrieve') and resource ('your complete session log'), clearly stating it returns events and activities. This distinguishes it from sibling tools like get_context_history or get_agent_context by focusing on the session log specifically.
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 'WHEN TO USE' section provides clear, explicit scenarios for when to invoke this tool (reviewing history, understanding context transitions, tracking duration, debugging). However, it does not mention alternatives or when not to use it, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_prompt_toolA
Get the CoordMCP system prompt with mandatory workflow instructions.
This tool returns the complete system prompt that agents should use as their system prompt for proper CoordMCP integration.
WHEN TO USE:
At agent startup to get the system prompt
To understand the mandatory CoordMCP workflow
As reference for best practices
This returns a comprehensive guide including:
Mandatory workflow steps (in order)
Tool usage examples
Best practices and quick reference
Returns: Dictionary with system_prompt content
Example: >>> result = await get_system_prompt_tool() >>> # Returns the full system prompt for use as agent system prompt
| 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 of behavioral disclosure. It adequately describes the return value ('Dictionary with system_prompt content'), enumerates the included information (workflow steps, tool usage examples, best practices), and gives an example call. It does not mention potential side effects or prerequisites, but as a pure read-only getter, the risks are minimal. Overall it provides sufficient transparency for this simple 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 well-structured and front-loaded: it starts with the core purpose, then provides usage guidelines, content summary, return type, and an example. Every section serves a purpose. The example is slightly redundant but harmless. This is a model of clear, organized tool documentation.
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 (0 params, no output schema), the description is largely complete. It states the return type, the content of the returned prompt, and when to use it. The only minor gap is the exact structure of the dictionary (e.g., key name beyond 'system_prompt'), but the example and description suffice for an agent to invoke and 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?
The tool has zero parameters, so the baseline is 4 according to the rubric. The description adds no parameter details, but none are needed given the empty schema. It correctly highlights that the tool takes no input, which is implicitly clear from 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 function: 'Get the CoordMCP system prompt with mandatory workflow instructions.' It uses a specific verb ('Get') and resource ('system prompt'), and explicitly distinguishes the content from other context/guidance tools by emphasizing 'complete system prompt' and 'mandatory workflow instructions.' This makes it unique among sibling tools like get_workflow_guidance_tool.
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 a clear 'WHEN TO USE' section listing specific scenarios: at agent startup, to understand the mandatory workflow, and as a reference for best practices. However, it does not explicitly mention alternatives or exclusion cases (e.g., when to use get_workflow_guidance_tool instead), which prevents a score of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskC
Get task details.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task ID | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does not disclose whether this is a read-only operation beyond the verb 'get', nor what specific fields are returned or error behavior. It adds no context beyond the tool name.
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 with no extraneous content. However, it is overly terse and lacks useful information, though this is not a waste of words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool lacks an output schema and annotations, so the description should explain return values or behavior. 'Get task details' is too vague to set expectations about what 'details' includes or any limitations.
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% for both task_id and project_id, so the baseline is 3. The description does not add any additional parameter semantics beyond the schema definitions.
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 retrieves task details, with a specific verb ('get') and resource ('task details'). However, it does not distinguish from sibling tools like get_project_tasks or get_my_tasks, lacking explicit scope (e.g., 'single task by ID').
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 such as get_project_tasks or get_my_tasks. No 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.
get_tech_stackA
Retrieve the complete technology stack for a project.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
At the start of work to understand what technologies are already in use
Before adding new dependencies to avoid conflicts or duplicates
To check version compatibility when upgrading
When onboarding or explaining the project to others
To ensure consistency with existing technology choices
RECOMMENDED: Call this early in your workflow to understand the technical landscape.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by specific category (optional) - "backend", "frontend", "database", "infrastructure", etc. | |
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| project_name | No | Project name to look up (alternative to project_id) | |
| workspace_path | No | Workspace directory path (alternative to project_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It discloses the identifier priority (project_id > workspace_path > project_name), which is a key behavioral trait for resolution. The verb 'Retrieve' implies read-only, though it never explicitly claims no side effects or mentions error/return behavior.
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 well-structured with a direct opening, a priority note, and a bulleted 'WHEN TO USE' section, making it scannable. The bullets are slightly repetitive (e.g., 'consistency' and 'avoid conflicts' overlap), but the overall size is justified by the multi-purpose guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, and the description does not explain what the return value looks like (format, structure, content). It also omits error cases or failure behavior. However, it covers lookup flexibility, identifier priority, and usage scenarios well enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds the priority rule for how the three identifier parameters interact, which is not in the schema. It also states any combination works. It does not add new semantic detail for the 'category' parameter, but the identifier interplay is valuable.
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 opening line 'Retrieve the complete technology stack for a project' uses a specific verb and resource, clearly distinguishing this read tool from siblings like update_tech_stack (write) and get_project_info (general info). The description goes further to explain flexible lookup via multiple identifiers, reinforcing its purpose.
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 'WHEN TO USE' section explicitly lists concrete scenarios (start of work, adding dependencies, version compatibility, onboarding, consistency) and recommends calling early. However, it does not explicitly name alternatives or when not to use, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflow_guidance_toolA
Get phase-by-phase workflow guidance for development tasks.
This tool provides structured, step-by-step instructions for working on a project. It combines project-specific workflows with the standard CoordMCP workflow.
WHEN TO USE:
At the start of any new task to understand the recommended workflow
When you want to follow best practices for this project
To understand what tools to use and in what order
New agents should always call this to understand the expected workflow
AVAILABLE WORKFLOWS:
"test-first": Test-Driven Development (write tests before code)
"feature-branch": Feature branch workflow with code review
"review-then-commit": Peer review before committing
"default": Standard workflow for any task
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Optional project ID to get project-specific workflows | |
| workflow_name | No | Optional specific workflow to use (e.g., "test-first", "feature-branch") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden. It explains that it combines project-specific workflows with standard workflows and lists available workflow names, but it does not disclose side effects, return format, or behavior when parameters are omitted. The read-only nature is implied but not explicit, leaving gaps in behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with clear section headers ('WHEN TO USE', 'AVAILABLE WORKFLOWS'), is concise, and every sentence provides useful information. The main purpose is front-loaded, making it 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?
For a guidance tool with two optional parameters and no output schema, the description is fairly complete. It covers when to use, what it does, and lists available workflows. However, it does not explain the output structure or what happens when both parameters are null, leaving a small but notable gap.
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 already includes descriptions for both parameters, achieving 100% coverage. The description adds value by listing the exact workflow names ('test-first', 'feature-branch', etc.) and their meanings, which goes beyond the schema's example-driven explanation. This enriches the parameter semantics for workflow_name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides 'phase-by-phase workflow guidance for development tasks', with a specific resource and verb. It distinguishes itself from siblings by focusing on workflow guidance and listing the available workflow types, making its role unambiguous.
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 'WHEN TO USE' section explicitly lists use cases such as 'start of any new task', 'follow best practices', and 'new agents should always call this'. It provides clear context but does not explicitly name alternatives or exclusions, which would take it to a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsA
List all CoordMCP projects with optional filtering.
ESSENTIAL FOR: Browsing available projects, finding work to join
This tool provides a comprehensive view of all projects in the system. Useful for browsing available projects before selecting one to work on.
WHEN TO USE:
See all projects in the system
Find projects under a specific directory
Check which projects are active vs archived
Get an overview of all tracked work
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status - "active", "archived", or "all" (default: "active") | active |
| workspace_base | No | Optional base directory to filter projects (e.g., "/home/user/projects") | |
| include_archived | No | Whether to include archived projects (default: False) |
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. The wording 'browsing' and 'overview' implies a read-only operation, but the description does not explicitly state that there are no side effects, nor does it disclose permissions, pagination, or return format. It adds moderate context but leaves some behavioral details implicit.
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 uses a bolded 'ESSENTIAL FOR' section and a bulleted 'WHEN TO USE' list, making it scannable and well-structured. However, there is some redundancy: 'This tool provides a comprehensive view of all projects in the system' and 'Get an overview of all tracked work' say essentially the same thing, and 'browsing available projects' appears twice. Slightly more repetition than ideal for a 5.
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 a straightforward list-with-filters operation, and the description adequately covers the main use cases and the concept of filtering. With no output schema, it could benefit from mentioning what fields are returned or any prerequisites, but for its simplicity, the provided context is sufficient for an agent to decide when 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?
The schema has 100% coverage with each parameter (status, workspace_base, include_archived) having a clear description. The tool description only mentions 'optional filtering' without detailing these parameters, so it adds no extra meaning beyond the schema. This aligns with the baseline 3 for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'List all CoordMCP projects' which states a specific action (list) and a specific resource (CoordMCP projects). It also mentions 'optional filtering' and lists concrete use cases like 'find projects under a specific directory' and 'check which projects are active vs archived', clearly distinguishing it from siblings like get_project or create_project.
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?
A 'WHEN TO USE' section explicitly lists several scenarios, such as seeing all projects or checking statuses, and the 'ESSENTIAL FOR' line adds context about browsing before selecting work. However, it does not mention when NOT to use this tool or name alternative tools like get_project_info for single-project details, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lock_filesA
CRITICAL: Lock files before modifying them to prevent conflicts with other agents.
MANDATORY: Always lock files BEFORE making changes. This prevents:
Multiple agents editing the same file simultaneously
Lost changes and merge conflicts
Race conditions in multi-agent environments
WHEN TO USE:
Before editing any existing file
Before creating files in shared directories
Before refactoring code that spans multiple files
When you plan to modify files over an extended period
WORKFLOW:
lock_files() - Lock the files you plan to modify (THIS STEP)
Make your changes
log_change() - Log the changes made
unlock_files() - Release the locks when done
CONFLICT HANDLING: If files are already locked by another agent, you'll receive conflict information including which agent has the lock and when it expires. You should either:
Wait for the lock to be released
Coordinate with the other agent
Work on different files first
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | List of file paths to lock (required) - e.g., ["src/auth.ts", "src/utils.ts"] | |
| reason | Yes | Clear reason for locking (required) - e.g., "Implementing JWT authentication" | |
| agent_id | Yes | Your agent_id from register_agent() (required) | |
| project_id | Yes | Project ID from create_project() (required) | |
| expected_duration_minutes | No | How long you expect to hold the locks (default: 60) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden and largely succeeds. It discloses conflict behavior, lock expiration, and coordination options, but could add more detail on lock release semantics or success responses.
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?
Well-structured with headers and bullet lists, but some redundancy exists (e.g., CRITICAL and MANDATORY both emphasize importance, and prevention bullets repeat). Length is justified by the criticality of correct usage and the detailed workflow guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, prerequisites (via schema), workflow, and conflict handling effectively. Since there is no output schema, the description doesn't explain return values, but it does mention receiving conflict information. Missing explicit success return details but overall complete for a locking 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?
All five parameters are fully documented in the input schema with descriptions and examples. The description adds no new parameter-specific information, but schema coverage is 100%, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's function: locking files before modification to prevent conflicts. It clearly differentiates from sibling tools like unlock_files and get_locked_files by defining its unique role in the workflow.
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 when-to-use scenarios (editing existing files, shared directories, multi-file refactors, extended modifications). Includes a step-by-step workflow, naming lock_files as step 1 and unlock_files as step 4, plus conflict handling guidance with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_changeA
CRITICAL: Log every significant code change for project tracking and history.
MANDATORY: Call this AFTER completing any substantial file modification, creation, or deletion. This maintains a complete audit trail of all changes made to the project.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE (Always log changes for):
Creating new files or components
Modifying existing functionality
Refactoring code
Deleting files or features
Any change that affects the project's behavior or structure
CHANGE TYPES:
"create": New files, new components, new features
"modify": Updates to existing code, bug fixes, enhancements
"delete": Removing files, features, or code
"refactor": Restructuring code without changing behavior
ARCHITECTURE IMPACT:
"none": Simple changes, bug fixes, formatting (default)
"minor": Small API changes, new utility functions, config updates
"significant": New architectural patterns, major refactoring, breaking changes
BEST PRACTICES:
Always log after the change is complete and tested
Link to related decisions when changes implement architectural decisions
Be descriptive in the description field
Use code_summary to briefly explain what the code does
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | Your agent_id from register_agent() (optional) | |
| file_path | Yes | Path of the file that was changed (required) - e.g., "src/auth.py", "components/Button.tsx" | |
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| change_type | Yes | Type of change (required) - "create", "modify", "delete", or "refactor" | |
| description | Yes | Clear description of WHAT was changed and WHY (required) | |
| code_summary | No | Brief summary of the code/functionality (optional but recommended) | |
| project_name | No | Project name to look up (alternative to project_id) | |
| workspace_path | No | Workspace directory path (alternative to project_id) | |
| related_decision | No | Decision ID if this change implements a documented decision (optional) | |
| architecture_impact | No | Impact on overall architecture - "none", "minor", or "significant" (default: "none") | none |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behavioral aspects: project lookup priority ('project_id > workspace_path > project_name'), predefined change types, architecture impact levels, and the fact that it maintains 'a complete audit trail.' It does not reveal what happens on duplicate logs, error handling, or whether it returns any response, but for a logging tool the described behavior is sufficiently transparent.
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 longer than average but well-organized with clear headings (WHEN TO USE, CHANGE TYPES, ARCHITECTURE IMPACT, BEST PRACTICES). The opening sentence is direct and impactful. However, the paragraph on 'flexible project lookup' feels slightly tangential to the primary logging purpose and could be tightened, though it remains useful context.
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 lacking an output schema and annotations, the description is thorough for a logging tool. It covers invocation timing, change classification, project resolution, and best practices for descriptions and related decisions. It does not explain return values, but for an audit-logging operation the agent mainly needs to know how to call it correctly, which is fully covered.
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 every parameter already has a description. The tool description adds further semantic value by elaborating on the meaning and allowed values for 'change_type' (create, modify, delete, refactor) and architecture_impact (none, minor, significant) and by explaining the precedence of project identifiers. This goes beyond the schema's basic descriptors, helping the agent choose correct parameter values.
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 opens with 'CRITICAL: Log every significant code change for project tracking and history,' which clearly states the tool's verb ('log'), resource ('code change'), and purpose. It also enumerates concrete scenarios (creating files, modifying functionality, deleting features) and distinguishes this logging action from read-only tools like get_recent_changes or update_file_metadata in the sibling list.
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 usage mandates: 'MANDATORY: Call this AFTER completing any substantial file modification' and a 'WHEN TO USE' section listing exact situations. It also specifies the best practice to log 'after the change is complete and tested.' No alternative tools are referenced, but this is a mandatory audit-logging tool, so the guidance fully covers when and how to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_message_readC
Mark a message as read.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Your agent_id | |
| message_id | Yes | Message ID to mark as read | |
| project_id | No | Project ID | |
| project_name | No | Project name to look up | |
| workspace_path | No | Workspace path to look up |
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 such as side effects, permissions, idempotency, or return values. The description only states the basic action, providing no additional behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It is efficiently structured, though its brevity results in a tautological statement that doesn't add value beyond the tool name.
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 mutation tool with no annotations, an output schema, or contextual details about side effects, return values, or usage context. The description does not explain what 'read' means in this system, which agent context applies, or how project_id/project_name/workspace_path influence the operation, making it incomplete for a 5-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 input schema provides complete descriptions for all 5 parameters, achieving 100% coverage. The tool description itself adds no parameter-specific details, but the schema already handles this dimension, making the baseline score of 3 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 'Mark a message as read.' directly restates the tool's name 'mark_message_read' without adding any additional detail or context. While it clearly identifies the action, it provides no differentiation beyond what the name already conveys.
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 offers no guidance on when to use this tool compared to sibling tools like send_message, get_messages, or broadcast_message. There are no stated prerequisites, alternatives, or exclusions, leaving the agent to infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_agentA
MANDATORY STEP 2: Register yourself as an agent in the CoordMCP system.
CRITICAL: You MUST call this tool AFTER create_project() but BEFORE starting any work. This establishes your identity for multi-agent coordination and enables:
Context tracking across sessions
File locking to prevent conflicts
Change attribution
Session history and logging
WHEN TO USE:
At the start of EVERY new session or conversation
When beginning work on a new project
When you haven't yet registered in the current session
After restarting or reconnecting to CoordMCP
WORKFLOW:
create_project() - Create project
register_agent() - Register yourself (THIS STEP)
start_context() - Start working context
Begin coding
SAVE THE AGENT_ID: You'll need it for ALL subsequent operations.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Version identifier (optional) - e.g., "1.0.0" | 1.0.0 |
| agent_name | Yes | Your agent name (required) - e.g., "OpenCodeDev", "ClaudeCoder", "CursorAI" | |
| agent_type | Yes | Type of agent (required) - "opencode", "cursor", "claude_code", or "custom" | |
| capabilities | No | List of your skills/capabilities (optional but recommended) - e.g., ["python", "react", "database"] |
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 does explain the mandatory ordering, side effects (context tracking, file locking, change attribution, session history), and the need to save the agent_id. It could disclose more about idempotency or error behavior, but overall it is transparent about its role.
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 front-loaded with the critical 'MANDATORY STEP 2' instruction and organized into sections (WHEN TO USE, WORKFLOW). It is slightly verbose but every section reinforces necessary context, and the structure aids navigation.
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 that there is no output schema and the tool is integrated into a multi-agent coordination workflow, the description provides all required context: prerequisites, sequential ordering, benefits, and follow-up action. It is complete for successful invocation.
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 provides 100% parameter coverage with clear descriptions for agent_name, agent_type, capabilities, and version. The tool description adds no additional parameter-specific meanings, though it does mention saving the returned agent_id. This matches the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Register yourself as an agent in the CoordMCP system' with a specific verb and resource. It distinguishes itself from sibling tools like start_context and get_agent_profile by establishing its place as the mandated second step in the workflow.
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 'WHEN TO USE' section explicitly lists scenarios such as at the start of every session or after reconnecting, and the workflow shows the exact sequence with create_project and start_context. It lacks an explicit 'when not to use' statement, but the mandatory context makes exclusions evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_decisionA
CRITICAL: Record important architectural and technical decisions for future reference.
MANDATORY: Call this whenever you make significant technical choices. This builds the project's decision history and helps maintain consistency across the codebase.
WHEN TO USE (Always save decisions for):
Choosing a framework or library (React vs Vue, Flask vs FastAPI, etc.)
Database selection (PostgreSQL vs MongoDB, Redis vs Memcached)
Architecture patterns (Microservices vs Monolith, MVC vs Clean Architecture)
API design choices (REST vs GraphQL, authentication methods)
Infrastructure decisions (Cloud provider, containerization, CI/CD approach)
Security implementations (auth strategy, encryption methods)
Performance optimizations (caching strategy, database indexing)
Any decision that affects the project's direction or maintainability
WHY THIS MATTERS:
Other agents (or you later) will understand WHY choices were made
Prevents inconsistent approaches across the codebase
Documents the evolution of the architecture
Helps onboard new team members
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Categorization tags - e.g., ["architecture", "security", "database"] (optional) | |
| title | Yes | Short, clear decision title - e.g., "Use JWT for Authentication" | |
| impact | No | Expected impact on the project (performance, complexity, maintenance) (optional) | |
| context | No | Background information that led to this decision (optional) | |
| rationale | Yes | WHY this decision was made - the reasoning, trade-offs, alternatives considered | |
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| description | Yes | Detailed description of what was decided and how it will be implemented | |
| author_agent | No | Your agent_id from register_agent() (optional) | |
| project_name | No | Project name to look up (alternative to project_id) | |
| related_files | No | File paths affected by this decision (optional) | |
| workspace_path | No | Workspace directory path (alternative to project_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It only says decisions are recorded for future reference but does not explain what happens on invocation—whether it creates a new record, returns an ID, requires project context, or has side effects. This is a significant gap for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with headers and bullet lists, but it is verbose with repeated emphasis ('CRITICAL', 'MANDATORY') and a lengthy 'WHY THIS MATTERS' section. It is front-loaded and readable, yet could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description thoroughly covers when and why to use the tool, but omits behavioral expectations such as return values, side effects, or prerequisites. Given no annotations and no output schema, it is sufficient for basic invocation but lacks completeness for a tool with 11 parameters and mutation 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%, so all 11 parameters are already documented. The description adds general guidance about what kinds of decisions to save but does not add parameter-level meaning beyond the schema. 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 records important architectural and technical decisions, using a specific verb ('Record') and resource ('decisions'). It effectively distinguishes from sibling retrieval tools like get_project_decisions and search_decisions by emphasizing the act of saving decision history.
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 a detailed 'WHEN TO USE' section with concrete examples (framework choices, database selection, architecture patterns, etc.) and declares it mandatory for significant technical choices. However, it does not mention alternatives or exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_decisionsA
Search through recorded decisions by keywords or metadata.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
Looking for decisions about specific topics (e.g., "authentication", "database")
Checking if a particular technology or pattern was already decided upon
Finding decisions made by specific approaches or requirements
Researching the history of a specific feature or component
USEFUL FOR: Quickly finding relevant decisions without reading through all of them.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Optional tags to filter by - e.g., ["security", "architecture"] | |
| query | Yes | Search keywords - e.g., "authentication", "performance", "database" (required) | |
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| project_name | No | Project name to look up (alternative to project_id) | |
| workspace_path | No | Workspace directory path (alternative to project_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It does explain the priority order for project identifiers (project_id > workspace_path > project_name) and mentions you can specify any combination. However, it does not clarify how query and tags interact (AND vs OR), what fields are returned in results, or why the project lookup sentence is included. This leaves room for 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 well-structured with a clear opening sentence, a priority note, and structured WHEN TO USE/USEFUL FOR sections. While it is moderately long, every section contributes meaningful guidance. The USEFUL FOR section is slightly redundant with WHEN TO USE but not excessively so.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters and no output schema, so the description must cover more ground. It explains the core purpose, usage scenarios, and identifier priority, but omits details about result structure, filtering behavior with tags, or potential edge cases. This leaves some gaps but still provides a usable baseline for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema descriptions already cover all parameters with 100% coverage, so baseline is 3. The description adds extra value by explicitly stating the resolution priority for project identifiers and providing example tag values, giving users a clearer mental model of precedence and usage.
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 'Search through recorded decisions by keywords or metadata' and the WHEN TO USE section reinforces specific decision-related use cases. This distinguishes it from sibling tools like get_project_decisions, which likely list all decisions without keyword search. The initial phrase 'flexible project lookup' adds slight ambiguity but does not undermine the core purpose.
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 WHEN TO USE section provides explicit scenarios with concrete examples (e.g., 'Looking for decisions about specific topics', 'Checking if a particular technology was already decided upon'). It does not explicitly name alternatives, but the context makes it clear this is the right tool for targeted decision search rather than general project listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_messageB
Send a message to another agent (or broadcast to all).
Use this to communicate with other agents working on the same project. Messages can be targeted to specific agents or broadcast to everyone.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Message content | |
| project_id | Yes | Project ID | |
| to_agent_id | Yes | Recipient agent_id (use 'broadcast' for all agents) | |
| message_type | No | Type - request, update, alert, question, review | update |
| from_agent_id | Yes | Your agent_id | |
| related_task_id | No | Optional related task ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must fully disclose behavior. It discloses the ability to target or broadcast, but does not mention message persistence, delivery semantics, or any side effects. It is minimally transparent.
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?
Three sentences, but the second and third sentences repeat the broadcast idea. Still concise and front-loaded, though not maximally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple messaging tool with no output schema, the description covers the core purpose but omits details like whether messages are stored, delivery guarantees, or how to confirm sending. Given the presence of related siblings (get_messages, broadcast_message), more context could help.
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 covers 100% of parameters, so baseline applies. The description does not add any details about parameters beyond the schema; it merely mentions broadcast which is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send a message') and the resource ('another agent'), including the broadcast option. However, it does not differentiate from the sibling tool 'broadcast_message', which may cause confusion about when to use which.
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?
It provides context that this is for communication between agents on the same project, but does not specify when to use this tool instead of alternatives like 'broadcast_message' or 'get_messages'. No exclusions or conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_contextA
MANDATORY STEP 3: Start a new work context before beginning any coding task.
CRITICAL: You MUST call this tool AFTER create_project() and register_agent(). This establishes your current objective and enables:
Context tracking for the current task
File locking coordination
Session logging and history
Conflict prevention with other agents
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
At the beginning of every coding session or task
When switching to a new objective or feature
When the user's request changes significantly
After completing one task and starting another
When you need to establish clear boundaries for your current work
WORKFLOW:
create_project() - Create project (if new)
register_agent() - Register yourself
start_context() - Start work context (THIS STEP)
lock_files() - Lock files you plan to modify (recommended)
Begin coding
PRIORITY LEVELS:
"critical": Production outage, security vulnerability, critical bug fix
"high": Important features, significant refactoring, blocking issues
"medium": Standard development work (default)
"low": Documentation, minor optimizations, nice-to-have features
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | No | Task ID to link this context to (optional) - If provided, task will be auto-started | |
| agent_id | Yes | Your agent_id from register_agent() (required) | |
| priority | No | Priority level - "critical", "high", "medium", or "low" (default: "medium") | medium |
| objective | No | Clear, concise statement of what you're working on (required) - e.g., "Implement user authentication", "Fix API pagination bug" | |
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| current_file | No | File you're starting with (optional) - e.g., "src/auth/login.ts" | |
| project_name | No | Project name to look up (alternative to project_id) | |
| workspace_path | No | Workspace directory path (alternative to project_id) | |
| task_description | No | Detailed description of the work (optional) - Include specific requirements, acceptance criteria |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden. It explains that the tool enables context tracking, file locking coordination, session logging, and conflict prevention, and it defines the priority value meanings. It does not discuss error conditions or return values, but the core behavior is well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into labeled sections with a clear front-loaded purpose statement. Each section (WHEN TO USE, WORKFLOW, PRIORITY LEVELS) contributes unique information without redundancy, making it appropriately sized and 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?
The description covers the tool's role in the workflow, prerequisites, usage scenarios, and parameter semantics. It also provides a recommended sequence of operations (steps 1-5). Given the absence of an output schema, the description is sufficiently complete for an agent to invoke 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?
The input schema documents all 9 parameters with 100% coverage. The description adds value by specifying the project lookup priority order (project_id > workspace_path > project_name) and by elaborating on the semantic meaning of each priority level. This goes beyond the schema's basic field descriptions.
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 opening sentence 'Start a new work context before beginning any coding task' uses a specific verb and resource, and the 'MANDATORY STEP 3' framing distinguishes it from lifecycle siblings like switch_context and end_context. It clearly states what the tool does and why it is necessary.
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 'WHEN TO USE' section enumerates explicit scenarios (every coding session, switching objectives, after task completion), and the workflow defines prerequisites (after create_project and register_agent). However, it does not explicitly contrast with switch_context or state when not to use it, so it falls short of a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
switch_contextA
Switch your work context to a different project or objective.
WHEN TO USE:
When the user asks you to work on something different
When switching from one task to another in the same conversation
When moving between multiple projects
After completing one objective and starting a new one
IMPORTANT: This will end your current context and start a new one. Make sure to complete or document any pending work in the current context first.
WORKFLOW:
Complete current work and log changes
unlock_files() - Release any locked files
switch_context() - Switch to new objective (THIS STEP)
lock_files() - Lock files for new work (if needed)
Begin new work
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Your agent_id from register_agent() (required) | |
| priority | No | Priority level - "critical", "high", "medium", or "low" (default: "medium") | medium |
| to_objective | Yes | New objective statement (required) - e.g., "Add pagination to API" | |
| to_project_id | Yes | Target project ID (required) - Can be same or different project | |
| task_description | No | Detailed description of new work (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It clearly warns that the tool will end the current context and start a new one, instructs to complete pending work first, and includes a workflow with unlock/lock files. This goes beyond the basic operation and discloses important side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with WHEN TO USE, IMPORTANT, and WORKFLOW sections. Every sentence adds value, and the format is scannable and front-loaded with the main purpose.
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 state-changing tool with a workflow, the description includes the critical warning about ending context, when-to-use triggers, and a step-by-step workflow. It does not explain return values, but no output schema exists and the operation is straightforward.
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 baseline is 3. The description adds no parameter-specific details, but the schema already documents each field sufficiently (agent_id, priority, to_objective, etc.).
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 'Switch your work context to a different project or objective' with a specific verb and resource. The WHEN TO USE section further distinguishes it from siblings like start_context and end_context, making the purpose unambiguous.
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 WHEN TO USE list covering common switching scenarios (user request, task change, multi-project work, post-completion). It does not explicitly name alternative tools or when NOT to use, but the context is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unlock_filesA
Release file locks after you've completed your changes.
WHEN TO USE:
Immediately after completing changes to files
When you're done working on a specific file or set of files
Before switching to work on different files
At the end of a task or session
IMPORTANT: Always unlock files as soon as you're done with them. This allows other agents to work on those files and prevents unnecessary blocking.
WORKFLOW:
Complete your changes and test them
log_change() - Log what you changed
unlock_files() - Release the locks (THIS STEP)
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | List of file paths to unlock (required) - e.g., ["src/auth.ts", "src/utils.ts"] | |
| agent_id | Yes | Your agent_id from register_agent() (required) | |
| project_id | Yes | Project ID from create_project() (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It explains the effect of unlocking (allows other agents to work, prevents blocking) and includes a workflow, but does not disclose edge-case behaviors like ownership requirements or error conditions. Still, it provides meaningful context beyond the bare action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses clear headers, bullet points, and a numbered workflow, making it easy to scan. While it is longer than strictly necessary, the structure front-loads the core purpose and organizes guidance logically, with no fluff.
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 straightforward lock-release tool with three simple parameters and no output schema, the description covers the purpose, timing, and workflow comprehensively. It integrates with sibling tools like log_change without overcomplicating, making it sufficiently complete for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with detailed descriptions and examples for all three parameters. The tool description does not add additional parameter-level meaning, so a 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 begins with a specific action verb 'Release' and a clear resource 'file locks', making the tool's purpose immediately obvious. It distinguishes itself from sibling tools like lock_files by specifying the reverse operation.
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 an explicit 'WHEN TO USE' section with concrete scenarios (after changes, before switching files, at session end). It also includes an 'IMPORTANT' note about unlocking promptly and integrates with a workflow step after log_change(), giving clear sequencing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_architectureA
Update the project architecture tracking after implementing recommendations.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
After implementing architectural recommendations from get_architecture_recommendation()
When completing significant structural changes to the codebase
To document what was actually built vs. what was recommended
To keep the architecture documentation in sync with the code
IMPORTANT: Call this after implementing architectural recommendations to:
Log the implementation details
Track files created and modified
Update architecture history
Document any deviations from recommendations
WORKFLOW:
get_architecture_recommendation() - Get guidance
Implement the recommendation
log_change() - Log each file change
update_architecture() - Update architecture tracking (THIS STEP)
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| project_name | No | Project name to look up (alternative to project_id) | |
| workspace_path | No | Workspace directory path (alternative to project_id) | |
| recommendation_id | Yes | ID from get_architecture_recommendation() (required) | |
| actual_files_created | No | List of new files created (optional) - e.g., ["src/auth.ts", "src/middleware/jwt.ts"] | |
| actual_files_modified | No | List of existing files modified (optional) - e.g., ["src/app.ts", "src/routes.ts"] | |
| implementation_summary | Yes | Brief summary of what was implemented (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It describes the tool's actions (logging implementation details, tracking files, updating history, documenting deviations) and the flexible lookup priority. However, it does not disclose error behavior or return values, which would be useful for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, when-to-use, important, workflow), but it is somewhat verbose and slightly repetitive (e.g., the purpose is restated in the 'Important' list). Overall, it earns its length by providing substantial guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, workflow, and parameter semantics comprehensively, making it highly usable for an agent. However, without an output schema, a note about return values or success indication would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds value by explaining the lookup priority (project_id > workspace_path > project_name) and clarifying that recommendation_id is required and ties to get_architecture_recommendation(). This goes beyond the schema's individual field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Update the project architecture tracking after implementing recommendations.' It also differentiates from siblings like update_tech_stack and log_change by focusing on architecture tracking and recommendation implementation.
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 includes a dedicated 'WHEN TO USE' section with explicit scenarios and a workflow that references get_architecture_recommendation() and log_change(), clearly guiding the agent on when to invoke this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_file_metadataB
Track important file metadata for project understanding and dependency management.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
After creating new files to document their purpose and relationships
When you understand a file's dependencies on other files
To update complexity assessments as files grow
To organize files into logical modules
When refactoring changes file dependencies
RECOMMENDED FOR: Key architectural files, complex modules, files with many dependencies. This helps build a dependency graph and understand the codebase structure.
FILE TYPES:
"source": Production code files (default)
"test": Test files and test suites
"config": Configuration files (package.json, .env, etc.)
"doc": Documentation files (README, docs, etc.)
COMPLEXITY LEVELS:
"low": Simple files, straightforward logic, minimal dependencies
"medium": Moderate complexity, some business logic, several dependencies
"high": Complex files, intricate logic, many dependencies, high cognitive load
| Name | Required | Description | Default |
|---|---|---|---|
| module | No | Logical module/component this file belongs to (optional) - e.g., "auth", "ui", "api" | |
| purpose | No | Brief description of what this file does (optional) | |
| file_path | Yes | Path of the file (required) - e.g., "src/components/Button.tsx" | |
| file_type | No | Type of file - "source", "test", "config", or "doc" (default: "source") | source |
| complexity | No | Complexity level - "low", "medium", or "high" (default: "low") | low |
| dependents | No | List of files that import/depend on this file (optional) | |
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| dependencies | No | List of files this file imports/depends on (optional) - e.g., ["src/utils.ts", "src/types.ts"] | |
| project_name | No | Project name to look up (alternative to project_id) | |
| lines_of_code | No | Approximate line count (optional, for tracking growth) | |
| workspace_path | No | Workspace directory path (alternative to project_id) | |
| last_modified_by | No | Your agent_id from register_agent() (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It discloses project resolution priority (project_id > workspace_path > project_name) and enumerates file types and complexity levels. However, it never states update semantics: whether it overwrites all fields, merges provided fields, or what happens when metadata already exists. This is a significant gap for an 'update' 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 overly long (approximately 250 words) and repetitive. It re-lists schema values for file types and complexity levels, includes promotional filler like 'RECOMMENDED FOR' and 'This helps build a dependency graph', and the off-topic project lookup paragraph adds confusion rather than 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 includes usage scenarios, project lookup priority, and value enums, which is helpful. However, it lacks critical behavioral details about the update operation itself, such as whether partial updates merge or replace existing metadata, and it does not mention any output or acknowledgment. Given the rich schema, it is functional but incomplete.
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 clear description. The description adds value by clarifying project identifier priority and by enumerating file type/complexity values, but these are also present in the schema. Baseline 3 is appropriate since the schema does the heavy lifting.
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 opens with 'Track important file metadata' but then shifts to 'This tool provides flexible project lookup' and discusses identifier resolution priority, which is more appropriate for a project lookup tool. The verb 'track' is ambiguous compared to the tool name's 'update', though the WHEN TO USE section clarifies it updates file metadata by listing scenarios like 'update complexity assessments'.
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 an explicit WHEN TO USE section with five concrete scenarios (after creating new files, understanding dependencies, updating complexity, organizing modules, refactoring). It does not name alternatives or exclusions, but the scenarios are clear enough to guide an agent. The RECOMMENDED FOR section adds further targeting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_task_statusC
Update task status.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Notes about the status change | |
| status | Yes | New status - pending, in_progress, blocked, completed, or cancelled | |
| task_id | Yes | Task ID | |
| agent_id | Yes | Agent making the update | |
| project_id | Yes | Project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description shoulders the full burden of behavioral disclosure. It only states the action and reveals nothing about side effects, required permissions, or what happens to the task, leaving the agent to guess the consequences of a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is brief (four words), it is under-specified rather than effectively concise. It merely restates the tool name and omits essential context, so brevity comes at the cost of usefulness.
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 mutation tool has five parameters, four required, and no output schema or annotations. The one-sentence description fails to explain expected behavior, return values, or prerequisite conditions, making it inadequate for an agent to safely invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are documented in the schema. The description adds no additional meaning, but the baseline of 3 applies since the schema already covers the parameter details.
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 clear verb and resource ('Update task status'), which directly identifies the action. It lacks scope details or differentiation from sibling tools like complete_task or assign_task, but the core purpose is unambiguous.
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, such as complete_task or create_task. There are no prerequisites, context, or explicit exclusions, leaving the agent without decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_tech_stackA
CRITICAL: Record the technology stack used in this project.
MANDATORY: Call this whenever you add or change a major technology in the project. This creates a central registry of all technologies used.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
Setting up a new project - record ALL technologies you plan to use
Adding a new dependency or framework
Changing versions of existing technologies
Adding infrastructure tools (Docker, Kubernetes, etc.)
Setting up databases, message queues, or external services
Adding testing frameworks, build tools, or CI/CD pipelines
CATEGORIES TO TRACK:
"backend": Python/Node/Java frameworks, runtime environments
"frontend": React/Vue/Angular, CSS frameworks, build tools
"database": PostgreSQL, MongoDB, Redis, Elasticsearch
"infrastructure": Docker, Kubernetes, AWS services, monitoring
"testing": Jest, Pytest, Cypress, etc.
"devops": CI/CD tools, deployment platforms
BEST PRACTICE: Always link to a decision via decision_ref when the tech choice was based on a documented decision.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | Version string (optional but recommended) - e.g., "18.2.0", "14.5" | |
| category | Yes | Technology category (required) - "backend", "frontend", "database", "infrastructure", "testing", "devops" | |
| rationale | No | Brief explanation of why this technology was chosen (optional) | |
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| technology | Yes | Technology name (required) - e.g., "React", "PostgreSQL", "Docker" | |
| decision_ref | No | Decision ID if this choice was documented via save_decision() (optional) | |
| project_name | No | Project name to look up (alternative to project_id) | |
| workspace_path | No | Workspace directory path (alternative to project_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It reveals side effects ("creates a central registry"), lookup flexibility, and identifier priority (project_id > workspace_path > project_name). However, it doesn't disclose behavior like overwrite semantics, error handling, or reversibility, so it falls short of a 5.
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 long but well-structured with headings (WHEN TO USE, CATEGORIES, BEST PRACTICE) and bullets. Each section earns its place; the repeated "CRITICAL" and "MANDATORY" emphasis is slightly redundant but not excessive.
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 8 params and no output schema, the description covers use cases, categories, lookup behavior, and best practices. It lacks explicit return value details or failure scenarios, but given no output schema, it is reasonably 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?
Schema coverage is 100%, providing descriptions for all 8 parameters. The description adds value by explaining the priority order for project lookup, listing category examples, and recommending decision_ref usage—enhancing the schema's static definitions.
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: "CRITICAL: Record the technology stack used in this project" and "This creates a central registry of all technologies used." It uses a specific verb (record/update) and resource (tech stack), and the mandate distinguishes it from read-only siblings like get_tech_stack.
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 an explicit "WHEN TO USE" list covering setup, new dependencies, version changes, infrastructure, databases, testing, and CI/CD. It also gives category examples and best practices, offering clear guidance on when to invoke this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_code_structureA
Validate that your code structure follows the project's architectural guidelines.
This tool provides flexible project lookup. You can specify any combination of identifiers, and it will resolve to the matching project.
Priority: project_id > workspace_path > project_name
WHEN TO USE:
Before finalizing a new file or component structure
When creating significant new modules or services
To ensure consistency with existing codebase patterns
When you're unsure if your approach follows project conventions
Before committing major structural changes
USEFUL FOR: Catching architectural violations early and maintaining codebase consistency.
VALIDATION CHECKS:
Directory structure conventions
Naming conventions
Import/export patterns
Dependency management
Architectural pattern compliance
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path where code will be located (required) - e.g., "src/services/auth.ts" | |
| project_id | No | Project ID from create_project() (optional if project_name or workspace_path provided) | |
| strict_mode | No | Enforce strict validation (optional) - Set to True for critical architectural components | |
| project_name | No | Project name to look up (alternative to project_id) | |
| code_structure | Yes | Description of proposed structure (required) - Object with component details | |
| workspace_path | No | Workspace directory path (alternative to project_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It does disclose the priority order for project lookup (project_id > workspace_path > project_name) and enumerates validation checks, which adds useful context. However, it does not state whether the tool performs side effects, what happens on validation failure, or how strict_mode changes behavior beyond the schema, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear section headers (WHEN TO USE, VALIDATION CHECKS) and front-loads the core purpose. It is somewhat verbose with overlapping points between 'USEFUL FOR' and earlier statements, but overall each section earns its place and is not excessively padded.
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 covers usage scenarios and validation checks, which is beneficial given the tool's complexity (6 params, nested objects). However, with no output schema, it does not explain the return format or how results are presented (e.g., list of violations, success/failure), nor does it discuss error handling. This leaves the description incomplete for an agent to fully anticipate the tool's response.
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 has 100% coverage, so the baseline is 3. The description adds meaning beyond the schema by explaining the flexible lookup behavior ('You can specify any combination of identifiers') and the priority order among project_id, workspace_path, and project_name. This enriches understanding of how parameters interact, going beyond the individual property descriptions.
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 starts with a specific verb 'Validate' and resource 'code structure' followed by the goal 'follows the project's architectural guidelines.' It clearly distinguishes this from sibling tools like validate_workflow_state_tool by focusing on code structure rather than workflow state, and from analyze_architecture by emphasizing validation against guidelines rather than 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?
The 'WHEN TO USE' section lists concrete scenarios like 'Before finalizing a new file' and 'Before committing major structural changes,' giving clear context for use. However, it does not explicitly mention when not to use or recommend alternative siblings, so it misses exclusions but provides solid usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_workflow_state_toolA
Validate your workflow state and get warnings about missing steps.
This tool checks your current workflow state and provides warnings about any steps you may have missed. Use this to ensure you're following the recommended CoordMCP workflow.
WHEN TO USE:
At any point during development to check if you're following the workflow
Before ending a context to make sure you've logged changes
When you want to know what steps to complete next
If you're unsure what to do next
WORKFLOW STEPS:
register_agent() - Register your agent
start_context() - Start a work context
lock_files() - Lock files before editing
Make your code changes
log_change() - Document your changes
unlock_files() - Unlock files after editing
end_context() - End your work session
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Your agent_id from register_agent() (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the core behavior (checks state, yields warnings) but does not explicitly state that it is non-mutating or describe the return format, error conditions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a front-loaded purpose, a 'WHEN TO USE' list, and a workflow steps list. It is appropriately sized for the information provided, with no obvious redundancy or wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter, no output schema, and no annotations, the description covers purpose, usage timing, and workflow context. It could be enhanced by describing the response/warning format, but it is sufficiently complete for an agent to reason about when and why 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?
The single parameter agent_id has 100% schema description coverage (stating it comes from register_agent()). The description adds workflow context that references register_agent(), but does not add extra semantics beyond the schema's own documentation.
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 explicitly states the tool 'validates your workflow state and provides warnings about missing steps', which is a specific verb+resource scope. This clearly distinguishes it from sibling tools like get_workflow_guidance_tool by focusing on validation and warnings rather than general guidance.
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 'WHEN TO USE' section provides clear contexts such as checking workflow progress, before ending a context, and when unsure of next steps. It gives solid usage guidance but lacks explicit exclusions or alternative tool references.
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.
52 tool updates
v0.1.0- First observed
analyze_architecture - First observed
assign_task - First observed
broadcast_message - First observed
complete_task - First observed
create_project - First observed
create_task - First observed
delete_task - First observed
discover_project - First observed
end_context - First observed
get_active_agents - First observed
get_agent_context - First observed
get_agent_profile - First observed
get_agents_in_project - First observed
get_agents_list - First observed
get_architecture_recommendation - First observed
get_context_history - First observed
get_design_patterns - First observed
get_file_dependencies - First observed
get_locked_files - First observed
get_messages - First observed
get_module_info - First observed
get_my_tasks - First observed
get_project - First observed
get_project_dashboard - First observed
get_project_decisions - First observed
get_project_info - First observed
get_project_onboarding_context_tool - First observed
get_project_tasks - First observed
get_recent_changes - First observed
get_sent_messages - First observed
get_session_log - First observed
get_system_prompt_tool - First observed
get_task - First observed
get_tech_stack - First observed
get_workflow_guidance_tool - First observed
list_projects - First observed
lock_files - First observed
log_change - First observed
mark_message_read - First observed
register_agent - First observed
save_decision - First observed
search_decisions - First observed
send_message - First observed
start_context - First observed
switch_context - First observed
unlock_files - First observed
update_architecture - First observed
update_file_metadata - First observed
update_task_status - First observed
update_tech_stack - First observed
validate_code_structure - First observed
validate_workflow_state_tool
TDQS
Multiple tools overlap in purpose, such as get_project_info and get_project both retrieving project details, and get_agents_list vs get_active_agents listing agents. The distinction between some tools like get_project_dashboard and get_project_info is unclear, making it hard for an agent to pick the right one.
Most tools follow a consistent verb_noun snake_case pattern (e.g., create_project, save_decision, lock_files). However, a few tools break the pattern with a '_tool' suffix (get_workflow_guidance_tool, get_system_prompt_tool), which is inconsistent.
With 52 tools, the server is over-scoped for a coordination/memory system. The high count likely causes bloat and confusion; many tools could be consolidated or removed. The typical range for a well-designed server is 3-15 tools, and this vastly exceeds that.
The server covers a broad range of multi-agent coordination needs: projects, agents, tasks, decisions, changes, file locking, and architecture. However, there are gaps like no update/delete for projects, decisions, or messages, and no way to edit a task's description. Some workflows are complete, but others are one-way.
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
Coordination for AI coding agents: declare plans, catch design conflicts early, share team memory.
- ParleyOAuthdev.weldra
Coordination hub for AI coding agents: message teammates, ask humans, audit every event.
Shared control plane for AI coding agents — tasks, memory, decisions, file locks. 12 tools.
- AxisOAuthdev.useaxis
Coding agents from Claude Code, Cursor and Codex claim jobs and lock files on one shared board.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA coordination layer for coding agents that provides identities, message threading, and searchable history. It features file reservation leases to prevent agents from overwriting each other's work in multi-agent environments.1MIT
- AlicenseNot gradedqualityBmaintenanceA shared memory and coordination server for multiple AI coding agents, built on the Model Context Protocol (MCP).5MIT
- AlicenseNot gradedqualityCmaintenanceEnables multiple AI agents like Claude and Codex to coordinate on the same project through shared tasks, file locks, and a real-time dashboard, preventing conflicts and streamlining collaborative development.111MIT
- AlicenseNot gradedqualityDmaintenanceCross-session coordination server for Claude Code that manages file claims, build locks, shared knowledge, and provides a real-time dashboard to prevent conflicts across multiple sessions.MIT
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/siddiquesahabaj/CoordMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server