FluentBoards MCP Server
Provides comprehensive integration with FluentBoards project management system on WordPress, enabling AI agents to manage boards, tasks, comments, labels, and stages through the FluentBoards REST API with advanced safety controls and board focus mode.
Click on "Deploy 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., "@FluentBoards MCP Serverlist tasks for board 14"
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.
FluentBoards MCP Server
A comprehensive Model Context Protocol (MCP) server for FluentBoards project management system with advanced safety features and board focus mode.
Overview
This MCP server provides AI agents with full access to FluentBoards functionality through a secure, modular architecture. It enables AI assistants to manage boards, tasks, comments, and labels programmatically while offering advanced safety controls and focused workflows.
Related MCP server: WordPress MCP Server
Key Features
β¨ Board Focus Mode - Streamline operations for a specific board
π‘οΈ Delete Safety Controls - Granular control over destructive operations
π§ Modular Architecture - Clean, maintainable code structure
π Comprehensive API Coverage - Full FluentBoards functionality
π― Dynamic Tool Registration - Context-aware tool availability
Architecture
src/
βββ config/ # Configuration management with safety controls
βββ utils/ # Utilities (formatting, validation, safety)
βββ api/ # API client and HTTP handling
βββ types/ # TypeScript types and Zod schemas
βββ tools/ # MCP tool implementations
β βββ boards.ts # Board management (conditional registration)
β βββ tasks.ts # Task management tools
β βββ comments.ts # Comment management tools
β βββ labels.ts # Label management tools
β βββ debug.ts # Debug and testing tools
βββ index.ts # Main server entry pointConfiguration Modes
1. All Boards Mode (Default)
Access to all boards and full board management capabilities.
WORDPRESS_URL=https://your-site.local
WORDPRESS_USERNAME=your-username
WORDPRESS_APP_PASSWORD=your-app-password
# No BOARD_ID set2. Board Focus Mode π―
Streamlined operations focused on a specific board. Automatically disables board manipulation tools.
WORDPRESS_URL=https://your-site.local
WORDPRESS_USERNAME=your-username
WORDPRESS_APP_PASSWORD=your-app-password
BOARD_ID=14 # Focus on board 14Available Tools
Tool availability depends on your configuration mode:
Debug Tools (Always Available)
debug_test- Test server connectivity and API status
Board Management (All Boards Mode Only)
list_boards- List all boards with paginationcreate_board- Create new boards with type validationdelete_board- Delete boards permanently (safety controlled)
Board Operations (Always Available, Scoped by Focus)
get_board- Get specific board detailscreate_stage- Create new stages in boards
Task Management (Always Available, Scoped by Focus)
list_tasks- List tasks in a boardget_task- Get detailed task information with comments/attachmentscreate_task- Create new tasks with rich formattingupdate_task- Update existing taskschange_task_status- Move tasks between stagesdelete_task- Delete tasks permanently (safety controlled)
Comment Management (Always Available, Scoped by Focus)
add_comment- Add comments/replies to tasks with notifications
Label Management (Always Available, Scoped by Focus)
add_label- Add labels to tasksremove_label- Remove labels from tasksedit_label- Edit label properties (title, colors)create_label- Create new labels with custom colorsdelete_label- Delete labels permanently (safety controlled)
Board Focus Mode π―
When BOARD_ID is configured, the server enters Board Focus Mode:
What Changes:
Board manipulation tools are removed (
list_boards,create_board,delete_board)All operations are scoped to the focused board only
Tool count reduces from ~14 to ~11 tools
Safety from accidental cross-board operations
Example Usage:
# Set focus to board 14
export BOARD_ID=14
# Available operations (all scoped to board 14):
get_board(board_id: 14) # β
Works
get_board(board_id: 15) # β Blocked
create_task(board_id: 14, ...) # β
Works
create_task(board_id: 15, ...) # β Blocked
# Not available in focus mode:
list_boards() # β Tool not registered
create_board(...) # β Tool not registered
delete_board(...) # β Tool not registeredDelete Operation Safety π‘οΈ
β οΈ IMPORTANT: Delete operations are disabled by default for safety.
Safety Configuration
# Core safety settings
ENABLE_DELETES=false # Master switch (default: false)
REQUIRE_DELETE_CONFIRMATION=true # Require confirmation (default: true)
ALLOWED_DELETE_TYPES=task,label # Allowed types (default: none)Safety Levels
Level 1: No Deletes (Default - Safest)
ENABLE_DELETES=falseAll delete tools return safety errors.
Level 2: Selective Deletes with Confirmation
ENABLE_DELETES=true
REQUIRE_DELETE_CONFIRMATION=true
ALLOWED_DELETE_TYPES=task,labelOnly task and label deletions allowed, confirmation required.
Level 3: Full Deletes with Confirmation
ENABLE_DELETES=true
REQUIRE_DELETE_CONFIRMATION=true
ALLOWED_DELETE_TYPES=board,task,labelAll deletions allowed, confirmation required.
Level 4: Unrestricted (Not Recommended)
ENABLE_DELETES=true
REQUIRE_DELETE_CONFIRMATION=false
ALLOWED_DELETE_TYPES=board,task,labelUsing Delete Operations
When enabled, delete operations require confirmation:
// Valid confirmation formats:
delete_task(board_id: 1, task_id: 5, confirm_delete: true)
delete_task(board_id: 1, task_id: 5, confirm_delete: "yes")
delete_task(board_id: 1, task_id: 5, confirm_delete: "confirm")
// Without confirmation (when required):
delete_task(board_id: 1, task_id: 5) // β Safety errorInstallation & Setup
Prerequisites
FluentBoards WordPress Plugin - The MCP server connects directly to FluentBoards REST API
WordPress Application Password - For secure authentication
No additional WordPress plugins required
1. Install Dependencies
npm install2. Build the Server
npm run build3. Configure Environment
All Boards Mode:
WORDPRESS_URL=https://your-site.local
WORDPRESS_USERNAME=your-username
WORDPRESS_APP_PASSWORD=your-app-passwordBoard Focus Mode:
WORDPRESS_URL=https://your-site.local
WORDPRESS_USERNAME=your-username
WORDPRESS_APP_PASSWORD=your-app-password
BOARD_ID=144. Configure MCP Client
Cursor (~/.cursor/mcp.json):
{
"mcpServers": {
"fluent-boards": {
"command": "node",
"args": ["/path/to/mcp-server-app/dist/index.js"],
"env": {
"WORDPRESS_URL": "https://your-site.local",
"WORDPRESS_USERNAME": "your-username",
"WORDPRESS_APP_PASSWORD": "your-app-password",
"BOARD_ID": "14"
}
}
}
}Claude Desktop:
{
"mcpServers": {
"fluent-boards": {
"command": "node",
"args": ["/path/to/mcp-server-app/dist/index.js"],
"env": {
"WORDPRESS_URL": "https://your-site.local",
"WORDPRESS_USERNAME": "your-username",
"WORDPRESS_APP_PASSWORD": "your-app-password"
}
}
}
}Complete Configuration Reference
# Required: WordPress connection
WORDPRESS_URL=https://your-site.local
WORDPRESS_USERNAME=your-username
WORDPRESS_APP_PASSWORD=your-app-password
# Optional: Board focus mode
BOARD_ID=14 # Enable board focus mode
# Optional: Delete operation safety
ENABLE_DELETES=false # Enable delete operations
REQUIRE_DELETE_CONFIRMATION=true # Require confirmation parameter
ALLOWED_DELETE_TYPES=task,label # Comma-separated: board,task,labelDevelopment
Building
npm run buildTesting
# Run integration tests
npm test
# Run specific integration test
npx ts-node tests/integration.test.ts
# Run development/debugging scripts (see scripts/README.md)
npx ts-node scripts/testing/test-connection.ts
npx ts-node scripts/testing/test-admin-create.tsAdding New Tools
Create tool in appropriate module:
// src/tools/example.ts
export function registerExampleTools(server: McpServer) {
server.tool(
"example_tool",
"Description of the tool",
{
board_id: z.number().int().positive().describe("Board ID"),
param1: z.string().describe("Parameter description"),
},
async (args) => {
const { board_id, param1 } = args;
// Validate board access in focus mode
const accessCheck = validateBoardAccess(board_id);
if (!accessCheck.allowed) {
return formatResponse(createBoardFocusError(accessCheck));
}
// Implementation
const response = await api.get(`/endpoint/${board_id}`);
return formatResponse(response.data);
}
);
}Register in main server:
// src/index.ts
import { registerExampleTools } from './tools/example.js';
registerExampleTools(server);API Integration
The MCP server connects directly to the FluentBoards WordPress REST API:
Base URL:
{WORDPRESS_URL}/wp-json/fluent-boards/v2Authentication: WordPress Application Password (secure, built-in)
Connection: Direct HTTPS (no proxy required)
Format: JSON requests/responses
Rate Limiting: Handled by WordPress
No Proxy Plugin Required
The MCP server uses WordPress's native REST API and Application Password authentication. No additional WordPress plugins are needed for the MCP server to function.
Response Format
All tools return standardized MCP responses:
{
"content": [
{
"type": "text",
"text": "{\n \"board\": {\n \"id\": 14,\n \"title\": \"My Board\"\n }\n}"
}
]
}Text Formatting Features
The server automatically formats text content:
β Proper line breaks for markdown
β Header formatting (
##)β List formatting (
-and numbered)β Checkbox formatting (
[ ]and[x])β Status indicators (
β,β)β HTML entity decoding
Error Handling
Comprehensive error handling with specific error types:
API Errors
{
"error": "API request failed",
"status": 404,
"message": "Board not found"
}Safety Errors
{
"error": "Delete operation not allowed",
"reason": "Delete operations are disabled",
"code": "DELETES_DISABLED"
}Board Focus Errors
{
"error": "Operation outside board focus scope",
"reason": "Operations are focused on board 14",
"code": "OUT_OF_FOCUS"
}Troubleshooting
Tool Count Changes
Expected: Tool count changes when switching between focus modes
All Boards: ~14 tools available
Board Focus: ~11 tools available (board manipulation tools removed)
Connection Issues
# Test server connectivity
npm run test
# Test direct FluentBoards API access
curl -u "username:app-password" "https://your-site.local/wp-json/fluent-boards/v2/projects/list-of-boards"
# Test WordPress REST API is working
curl "https://your-site.local/wp-json/"Permission Issues
Ensure WordPress user has FluentBoards access
Verify Application Password is correctly generated
Check WordPress REST API is enabled
Ensure FluentBoards plugin is active
No proxy plugin installation required
Future Enhancements
π Performance monitoring and metrics
π Caching layer for frequently accessed data
πͺ Webhook support for real-time updates
π¦ Bulk operations for efficiency
π File upload and attachment management
π Advanced search and filtering
π Reporting and analytics tools
π Enhanced authentication methods
Contributing
Follow architecture patterns - Use modular tool organization
Implement safety controls - Add validation and access checks
Add comprehensive error handling - Include specific error codes
Use input validation - Zod schemas for all parameters
Format responses consistently - Use utility functions
Add tests - Cover new functionality thoroughly
Update documentation - Keep README current
License
This project is part of the FluentBoards ecosystem.
Available Tools
15 toolsadd_commentC
Add a comment to a task
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| task_id | Yes | Task ID | |
| comment | Yes | Comment text | |
| comment_type | No | Comment type - 'comment' for new comments, 'reply' for replies | comment |
| parent_id | No | Parent comment ID (required for replies) | |
| notify_users | No | User IDs to notify |
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. 'Add a comment' implies a write/mutation operation, but the description doesn't specify permissions required, whether the action is reversible, rate limits, or what happens on success/failure (e.g., returns a comment ID). For a mutation tool with zero annotation coverage, this leaves critical behavioral traits unaddressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to parse. Every part of the sentence ('Add a comment to a task') directly contributes to understanding the tool's purpose 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 complexity (6 parameters, mutation operation) and lack of annotations or output schema, the description is incomplete. It doesn't cover behavioral aspects like side effects (e.g., notifications), error conditions, or return values. For a tool that modifies data, this leaves significant gaps for an AI agent to operate 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?
Schema description coverage is 100%, with all parameters documented in the schema (e.g., 'comment_type' with enum values, 'parent_id' for replies). The description adds no parameter-specific information beyond the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description, which applies here.
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 ('Add a comment') and the target resource ('to a task'), making the purpose immediately understandable. However, it doesn't distinguish this tool from potential sibling tools that might also involve comments, such as if there were 'edit_comment' or 'delete_comment' tools. The verb+resource combination is specific but lacks 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 description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid board and task), exclusions (e.g., not for editing existing comments), or related tools (e.g., 'update_task' might handle task modifications). Without such context, the agent must infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_labelC
Add a label to a task
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| task_id | Yes | Task ID | |
| label_id | Yes | Label 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 of behavioral disclosure. It states the action ('Add a label') which implies a write operation, but doesn't describe any behavioral traits such as permissions required, whether the operation is idempotent, error conditions (e.g., invalid IDs), or what happens on success/failure. This leaves significant gaps for a mutation tool with zero 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 a single, efficient sentence with zero wasted words. It is front-loaded with the core action and resource, making it immediately scannable and appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks crucial context such as required permissions, error handling, return values, or side effects. While the schema covers parameters well, the overall tool behavior remains underspecified for safe and effective use by 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?
The schema description coverage is 100%, with all three parameters (board_id, task_id, label_id) clearly documented in the schema. The description adds no additional parameter semantics beyond implying these IDs are needed, so it meets the baseline of 3 where the schema does the heavy lifting without compensating for any gaps.
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 ('Add a label') and target resource ('to a task'), making the purpose immediately understandable. It distinguishes from siblings like 'create_label' (which creates new labels) and 'remove_label' (which removes them), though it doesn't explicitly contrast with alternatives like 'edit_label' for modifying existing label assignments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing existing board, task, and label IDs), when not to use it (e.g., if a label is already attached), or direct alternatives like 'edit_label' for modifying label assignments. Usage is implied but not explicitly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
change_task_statusC
Change the status/stage of a task
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| task_id | Yes | Task ID | |
| stage_id | Yes | New stage 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 behavioral disclosure. It indicates a mutation ('Change') but doesn't address permissions, side effects, error handling, or response format. This is inadequate for a tool that modifies task states, as critical behavioral traits like reversibility or impact are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasteβit directly states the tool's function without fluff. It's appropriately sized for a simple tool and front-loaded with the core action, making it easy to parse quickly.
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 mutation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits, usage context, and return values, leaving gaps that could hinder an agent's ability to invoke it correctly or handle outcomes. The high schema coverage doesn't compensate for these missing elements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters (board_id, task_id, stage_id). The description adds no additional meaning beyond implying these are used to change task status, which aligns with the schema but doesn't provide extra context like valid stage IDs or relationships between 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 action ('Change') and resource ('status/stage of a task'), making the purpose understandable. It doesn't explicitly distinguish from sibling tools like 'update_task' which might handle broader task modifications, but it's specific enough to convey its focused function.
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 like 'update_task' or 'create_stage'. The description implies usage for status changes but doesn't specify prerequisites, exclusions, or contextual triggers, leaving the agent to infer based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_labelC
Create a new label on a board
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| title | Yes | Label title/text | |
| bg_color | Yes | Background color (hex) - e.g., #4bce97 | |
| color | No | Text color (hex) - defaults to #1B2533 | #1B2533 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Create a new label' implies a write operation, but it doesn't specify permissions required, whether the operation is idempotent, rate limits, or what happens on success/failure (e.g., returns label ID). For a mutation tool with zero annotation coverage, this is a significant gap 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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse. Every word 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 mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain behavioral aspects like permissions, side effects, or return values. Given the complexity of creating a resource and the lack of structured data, the description should provide more context to guide the agent 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?
Schema description coverage is 100%, with all parameters clearly documented in the schema (board_id, title, bg_color, color with default). The description adds no additional parameter semantics beyond what's in the schema, such as format examples for colors or constraints on title length. Baseline 3 is appropriate when 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 clearly states the action ('Create') and resource ('new label on a board'), making the purpose immediately understandable. It distinguishes from siblings like 'add_label' (which might add existing labels) and 'edit_label' (which modifies existing ones) by specifying 'new'. However, it doesn't explicitly mention what distinguishes it from 'add_label' beyond the 'new' implication.
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 'add_label' or 'edit_label'. It doesn't mention prerequisites (e.g., needing board access) or exclusions (e.g., not for updating existing labels). The agent must infer usage from the name and context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_stageC
Create a new stage in a board
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| title | Yes | Stage title | |
| position | No | Stage position (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates a stage but doesn't cover critical aspects like required permissions, whether the operation is idempotent, error conditions, or what happens on success (e.g., returns a stage ID). For a mutation tool, this leaves significant gaps in understanding its 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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, making it easy to parse quickly.
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 as a mutation operation with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns, error handling, or behavioral nuances, leaving the agent with incomplete context for reliable 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 description adds no parameter-specific information beyond what the schema provides. Since schema description coverage is 100%, with clear descriptions for 'board_id', 'title', and 'position', the baseline score of 3 is appropriateβthe schema does the heavy lifting, and the description doesn't compensate or add extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('a new stage in a board'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'create_task' or 'create_label', which also create resources in the same domain, missing an opportunity for 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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing board), exclusions, or how it relates to sibling tools like 'create_task' or 'change_task_status', leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_taskC
Create a new task
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| title | Yes | Task title | |
| description | No | Task description | |
| stage_id | No | Stage ID (optional) |
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. 'Create a new task' implies a write operation, but it doesn't specify permissions required, whether it's idempotent, error handling, or what the response contains (e.g., task ID). This is a significant gap for a mutation tool with zero 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 extremely concise with a single sentence 'Create a new task', which is front-loaded and wastes no words. It efficiently conveys the core purpose without unnecessary elaboration, earning full marks for brevity.
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 (a mutation with 4 parameters) and lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects like side effects, return values, or error conditions, leaving the agent with insufficient context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear parameter descriptions (e.g., 'Board ID', 'Task title'). The description adds no additional meaning beyond the schema, such as explaining relationships between parameters (e.g., stage_id must belong to board_id). 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 'Create a new task' states the basic action (create) and resource (task), which is clear but minimal. It doesn't differentiate from sibling tools like 'create_label' or 'create_stage' beyond the resource name, making it somewhat vague in distinguishing its specific purpose within the task management context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. For example, it doesn't mention prerequisites (e.g., needing a board_id from 'get_board'), or when to use 'update_task' instead for modifications. This lack of context leaves the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
debug_testB
Test if MCP server is working
| 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 full burden for behavioral disclosure. 'Test if MCP server is working' implies a read-only diagnostic operation, but doesn't specify what constitutes 'working' (connectivity, authentication, functionality), what the response format might be, or whether this has any side effects. For a diagnostic tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
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 maximally concise at 5 words: 'Test if MCP server is working.' Every word earns its place - it specifies the action (test), target (MCP server), and purpose (working). There's zero waste or redundancy in this single-sentence description.
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 parameters, no output schema, no annotations), the description is adequate but minimal. It states what the tool does but doesn't provide context about what 'working' means diagnostically, what the expected response might contain, or when this tool should be used relative to the sibling task management tools. For a diagnostic tool, more context about the nature of the test would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description doesn't need to compensate for any parameter gaps. The baseline for 0 parameters with high schema coverage is 4, as there's no parameter information needed beyond what's already structured.
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: 'Test if MCP server is working' which is a specific action (test) on a specific resource (MCP server). However, it doesn't differentiate from sibling tools (all of which are task/board management tools), so this is a standalone diagnostic tool with no direct alternatives to distinguish from.
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. There's no mention of when this diagnostic check should be performed, what conditions might trigger its use, or how it relates to the sibling task management tools. The agent receives only the basic function without contextual usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_labelC
Delete a label from a board permanently
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| label_id | Yes | Label ID | |
| confirm_delete | No | Confirmation required: set to true, 'yes', or 'confirm' to proceed |
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 permanent nature of deletion, which is critical behavioral context. However, it lacks details on permissions required, side effects (e.g., impact on tasks using the label), error handling, or confirmation mechanics beyond the parameter hint.
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, direct sentence with zero waste. It's front-loaded with the core action and key detail (permanence), making it highly efficient 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?
For a destructive tool with no annotations and no output schema, the description is incomplete. It mentions permanence but omits critical context like required permissions, irreversible consequences, error scenarios, or what happens to associated data. This leaves significant gaps for safe agent operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning about parameters beyond implying deletion requires board and label IDs, which is obvious from the schema. Baseline 3 is appropriate as 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 clearly states the action ('Delete') and target ('a label from a board'), and specifies it's permanent. However, it doesn't differentiate from sibling 'remove_label' which suggests a similar function, leaving some ambiguity about when to choose one over the other.
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 like 'remove_label' or 'edit_label'. The description mentions permanence but doesn't explain prerequisites, recovery options, or contextual triggers for deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_taskC
Delete a task permanently
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| task_id | Yes | Task ID | |
| confirm_delete | No | Confirmation required: set to true, 'yes', or 'confirm' to proceed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action is 'permanent', which is useful, but lacks critical details: it doesn't mention authentication requirements, rate limits, error conditions, or what happens to associated data (e.g., comments, labels). For a destructive operation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and includes the key qualifier 'permanently' without unnecessary elaboration.
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 destructive tool with no annotations and no output schema, the description is incomplete. It should address critical context like permissions needed, confirmation mechanisms (hinted by 'confirm_delete' parameter but not explained), and what the tool returns (success/failure indicators). The permanence warning is a start but insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds no additional parameter semantics beyond implying deletion requires board and task IDs, which is already clear from the schema. Baseline 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 verb ('Delete') and resource ('a task') with the qualifier 'permanently', which distinguishes it from temporary removal operations. However, it doesn't explicitly differentiate from sibling tools like 'remove_label' or 'delete_label', which might have similar permanence implications.
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' for archiving or 'change_task_status' for marking as done. It mentions 'permanently' but doesn't specify prerequisites or warn about irreversible consequences in relation to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_labelC
Edit a label's title and colors
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| label_id | Yes | Label ID | |
| title | Yes | Label title/text | |
| bg_color | No | Background color (hex) | |
| color | No | Text color (hex) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Edit' which implies a mutation operation, but doesn't mention permissions required, whether changes are reversible, potential side effects, or what the response looks like. This is inadequate for a mutation tool with zero 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 a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
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 mutation tool with 5 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what happens when editing a label (e.g., whether it affects existing tasks), error conditions, or return values. The agent would need to guess about behavioral aspects beyond the basic edit action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so all parameters are documented in the schema. The description adds minimal value by mentioning 'title and colors' which aligns with the 'title', 'bg_color', and 'color' parameters, but doesn't provide additional context beyond what the schema already specifies. This meets 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 the action ('Edit') and the resource ('a label's title and colors'), making the purpose immediately understandable. It specifies what aspects of a label can be modified, though it doesn't explicitly differentiate from sibling tools like 'update_task' or 'create_label' beyond the resource name.
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 'create_label', 'delete_label', or 'remove_label'. It lacks context about prerequisites (e.g., needing an existing label) or typical use cases, leaving the agent to infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_boardB
Get details of a specific board
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board 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 of behavioral disclosure. It states this is a read operation ('Get'), but doesn't cover aspects like authentication needs, error handling, rate limits, or what 'details' include (e.g., fields returned). This is a significant 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 a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part earns its place by clearly stating the action and target, making it appropriately sized for this simple 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?
Given the tool's low complexity (one parameter, no output schema, no annotations), the description is minimally adequate. It states what the tool does but lacks details on behavior, usage context, or output, leaving gaps that could hinder an agent's effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'board_id' documented as 'Board ID' in the schema. The description adds no additional meaning beyond this, such as format examples or constraints, so it meets the baseline for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('details of a specific board'), making the purpose understandable. However, it doesn't distinguish this tool from similar siblings like 'get_task' or 'list_tasks' beyond the resource type, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a board ID), exclusions, or comparisons to siblings like 'list_tasks' for broader queries, leaving the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskB
Get details of a specific task including comments and attachments
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| task_id | Yes | Task 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 of behavioral disclosure. It states the tool retrieves details but doesn't mention whether it's a read-only operation, what permissions are required, how errors are handled (e.g., if the task doesn't exist), or the format of the returned data. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get details of a specific task') and specifies included elements ('comments and attachments'). There is no wasted language, and it's appropriately sized for a simple retrieval 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?
Given the tool's low complexity (2 required parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the purpose and what details are included, but lacks information on behavioral aspects like error handling, permissions, or return format. For a retrieval tool with no annotations or output schema, more context on the response would be beneficial, though it's minimally viable.
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%, with both parameters ('board_id' and 'task_id') documented in the schema as integers greater than 0. The description doesn't add any meaning beyond the schema, such as explaining the relationship between board and task IDs or providing examples. Baseline is 3 since the schema does the heavy lifting, but no extra value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('task'), specifying what details are included ('comments and attachments'). It distinguishes from siblings like 'list_tasks' (which lists multiple tasks) and 'get_board' (which gets board details). However, it doesn't explicitly contrast with 'update_task' or 'delete_task', which are different operations on the same resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing details of a specific task, including its comments and attachments. It doesn't provide explicit guidance on when to use this versus alternatives like 'list_tasks' (for multiple tasks) or 'get_board' (for board-level details), nor does it mention prerequisites or exclusions. The context is clear but lacks explicit alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksC
List tasks in a board
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but doesn't cover critical aspects like whether it's read-only, pagination behavior, error handling, or authentication needs. For a list operation with zero annotation coverage, this is a significant gap 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 a single, efficient sentence with no wasted words, making it appropriately concise. However, it could be more front-loaded with key details, but it's structurally sound for its 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?
Given the complexity of listing tasks in a system with multiple sibling tools, no annotations, and no output schema, the description is incomplete. It lacks information on return values, error cases, or how it fits into the broader toolset, leaving gaps for an AI agent to understand its full 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 description coverage is 100%, so the input schema already documents the 'board_id' parameter fully. The description adds no additional meaning beyond what the schema provides, such as context on board selection or relationships. Baseline 3 is appropriate when the schema handles parameter 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 'List tasks in a board' clearly states the action (list) and resource (tasks), but it's vague about scope and lacks differentiation from siblings like 'get_task' or 'get_board'. It doesn't specify whether it lists all tasks or filtered ones, making it minimally adequate but with clear gaps.
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 'get_task' (for a single task) or 'get_board' (for board details). The description implies usage for listing tasks but offers no context on prerequisites, exclusions, or comparisons with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_labelC
Remove a label from a task
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| task_id | Yes | Task ID | |
| label_id | Yes | Label 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 of behavioral disclosure. It states the action ('Remove') but doesn't clarify if this is a destructive mutation, what permissions are required, whether changes are reversible, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is a significant gap 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 a single, efficient sentence with zero wasted words. It front-loads the core action ('Remove a label from a task') without unnecessary elaboration. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like side effects, error conditions, or return values. While the schema covers parameters well, the overall context for safe and effective use is lacking, especially compared to siblings that may have similar gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters clearly documented in the schema (board_id, task_id, label_id). The description adds no additional meaning beyond implying that a label is removed from a task, which the schema already covers through parameter names and descriptions. Baseline 3 is appropriate when 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 clearly states the action ('Remove') and the target ('a label from a task'), which is specific and unambiguous. It distinguishes itself from siblings like 'add_label' and 'delete_label' by focusing on removal from a task rather than creation or deletion of the label itself. However, it doesn't explicitly mention the board context that the parameters require, which slightly limits 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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing label on a task), exclusions (e.g., not for removing labels from boards directly), or comparisons to siblings like 'edit_label' or 'delete_label'. The agent must infer usage solely from the name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_taskC
Update an existing task
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| task_id | Yes | Task ID | |
| title | No | New task title | |
| description | No | New task description | |
| stage_id | No | New stage ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Update an existing task' implies a mutation operation but doesn't specify required permissions, whether changes are reversible, error handling, or response format. For a mutation tool with zero annotation coverage, this leaves critical behavioral traits undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just three words, front-loading the essential information with zero wasted text. Every word earns its place, making it efficient though potentially under-specified.
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 mutation tool with 5 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what happens during updates, what fields are optional versus required beyond the schema, or what the tool returns. The context demands more completeness than this minimal description provides.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 5 parameters. The description adds no additional meaning about parameters beyond what's in the schema, but since the schema provides complete coverage, 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 'Update an existing task' clearly states the action (update) and resource (task), but it's vague about what aspects can be updated and doesn't differentiate from sibling tools like 'change_task_status' or 'edit_label'. It provides basic purpose but lacks specificity.
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 like 'change_task_status' for status updates or 'edit_label' for label modifications. The description offers no context about prerequisites, exclusions, or appropriate scenarios for this update operation.
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.
15 tool updates
- First observed
add_comment - First observed
add_label - First observed
change_task_status - First observed
create_label - First observed
create_stage - First observed
create_task - First observed
debug_test - First observed
delete_label - First observed
delete_task - First observed
edit_label - First observed
get_board - First observed
get_task - First observed
list_tasks - First observed
remove_label - First observed
update_task
TDQS
Scored across 15 tools
Every tool has a clearly distinct purpose with no ambiguity. Tools target specific resources (tasks, labels, stages, boards) and actions (create, get, update, delete, add, remove, change), making it easy for an agent to select the correct tool. For example, 'add_label' vs 'create_label' vs 'remove_label' are clearly differentiated by whether they operate on tasks or boards.
The naming follows a consistent verb_noun pattern throughout with one minor deviation. Most tools use clear action words followed by the resource (e.g., create_task, get_board, update_task). The only inconsistency is 'debug_test', which doesn't follow the domain-specific pattern but is clearly a utility tool.
With 15 tools, this is well-scoped for a project management/board system. Each tool earns its place by covering essential operations for tasks, labels, stages, and boards. The count supports comprehensive workflows without being overwhelming for the domain.
The tool set provides complete CRUD/lifecycle coverage for the domain. It includes creation (create_task, create_label, create_stage), retrieval (get_board, get_task, list_tasks), updates (update_task, change_task_status, edit_label, add_comment, add_label), and deletion (delete_task, delete_label, remove_label). No obvious gaps exist for core board management operations.
Maintenance
Related MCP Connectors
Remote MCP for Kanban AI boardsβmanage projects, tasks, and comments from AI tools.
AI agents use CalmBoard MCP to access board data, tasks, insights, and project workflows.
Task & board management for AI agents + humans. Kanban, comments, digests via MCP.
Create, read and live-edit visual boards, Kanban plans, Gantt timelines and diagrams with AI agents.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with WordPress sites through REST APIs, allowing programmatic management of posts, users, comments, categories, and tags with secure authentication.2948MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage WordPress sites through natural conversation, supporting post creation, content updates, site queries, and draft-to-publish workflows via the WordPress REST API.9MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with Trello boards, cards, lists, and more through a standardized interface.-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage WordPress content (create, retrieve, update posts) via the WordPress REST API with secure authentication.7 npmMIT