Taskboard MCP Server
Enables GitHub Copilot Chat to interact with a Taskboard instance, providing tools to manage workspaces, boards, lists, and cards, as well as searching and updating card information directly within the chat interface.
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., "@Taskboard MCP ServerSearch for all cards related to the authentication bug"
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.
Taskboard MCP Server Setup
Overview
This HTTP-based MCP (Model Context Protocol) server provides GitHub Copilot Chat with access to your Taskboard instance, allowing you to manage workspaces, boards, lists, and cards directly from Copilot.
Related MCP server: Focalboard MCP Server
Installation
Install dependencies:
cd mcp-server
npm installConfigure environment: Create a
.envfile in themcp-serverdirectory:
# Taskboard API Configuration
TASKBOARD_API_URL=http://localhost:3000/api
TASKBOARD_AUTH_TOKEN=your_auth_token_here
MCP_SERVER_PORT=3001Running the Server
Development
npm run devProduction
npm startThe server will start on http://localhost:3001
GitHub Copilot Chat Integration
The .vscode/mcp.json file configures the MCP server for GitHub Copilot Chat:
{
"mcpServers": {
"taskboard": {
"url": "http://localhost:3001",
"env": {
"TASKBOARD_API_URL": "http://localhost:3000/api",
"TASKBOARD_AUTH_TOKEN": ""
}
}
}
}Setting up Copilot Chat
Open VS Code
Go to Settings → Extensions → GitHub Copilot Chat
Configure the MCP servers pointing to your local
.vscode/mcp.jsonEnsure the MCP server is running (
npm start)
Available Tools
The MCP server exposes the following tools for Copilot Chat:
list_workspaces - List all accessible workspaces
list_boards - List boards in a workspace
list_lists - List columns/lists in a board
list_cards - List cards in a list
search_cards - Search cards by title or description
view_card - Get detailed card information
update_card_description - Update a card's description
update_card_status - Change a card's status
create_card - Create a new card
delete_card - Delete a card
get_activity - Get user activity summary
query_rag - Query the knowledge base using RAG
API Endpoints
Health Check
GET /healthMCP Endpoints
POST /mcp/v1/initialize - Initialize connection
POST /mcp/v1/tools/list - List available tools
POST /mcp/v1/tools/call - Call a specific tool
POST /mcp/v1/resources/list - List resources
POST /mcp/v1/prompts/list - List promptsExample Copilot Chat Requests
"List all my workspaces"
"Show me boards in workspace 1"
"Search for cards about authentication"
"Update card 42 with description: 'In progress'"
"Create a new card in list 3"
"Query the knowledge base about setup process"
Troubleshooting
Connection refused: Ensure the MCP server is running on port 3001
Authentication error: Check that
TASKBOARD_AUTH_TOKENis validNo tools available: Verify the server is properly initialized and responding to requests
Port already in use: Change
MCP_SERVER_PORTin.envto use a different port
Available Tools
12 toolscreate_cardC
Create a new card/issue in a specific list
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | The ID of the list to add the card to | |
| title | Yes | The title of the new card | |
| description | No | The description of the new card (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. While 'Create' implies a write operation, it doesn't specify permissions required, whether the operation is idempotent, error handling, or what happens on success (e.g., returns a card ID). This leaves significant gaps 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 a single, efficient sentence that directly states the tool's purpose without any unnecessary words. It's appropriately sized 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 doesn't explain what happens after creation (e.g., returns a card object or ID), error conditions, or behavioral constraints. Given the complexity and lack of structured data, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting all three parameters (list_id, title, description) and their types/requirements. The description adds no additional parameter semantics beyond what the schema provides, so it 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 ('Create a new card/issue') and the target resource ('in a specific list'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'update_card_title' or 'move_card' beyond the basic creation action, 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 like 'update_card_title' or 'move_card', nor does it mention prerequisites such as needing an existing list. It simply states what the tool does without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_all_cards_in_boardB
List all cards/issues across all lists in a specific board
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | The ID of the board |
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 it's a list operation, implying read-only behavior, but doesn't mention any constraints like pagination, rate limits, authentication needs, or what happens if the board_id is invalid. For a tool with zero annotation coverage, 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 front-loads the core action and scope. There is no wasted verbiage, and every word contributes directly to clarifying the tool's purpose, making it appropriately sized 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 the tool's low complexity (1 parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on behavioral traits, usage guidelines, and output format. Without annotations or an output schema, the agent must rely on inference, making this description incomplete for optimal tool selection.
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 the single parameter 'board_id' fully documented in the schema. The description adds no additional meaning beyond implying the board_id specifies 'a specific board', which is already covered. This meets the baseline of 3 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 verb ('List') and resource ('all cards/issues across all lists in a specific board'), making the purpose immediately understandable. It distinguishes from siblings like 'list_cards' by specifying 'all cards/issues across all lists' and 'in a specific board', though it doesn't explicitly contrast with 'search_cards' or 'view_card'.
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 'list_cards', 'search_cards', or 'view_card'. It mentions 'all cards/issues across all lists' but doesn't clarify if this is for bulk retrieval versus filtered searches, 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.
list_boardsB
List all boards in a specific workspace
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | The ID of the workspace |
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 lists boards but doesn't describe key behaviors such as pagination, error handling, authentication requirements, or rate limits. For a read operation without annotations, this leaves significant gaps in understanding how the tool behaves.
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 that efficiently conveys the core functionality without any wasted words. It is front-loaded and appropriately sized for a simple tool, making it easy for an agent 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 low complexity (one parameter, no output schema, no annotations), the description is minimally adequate but incomplete. It covers the basic purpose but lacks behavioral details and usage guidelines, which are important for an agent to operate effectively in a server with multiple sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'workspace_id' fully documented in the schema. The description adds no additional parameter details beyond implying the workspace context, so it meets the baseline score of 3 where the schema handles the parameter documentation 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 action ('List all boards') and the resource ('in a specific workspace'), making the purpose immediately understandable. However, it doesn't distinguish this tool from potential sibling tools like 'list_workspaces' or 'list_all_cards_in_board' 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 workspace ID), exclusions, or comparisons to sibling tools like 'list_workspaces' or 'search_cards', leaving the agent with minimal context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cardsC
List all cards/issues in a specific list
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes | The ID of the list |
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. While 'List' implies a read-only operation, it doesn't address important behavioral aspects like pagination, rate limits, authentication requirements, error conditions, or what happens when the list_id doesn't exist. The description is too minimal for a tool that presumably returns data.
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 7 words, front-loading the essential information. Every word earns its place, and there's no wasted language or redundancy. The structure is optimal for such a 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?
For a tool with no annotations and no output schema, the description is inadequate. It doesn't explain what format the cards/issues are returned in, whether there's pagination, what fields are included, or how errors are handled. Given the lack of structured information elsewhere, the description should provide more complete context about the tool's behavior and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single 'list_id' parameter. The description adds no additional parameter information beyond what's in the schema, but since the schema is complete, 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 action ('List') and resource ('cards/issues in a specific list'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'list_all_cards_in_board' or 'search_cards', which could cause confusion about when to use each one.
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 'list_all_cards_in_board' or 'search_cards'. It mentions 'in a specific list' which implies a scope, but doesn't explicitly state when this is the preferred option or what distinguishes it from other listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_listsC
List all columns/lists in a specific board
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | The ID of the board |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but provides only basic functional information. It doesn't disclose behavioral traits like whether this is a read-only operation, pagination behavior, rate limits, authentication requirements, or what format the returned lists/columns will have. The description is functional but lacks important operational 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 extremely concise with a single sentence that directly states the tool's purpose without any wasted words. It's front-loaded with the core functionality and appropriately sized for a simple listing 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 tool with no annotations and no output schema, the description is insufficiently complete. While the purpose is clear, it lacks information about what the tool returns (list format, column structure), error conditions, or operational constraints. Given the context of sibling tools that handle similar board operations, more guidance 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 description adds minimal value beyond the input schema, which already has 100% coverage. It mentions 'in a specific board' which implies the board_id parameter, but doesn't provide additional semantic context about board selection, valid board types, or relationship to the parameter. With high schema coverage, the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all') and target resource ('columns/lists in a specific board'), providing a specific verb+resource combination. However, it doesn't explicitly distinguish this tool from sibling tools like 'list_boards' or 'list_cards', which would require mentioning it focuses specifically on board columns/lists rather than other board elements.
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 minimal guidance by specifying 'in a specific board', but offers no explicit when-to-use instructions, no exclusions, and no alternatives. It doesn't help the agent choose between this tool and similar siblings like 'list_all_cards_in_board' or 'list_cards' that also list board contents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspacesB
List all workspaces that the user has access to
| 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 full burden. It states it's a list operation, implying read-only behavior, but doesn't disclose any behavioral traits such as pagination, sorting, rate limits, authentication needs, or what 'access' entails. For a tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.
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 any waste. It's appropriately sized and front-loaded, making it easy to parse quickly. 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?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It explains what the tool does but lacks details on behavior, output format, or usage context. For a list tool with no structured data, it meets basic needs but could be more complete by adding context like return structure or access specifics.
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 0 parameters with 100% coverage, so no parameters need documentation. The description doesn't add param info, which is fine here. Baseline is 4 for zero parameters, as the schema fully covers the absence of 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 clearly states the action ('List') and resource ('workspaces'), specifying 'all workspaces that the user has access to' which defines scope. It doesn't explicitly differentiate from siblings like 'list_boards' or 'list_lists', but the resource distinction is inherent. This is clear but lacks explicit 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, compare to siblings like 'list_boards' for different resources, or indicate scenarios where it's preferred. Usage is implied by the resource name alone, with no explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_cardC
Move a card to a different list/column
| Name | Required | Description | Default |
|---|---|---|---|
| card_id | Yes | The ID of the card to move | |
| list_id | Yes | The ID of the destination list |
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 ('move') but doesn't clarify if this is a destructive operation (e.g., whether it overwrites data or requires specific permissions), what happens on success/failure, or any rate limits. For a mutation tool with zero annotation coverage, this leaves critical behavioral traits unspecified, though it doesn't contradict any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without any fluff or redundancy. It's front-loaded with the core action, making it easy to parse quickly. Every word earns its place by contributing to understanding the 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?
Given the tool's complexity (a mutation operation with no annotations and no output schema), the description is incomplete. It lacks details on behavioral aspects (e.g., side effects, error handling), output expectations, or integration with sibling tools. While the schema covers parameters well, the overall context for safe and effective use is insufficient, especially for a tool that modifies data.
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 clear descriptions for both parameters ('card_id' and 'list_id'), so the schema already documents their purpose and types. The description adds minimal value by implying the parameters relate to moving a card between lists, but it doesn't provide additional context (e.g., format of IDs or where to obtain them). Baseline 3 is appropriate as the schema handles 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 ('move') and resource ('card') with the destination ('to a different list/column'), making the purpose immediately understandable. It distinguishes this from siblings like 'create_card' or 'update_card_title' by focusing on relocation rather than creation or modification. However, it doesn't explicitly differentiate from all siblings (e.g., 'view_card' is clearly different, but the distinction from 'update_card_description' in terms of when to choose one over the other isn't detailed).
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 card and list IDs), exclusions (e.g., not for moving within the same list), or comparisons to siblings like 'update_card_title' or 'search_cards'. The agent must infer usage solely from the tool name and parameters, which is insufficient for optimal selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_ragC
Ask a question using the RAG knowledge base created from GitLab wikis, issues, and merge requests
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes | The ID of the workspace with RAG enabled | |
| question | Yes | The question to ask the knowledge base |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions the knowledge base source but doesn't disclose response format, accuracy limitations, rate limits, authentication needs, or whether it's read-only (though implied). For a query tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose and includes necessary context about the knowledge base source without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a query tool that likely returns complex results, the description is incomplete. It doesn't explain what the tool returns (e.g., answers, citations, confidence scores) or behavioral constraints, leaving the agent under-informed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no additional parameter semantics beyond implying the question targets the RAG knowledge base. 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 ('Ask a question') and the resource ('RAG knowledge base'), specifying it's created from GitLab wikis, issues, and merge requests. However, it doesn't explicitly differentiate this tool from its siblings (which are all card/board management tools), though the domain difference is obvious.
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 RAG-enabled workspace), nor does it compare to other querying methods or sibling tools. The agent must 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.
search_cardsC
Search for cards/issues across all accessible boards by title or description
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term to find in card titles or descriptions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions searching 'across all accessible boards' which implies some permission-based constraints, but doesn't describe what 'accessible' means, whether there are rate limits, what the return format looks like, or if results are paginated. For a search tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a search tool. It doesn't explain what the search returns (e.g., list of cards, metadata), how results are structured, or any limitations (e.g., partial matches, case sensitivity). The context signals indicate a simple parameter setup, but the description fails to compensate for the lack of structured behavioral information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'query' fully documented in the schema. The description adds minimal value beyond the schema by mentioning 'title or description' as search targets, but doesn't provide additional syntax, format, or behavioral details about the parameter.
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: 'Search for cards/issues across all accessible boards by title or description.' It specifies the verb ('search'), resource ('cards/issues'), and scope ('across all accessible boards'), but doesn't explicitly differentiate from siblings like 'list_cards' or 'query_rag' which might have overlapping functionality.
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 when to prefer 'search_cards' over 'list_cards' or 'query_rag', nor does it specify any prerequisites or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_card_descriptionC
Update the description of a card/issue
| Name | Required | Description | Default |
|---|---|---|---|
| card_id | Yes | The ID of the card | |
| description | Yes | The new description for the card |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits. It doesn't mention permissions required, whether the update is reversible, rate limits, or what happens to existing descriptions. For a mutation tool with zero annotation coverage, 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 that directly states the tool's purpose without any wasted 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?
Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks crucial context like behavioral traits, usage guidelines, or output expectations, making it inadequate for safe and effective tool invocation by an AI 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 description adds no parameter semantics beyond what the input schema already provides, as schema description coverage is 100% with clear documentation for both 'card_id' and 'description'. The baseline score of 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 clearly states the action ('Update') and resource ('description of a card/issue'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'update_card_title' beyond mentioning 'description' specifically, which is why it doesn't reach 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 like 'update_card_title' or 'create_card'. It lacks any mention of prerequisites, context, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_card_titleC
Update the title of a card/issue
| Name | Required | Description | Default |
|---|---|---|---|
| card_id | Yes | The ID of the card | |
| title | Yes | The new title for the card |
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' implies a mutation operation, but the description doesn't disclose any behavioral traits like required permissions, whether changes are reversible, rate limits, or what happens on success/failure. It only states what the tool does, not how it behaves.
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 states exactly what the tool does with zero wasted words. It's appropriately sized for a simple update operation and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens after the update (e.g., success response, error conditions, or side effects). Given the complexity of modifying data and the lack of structured behavioral information, more context is needed for the agent to use this tool 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 schema description coverage is 100%, with both parameters ('card_id' and 'title') clearly documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema (e.g., format constraints, validation rules, or examples). 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 ('Update') and resource ('title of a card/issue'), making the purpose immediately understandable. It distinguishes from siblings like 'update_card_description' by specifying the title field, but doesn't explicitly differentiate from other card operations like 'move_card' or 'view_card' beyond the title focus.
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 card_id), when not to use it, or how it differs from other card-update operations like 'update_card_description' or 'move_card' beyond the obvious title focus.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
view_cardC
Get detailed information about a specific card/issue
| Name | Required | Description | Default |
|---|---|---|---|
| card_id | Yes | The ID of the card |
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 states 'Get detailed information', which implies a read-only operation, but doesn't disclose behavioral traits such as required permissions, error handling, or what 'detailed information' includes (e.g., fields, format). 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 directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, though it could be slightly more structured to include usage context, earning a high but not perfect 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 complexity of a read operation with no annotations and no output schema, the description is incomplete. It doesn't explain what 'detailed information' entails, potential errors, or how it differs from sibling tools. For a tool in this context, more detail is needed to be fully helpful to an AI 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 the parameter 'card_id' fully documented in the schema. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't explain ID format or sourcing). Given the high coverage, the baseline score of 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 verb 'Get' and resource 'detailed information about a specific card/issue', making the purpose understandable. However, it doesn't differentiate from siblings like 'list_cards' or 'search_cards' which might also retrieve card information, so it falls short of 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 like 'list_cards' or 'search_cards'. It mentions 'specific card/issue', implying it's for a known ID, but doesn't explicitly state this or mention prerequisites, leaving usage unclear relative to siblings.
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.
12 tool updates
v1.0.0- First observed
create_card - First observed
list_all_cards_in_board - First observed
list_boards - First observed
list_cards - First observed
list_lists - First observed
list_workspaces - First observed
move_card - First observed
query_rag - First observed
search_cards - First observed
update_card_description - First observed
update_card_title - First observed
view_card
TDQS
Scored across 12 tools
Most tools have distinct purposes, but 'list_cards' and 'list_all_cards_in_board' could cause confusion as both list cards, differing only in scope (list vs. board). The 'query_rag' tool stands out as unrelated to core task management, potentially creating ambiguity in server purpose.
Tools follow a consistent verb_noun pattern (e.g., create_card, list_boards, update_card_title), with clear and readable names. Minor inconsistency exists with 'list_all_cards_in_board' using 'all' and 'in_board' instead of a simpler pattern like 'list_board_cards'.
With 12 tools, the count is well-scoped for a task management server, covering core operations without being overwhelming. Each tool appears to serve a specific function, aligning with typical CRUD and query needs in this domain.
The toolset provides strong coverage for task management, including CRUD operations (create, view, update), listing resources, and moving cards. However, there is no tool for deleting cards or boards, which is a notable gap in lifecycle management, though agents might work around it.
Maintenance
Related MCP Connectors
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Task & board management for AI agents + humans. Kanban, comments, digests via MCP.
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables interaction with Azure DevOps work items through AI assistants like VS Code/GitHub Copilot. Supports fetching work item details and updating work item statuses using natural language commands.-
- FlicenseAqualityDmaintenanceEnables task and board management in Focalboard through natural language, supporting board operations, card creation/updates, and column movements with automatic authentication and user-friendly property names.104-
- AlicenseNot gradedqualityDmaintenanceIntegrates Azure DevOps with GitHub Copilot Chat, enabling natural language queries of sprint work items, ticket summaries, and status tracking directly from VS Code without switching contexts.14 npmMIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to search and create tasks in TeamBoard via its HTTP API.-