dart-query
Provides task management for Dart AI, including batch updates, querying with DartQL selectors, CRUD operations on tasks and documents, CSV import, and dry-run safety features.
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., "@dart-queryUpdate all high priority tasks in Engineering to 'Doing'"
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.
dart-query
MCP server for Dart AI task management, optimized for batch operations and minimal context usage.
Instead of looping through tasks one-by-one (filling your context window with intermediate JSON), dart-query uses DartQL selectors and server-side batch operations to update hundreds of tasks in a single call. A 50-task update that would normally consume ~30K tokens takes ~200 tokens with zero context rot.
Quick Start
1. Get Your Dart AI Token
Visit https://app.dartai.com/?settings=account and copy your token (starts with dsa_).
2. Configure MCP
npx (recommended)
{
"mcpServers": {
"dart-query": {
"command": "npx",
"args": ["-y", "@standardbeagle/dart-query"],
"env": {
"DART_TOKEN": "dsa_your_token_here"
}
}
}
}SLOP-MCP (v0.10.0+)
slop register dart-query \
--command npx \
--args "-y" "@standardbeagle/dart-query" \
--env DART_TOKEN=dsa_your_token_here \
--scope user3. Verify
info({ level: "overview" })4. Example: Batch Update
// Preview first
batch_update_tasks({
selector: "dartboard = 'Engineering' AND priority = 'high'",
updates: { status: "Doing" },
dry_run: true
})
// Execute
batch_update_tasks({
selector: "dartboard = 'Engineering' AND priority = 'high'",
updates: { status: "Doing" },
dry_run: false
})Related MCP server: MCP Tasks
Tools
Group | Tools | Purpose |
Discovery |
| Explore capabilities, workspace config |
Task CRUD |
| Single task operations |
Query |
| Find tasks with filters or full-text search |
Batch |
| Bulk operations with DartQL selectors |
Import |
| Bulk create from CSV with validation |
Docs |
| Document management |
See TOOLS.md for full parameter references, DartQL syntax, and CSV import format.
DartQL Selectors
SQL-92 WHERE clause syntax for targeting tasks in batch operations:
dartboard = 'Engineering' AND priority = 'high' AND tags CONTAINS 'bug'
due_at < '2026-01-18' AND status <> 'Done'
title LIKE 'Task%' -- starts with
title LIKE '%auth%' -- contains substringOperators: =, !=, <>, >, >=, <, <=, LIKE, IN, NOT IN, BETWEEN, IS NULL, IS NOT NULL, CONTAINS
Aliases: INCLUDES/HAS → CONTAINS · <> → !=
LIKE wildcards: % = any characters, _ = single character (case-insensitive)
Safety
All Dart AI operations are production (no sandbox). dart-query provides:
Dry-run mode on all batch operations — preview before executing
Validation phase for CSV imports — catch errors before creating anything
Confirmation flag (
confirm: true) required for batch deletesRecoverable deletes — tasks move to trash, not permanent deletion
License
MIT
Available Tools
25 toolsadd_task_commentA
Add a comment to a task for status updates, AI rationale, or notes. Supports markdown formatting.
| Name | Required | Description | Default |
|---|---|---|---|
| dart_id | Yes | Task dart_id (also accepts "id" or "task_id") | |
| text | Yes | Comment text (markdown supported) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description lacks behavioral details such as whether comments are appended, permissions needed, or return value. It only states the action without deeper context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, one sentence plus a fragment, front-loading the purpose without superfluous 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 2-parameter tool with good schema coverage, the description is contextually complete enough to understand usage, though it omits behavioral details like idempotency or response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already describes both parameters well. The description adds no new parameter meaning beyond noting markdown support, which is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a comment to a task, specifying use cases (status updates, AI rationale, notes) and distinguishing it from siblings like list_comments.
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 suggests use cases but does not explicitly guide when to use this tool versus alternatives like update_task or list_comments, nor mention prerequisites like task existence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_time_trackingB
Add a time tracking entry to a task. Supports started_at/finished_at or duration_minutes.
| Name | Required | Description | Default |
|---|---|---|---|
| dart_id | Yes | Task dart_id (also accepts "id" or "task_id") | |
| started_at | Yes | Start time in ISO8601 format (e.g., 2026-01-25T10:00:00Z) | |
| finished_at | No | End time in ISO8601 format (optional if duration_minutes provided) | |
| duration_minutes | No | Duration in minutes (optional if finished_at provided) | |
| note | No | Optional note about the time entry |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states that the tool 'supports' two time input methods, but does not reveal side effects (e.g., whether the task is modified), error handling, or return values. Behavior is largely inferred from the name and schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, using two sentences that front-load the core purpose and key usage pattern. Every sentence is necessary and contributes to understanding.
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 information about return values, error cases, and confirmation of successful creation. Given the tool has no output schema, the description should cover such aspects, but it does not, leaving the agent guessing about post-invocation 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 input schema has 100% description coverage, so baseline is 3. The description summarizes the two input modes, which is already in the schema, so it adds minimal additional meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and the resource ('time tracking entry to a task'), making the tool's purpose unambiguous. It also mentions the two supported input patterns (started_at/finished_at or duration_minutes), which further clarifies functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus other sibling tools (e.g., add_task_comment, update_task). It does not mention prerequisites, alternatives, or context for choosing this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attach_urlA
Attach a file from URL to a task. URL must be publicly accessible.
| Name | Required | Description | Default |
|---|---|---|---|
| dart_id | Yes | Task dart_id (also accepts "id" or "task_id") | |
| url | Yes | Public URL of file to attach | |
| filename | No | Optional filename override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the URL must be publicly accessible, a key behavioral trait. However, with no annotations, it lacks details on failure modes, authentication, or rate limits. It meets the minimum but doesn't fully cover behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no wasted words. It is front-loaded with the core action and includes an important constraint second. Every sentence is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description covers the essential purpose and constraint but does not mention return values or error handling. For a simple tool, it is minimally complete but lacks some 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 baseline is 3. The description adds value by specifying that the URL must be publicly accessible, which is not in the parameter description. This extra constraint enhances semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: attaching a file from a URL to a task. The verb 'attach' and resource 'file from URL to a task' are specific, and the constraint 'URL must be publicly accessible' adds clarity. It distinguishes from sibling tools like add_task_comment.
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 attaching publicly accessible files but does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention when not to use it. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_delete_tasksA
[Deprecated: use execute_dartql] Batch delete multiple tasks matching a DartQL selector. MOST DANGEROUS OPERATION! CRITICAL: dry_run defaults to true, confirm=true REQUIRED when dry_run=false. Tasks move to trash (recoverable).
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | DartQL WHERE clause (SQL-92 syntax). Operators: =, !=, <>, <, >, <=, >=, LIKE, IN, NOT IN, BETWEEN, IS NULL, CONTAINS. Use LIKE with % and _ wildcards for pattern matching. | |
| dry_run | No | Preview mode (default: true). Set to false to execute deletions. | |
| confirm | No | REQUIRED when dry_run=false. Safety confirmation for deletions. | |
| concurrency | No | Parallel deletions (default: 5, range: 1-20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the operation is 'MOST DANGEROUS' and that tasks move to trash (recoverable). Without annotations, the description provides key behavioral context, though it could detail concurrency or rate limits.
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 single sentence with front-loaded deprecation warning. Every phrase adds value (danger, defaults, safety, recovery), no 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?
For a dangerous batch operation with no output schema, the description covers purpose, safety, deprecation, and recovery. Lacks details on concurrency or return values, but essential context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all 4 parameters with descriptions (100% coverage). The description adds critical usage semantics: dry_run defaults to true and confirm is required when dry_run=false, going 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?
The description states 'Batch delete multiple tasks matching a DartQL selector' and notes deprecation with alternative 'execute_dartql', clearly distinguishing from sibling tools like 'delete_task' (single) and 'batch_update_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?
Explicitly mentions deprecation and provides alternative ('use execute_dartql'). Also gives critical safety instructions: dry_run defaults to true and confirm=true required when dry_run=false, guiding correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_update_tasksA
[Deprecated: use execute_dartql] Batch update multiple tasks matching a DartQL selector. Supports all task fields including relationships. CRITICAL: Always use dry_run=true first to preview changes!
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | DartQL WHERE clause (SQL-92 syntax). Operators: =, !=, <>, <, >, <=, >=, LIKE, IN, NOT IN, BETWEEN, IS NULL, CONTAINS. Use LIKE with % and _ wildcards for pattern matching (e.g., "title LIKE 'Task%'") | |
| updates | Yes | Fields to update (partial DartTask object). Relationship arrays use full replacement semantics - set to [] to clear. | |
| dry_run | No | Preview mode (default: true). Set to false to execute updates. | |
| concurrency | No | Parallel updates (default: 5, range: 1-20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It warns about destructive behavior (batch update) and emphasizes dry_run. It mentions full replacement semantics for relationships but lacks details on rate limits, partial failures, or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with three sentences. It front-loads the deprecation and alternative, then states the function, and ends with a critical warning. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex (batch update with relationships, multiple parameters) and has no output schema. The description does not mention return values (e.g., count of updated tasks, errors). It covers the deprecation and safety but lacks completeness about behavior post-execution.
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% and the schema itself provides detailed parameter descriptions. The description adds value by summarizing that it 'Supports all task fields including relationships' and reiterates the dry_run criticality, but does not add new 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 clearly states the tool is deprecated and recommends execute_dartql as an alternative. It specifies 'Batch update multiple tasks matching a DartQL selector', which is a specific verb and resource, and distinguishes from siblings like execute_dartql.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit alternative (execute_dartql) and a critical safety guideline ('Always use dry_run=true first to preview changes!'). However, it does not elaborate on when not to use this tool beyond deprecation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_docB
Create a new document with title, text (markdown supported), and optional folder
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Document title | |
| text | Yes | Document text content (markdown supported) | |
| folder | No | Folder dart_id or name (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose more behavioral traits (side effects, permissions, error handling). It only mentions markdown support and optional folder, leaving 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?
Single sentence, no extraneous words, 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?
Adequate for a simple creation tool but missing return value information; no output schema so description should hint at what is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters (100%), so description adds modest value by noting markdown support for text; otherwise redundant.
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 creates a new document with specific fields (title, text, folder), distinguishing it from siblings like update_doc and delete_doc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives; no 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.
create_taskA
Create a new task with title, description, status, priority, size, dates, dartboard, assignees, tags, and task relationships (subtasks, blockers, related tasks)
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Task title (max 500 chars) | |
| description | No | Task description (markdown supported) | |
| dartboard | Yes | Dartboard dart_id (use get_config to find) | |
| status | No | Status name or dart_id | |
| priority | No | Priority 1-5 (1=lowest, 5=highest) | |
| size | No | Size estimate 1-5 | |
| assignees | No | Array of assignee dart_ids | |
| tags | No | Array of tag dart_ids | |
| due_at | No | Due date (ISO8601) | |
| start_at | No | Start date (ISO8601) | |
| parent_task | No | Parent task dart_id for subtasks | |
| subtask_ids | No | IDs of tasks that are subtasks (children) of this task. Each ID must be a valid dart_id format. | |
| blocker_ids | No | IDs of tasks that block this task from being started or completed. Each ID must be a valid dart_id format. | |
| blocking_ids | No | IDs of tasks that this task is blocking. Each ID must be a valid dart_id format. | |
| duplicate_ids | No | IDs of tasks that are duplicates of this task. Each ID must be a valid dart_id format. | |
| related_ids | No | IDs of tasks that are related to this task (loosely connected). Each ID must be a valid dart_id format. | |
| comment | No | Optional comment to add after creating the task (non-blocking) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description carries full burden. It notes the optional comment is non-blocking, which is helpful, but omits side effects like validation, permission requirements, or behavior on failed relationships. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently lists all capabilities without verbosity. Front-loaded with action and key parameters. Slightly long but each part is necessary, so no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description covers all parameter categories but lacks return value information (no output schema). For a creation tool with 17 parameters, it is complete in scope but could benefit from stating what is returned (e.g., task ID). Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description groups parameters (e.g., 'dates') but adds minimal new meaning beyond the schema's individual descriptions. It doesn't explain parameters not in schema (none), so score remains 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?
Description clearly states 'Create a new task' with a comprehensive list of attributes, making the purpose explicit and specific to task creation. It distinguishes from sibling tools like update_task or add_task_comment by focusing on creation with all supported fields.
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. For a creation tool, context is implied but not stated. Siblings like batch_create are absent, so missing guidance on when to prefer single vs batch creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_docA
Delete a document (moves to trash - recoverable via Dart web UI)
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | Document doc_id to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the important behavioral detail that deletion moves the document to trash (recoverable via web UI), which is beyond the schema. However, it lacks information on permissions, idempotency, or error handling, which would be expected for a mutation tool without annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys the essential information without waste. The key behavior (move to trash) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema) and the sibling context, the description is fairly complete. It explains the recovery behavior, which is crucial. Minor gaps include not addressing error cases or concurrency, but overall 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?
Schema coverage is 100% with a clear description for the one parameter 'doc_id'. The tool description does not add additional semantic meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('a document'), and adds the specific behavior of moving to trash rather than permanent deletion, distinguishing it from other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for deleting documents but does not explicitly state when to use this tool versus alternatives like batch_delete or updating a document to mark it inactive. No exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_taskA
Delete a task (moves to trash - recoverable via Dart web UI)
| Name | Required | Description | Default |
|---|---|---|---|
| dart_id | Yes | Task dart_id (also accepts "id" or "task_id") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that deletion moves to trash and is recoverable via Dart web UI, which is valuable behavioral context beyond the schema. However, it lacks info on permissions, idempotency, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no unnecessary words. It conveys the core action and key behavioral trait efficiently.
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 with no output schema, the description adequately covers purpose and recoverability. However, it could mention the return value (e.g., success message or error) for complete 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% for the single parameter, and the description does not add additional meaning; it only restates the parameter name. Baseline score is appropriate as schema already documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a task' with the additional detail that it moves to trash and is recoverable, which distinguishes it from batch delete or other 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?
The description implies usage for deleting a task but provides no guidance on when to use this tool versus batch_delete_tasks or 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.
execute_dartqlA
Execute DartQL UPDATE/DELETE statements. Supports template vars {field}, array literals, comments, and multi-statement (;). Dry-run by default.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | DartQL statement(s) using SQL-92 WHERE syntax. Operators: =, !=, <>, LIKE '%pattern%', IN, BETWEEN, IS NULL, CONTAINS. Examples: UPDATE WHERE status = 'Todo' SET status = 'Done'; UPDATE WHERE title LIKE 'Task%' SET status = 'Done' | |
| dry_run | No | Preview mode (default: true). Set to false to execute. | |
| concurrency | No | Parallel operations per statement (default: 5, range: 1-20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the dry-run default and supports features like template vars and multi-statement, but does not describe return values, error handling, or atomicity. This is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose, and concise. It conveys key points efficiently, though a slightly more structured format could improve readability.
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 moderate complexity and no output schema, the description omits return values (e.g., affected row count) and error behavior. For a destructive tool, safety is noted (dry-run) but completeness is lacking.
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 detailed descriptions for each parameter. The description adds context about dry-run default and query syntax features, but does not substantially augment 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?
The description clearly states the tool executes DartQL UPDATE/DELETE statements, specifying its core purpose. It also lists supported features (template vars, array literals, comments, multi-statement), distinguishing it from sibling tools that perform individual 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?
The description mentions dry-run by default and supports multi-statement, but it does not provide explicit guidance on when to use this tool over siblings like batch_update_tasks or update_task. Usage context is implied but not directly compared.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_batch_statusA
Retrieve status of a batch operation (update, delete, import, or dartql) by batch_operation_id. Operations are kept in memory for 1 hour.
| Name | Required | Description | Default |
|---|---|---|---|
| batch_operation_id | Yes | Batch operation ID returned from batch_update_tasks, batch_delete_tasks, or import_tasks_csv |
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 discloses the important behavioral trait that operations are kept in memory for 1 hour, adding value beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose and required parameter, second adds a critical time constraint. No 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?
For a simple retrieval tool with one parameter and no output schema, the description is fairly complete. It includes the time limit, though it could mention the response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the single parameter, describing its origin. The description does not add 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 verb 'Retrieve' and the resource 'status of a batch operation', distinguishing it from sibling tools like batch_update_tasks, batch_delete_tasks, and import_tasks_csv.
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 after batch operations by referencing the batch_operation_id returned from other tools, but does not explicitly state when not to use it or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_configA
Get workspace configuration: assignees, dartboards, statuses, tags, priorities, sizes
| Name | Required | Description | Default |
|---|---|---|---|
| cache_bust | No | Force refresh cached config (default: 5-minute cache) | |
| include | No | Limit response to specific config sections (default: all) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must carry the burden of behavioral disclosure. The name and description imply a read-only operation, but caching behavior (default 5-minute cache) is only hinted at via the cache_bust parameter; the description does not explicitly mention that it is non-destructive or that it may return cached data. While adequate, it leaves room for ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the tool's purpose without 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?
For a simple read tool with two parameters and no output schema, the description provides adequate context about what the tool returns (configuration sections). It could mention that the default is to return all sections and that output is a JSON object, but it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description lists the config sections, which are also covered by the 'include' parameter enum. It adds little new meaning beyond the schema, but does not detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get workspace configuration' and lists the specific config sections (assignees, dartboards, etc.). This provides a specific verb and resource, and it distinguishes the tool from sibling tools that perform CRUD on tasks, docs, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention scenarios where get_config is preferable or when other tools like get_dartboard or get_task might be more appropriate. The description only states what it does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dartboardB
Get details about a dartboard including task count. Token-efficient lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| dartboard_id | Yes | Dartboard dart_id or name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior; it only says 'Get details' and mentions task count, lacking side-effect info or error conditions.
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 with only two sentences, no filler, and front-loaded 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?
Adequate for a simple lookup with one param, but lacks description of return value details or edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers parameter description fully; description adds no extra meaning beyond 'dartboard dart_id or name'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it retrieves dartboard details including task count, but doesn't differentiate from sibling get tools beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or alternatives; 'Token-efficient lookup' is vague and doesn't replace clear usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_docA
Get a specific document by doc_id with full text content
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | Document doc_id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that full text content is returned, but does not mention error behavior, authentication needs, or any 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, front-loaded sentence with no unnecessary words, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-parameter tool with no output schema, the description adequately states it returns full text content, but lacks details on response structure or error handling, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (doc_id described as 'Document doc_id'). The description adds no additional meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'document', the identifier 'doc_id', and what is returned ('full text content'), effectively distinguishing it from siblings like list_docs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as list_docs, or any prerequisites like permissions or error handling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_folderA
Get details about a folder including doc count. Token-efficient lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| folder_id | Yes | Folder dart_id or name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It reveals the tool returns details and doc count, and is efficient, but does not disclose authentication, rate limits, or error behavior. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only two sentences (10 words total), no redundancy, and front-loads the core purpose. 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?
For a simple one-parameter lookup tool, the description covers basic purpose and efficiency hint. However, it omits details like return format, error handling, or token cost, leaving gaps for an agent. 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?
Schema coverage is 100% with one parameter described. The description adds no extra parameter semantics 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 clearly states the tool retrieves folder details including doc count, using specific verb and resource. It distinguishes from sibling tools like get_doc or get_task by focusing on folders and mentioning 'Token-efficient lookup'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Token-efficient lookup' hints at when to use (for quick, low-cost queries), but the description lacks explicit guidance on when not to use or alternatives. No comparison with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskA
Get a specific task by dart_id with optional comments and relationship details. Returns task relationships (subtasks, blockers, blocking, duplicates, related) with counts and optional expanded titles.
| Name | Required | Description | Default |
|---|---|---|---|
| dart_id | Yes | Task dart_id | |
| include_comments | No | Include task comments in response (default: false) | |
| include_relationships | No | Include relationship fields and counts in response (default: true). Set to false for smaller response. | |
| expand_relationships | No | Fetch titles for all related tasks (default: false). Requires additional API calls. Only applies when include_relationships is true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description adds behavioral context by mentioning optional comments, relationship details, and the note about expand_relationships requiring additional API calls. However, it does not disclose whether the operation is read-only, error handling for missing IDs, or any 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 two sentences long, front-loaded with the primary action, and every word serves a purpose. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must cover return values. It mentions 'task relationships with counts and optional expanded titles,' which partially covers the response, but it omits error conditions, response format, and what the base task object includes.
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 baseline is 3. The description paraphrases the boolean parameters (optional comments, relationship details, expanded titles) but does not add new 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 'Get a specific task by dart_id' with optional comments and relationship details, which distinguishes it from sibling tools like list_tasks or search_tasks that retrieve multiple 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 use when you have a specific dart_id, but it does not explicitly state when to use this tool versus alternatives like list_tasks or search_tasks, nor does it mention when-not-to-use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_tasks_csvA
Import tasks from CSV file with validation and parallel creation. CRITICAL: ALWAYS use validate_only=true first! Production safety: validate → fix errors → import.
| Name | Required | Description | Default |
|---|---|---|---|
| csv_data | No | CSV data as string (use this OR csv_file_path) | |
| csv_file_path | No | Path to CSV file (use this OR csv_data) | |
| dartboard | Yes | Dartboard dart_id or name for all imported tasks | |
| column_mapping | No | Custom column name mapping (e.g., {"Task Name": "title", "Owner": "assignee"}) | |
| validate_only | No | Preview mode (default: TRUE for production safety). Returns validation errors and preview without creating tasks. | |
| continue_on_error | No | Continue importing valid rows even if some fail (default: true) | |
| concurrency | No | Parallel task creation (default: 5, range: 1-20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It mentions validation and parallel creation but does not disclose potential side effects (e.g., task creation confirmation, error behavior, or idempotency). Some behavioral traits are implied but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Front-loaded with purpose, followed by critical usage note. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, no output schema, no annotations), the description is incomplete. Missing return value hints (e.g., task IDs, success count) and error handling details beyond validation.
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 have descriptions in the input schema (100% coverage), so the description adds little beyond reinforcement of validate_only importance. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: importing tasks from a CSV file. It highlights validation and parallel creation, which distinguishes it from sibling tools like create_task (single import) and batch_create_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?
Explicitly instructs to always use validate_only=true first, and outlines a safety workflow: validate → fix errors → import. This provides clear guidance on proper usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
infoB
Progressive discovery of dart-query capabilities - start here
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | Detail level: overview=categories, group=tools in category, tool=full documentation | |
| target | No | Group name (when level=group) or tool name (when level=tool) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description gives no behavioral details (e.g., read-only nature, side effects, or rate limits). The agent is left to guess whether this tool is safe and what the response contains.
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 short sentence, which is concise. However, it may be too terse for a discovery tool that serves as an entry point, potentially leaving important context unstated.
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 role as a starting point for exploring many sibling tools, the description is incomplete. It does not explain how parameters interrelate, what output to expect, or how to interpret results for subsequent tool calls.
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, fully defining both parameters (level enum with values, target string). The tool 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 identifies the tool as a starting point for progressive discovery of dart-query capabilities, clearly distinguishing it from task-specific sibling tools (e.g., get_task, delete_task). However, it lacks a specific action verb like 'list' or 'explain', relying on the vague 'progressive discovery'.
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?
"Start here" implies this tool should be used first, providing clear context. However, no explicit when-not-to-use or alternative tools are mentioned, leaving the agent to infer usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_commentsA
List comments on a task with pagination. Token-efficient: returns minimal comment data.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task dart_id to list comments for | |
| limit | No | Max comments to return (default: 50, max: 100) | |
| offset | No | Pagination offset (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses token efficiency and returns minimal data, but omits behavioral details such as errors, permissions, rate limits, or behavior for invalid task IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and key feature. No 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?
For a 3-param tool with no output schema or annotations, the description covers core functionality and pagination, but lacks details on response format, error handling, or limits on task_id. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions for all parameters. The description adds 'Token-efficient' which hints at response brevity but does not enhance parameter meaning beyond 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?
The description clearly states the tool's action ('List comments on a task'), includes pagination, and emphasizes token efficiency. It effectively distinguishes from sibling tools like add_task_comment (which adds comments) and search_tasks (which searches 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 lacks explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or scenarios where other tools might be preferred, leaving the agent to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_docsA
List documents with optional filtering by folder, title_contains, text_contains. Supports pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| folder | No | Filter by folder (dart_id or name) | |
| title_contains | No | Filter by title substring (case-insensitive) | |
| text_contains | No | Filter by text content substring (case-insensitive) | |
| limit | No | Max docs to return (default: 50, max: 500) | |
| offset | No | Pagination offset (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It mentions pagination and filters but does not disclose read-only nature, output format, sorting, or rate limits. Adequate but not thorough.
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 that captures key functionality with no superfluous information. Front-loaded with verb 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 5 parameters, no output schema, and no annotations, the description is functional but lacks details like return structure, default ordering, or handling of empty results. Moderately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description restates filter purpose and pagination without adding meaningful new semantics 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?
Description clearly states 'List documents' and enumerates filtering options (folder, title_contains, text_contains) and pagination. It effectively distinguishes from siblings like get_doc (single doc) and search_tasks (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for listing documents with filters, but does not explicitly state when not to use or direct to alternatives. It is clear enough for typical list scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksB
Query tasks with filters (assignee, status, dartboard, priority, tags, dates, has_parent), pagination, and detail levels. Parent filter uses client-side filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| assignee | No | Filter by assignee (dart_id, name, or email) | |
| status | No | Filter by status (dart_id or name) | |
| dartboard | No | Filter by dartboard (dart_id or name) | |
| priority | No | Filter by priority (1-5) | |
| tags | No | Filter by tags (dart_ids or names) | |
| due_before | No | Filter tasks due before date (ISO8601) | |
| due_after | No | Filter tasks due after date (ISO8601) | |
| has_parent | No | Filter tasks with parent (true) or without parent (false). Client-side filter. | |
| limit | No | Max tasks to return (default: 50, max: 500) | |
| offset | No | Pagination offset (default: 0) | |
| detail_level | No | minimal=id+title+parent+blockers, standard=+description+status+assignee+priority, full=all fields including relationships |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It discloses that the parent filter uses client-side filtering, which implies performance note. However, it does not state read-only nature, authentication requirements, rate limits, or other behavioral traits.
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 conveys key functionality concisely. It front-loads the action and lists filters. While compact, it lacks structural breakdown for readability.
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 11 parameters and no output schema, the description covers the primary purpose and a key behavioral note (client-side filter). However, it omits context on return format, error handling, and pagination behavior beyond what schema provides. Adequate but with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for each parameter. The description adds no new information beyond listing filter types and noting client-side filtering. Baseline 3 applies as schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Query tasks with filters...', specifying the verb and resource. It lists multiple filter types (assignee, status, dartboard, priority, etc.), making the purpose clear. However, it does not differentiate from sibling tool 'search_tasks', which may also query tasks with filters.
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 mentions one behavioral note (client-side filtering for has_parent) but provides no explicit guidance on when to use this tool versus siblings like search_tasks. No exclusions or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_taskA
Move/reposition a task within a dartboard or to a different dartboard. Supports ordering by index or relative to another task.
| Name | Required | Description | Default |
|---|---|---|---|
| dart_id | Yes | Task dart_id (also accepts "id" or "task_id") | |
| dartboard | No | Target dartboard (dart_id or name) - moves task to different dartboard | |
| order | No | Position index in dartboard (0-based) | |
| after_id | No | Place task after this task dart_id | |
| before_id | No | Place task before this task dart_id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must cover behavioral traits. It mentions moving and ordering but does not disclose potential side effects (e.g., impact on comments, time tracking), auth needs, or error handling. This is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the verb and resource. Every word is purposeful, with no redundancy or filler.
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 5 parameters and no output schema, the description covers the core purpose and ordering options but lacks details on parameter conflicts, error behavior, return value, or edge cases. It is sufficient for basic use but not fully 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%, providing solid parameter descriptions. The description adds value by explaining the ordering semantics ('by index or relative to another task'), which aids selection of order/after_id/before_id beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('move/reposition'), resource ('task'), and scope ('within a dartboard or to a different dartboard'). It also specifies ordering options, distinguishing it from siblings like update_task.
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 repositioning tasks but lacks explicit guidance on when to use versus alternatives (e.g., update_task for property changes). No when-not or context exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tasksA
Full-text search across tasks with relevance ranking. Alternative to list_tasks for text-based discovery. Supports quoted phrases, exclusions (-term), and inline filters (dartboard:Name, status:Done, assignee:Name).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query. Supports quoted phrases ("exact match"), exclusions (-term), inline filters (dartboard:Name, status:Done), and regular terms. | |
| dartboard | No | Optional dartboard filter (dart_id or name) | |
| include_completed | No | Include completed tasks in results (default: false) | |
| limit | No | Max results to return (default: 50, max: 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses relevance ranking, support for quoted phrases, exclusions, and inline filters, giving agents a clear understanding of search capabilities and syntax.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that are front-loaded with the core purpose and usage guidance. Every word adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and four parameters, the description sufficiently explains the tool's features (relevance ranking, syntax) and its relationship to list_tasks, making it complete for agent 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 covers 100% of parameters. Description adds value by explaining that the query parameter supports specific syntax (quotes, exclusions, inline filters), going beyond the schema's general descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Full-text search across tasks with relevance ranking', specifying the verb (search), resource (tasks), and distinguishing it from list_tasks as an alternative for text-based discovery.
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?
Explicitly positions the tool as an alternative to list_tasks for text-based discovery, giving clear context on when to use it. Lacks explicit 'when not to use' but the sibling differentiation suffices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_docA
Update an existing document (title, text, or folder). Validates references and only sends changed fields.
| Name | Required | Description | Default |
|---|---|---|---|
| doc_id | Yes | Document doc_id to update | |
| updates | Yes | Fields to update |
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 adds behavioral context like 'validates references' and 'only sends changed fields', which is helpful but insufficient. It does not disclose error handling, permissions, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but could be structured more clearly (e.g., bullet points). It is concise yet efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a nested parameter and no output schema, the description should explain return values or side effects. It does not. While the description covers essential update behavior, it lacks documentation of what the tool returns or error conditions.
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 defines all parameters. The description merely lists the fields again, adding no new meaning beyond what the schema provides. 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 tool updates an existing document and specifies the fields (title, text, folder), distinguishing it from create_doc and delete_doc. The verb 'update' is specific and the resource 'existing document' is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for modifying an existing document, but does not explicitly mention when not to use it (e.g., if the document doesn't exist) nor alternatives like update_task. However, sibling tool names make resource differentiation clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_taskA
Update a task. Pass dart_id and any fields to change at the top level. Supports add_to/remove_from for incremental relationship changes and optional comment. Relationship arrays use full replacement unless using add_to/remove_from.
| Name | Required | Description | Default |
|---|---|---|---|
| dart_id | Yes | Task dart_id (also accepts "id" or "task_id") | |
| title | No | Task title (max 500 chars) | |
| description | No | Task description (markdown supported) | |
| dartboard | No | Dartboard dart_id or name | |
| status | No | Status dart_id or name | |
| priority | No | Priority 1-5 | |
| size | No | Size estimate 1-5 | |
| assignees | No | Array of assignee dart_ids, names, or emails | |
| tags | No | Array of tag dart_ids or names | |
| due_at | No | Due date (ISO8601) | |
| start_at | No | Start date (ISO8601) | |
| parent_task | No | Parent task dart_id | |
| subtask_ids | No | IDs of subtask (child) tasks. Full replacement: set to [] to clear. | |
| blocker_ids | No | IDs of tasks that block this task. Full replacement: set to [] to clear. | |
| blocking_ids | No | IDs of tasks this task blocks. Full replacement: set to [] to clear. | |
| duplicate_ids | No | IDs of duplicate tasks. Full replacement: set to [] to clear. | |
| related_ids | No | IDs of related tasks. Full replacement: set to [] to clear. | |
| comment | No | Optional comment to add after updating (non-blocking) | |
| add_to | No | Append IDs to relationship arrays. Fetches current values, merges, deduplicates. Keys: subtask_ids, blocker_ids, blocking_ids, duplicate_ids, related_ids | |
| remove_from | No | Remove IDs from relationship arrays. Fetches current values, filters out specified IDs. Keys: subtask_ids, blocker_ids, blocking_ids, duplicate_ids, related_ids |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains behavior of relationship arrays (full replacement vs add_to/remove_from) and that comment is non-blocking. Lacks details on atomicity 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?
Three concise sentences, front-loaded with main action, then key capabilities, then crucial behavioral detail. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 20 parameters and no output schema, description covers main behaviors well but omits what the API returns (e.g., updated task object). Still, it explains the critical relationship update modes.
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%, but description adds critical meaning: clarifies that relationship arrays use full replacement by default and how add_to/remove_from work (fetch, merge, deduplicate). This goes beyond schema explanations.
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 a task' with specific verb and resource. It distinguishes from siblings like create_task and batch_update_tasks by detailing incremental relationship changes and optional comment.
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 updating tasks with two methods (full replacement vs incremental), but does not explicitly indicate when to use this tool over alternative tools like batch_update_tasks 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.
TDQS
Tools like batch_delete_tasks and delete_task overlap, and batch operations are deprecated in favor of execute_dartql, causing ambiguity. Also, list_tasks and search_tasks both retrieve tasks, adding confusion.
Most tools follow a verb_noun pattern (e.g., create_task, get_task), but there is inconsistency with prefixes like 'batch_' and verbs like 'add', 'attach', 'import', and 'info'. Overall largely predictable.
With 25 tools, the server feels heavy for a task/document management system. The presence of deprecated batch operations and overlapping tools suggests some trimming could improve scope.
Covers CRUD for tasks and documents, plus comments, time tracking, attachments, import, search, and config. Minor gaps: no comment delete, no time tracking update/delete, 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
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Task management your AI agents can actually run. One line becomes a context-ready task over MCP.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Hosted MCP server for AI-driven data ops. Create apps, manage schemas, and CRUD structured data.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Dart-based MCP server implementation that enables AI-assisted task management, document handling, and workspace organization through standardized tools and seamless Dart integration.104315MIT
- AlicenseAqualityBmaintenanceA comprehensive and efficient Model Context Protocol server for task management that works with Claude, Cursor, and other MCP clients, providing powerful search, filtering, and organization capabilities across multiple file formats.510647MIT
- FlicenseNot gradedqualityDmaintenanceA comprehensive task management MCP server built with FastMCP, featuring full CRUD operations, intelligent filtering, and productivity-focused prompts.1
- FlicenseNot gradedqualityBmaintenanceA minimal MCP server for file-based task management and multi-agent team orchestration, enabling creation, completion, and reassignment of tasks across teams.
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/standardbeagle/dart-query'
If you have feedback or need assistance with the MCP directory API, please join our Discord server