Task Tracker MCP Server
📋 任务追踪器 MCP 服务器
一个使用 FastMCP 构建并通过 uv 管理的实用 模型上下文协议 (MCP) 服务器,基于 Python 实现。该服务器为 AI 助手(如 Claude Desktop、Cursor、Antigravity 等)提供了结构化的任务管理功能。
🌟 概述
模型上下文协议 (MCP) 是一种开放标准,允许 LLM 和 AI 应用程序安全、无缝地与外部工具和数据源交互。
本项目实现了 MCP 的三个核心原语:
🛠️ 工具 (Tools):可调用的函数,允许模型执行操作(
add_task、complete_task、delete_task)。📦 资源 (Resources):只读数据 URI,允许模型检查状态(
tasks://all、tasks://pending)。💡 提示 (Prompts):预定义的提示模板,指导 AI 执行复杂的工作流程(例如,任务分析与优先级排序)。
flowchart LR
Host["AI Host / Application<br/>(Claude Desktop / Cursor / Antigravity)"]
Client["MCP Client<br/>(Protocol Handler)"]
Server["Task Tracker MCP Server<br/>(FastMCP)"]
Host <--> Client
Client <--> Server
subgraph ServerCapabilities ["Server Capabilities"]
Tools["🛠️ Tools<br/>add_task, complete_task, delete_task"]
Resources["📦 Resources<br/>tasks://all, tasks://pending"]
Prompts["💡 Prompts<br/>task_summary_prompt"]
end
Server --- ServerCapabilitiesRelated MCP server: MCP Task Management Server
🚀 功能与 MCP 原语
1. 工具(操作)
工具 | 参数 | 描述 |
|
| 添加一个新任务,带有唯一 ID 和 ISO 时间戳。 |
|
| 将任务状态标记为 |
|
| 按 ID 删除任务并返回被删除的对象。 |
2. 资源(只读数据)
资源 URI | 描述 |
| 格式化并返回所有任务,带表情符号( |
| 过滤并仅返回活动/待处理的任务。 |
3. 提示(引导式工作流程)
提示 | 描述 |
| 引导 AI 助手分析待处理与已完成的任务,识别逾期项目,并使用 |
📦 使用 uv 开始
本项目使用 uv 构建和管理,这是一款由 Astral 用 Rust 编写的极速 Python 包和项目管理器。
1. 安装 uv
macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | shWindows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"验证安装:
uv --version2. 克隆并设置仓库
git clone https://github.com/<your-username>/task-tracker-mcp.git
cd task-tracker-mcp3. 安装依赖
uv 将自动创建虚拟环境 (.venv) 并安装所有必需的依赖项:
uv sync🧪 测试服务器
您可以运行内置的异步客户端 (test_client.py),它将执行每个工具、资源和提示:
uv run test_client.py预期输出:
🚀 Starting FastMCP Test Client...
==================================================
1. Listing Available Tools:
Found 3 tools: ['add_task', 'complete_task', 'delete_task']
2. Calling 'add_task' Tool:
Task 1 Response: {"id":1,"title":"Learn MCP", ...}
Task 2 Response: {"id":2,"title":"Master uv", ...}
3. Listing Available Resources:
Found 2 resources: [AnyUrl('tasks://all'), AnyUrl('tasks://pending')]
4. Reading 'tasks://all' Resource:
Current Tasks:
⏳ [1] Learn MCP
⏳ [2] Master uv
5. Completing Task ID 1:
Completed Result: {"id":1, "status":"completed", ...}
6. Reading 'tasks://pending' Resource:
Pending Tasks:
⏳ [2] Master uv
7. Listing Available Prompts:
Found 1 prompts: ['task_summary_prompt']
8. Deleting Task ID 2:
Delete Result: {"success": true, "deleted": {"id": 2, ...}}
==================================================
✨ All MCP Server tests completed successfully!🔌 连接与检查
1. FastMCP CLI 检查器与开发工具
FastMCP 3.x 提供了内置的 CLI 命令,用于检查和调试您的服务器:
交互式 Web 检查器:
uv run fastmcp dev inspector task_server.py检查服务器摘要:
uv run fastmcp inspect task_server.py列出所有工具:
uv run fastmcp list task_server.py运行独立服务器:
uv run fastmcp run task_server.py
2. Claude Desktop 集成
将服务器配置添加到您的 claude_desktop_config.json:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"task-tracker": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/task-tracker-mcp",
"run",
"task_server.py"
]
}
}
}📁 项目结构
Task Tracker MCP/
├── pyproject.toml # Dependency & project metadata (managed by uv)
├── task_server.py # MCP Server definitions (tools, resources, prompts)
├── test_client.py # FastMCP async automated test client
├── src/
│ └── task_tracker_mcp/ # Python package entrypoint
│ └── __init__.py
├── .python-version # Locked Python version
├── .gitignore # Python & uv exclusions
└── README.md # Documentation💡 关键 uv 命令速查表
命令 | 描述 |
| 使用 |
| 添加依赖到 |
| 移除依赖 |
| 在隔离的项目环境中运行任何 Python 脚本 |
| 根据 |
| 显式创建虚拟环境 |
🛠️ 后续步骤与扩展
持久化存储:通过
aiosqlite或sqlite3将内存列表替换为 SQLite。优先级与截止日期:添加任务优先级标志(
low、medium、high)和截止日期过滤器。搜索工具:添加
search_tasks(query: str)工具以搜索标题和描述。身份验证:使用 FastMCP 认证提供程序保护端点。
📄 许可证
本项目基于 MIT 许可证授权 - 详见 LICENSE 文件。
Available Tools
3 toolsadd_taskC
Add a new task to the task list.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Add' implies a mutation, but nothing is said about required permissions, duplicate handling, defaults for description, or state side effects — a significant gap for a write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words, but it is under-specified rather than appropriately concise for a mutation tool with two undocumented parameters.
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?
An output schema exists, so return values need not be described. Still, with no annotations and 0% parameter coverage, the definition leaves an agent without enough behavioral or parameter context to reliably invoke a write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions any parameter. It does not clarify that 'title' is required or that 'description' defaults to an empty string, so it adds no parameter meaning beyond the raw 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?
States a clear verb ('Add') and resource ('a new task to the task list'), so the agent can tell it apart from delete_task and complete_task by operation. However, it offers no differentiation language or scope detail beyond the obvious create/delete/complete split.
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 when-to-use guidance, no prerequisites, and no mention of alternatives such as complete_task for status changes. The agent gets a bare purpose statement and must infer all invocation context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_taskC
Mark a task as completed.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full behavioral burden. It conveys that this is a state mutation but omits whether the call is idempotent, what happens if the task is already completed, permission requirements, and whether the change is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, but so terse that it omits information an agent needs rather than being efficiently dense.
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 simple, one required integer parameter, and an output schema exists so return values need not be described. Still, a mutation with no annotations and no parameter documentation leaves gaps around idempotency and 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 0%, so the description must compensate for the undocumented task_id. It only implies 'a task' without stating the identifier format, valid range, or behavior when the id does not exist.
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?
States a specific verb+resource: 'Mark a task as completed.' An agent immediately knows the operation. However, it offers no differentiation from siblings like delete_task or add_task, which are the plausible confusions for a task-status mutation.
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 when-to-use guidance, no mention of alternatives, and no note on the distinction between completing and deleting a task. Usage is only weakly implied by the verb.
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 from the list.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. "Delete" implies a destructive mutation but the description says nothing about irreversibility, required permissions, or what happens to the task afterward — significant gaps for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no waste and the action front-loaded, which suits a one-parameter tool. However, the brevity comes at the cost of substance rather than being a model of economical communication.
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?
An output schema exists, so return values need not be explained. But for a destructive mutation with zero annotations and an undocumented parameter, the description omits the safety and side-effect context an agent needs before invoking it.
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 0% and the description adds no meaning for task_id beyond what the name implies. The single required integer parameter is nearly self-evident, but nothing explains its origin or format, so the description fails to compensate for the schema gap.
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?
States a specific verb and resource ("Delete a task"), which is unambiguous against siblings add_task and complete_task, whose verbs already differ. It stops short of explicitly naming those siblings or the scope of deletion, but an agent can distinguish it readily.
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 when-to-use guidance, no prerequisites, and no alternatives named. The agent gets no signal about when deleting is appropriate versus completing or leaving a task 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.
3 tool updates
v0.1.0- First observed
add_task - First observed
complete_task - First observed
delete_task
TDQS
Scored across 3 tools
Each tool targets a clearly distinct action on a task: add, delete, complete. There is no overlap or ambiguity between them, so an agent can easily select the right tool.
All three tools follow the exact same verb_noun snake_case pattern (add_task, delete_task, complete_task). Naming is fully predictable.
Three tools is a reasonable, well-scoped set for a minimal task tracker, and each earns its place. It is slightly thin, since a small surface like this leaves little room for the read/lifecycle operations expected of the domain.
The set covers create, delete, and a status update, but there is no way to list or retrieve tasks, which is arguably the most essential operation for a tracker. This is a notable gap that will leave agents unable to inspect the task list.
Maintenance
Related MCP Connectors
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
AI-native task management: list, create, update and archive tasks with rich context for AI agents
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Google Tasks, including listing, creating, updating, deleting, and completing tasks via the Google Tasks API.55 npmMIT
- AlicenseAqualityDmaintenanceEnables comprehensive task management with groups, custom statuses, and task relationships, designed for AI assistants to manage tasks during conversations.17ISC
- AlicenseAqualityDmaintenanceEnables AI assistants to manage a todo list with add, list, complete, and delete tasks.44 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables to manage to-do items through natural language, with tools for creating, reading, updating, and deleting tasks.ISC