vikunja-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vikunja-mcplist my tasks in project 'Work'"
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.
┌────────────────────────────────────────────────────────────┐
│ │
│ ██╗ ██╗██╗██╗ ██╗██╗ ██╗███╗ ██╗ ██╗ █████╗ │
│ ██║ ██║██║██║ ██╔╝██║ ██║████╗ ██║ ██║██╔══██╗ │
│ ██║ ██║██║█████╔╝ ██║ ██║██╔██╗ ██║ ██║███████║ │
│ ╚██╗ ██╔╝██║██╔═██╗ ██║ ██║██║╚██╗██║██ ██║██╔══██║ │
│ ╚████╔╝ ██║██║ ██╗╚██████╔╝██║ ╚████║╚█████╔╝██║ ██║ │
│ ╚═══╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚════╝ ╚═╝ ╚═╝ │
│ ███╗ ███╗ ██████╗██████╗ │
│ ████╗ ████║██╔════╝██╔══██╗ │
│ ██╔████╔██║██║ ██████╔╝ │
│ ██║╚██╔╝██║██║ ██╔═══╝ │
│ ██║ ╚═╝ ██║╚██████╗██║ │
│ ╚═╝ ╚═╝ ╚═════╝╚═╝ │
│ │
│ > MCP server for Vikunja task management │
│ > Connect your AI assistant to your tasks │
│ │
└────────────────────────────────────────────────────────────┘
> ABOUT
Connect your AI assistant to Vikunja, the open-source task manager. This MCP server lets you manage projects, tasks, kanban boards, and more—just by asking. Works with Claude Desktop, OpenCode, Cursor, and other MCP clients.
WHY VIKUNJA-MCP?
────────────────────────────────────────────────────────────
[+] Self-hosted friendly Your data stays on your server
[+] Full coverage 32 tools across all Vikunja APIs
[+] Reliable Retry logic with exponential backoff
[+] Production ready 86 tests, 90%+ code coverage
[+] Zero config Works out of the box with npx
────────────────────────────────────────────────────────────Related MCP server: Taskwarrior MCP Server
> QUICK START
# Install
$ npm install -g @0xk3vin/vikunja-mcp
# Set environment variables
$ export VIKUNJA_URL="https://your-vikunja-instance.com"
$ export VIKUNJA_API_TOKEN="your_api_token"Claude Desktop Configuration
Add to your config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"vikunja": {
"command": "npx",
"args": ["-y", "@0xk3vin/vikunja-mcp"],
"env": {
"VIKUNJA_URL": "https://your-vikunja-instance.com",
"VIKUNJA_API_TOKEN": "your_api_token"
}
}
}
}> FEATURES
┌─────────────────────────────────────────────────────────┐
│ │
│ [■] PROJECTS Create, update, delete, archive │
│ [■] TASKS Full CRUD + filtering & sorting │
│ [■] KANBAN Buckets, move tasks, WIP limits │
│ [■] LABELS Create, attach, remove from tasks │
│ [■] COMMENTS Add and list task comments │
│ [■] ASSIGNEES Manage who's working on what │
│ [■] RELATIONS Subtasks, blocking, dependencies │
│ [■] VIEWS List, kanban, table, gantt │
│ [■] TEAMS List teams and members │
│ [■] USERS Search by name, username, email │
│ [■] NOTIFICATIONS List user notifications │
│ │
└─────────────────────────────────────────────────────────┘> CONFIGURATION
Copy .env.example to .env and configure:
VIKUNJA_URL=https://your-vikunja-instance.com
VIKUNJA_API_TOKEN=your_api_tokenGetting an API token:
Log into your Vikunja instance
Go to Settings → API Tokens
Create a new token and copy it
> DEVELOPMENT
$ git clone https://github.com/0xK3vin/vikunja-mcp.git
$ cd vikunja-mcp
$ npm install
$ npm run build
$ npm testCommands
Command | Description |
| Run the server |
| Run tests |
| Build TypeScript |
| Lint code |
| Debug with MCP Inspector |
> DOCS
Full API reference: docs/API.md
> CONTRIBUTING
Contributions welcome! See CONTRIBUTING.md for guidelines.
> LICENSE
MIT - see LICENSE
╔════════════════════════════════════════════════════════════╗
║ Made by 0xK3vin ║
║ github.com/0xK3vin/vikunja-mcp ║
╚════════════════════════════════════════════════════════════╝Available Tools
31 toolsbuckets_createB
Create a new kanban bucket
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The project ID | |
| viewId | Yes | The project view ID (must be a kanban view) | |
| title | Yes | Bucket title | |
| limit | No | Max tasks in bucket (0 = unlimited) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It does not disclose behavioral traits such as duplication handling, permission requirements, or side effects beyond the basic creation action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence. It is concise, but could benefit from additional context without sacrificing 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?
The tool has 4 parameters and no output schema. The description fails to explain return values, constraints (e.g., limit behavior), or prerequisites, making it insufficient for a complete understanding.
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 baseline is 3. The description adds no extra meaning beyond what the input schema already provides for each 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 'Create a new kanban bucket' clearly states the verb and resource, and differentiates from sibling tools like buckets_delete and buckets_list by specifying the action and resource type.
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 gives no instructions on when to use this tool versus alternatives (e.g., task_move_to_bucket). The required parameters (projectId, viewId, title) imply the need for a project and kanban view, but this is not stated explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buckets_deleteB
Delete a kanban bucket
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The project ID | |
| viewId | Yes | The project view ID | |
| bucketId | Yes | The bucket ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like irreversibility or required permissions, but it only states the basic action of deletion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the action. It is appropriately sized but could benefit from slight expansion.
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 delete operation with three required parameters and no output schema, the description lacks contextual details such as side effects, prerequisites, or what happens on success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds no extra meaning beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('kanban bucket'), distinguishing it from sibling tools like buckets_create and buckets_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buckets_listA
List all kanban buckets for a project view
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The project ID | |
| viewId | Yes | The project view ID (must be a kanban view) |
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 does not disclose that the operation is read-only, has no side effects, or any other behavioral traits (e.g., auth requirements, rate limits). For a list operation, this is a 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?
Single sentence, focused and front-loaded. No redundant information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (list with 2 required params, no output schema), the description covers the core purpose and constraints. However, it could briefly mention that the view must be a kanban view (currently only in schema description), but overall complete enough for an experienced user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions for both parameters, so schema already explains meaning. The description adds no extra semantics beyond what's in the schema. 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?
Description uses specific verb 'List' and resource 'kanban buckets' with scope 'for a project view', clearly distinguishing from sibling tools like labels_list or buckets_create. The purpose is immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: call when needing to list buckets for a kanban view. However, no explicit guidance on when not to use it or alternatives (e.g., if non-kanban view, this tool would fail; no mention of that). Sibling context provides some differentiation, but description lacks explicit instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
labels_createB
Create a new label
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Label title (required) | |
| description | No | Label description | |
| color | No | Hex color (e.g., 'ff0000') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only says 'Create a new label' without disclosing side effects, permission requirements, or behavior under error conditions (e.g., duplicate titles).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It is concise and directly states the purpose, though it could be more informative.
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?
Missing information about output (e.g., returns created label object?), handling of duplicates, and any constraints. Given the simplicity of the tool, more completeness would be beneficial.
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 parameters are documented. The tool description adds no additional meaning beyond 'Create a new label', meeting baseline expectations.
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'), which distinguishes it from sibling tools like labels_delete and labels_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No context about prerequisites, such as whether a parent project or workspace is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
labels_deleteB
Delete a label
| Name | Required | Description | Default |
|---|---|---|---|
| labelId | Yes | The label ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose destructive nature or irreversibility, but it only states 'Delete a label' without any behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete with one parameter and no output schema, the description is adequate but could mention side effects or return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for labelId with description, so the description adds no additional meaning beyond the schema; baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a label' uses a specific verb and resource, clearly distinguishing it from sibling tools like labels_create and labels_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
labels_listB
List all labels the user has access to
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| perPage | No | Number of items per page | |
| search | No | Search labels by title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as pagination, default values, or authorization requirements beyond listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words, 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?
While the tool has optional pagination and search parameters, the description does not explain their behavior or default values. No output schema is provided, but for a simple list operation, the description is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are described in the schema with 100% coverage. The description adds no additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all labels the user has access to' clearly states the action (list) and resource (labels), distinguishing it from sibling tools like labels_create and labels_delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not specify scenarios, prerequisites, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notifications_listB
List all notifications for the current user
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| perPage | No | Number of items per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behaviors. It only states 'List all notifications' without mentioning read-only nature, pagination, ordering, or any side effects. The brevity leaves significant behavioral 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 concise sentence that directly conveys the tool's purpose with no unnecessary words. It is front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with pagination parameters and no output schema, the description lacks essential context such as what the response contains, pagination behavior, or ordering. This incompleteness may lead to incorrect agent expectations.
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 parameters 'page' and 'perPage' are already documented in the schema. The description adds no additional semantics beyond the schema, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'notifications for the current user'. It distinguishes the tool from sibling tools that list other resources like buckets, labels, or tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing notifications but provides no explicit guidance on when to use it versus alternatives or prerequisites. Context signals show no sibling tools for notifications, so differentiation is not needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingA
Test if the MCP server is working
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must convey behavior. It states it's a test, implying safe read-only action, but does not specify error responses or side effects. Adequate for its simplicity.
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?
Single sentence with no waste. Highly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no annotations, the description fully covers what the tool does. No output schema needed for a health check.
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?
No parameters exist, so the description does not need to add meaning. Baseline 4 applies as schema coverage is 100% and empty.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks if the MCP server is working, with a specific verb and resource. It is distinct from sibling tools that perform CRUD operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied as a health check, but no explicit guidance is given on when to use it versus alternatives. For a simple tool, this is acceptable but minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projects_createC
Create a new project
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Project title (required) | |
| description | No | Project description | |
| color | No | Hex color (e.g., 'ff0000') | |
| parentProjectId | No | Parent project ID for nesting |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as authentication needs, idempotency, error handling, or what happens with duplicate titles. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one sentence. While brevity is valued, it omits potentially useful context that could be included without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should provide more context about the creation process (e.g., whether it creates a root project, nesting behavior, permissions). The current description is insufficient for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already has 100% coverage with descriptions for all four parameters. The description adds no additional meaning beyond what the schema provides, meeting the baseline expectation.
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 the resource 'project', making the purpose immediately understandable. However, it does not differentiate from sibling tools like buckets_create or tasks_create, as they all share the same verb-object pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of context like whether a parent project ID is beneficial or required in certain scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projects_deleteB
Delete a project
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The project ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as irreversibility, cascading effects, or permission requirements. 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 extremely concise (3 words) with no unnecessary information. It is front-loaded and efficient, though slightly minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter and no output schema, the description provides basic context. However, it does not differentiate from other delete tools (e.g., buckets_delete) in terms of usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the single parameter with description, so the tool description adds no extra meaning. Baseline score of 3 is appropriate given 100% 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 'Delete a project' clearly states the verb and resource. It distinguishes from sibling tools like projects_create, projects_list, etc., which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no mention of prerequisites or conditions for deletion. The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projects_getA
Get a single project by ID
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description indicates a read operation, but with no annotations, it fails to disclose what happens if the project ID is not found or any error conditions. It's minimally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence with no wasted words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter. Description covers the core action, but could improve by mentioning return value or error behavior, especially since no output schema is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a basic description for projectId. The tool description adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a single project by ID' clearly states the verb (Get), the resource (a single project), and the method (by ID). It distinguishes itself from sibling tools like projects_list and projects_create.
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 explicit guidance on when to use this tool vs alternatives (e.g., projects_list). The usage is implied but not clarified with when-not or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projects_listC
List all projects the user has access to
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1) | |
| perPage | No | Number of items per page (default: 50) | |
| search | No | Search projects by title | |
| isArchived | No | If true, also return archived projects |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic operation. It does not disclose behaviors like pagination limits, sorting defaults, or the fact that it only returns non-archived projects by default (inferred from isArchived parameter).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details on return structure, pagination behavior, and any side effects. For a list tool with four parameters, this is insufficient for an agent to use it correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema fully documents the parameters. The description adds no additional meaning beyond what is in the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists projects the user has access to, which distinguishes it from sibling tools like projects_get (single project) and projects_create. It is specific and concise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., projects_get for retrieval). No when-not-to-use or prerequisite information is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projects_updateB
Update an existing project
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The project ID (required) | |
| title | No | New project title | |
| description | No | New project description | |
| color | No | New hex color | |
| isArchived | No | Archive or unarchive the project | |
| isFavorite | No | Mark as favorite |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It states 'Update' implying mutation, but lacks details on side effects, authorization needs, error conditions, or response format.
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 4-word sentence, front-loaded and free of fluff. However, it is extremely terse and could include more context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six parameters, a mutation operation, and no output schema, the description is insufficient. It omits success/error behavior, response format, and any additional constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update an existing project' clearly states the verb and resource, distinguishing it from siblings like projects_create (new), projects_delete, projects_get, and projects_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no when-not-to-use conditions, and no prerequisites (e.g., project existence).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_views_listB
List all views for a project
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It only states 'List all views', implying a read operation but does not explicitly disclose non-destructive behavior, authentication needs, or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is appropriately sized for the tool's 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 low complexity (1 parameter, no output schema) the description covers the basic action but lacks usage guidance and behavioral context, making it adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter described as 'The project ID'. The description adds no additional meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all views for a project' uses a specific verb ('List') and clearly identifies the resource ('views for a project'). It distinguishes itself from sibling tools like 'projects_list' or 'tasks_list' by its unique focus on views.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as when to use 'projects_get' or other list tools. No when-not-to-use or prerequisite information is included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_assignees_addB
Add an assignee to a task
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID | |
| userId | Yes | The user ID to assign |
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 only states 'Add', implying mutation, but fails to disclose whether the operation is idempotent, what happens if the user is already assigned, or any side effects. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words. However, it lacks structure or additional context that could be added without losing conciseness, such as noting it won't fail silently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is too minimal. It does not explain the return value, whether the operation is reversible, or any preconditions. For a mutation tool with many siblings, this is 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 coverage is 100% with both parameters described. The description adds no additional meaning beyond the schema (e.g., 'the task ID' and 'the user ID to assign' mirror the schema descriptions). 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 and resource: 'Add an assignee to a task'. It uses a specific verb ('Add') and identifies the target resource ('assignee to a task'), distinguishing it from sibling tools like task_assignees_list and task_assignees_remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites or conditions. The description implies usage for adding an assignee but provides no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_assignees_listB
List all assignees on a task
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description adds no behavioral context beyond the verb 'list'. It does not disclose whether the operation is read-only (though implied), what happens if the task ID is invalid, or if there are pagination or ordering behaviors.
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 front-loaded sentence. It is efficient but could potentially include a brief note on the required parameter without significantly increasing length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, the description is minimally adequate. However, it omits details like return format (e.g., user IDs or names) and error handling, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already defines the parameter (taskId as a number). The description adds no additional meaning beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all assignees on a task' clearly specifies the verb (list), resource (assignees), and scope (on a task), distinguishing it from sibling tools like task_assignees_add and task_assignees_remove.
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 usage guidelines are provided. The description does not indicate when to use this tool versus alternatives (e.g., other list tools) or mention any prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_assignees_removeB
Remove an assignee from a task
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID | |
| userId | Yes | The user ID to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral transparency but only states the action, not side effects, idempotency, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) and front-loaded, but may be too minimal; still appropriate for 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 simple two-parameter removal tool, the description is minimally adequate, but lacks error handling context or details on effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already described; the description adds no extra meaning beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Remove') and resource ('assignee from a task'), clearly distinguishing it from siblings like 'task_assignees_add' and 'task_assignees_list'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or consequences of removal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_comments_addB
Add a comment to a task
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID | |
| comment | Yes | The comment text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Minimal disclosure; no details on write behavior, idempotency, permissions, or response. No annotations to supplement.
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?
Single sentence, no waste. Efficient but could benefit from context in a second sentence.
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?
Sufficient for a simple 2-param creation tool with no output schema, but lacks behavioral context like character limits or response handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters (taskId, comment). Description adds no additional meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'Add a comment to a task' clearly specifies action and resource, distinguishing it from sibling tool 'task_comments_list'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use, prerequisites, or alternatives. Agent is left without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_comments_listB
List all comments on a task
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey all behavioral traits. It only states 'list all comments', but fails to disclose pagination, ordering, authentication needs, or rate limits. The read-only nature is implied but not confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, efficient and front-loaded. However, it could include additional crucial information without becoming verbose, so a slight deduction.
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 listing tool with one parameter and no output schema, the description is inadequate. It omits details about response format, pagination, and potential errors, which are essential for an AI agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single parameter (taskId) with a basic description. The tool description does not add any extra meaning or context beyond what the schema provides, so it meets the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all comments on a task' clearly states the action and resource. It effectively distinguishes from sibling tools like 'task_comments_add' (adds comments) and 'tasks_list' (lists tasks).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving comments on a task, but provides no explicit guidance on when to use versus alternatives, prerequisites (e.g., task existence), or conditions for not using this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_labels_addB
Add a label to a task
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID | |
| labelId | Yes | The label ID to add |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only restates the tool's action without disclosing behavior such as whether adding an already-existing label causes an error, requires permissions, or any side effects. The return value is not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence ('Add a label to a task') with no unnecessary words, efficiently conveying the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple add operation, the description covers the basic action. However, it lacks details about error handling (e.g., duplicate label), idempotency, or return value. Given no output schema, more context 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?
Schema coverage is 100% with descriptions for both parameters (taskId and labelId). The description adds no extra meaning beyond the schema, so a 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 'Add a label to a task' clearly states the verb ('Add') and the resource ('label to a task'), directly reflecting the name. It distinguishes from sibling tools like task_labels_remove (removal) and labels_create (creating a new label vs adding an existing 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 vs alternatives (e.g., labels_create, task_labels_remove). It does not mention prerequisites like whether the label or task must exist, or if the operation is idempotent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_labels_removeB
Remove a label from a task
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID | |
| labelId | Yes | The label ID to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits, but it only states the action. Missing details like idempotency, error handling (e.g., label not attached), or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise, one sentence, front-loaded, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description is adequate but minimal. Missing behavioral details like idempotency or return value, but given simplicity, it's sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions (taskId, labelId). The description adds no extra meaning, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Remove a label from a task' uses a specific verb and resource, clearly distinguishing it from sibling tools like task_labels_add (add label) and task_assignees_remove (remove assignee).
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 when to remove a label vs. not removing it, or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_move_to_bucketB
Move a task to a different kanban bucket
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The project ID | |
| viewId | Yes | The project view ID | |
| bucketId | Yes | The target bucket ID | |
| taskId | Yes | The task ID to move | |
| position | No | Position within the bucket |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description must disclose behavioral traits. It only states the action, but omits details like whether position is used for ordering, if the move is immediate, or what happens if bucket doesn't exist.
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?
One short sentence, no wasted words. Efficient but possibly too brief; could add context without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has 5 parameters (including optional position) and no output schema or annotations. Description is too minimal to cover all necessary context, e.g., what position means or if the operation is reversible.
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% (all 5 parameters have descriptions). Description adds no extra meaning, but baseline is 3 as schema already documents 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?
Description states specific action 'Move a task to a different kanban bucket', clearly identifying verb and resource. Distinguishes from sibling tools like tasks_update (general update) and buckets_create (bucket creation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., tasks_update). No prerequisites or conditions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_relations_addB
Create a relation between two tasks
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The source task ID | |
| otherTaskId | Yes | The target task ID | |
| relationKind | Yes | Relation type: subtask, parenttask, related, duplicateof, duplicates, blocking, blocked, precedes, follows, copiedfrom, copiedto |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It does not disclose any behavioral traits such as idempotency, validation behavior, or what happens if the relation already exists. The description is too minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence without any wasted words, which is concise. However, it could be slightly more informative without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks important context such as return value, idempotency, and error cases. Given the absence of an output schema, the description should provide more completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all parameters, so the baseline is 3. The description does not add any additional meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource using a specific verb ('Create') and resource ('relation between two tasks'). It distinguishes from the sibling tool 'task_relations_remove' which performs the inverse operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool, no prerequisites, no context, and does not discuss alternatives. It simply states the basic operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_relations_removeB
Remove a relation between two tasks
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The source task ID | |
| otherTaskId | Yes | The target task ID | |
| relationKind | Yes | Relation type to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits such as whether removal is reversible or what happens if the relation doesn't exist. It only states 'remove' without further 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 a single, clear sentence with no wasted words. It is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a removal tool with no output schema, the description is minimal. It could be more complete by stating success/failure behavior or side effects, but it is adequate for a straightforward 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% with each parameter having a description. The tool description adds no extra meaning beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Remove a relation between two tasks' clearly states the verb (remove) and the resource (relation between tasks). It differentiates well from sibling tools like task_relations_add.
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, nor any prerequisites or exclusions. The description only states the action without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks_createB
Create a new task in a project
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project ID to create the task in (required) | |
| title | Yes | Task title (required) | |
| description | No | Task description | |
| dueDate | No | Due date (ISO 8601 format, e.g., '2024-12-31T23:59:59Z') | |
| startDate | No | Start date (ISO 8601 format) | |
| endDate | No | End date (ISO 8601 format) | |
| priority | No | Priority level (higher = more important) | |
| done | No | Whether the task is completed | |
| color | No | Hex color for the task | |
| percentDone | No | Completion percentage (0-1) | |
| assignees | No | Array of user IDs to assign | |
| labels | No | Array of label IDs to add |
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 only states 'create', implying a write operation, but fails to disclose any behavioral traits such as idempotency, side effects (e.g., auto-assign defaults), authentication requirements, or rate limits. More context is needed 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 sentence that is concise and front-loaded with the key action. It is efficient but perhaps too minimal; however, it earns its place without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite good schema coverage, the description lacks context for a tool with 12 parameters. It does not mention return value (likely the created task), constraints (e.g., title uniqueness), or that projectId must reference an existing project. The description alone is insufficient for correct 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?
Schema description coverage is 100%, so the schema already explains each parameter (projectId, title, description, etc.). The description adds no additional meaning beyond 'create a new task'. Baseline score of 3 is appropriate as the schema does the work.
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 'Create a new task in a project', specifying the verb (create) and resource (task). It distinguishes from siblings like tasks_update, tasks_delete, tasks_get, and tasks_list, which have different operations. The scope 'in a project' is also clear.
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 vs alternatives. It does not mention prerequisites (e.g., project must exist) or situations where tasks_update or task_assignees_add might be more appropriate. There is no 'when-not' or explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks_deleteC
Delete a task
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden of disclosing behavioral traits. 'Delete a task' implies data loss but does not mention reversibility, cascading effects, permission requirements, or whether the operation is idempotent.
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 short (three words) but under-specified for a mutation operation. It is not 'appropriately sized' as it fails to provide necessary context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It does not explain what happens on deletion, error states, or authorization, leaving critical gaps for safe 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 baseline is 3. The description adds no extra meaning beyond the schema's parameter description, but it does not contradict or confuse.
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?
Description 'Delete a task' is a tautology that restates the tool name without adding specificity or distinguishing it from sibling tools like tasks_create or tasks_update.
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, what prerequisites are needed, or when alternatives like tasks_update might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks_getA
Get a single task by ID
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries full burden. It only states the basic operation without disclosing behavioral traits such as read-only nature, error handling (e.g., missing task), or performance characteristics. This is minimal 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 sentence with no redundant information. It is concise and front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one required parameter, no output schema, no annotations), the description is adequate for a simple get operation. However, additional context about return value or error cases would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (one parameter with schema description 'The task ID'). The description does not add additional semantic meaning beyond the schema, which is the baseline expectation.
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 'Get a single task by ID' clearly states the verb 'Get' and the resource 'single task by ID', which distinguishes it from sibling tools like tasks_list (multiple tasks) and tasks_create (create).
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 explicit guidance on when to use this tool versus alternatives (e.g., tasks_list). It is implied that usage is appropriate when a specific task ID is known, but no when-not-to-use or alternative suggestions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks_listB
List all tasks (optionally filtered by project)
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | No | Filter by project ID (if not provided, returns all tasks) | |
| page | No | Page number for pagination (default: 1) | |
| perPage | No | Number of items per page (default: 50) | |
| search | No | Search tasks by text | |
| sortBy | No | Sort field: id, title, done, due_date, priority, created, updated | |
| orderBy | No | Sort order: asc or desc | |
| filter | No | Filter query (e.g., 'done = false') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose all behavioral traits. It fails to mention pagination (page, perPage), sorting, filtering, or search capabilities, all of which are evident only in the schema. The phrase 'list all tasks' suggests potentially unbounded results without noting pagination, which could mislead an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the core action. However, it is overly terse and omits important details like pagination and filtering, which are critical for agent usage. It earns its place in brevity but loses marks for incompleteness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters with no output schema and no annotations, the description is inadequate. It does not explain pagination, sorting, or filtering behavior, nor does it describe the expected return format. The agent would need to rely entirely on the schema for usage, which is a gap for an effective tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; each parameter already has a clear description. The tool description adds no additional meaning beyond 'optionally filtered by project', so it does not improve parameter understanding. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists tasks with optional project filtering. The verb 'List' and resource 'tasks' are unambiguous, and it distinguishes from other list tools (e.g., projects_list) by naming the resource. However, it does not specify the scope (e.g., across all workspaces or user-specific), which slightly reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the optional projectId parameter but provides no explicit guidance on when to use this tool versus alternatives like tasks_get for a single task. No exclusions or context for siblings are given, leaving the agent to infer usage from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tasks_updateB
Update an existing task
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID (required) | |
| title | No | New task title | |
| description | No | New task description | |
| dueDate | No | New due date (ISO 8601 format) | |
| startDate | No | New start date (ISO 8601 format) | |
| endDate | No | New end date (ISO 8601 format) | |
| priority | No | New priority level | |
| done | No | Mark as done or not done | |
| color | No | New hex color | |
| percentDone | No | New completion percentage (0-1) | |
| projectId | No | Move task to a different project | |
| isFavorite | No | Mark as favorite |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden of disclosing behavioral traits. It only states 'Update an existing task', omitting any mention of mutation effects, authentication needs, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, short sentence that is direct and without any unnecessary words. It is appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 12 parameters and no output schema, the description is extremely brief and does not cover return values, error conditions, or constraints. It is incomplete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions, so it does not improve or compensate.
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 'Update an existing task', which is a specific verb ('update') and resource ('task'). It distinguishes from sibling tools like tasks_create, tasks_delete, and tasks_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention when not to use it, prerequisites, or any context for choosing it over other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
teams_listB
List all teams the user belongs to
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| perPage | No | Number of items per page | |
| search | No | Search teams by name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits (e.g., rate limits, authentication requirements, or whether it returns only active teams). The minimal description leaves the agent without important context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with a single sentence. It is front-loaded but could be slightly improved by mentioning optional pagination or search, though it remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not explain what fields are returned for each team. Given the simplicity of a list tool, the lack of return value information and missing usage context makes it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are described in the schema. The description adds no extra meaning beyond what the schema provides, achieving the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all teams the user belongs to, with a specific verb and resource. It distinguishes itself from sibling tools as the only team-listing tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as when pagination or search is needed. The description lacks context for optimal usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
users_searchA
Search for users by username, name, or email
| Name | Required | Description | Default |
|---|---|---|---|
| search | Yes | Search term (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the search fields but omits details like return format, case sensitivity, partial matching, or authentication needs. This is insufficient for a mutation-absence 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, concise sentence (10 words) that conveys the essential information without any redundant or unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers the core functionality. However, it lacks information about the return type (e.g., array of user objects) and potential limitations (e.g., pagination, exact vs. partial match), which would be helpful given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only describes the parameter as 'Search term (required)'. The description adds meaningful context by specifying that the search matches 'username, name, or email', which clarifies the parameter's scope beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (search) and resource (users), and specifies the searchable fields (username, name, email). It distinguishes from sibling tools that handle different entities or operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by the description (searching for users) but no explicit guidance on when to use this vs. alternatives or when not to use it. No siblings serve the same purpose, so confusion is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool addresses a distinct resource or action (e.g., projects, tasks, buckets, labels, notifications, teams, users). Even within tasks, sub-tools like assignees, comments, labels, and relations are clearly separated, leaving no ambiguity.
All tool names follow a consistent verb_noun pattern with underscores (e.g., buckets_create, projects_list, task_assignees_add). The convention is uniform across all 31 tools, with no mixing of camelCase or other styles.
The 31 tools cover a broad project management domain (projects, tasks, buckets, labels, notifications, teams, users). While slightly above typical MCP server scopes, each tool addresses a distinct operation, justifying the count.
CRUD operations are present for projects, tasks, labels, and buckets. Additional operations like moving tasks, managing assignees, comments, labels, and relations are included. Minor gaps exist (e.g., no comment update/delete, no notification management beyond listing), but core workflows are covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Task & board management for AI agents + humans. Kanban, comments, digests via MCP.
AI-native Kanban board — connect Claude to claim, work and move your tasks over MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to interact with self-hosted Planka boards through the Planka REST API. It allows users to list, search, create, and update projects, boards, and cards using natural language.3
- AlicenseAqualityDmaintenanceAn MCP server that enables AI assistants to interact with the Taskwarrior command-line task management tool. It allows users to list, create, modify, and organize tasks using projects, tags, and annotations through natural language.132MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that connects AI assistants to Super Productivity for managing tasks, projects, and tags. Supports quick capture, batch triage, and full planning sessions through natural language.53679MIT
- AlicenseNot gradedqualityDmaintenanceLightweight MCP server for Vikunja task management, providing tools to manage projects, tasks, labels, and comments via API.58MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/0xK3vin/vikunja-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server