Skip to main content
Glama
brysontang

DeltaTask MCP Server

by brysontang

DeltaTask - Advanced Task Management System

A powerful, locally-hosted task management application with Obsidian integration and a Model Context Protocol (MCP) server.

Features

  • Smart Task Management: Create tasks with urgency levels and effort estimates

  • Prioritization Engine: Automatically sorts tasks by urgency and effort

  • Task Decomposition: Split larger tasks into manageable subtasks

  • Tagging System: Organize tasks with custom tags

  • Local Storage: All data stored locally in SQLite database

  • Obsidian Integration: Bi-directional sync with Obsidian markdown files

  • MCP Server: Full API access through Model Context Protocol

Related MCP server: Obsidian Todos MCP Server

Technical Details

Data Model

  • Tasks: Core task entity with properties:

    • Title and description

    • Urgency (1-5 scale, 5 being highest)

    • Effort (1-21 scale, following Fibonacci sequence)

    • Completion status

    • Parent-child relationships for subtasks

    • Tags for categorization

Database Schema

The application uses SQLite with the following tables:

  • todos: Stores all task items and their properties

  • tags: Stores unique tag names

  • todo_tags: Junction table for many-to-many relationship between tasks and tags

Obsidian Integration

DeltaTask creates and maintains a structured Obsidian vault:

  • Task files with frontmatter metadata

  • Tag-based views for filtering tasks

  • Statistics dashboard

  • Bi-directional sync between Obsidian markdown and SQLite database

MCP API Endpoints

The MCP server exposes the following operations:

  • get_task_by_id: Get a specific task by ID

  • search_tasks: Find tasks by title, description, or tags

  • create_task: Create a new task

  • update_task: Update a task's properties

  • delete_task: Remove a task

  • sync_tasks: Sync tasks from Obsidian markdown into SQLite

  • list_tasks: List all tasks

  • get_statistics: Retrieve metrics about tasks

  • create_subtasks: Split a task into multiple subtasks

  • get_all_tags: Get all unique tag names

  • get_subtasks: Get subtasks for a given parent task

  • finish_task: Mark a task as completed

Getting Started

Prerequisites

  • Python 3.10+

  • SQLite3

  • Obsidian (optional, for markdown integration)

Installation

  1. Clone this repository

  2. Set up the Python environment using uv:

    # Create and activate the virtual environment
    uv venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
    # Install dependencies
    uv pip install -r requirements.txt

Running the MCP Server

The DeltaTask MCP server can be used with Claude for Desktop:

  1. Configure Claude for Desktop:

    • Open or create ~/Library/Application Support/Claude/claude_desktop_config.json

    • Add the DeltaTask server configuration:

    {
      "mcpServers": {
        "deltatask": {
          "command": "uv",
          "args": [
            "--directory",
            "/ABSOLUTE/PATH/TO/DeltaTask",
            "run",
            "server.py"
          ]
        }
      }
    }
    • Restart Claude for Desktop

If you run into issues or want more details, check out the Docs for the MCP.

For instance from the docs:

You may need to put the full path to the uv executable in the command field. You can get this by running which uv on MacOS/Linux or where uv on Windows.

  1. Use the DeltaTask tools in Claude for Desktop by clicking the hammer icon

Model Context Protocol (MCP)

This application implements a Model Context Protocol approach for task management:

  1. Structured Data Model: Clearly defined schema for tasks with relationships

  2. Priority Calculation: Intelligent sorting based on multiple factors

  3. Hierarchical Organization: Parent-child relationships for task decomposition

  4. Tagging System: Flexible categorization for better context

  5. Statistics and Insights: Data aggregation for understanding task patterns

  6. Obsidian Integration: Markdown-based visualization and editing

License

MIT License

Available Tools

12 tools
create_subtasksC

Create multiple subtasks for a parent task with categories.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
subtasksYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Create' implies a write operation, it doesn't specify permissions required, whether changes are reversible, rate limits, or what happens if the parent task doesn't exist. The mention of 'categories' hints at additional behavior but is vague, leaving significant gaps in understanding how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point without unnecessary words. It's front-loaded with the core action, though the trailing phrase 'with categories' feels slightly tacked on. Overall, it's concise and well-structured for its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (which reduces the need to describe return values) but no annotations and 0% schema coverage, the description is minimally adequate. It covers the basic purpose but lacks details on usage, parameters, and behavioral traits, making it incomplete for a mutation tool with undocumented parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the schema provides no parameter details. The description mentions 'categories' but doesn't explain how this relates to the 'subtasks' array parameter or what 'task_id' should be. It adds minimal meaning beyond the bare parameter names, failing to compensate for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create multiple subtasks') and the target resource ('for a parent task'), which is specific and actionable. However, it doesn't explicitly distinguish this tool from sibling tools like 'create_task' or 'update_task', which prevents a perfect score. The mention of 'categories' adds some specificity but isn't fully explained.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'create_task' or 'update_task'. It doesn't mention prerequisites (e.g., needing an existing parent task) or exclusions (e.g., not for single subtasks). Without such context, an AI agent might struggle to select this tool appropriately among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_taskC

Create a new task.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
descriptionNo
urgencyNo
effortNo
tagsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states 'Create a new task' which implies a write operation, but doesn't disclose behavioral traits such as required permissions, whether creation is idempotent, error handling, or rate limits. This is a significant gap for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence 'Create a new task.', which is front-loaded and wastes no words. However, this conciseness comes at the cost of completeness, but based on the dimension criteria, it scores high for being appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, 1 required, mutation operation) and the presence of an output schema, the description is incomplete. It doesn't provide enough context for an AI agent to understand usage, parameters, or behavior, especially with no annotations and low schema coverage. The output schema helps but doesn't compensate for the lack of descriptive context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the schema provides no descriptions for parameters. The tool description adds no information about parameters, failing to compensate for the coverage gap. It doesn't explain what 'title', 'urgency', 'effort', etc., mean or how they affect task creation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create a new task' clearly states the action (create) and resource (task), but it's generic and doesn't differentiate from sibling tools like 'create_subtasks' or 'update_task'. It's not tautological but lacks specificity about what kind of task or context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'create_subtasks', 'update_task', or 'list_tasks'. The description implies usage for creating tasks but doesn't specify prerequisites, exclusions, or contextual cues for selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_taskC

Delete a task.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior1/5

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. 'Delete a task' implies a destructive mutation but reveals nothing about permissions required, whether deletion is permanent or soft, confirmation prompts, cascading effects on subtasks, or error conditions. This is inadequate for a destructive operation with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at three words with no wasted language. It's front-loaded with the core action and resource. Every word earns its place, though this brevity contributes to gaps in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a destructive tool with no annotations, 0% schema coverage, but with an output schema present, the description is incomplete. It fails to address critical context like safety implications, permissions, or what the output might indicate (success/failure details). The output schema may help, but the description doesn't bridge the gap for a high-stakes operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. The single parameter 'task_id' receives no explanation in the description—no format examples, sourcing guidance, or validation rules. While only one parameter exists, the description adds zero semantic value beyond what the bare schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Delete a task' clearly states the action (delete) and target resource (task), making the purpose understandable. However, it doesn't differentiate this tool from sibling tools like 'finish_task' or 'update_task' that also modify task states, leaving some ambiguity about when deletion is appropriate versus other modifications.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With sibling tools like 'finish_task', 'update_task', and 'sync_tasks' available, there's no indication whether deletion is permanent, reversible, or preferred over other state changes. The agent receives no usage context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

finish_taskB

Mark a task as completed.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. 'Mark as completed' implies a mutation operation, but it doesn't specify whether this is reversible, if it triggers notifications, what permissions are required, or how it affects related data (e.g., subtasks). The description is too minimal 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with zero wasted words. It's perfectly front-loaded and appropriately sized for a simple operation, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there's an output schema (which handles return values), the description's minimalism is somewhat acceptable. However, for a mutation tool with no annotations and multiple sibling alternatives, it should provide more context about behavior and usage to be truly complete. It meets minimum viability but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description doesn't mention parameters, but with only one parameter (task_id) and 0% schema description coverage, the baseline would be lower. However, the tool name and description strongly imply that 'task_id' identifies which task to complete, providing sufficient semantic context for this simple case. The description effectively compensates for the schema gap through implication.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Mark as completed') and resource ('a task'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'update_task' which might also handle task completion, so it falls short of a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'update_task' or 'delete_task'. There's no mention of prerequisites (e.g., task must exist), constraints, or typical scenarios for completion versus other operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_all_tagsB

Get all unique tag names used in tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool retrieves data ('Get'), implying a read-only operation, but doesn't specify whether it requires authentication, has rate limits, returns paginated results, or what format the output takes. The description is too minimal to adequately inform the agent about behavioral traits beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It's front-loaded with the core purpose ('Get all unique tag names'), making it immediately understandable. Every word earns its place, and there's no redundancy or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (zero parameters, read-only operation) and the presence of an output schema (which handles return values), the description is minimally adequate. However, it lacks context about scope (e.g., all tasks vs. filtered), behavioral details (e.g., performance, auth), and usage guidance, leaving gaps that could hinder optimal tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema has 100% description coverage (though empty). The description appropriately doesn't discuss parameters since none exist, which is correct. A baseline of 4 is applied for zero-parameter tools, as there's no need to compensate for schema gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and resource ('all unique tag names used in tasks'), making the purpose immediately understandable. It distinguishes from siblings like 'list_tasks' or 'get_task_by_id' by focusing specifically on tags rather than tasks themselves. However, it doesn't specify the scope (e.g., across all tasks or within a filter) which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'search_tasks' (which might filter by tags) or 'get_statistics' (which might include tag analytics). There's no mention of prerequisites, context, or exclusions, leaving the agent to infer usage based on tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_statisticsB

Get task statistics including completion rates and urgency distribution.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a read operation ('Get'), but doesn't address important behavioral aspects like whether this aggregates data across all tasks, requires specific permissions, has rate limits, or provides real-time versus cached statistics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that communicates the essential purpose without any wasted words. It's appropriately sized for a zero-parameter tool and front-loads the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has zero parameters, 100% schema coverage, and an output schema exists, the description is reasonably complete for its core purpose. However, as a statistical aggregation tool with no annotations, it should ideally provide more context about scope (e.g., 'across all tasks' or 'for current user') and behavioral characteristics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't discuss parameters, maintaining focus on what statistics are returned rather than how to filter them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as retrieving task statistics with specific metrics (completion rates and urgency distribution). It uses a specific verb ('Get') and resource ('task statistics'), but doesn't explicitly distinguish this from sibling tools like 'list_tasks' or 'search_tasks' which might also provide statistical insights.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when this statistical view is preferable to listing or searching tasks, nor does it specify any prerequisites or contextual constraints for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subtasksB

Get subtasks for a given parent task ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
parent_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Get') but doesn't describe traits like whether it's read-only (implied but not explicit), requires authentication, has rate limits, returns paginated results, or handles errors. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and appropriately sized for a simple retrieval tool, with no wasted information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one parameter) and the presence of an output schema (which handles return values), the description is minimally adequate. However, with no annotations and incomplete parameter guidance, it lacks context on behavioral traits and usage scenarios, making it incomplete for optimal agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal meaning beyond the input schema, which has 0% description coverage. It clarifies that 'parent_id' is for a 'parent task ID', but doesn't explain format, validation, or examples. With one parameter and low schema coverage, the description partially compensates but lacks depth, aligning with the baseline for moderate schema support.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('subtasks'), specifying it retrieves subtasks for a given parent task ID. It distinguishes from siblings like 'get_task_by_id' (single task) and 'list_tasks' (all tasks), though it doesn't explicitly contrast them. The purpose is specific but could be more precise about scope (e.g., all subtasks vs. filtered).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid parent task ID), exclusions, or comparisons to siblings like 'get_task_by_id' (for parent details) or 'list_tasks' (for broader queries). Usage is implied only by the tool name and parameter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_task_by_idB

Get details for a specific task by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'gets details' which implies a read operation, but doesn't disclose whether this requires authentication, has rate limits, returns partial vs complete data, or handles errors. For a tool with zero annotation coverage, this leaves significant behavioral gaps unaddressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a simple lookup tool and front-loads the essential information. Every word earns its place in this minimal but complete statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (single parameter, simple lookup) and the presence of an output schema (which handles return values), the description is adequate but minimal. It covers the basic purpose but lacks behavioral context that would be helpful since there are no annotations. For a read operation with output schema, this is the minimum viable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful context about the 'task_id' parameter by specifying it's used 'by ID' to get details for 'a specific task'. With 0% schema description coverage (the schema only has titles, no descriptions), this compensates well. However, it doesn't specify the ID format or constraints, keeping it from a perfect score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get details') and resource ('for a specific task by ID'), making the purpose immediately understandable. It distinguishes from siblings like 'list_tasks' (which returns multiple tasks) and 'get_subtasks' (which focuses on subtasks). However, it doesn't specify what details are returned, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'list_tasks' or 'search_tasks'. It mentions 'by ID' which implies you need the ID, but doesn't explicitly state prerequisites or compare to sibling tools. There's no discussion of when-not-to-use scenarios or alternatives for similar needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tasksB

List all tasks with optional tags, if you user asks for a tag, please provide it in the request.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that tags are optional and how to handle user requests for tags, but fails to describe key behaviors such as pagination, sorting, rate limits, authentication needs, or what the output looks like. This leaves significant gaps for a tool that likely returns a list of tasks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point without unnecessary words. It front-loads the core purpose and includes the key detail about tags. However, the phrasing 'if you user asks' contains a minor grammatical error ('you user' instead of 'the user'), slightly detracting from clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is an output schema (which should document return values), the description doesn't need to explain outputs. However, for a list tool with no annotations and low schema coverage, it should provide more context on behavior (e.g., pagination, limits) and parameter usage. The description is minimally adequate but has clear gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate. It explains that 'tags' is an optional parameter for filtering, which adds some meaning beyond the schema's type definition. However, it doesn't clarify the semantics of the tags (e.g., how they match tasks, if multiple tags are AND/OR logic), leaving the parameter only partially documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('all tasks'), making the purpose understandable. It also mentions optional filtering by tags, which adds specificity. However, it doesn't explicitly differentiate this tool from sibling tools like 'search_tasks' or 'get_all_tags', which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied usage by mentioning that tags are optional and should be included if the user asks for them. However, it lacks explicit guidance on when to use this tool versus alternatives like 'search_tasks' or 'get_all_tags', and doesn't specify any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_tasksC

Search tasks by title, description, or tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the search functionality but omits critical details such as pagination behavior, rate limits, authentication requirements, or whether it's read-only. The description is too sparse for a tool with potential complexity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence that directly states the tool's function. It is front-loaded with no wasted words, making it efficient for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (which handles return values) and no annotations, the description is minimally adequate but lacks depth. It covers the basic purpose but misses behavioral context and detailed parameter guidance, making it incomplete for effective agent use without additional inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions searchable fields ('title, description, or tags'), which adds some meaning beyond the schema's generic 'query' parameter, but does not explain how the query parameter interacts with these fields (e.g., syntax, matching rules). This partial compensation is insufficient for full clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Search') and resource ('tasks'), and specifies searchable fields ('title, description, or tags'). It distinguishes from siblings like 'list_tasks' by indicating filtering capability, though not explicitly contrasting them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'list_tasks' or 'get_task_by_id' is provided. The description implies usage for filtered searches but lacks context on prerequisites, exclusions, or comparisons to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_tasksB

Sync tasks from Obsidian markdown into SQLite.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions syncing but doesn't disclose behavioral traits like whether this is a read-only or destructive operation, how conflicts are handled, authentication needs, or rate limits. This is inadequate for a sync tool with potential data mutation implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded and wastes no space, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally adequate. However, as a sync operation with no annotations, it lacks details on behavior, error handling, or integration context, which could be important for an AI agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate, but it implies the sync operation might have implicit inputs (e.g., source files), though not explicitly stated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('sync') and resources involved ('tasks from Obsidian markdown into SQLite'), making the purpose understandable. However, it doesn't differentiate this tool from its siblings (like create_task, update_task, list_tasks) in terms of when sync operations are needed versus direct CRUD operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With siblings like create_task, update_task, and list_tasks, the description doesn't specify scenarios for syncing from Obsidian versus direct database operations, leaving usage unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_taskC

Update an existing task.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
updatesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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 states 'Update' implies a mutation, but doesn't specify required permissions, whether updates are reversible, rate limits, or what happens on success/failure. For a mutation tool with zero annotation coverage, this leaves critical behavioral traits undocumented.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a basic tool and front-loads the core action ('Update'). Every word earns its place, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (mutation with nested parameters) and lack of annotations, the description is incomplete—it doesn't cover behavioral risks or parameter details. However, an output schema exists, so return values needn't be explained. This partially mitigates gaps, but overall guidance remains minimal for safe use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'an existing task' which hints at 'task_id', but doesn't explain 'updates' (a nested object with additionalProperties). Without details on valid update fields or formats, the description adds minimal meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb ('Update') and resource ('an existing task'), making the basic purpose clear. However, it's vague about what aspects of a task can be updated and doesn't differentiate from sibling tools like 'finish_task' or 'sync_tasks' that might also modify tasks. It's a minimal but functional statement of purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid task_id), exclusions, or comparisons to siblings like 'finish_task' (which might mark completion) or 'sync_tasks' (which might batch updates). Without this context, agents must infer usage from tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 12 tool updates
    • First observedcreate_subtasks
    • First observedcreate_task
    • First observeddelete_task
    • First observedfinish_task
    • First observedget_all_tags
    • First observedget_statistics
    • First observedget_subtasks
    • First observedget_task_by_id
    • First observedlist_tasks
    • First observedsearch_tasks
    • First observedsync_tasks
    • First observedupdate_task

TDQS

A3.5/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. For example, create_task and create_subtasks handle different operations, while list_tasks and search_tasks offer complementary but non-overlapping ways to retrieve tasks. The descriptions clearly differentiate each tool's function.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as create_task, delete_task, and get_subtasks. This predictability makes it easy for an agent to understand and select the appropriate tool without confusion.

Tool Count5/5

With 12 tools, the server is well-scoped for task management, covering CRUD operations, subtasks, tags, statistics, and syncing. Each tool earns its place by addressing a specific need in the domain without being excessive or insufficient.

Completeness5/5

The tool surface provides complete CRUD and lifecycle coverage for task management, including creation, retrieval, updating, deletion, completion, subtasks, tags, search, statistics, and syncing. There are no obvious gaps that would hinder an agent's workflow.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/brysontang/DeltaTask'

If you have feedback or need assistance with the MCP directory API, please join our Discord server