Skip to main content
Glama
feodal01

task-tracker-mcp

by feodal01

task-tracker-mcp

Description

task-tracker-mcp is a task management system for LLM-based agents. All tasks are stored in a single tree, available immediately after the server starts.

Related MCP server: Task Orchestration

Main Goal

Enable LLM agents to manage their tasks through a unified Task manager.

Requirements

  • Python 3.13 or higher

  • Node.js and npm (for @modelcontextprotocol/inspector)

Installation

Cloning the Repository

git clone git@github.com:feodal01/task-tracker-mcp.git
cd task-tracker-mcp

Setting Up the Environment

Configuration

Open the Claude Desktop configuration file located at:

On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Claude/claude_desktop_config.json Add the following:

{
  "mcpServers": {
    "mcpServer": {
      "command": "uv",
      "args": [
        "--directory", 
        "/Path/to/task-tracker-mcp", 
        "run",
        "python",
        "-m",
        "mcp_server.mcp_service"
      ],
      "env": {
        "PYTHONPATH": "/Path/to/task-tracker-mcp/src"
      }
    }
  }
}

Running the Project

Starting the MCP Server

Using uv:

export PYTHONPATH=/Path/to/task-tracker-mcp/src
uv run python -m src.mcp_server.mcp_service

Starting the Inspector

To inspect the MCP server, use: uv:

npx @modelcontextprotocol/inspector uv --directory /Path/to/task-tracker-mcp run python -m mcp_server.mcp_service 

Running Tests

uv:

export PYTHONPATH=/Path/to/task-tracker-mcp/src
uv run pytest tests/

Running FastApi service with MCP tools

export PYTHONPATH=/Path/to/task-tracker-mcp/src
uv --directory /Path/to/task-tracker-mcp run python -m mcp_server.mcp_rest_service

License

This project is licensed under the MIT License — see the LICENSE file for details.

Contribution

Want to contribute? Fork the repository and submit a pull request.

Contacts

If you have any questions, contact me at: evgenyorlov1991@gmail.com

Available Tools

7 tools
create_taskA

Creates a new task (or subtask) in the single task tree. Args: description: Task description dod: Definition of Done (optional) deadline: Deadline (optional, ISO8601 string or datetime) assignee: Assignee (optional) parent_id: Parent task ID (if not specified, will be added to the root)

ParametersJSON Schema
NameRequiredDescriptionDefault
dodNo
assigneeNo
deadlineNo
parent_idNo
descriptionYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure. It states the primary side effect (creation) and the root default for parent_id, which is useful. But it does not describe return values, whether the operation is idempotent, or behavior on invalid parent_id, leaving some important runtime behavior undisclosed.

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 opens with a one-sentence purpose and follows with a compact, scannable Args list. Every line carries essential information; there is no filler.

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?

The description adequately covers parameters and creation context, but with no output schema it omits the return value or created task identifier, and it gives no error or validation details. This is a moderate gap for an agent that may need to chain the result into subsequent calls.

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

Parameters5/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 compensates by explaining all five parameters: description, dod, deadline (with format hint), assignee, and parent_id (with default behavior). This fully maps parameter names to their meanings.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Creates a new task (or subtask) in the single task tree.' It clearly indicates the creation action and the parent/root relationship, and it is distinct from siblings like update_task, delete_task, and list_tasks.

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

Usage Guidelines4/5

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

The verb 'Creates' gives clear context for when the tool is appropriate, and the optional parent_id clarifies the subtask vs root scenario. However, it does not explicitly mention alternatives or exclusion criteria beyond what the sibling names imply.

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

delete_taskC

Deletes a task. Args: task_id: Task ID

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. While 'Deletes a task' conveys the basic destructive nature, it does not mention permanence, cascading effects, error behavior for non-existent tasks, or any permissions needed. This is a significant gap for a mutation tool.

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

Conciseness4/5

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

The description is appropriately short with no fluff. The 'Deletes a task' sentence is effective, though the 'Args' line adds little to nothing beyond the schema and the overall structure is slightly under-specified.

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?

For a destructive operation with no annotations, no output schema, and no additional context, the description is incomplete. It should at least note that deletion is permanent and possibly mention behavior when the task_id does not exist. The current text is only minimally viable.

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 schema has 0% description coverage, so the description must explain the parameter, but 'Args: task_id: Task ID' merely restates the property name and its obvious meaning. It adds no real semantic value beyond the schema's type definition.

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 states the specific verb 'Deletes' and the resource 'task', which clearly distinguishes it from sibling tools like create_task, update_task, and list_tasks. However, it is minimal and gives no additional scope or context beyond the action.

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?

There is no guidance on when to use this tool, what prerequisites exist, or how it relates to alternatives. The agent must infer usage entirely from the tool name and the verb 'Deletes'.

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

get_taskC

Retrieves information about a task. Args: task_id: Task ID

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

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 the full burden of behavioral disclosure. It only indicates a read operation ('Retrieves information') and omits details about the return payload, not-found behavior, permissions, 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.

Conciseness4/5

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

The definition is very concise and front-loaded with a clear verb phrase. The Args section is somewhat redundant with the schema, but the overall length is appropriate and easy to parse.

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?

Although this is a simple one-parameter getter, the lack of an output schema and annotations means the description should compensate. It does not explain what 'information' is returned, how errors are handled, or when to prefer this over list_tasks, leaving agents with only the bare invocation details.

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%, but the description's 'task_id: Task ID' merely restates the schema's property title. It adds no format, constraints, examples, or contextual meaning to help the agent use the parameter correctly.

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 states a clear operation, 'Retrieves information about a task', and names the resource. This distinguishes get_task from create_task, update_task, delete_task, and list_tasks, though it does not explicitly say 'by task ID'.

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 gives no guidance on when to use this tool versus list_tasks or other alternatives, and it provides no exclusions or conditions. The agent must infer usage from the tool name and sibling context.

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

list_tasksA

Returns a list of all tasks in the tree (including subtasks).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It does disclose the read-only nature and return scope, but it does not mention output shape, ordering, or pagination. Adequate for a simple 0-parameter listing tool, but minimal.

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?

A single sentence with the verb and object front-loaded. There is no filler, and the parenthetical about subtasks adds necessary scope without bloat.

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

Completeness4/5

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

For a 0-parameter, read-only listing tool, the description provides the essential context: what is returned and that subtasks are included. The absence of output-schema details is a minor gap given the simplicity of the operation.

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 is empty, so there is nothing for the description to clarify. Per the 0-parameter baseline, this is a 4.

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

Purpose5/5

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

States a specific verb ('Returns') and resource ('all tasks in the tree'), explicitly including subtasks. This distinguishes it from sibling tools like get_task (single task retrieval) and create_task/update_task/delete_task (mutations).

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 implies this is the tool for broad listing ('all tasks'), and the subtask note clarifies scope, but it never explicitly says when to choose this over get_task or other siblings. Usage context is implied rather than stated.

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

test_toolA

Test function for checking MCP server health.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.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. It only says 'test function for checking health' and does not disclose whether the call is read-only, what it returns, or whether there are side effects. Minimal disclosure, but it is not misleading.

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?

A single short sentence that is front-loaded and free of filler. Every word contributes to the purpose.

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?

For a zero-parameter health check, the description is mostly sufficient, but because there is no output schema, it does not tell the agent what response to expect (e.g., status, OK, error). A sentence about the return value would make it complete.

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 an empty schema, so parameter semantics are trivially satisfied. The description adds no parameter details, but none are needed.

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

Purpose5/5

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

The description states a specific purpose: checking MCP server health. It is clearly distinct from the sibling task-management tools, so an agent can route to it without ambiguity.

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?

Usage is implied rather than explicit: the description names the health-check purpose, and siblings are all task CRUD operations, making the use case obvious. However, it gives no explicit when-to-use or when-not-to-use guidance.

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

update_statusC

Closes a task. Args: task_id: Task ID status: Status (todo/done/cancelled/in_progress) reason: Close reason (optional)

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
statusYes
task_idYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of explaining behavior. It does list the allowed status values, but it frames the operation as 'closes a task,' which is inconsistent with the todo and in_progress statuses. It also does not disclose what setting each status does, whether close effects are reversible, or how the reason is used.

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 short, structured, and easy to scan, with no redundant prose. However, the opening summary is misleading, which slightly reduces the value of an otherwise compact format.

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?

For a simple mutation tool with no output schema and no annotations, the description should still clarify the real scope of the operation and how it differs from update_task. It includes parameter names but omits behavioral context for the non-close statuses and does not explain the effect of closing or changing status.

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?

Schema description coverage is 0%, so the description must explain the parameters. It does add useful semantics by enumerating status values and marking reason as optional, but task_id is only restated as 'Task ID' and reason is described only as a 'close reason' even though the tool supports non-close statuses.

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

Purpose2/5

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

The description says 'Closes a task,' but the status parameter accepts todo/done/cancelled/in_progress, so this tool is actually a general status updater, not a closer. This misleading verb prevents an agent from accurately understanding the operation and does not distinguish it from the sibling update_task.

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 given about when to use update_status versus update_task, or when it is appropriate to set each status. The description implies a closing scenario but provides no context for the other statuses or any exclusions.

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

update_taskA
Updates an existing task. You can update any of the following fields:

Args:
    task_id (str): ID of the task to update.
    description (str, optional): New description for the task.
    dod (str, optional): New Definition of Done for the task.
    deadline (str, optional): New deadline for the task.
    assignee (str, optional): New assignee for the task.

Any combination of these fields can be provided. Only non-null values will be updated.
ParametersJSON Schema
NameRequiredDescriptionDefault
dodNo
task_idYes
assigneeNo
deadlineNo
descriptionNo

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are present, so the description carries the burden. It discloses a useful behavioral trait: 'Only non-null values will be updated.' However, it omits what happens on invalid task_id, whether changes are reversible, 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.

Conciseness4/5

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

The description is front-loaded with the core purpose, followed by a structured parameter list. The Args block somewhat redundantly repeats schema type info, but there is no wasted prose.

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?

The description covers all parameters and update behavior sufficiently for invocation. Yet, without an output schema or annotations, the lack of any mention of return values or error behavior leaves a gap for an agent that needs to use the result.

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?

Schema description coverage is 0%, but the description compensates well by explaining every parameter in plain language and adding the critical rule that only non-null fields are updated, which clarifies the meaning of the default null values in the schema.

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 states a specific verb and resource ('Updates an existing task') and enumerates the exact updatable fields. This field list implicitly differentiates it from the sibling update_status, since status is not among the updatable fields.

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?

Clear context is provided: use this tool to modify description, definition of done, deadline, or assignee of an existing task. However, there is no explicit guidance on when not to use it or alternatives like update_status for status changes.

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. 7 tool updatesv0.1.0
    • First observedcreate_task
    • First observeddelete_task
    • First observedget_task
    • First observedlist_tasks
    • First observedtest_tool
    • First observedupdate_status
    • First observedupdate_task

TDQS

B3.4/5.0
Disambiguation5/5

Each tool targets a distinct action: create, update fields, update status, delete, get, list, and health check. There is no real overlap between updating task fields and updating task status.

Naming Consistency4/5

Most tools follow a clear verb_noun pattern like create_task, update_task, delete_task, get_task, and list_tasks. Minor inconsistencies include update_status instead of update_task_status and the non-domain test_tool.

Tool Count5/5

Seven tools is well-scoped for a task tracker: core CRUD, status transitions, and listing are all covered without unnecessary redundancy. Each tool earns its place.

Completeness4/5

The surface covers create, read, update, delete, status changes, and listing, which is solid for basic task tracking. The main gap is the lack of an operation to move a task within the task tree after creation, since parent_id is only supported on create.

Maintenance

ActivityInactive
ResponsivenessNo issues

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/feodal01/task-tracker-mcp'

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