mcp-server-tasktracker

mcp-server-tasktracker

An MCP server that exposes the full Task-Tracker REST API as MCP tools, enabling AI agents to manage trackers, tasks, notes, checklists, and projects conversationally.

Category
访问服务器

README

mcp-server-tasktracker

An MCP (Model Context Protocol) server for AI integration into Task-Tracker.

It exposes the full Task-Tracker REST API — trackers, tasks, notes, checklists, and projects (with steps and references) — as MCP tools, so any MCP-compatible AI agent (Claude Desktop, Claude Code, or others) can manage your Task-Tracker instance conversationally, with the same capabilities as the web dashboard.

This is a standalone companion project, not published to any package registry. Clone it, point it at your own running Task-Tracker instance, and wire it into your MCP client's configuration.

Requirements

  • Node.js 18+
  • A running Task-Tracker instance you can reach over HTTP
  • That instance's API_SECRET_TOKEN (see Task-Tracker's own .env configuration)

Install

git clone https://github.com/itlostandfound/mcp-server-tasktracker.git
cd mcp-server-tasktracker
npm install
npm run build

This produces a compiled server at dist/index.js.

Configuration

The server reads its connection details from environment variables — set these in your MCP client's configuration, not in a committed file:

Variable Required Description
TASKTRACKER_API_URL Yes Base URL of your running Task-Tracker instance, e.g. http://localhost:8000
TASKTRACKER_API_TOKEN Yes The API_SECRET_TOKEN configured on your Task-Tracker backend
DEBUG No Set to true to log outgoing requests/responses to stderr

The server fails fast at startup with a clear message if either required variable is missing.

Using it with an MCP client

Claude Desktop

Add an entry to claude_desktop_config.json:

{
  "mcpServers": {
    "tasktracker": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server-tasktracker/dist/index.js"],
      "env": {
        "TASKTRACKER_API_URL": "http://localhost:8000",
        "TASKTRACKER_API_TOKEN": "your-api-secret-token"
      }
    }
  }
}

Claude Code

Add the same server to your project or user MCP configuration (.mcp.json or via claude mcp add):

{
  "mcpServers": {
    "tasktracker": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server-tasktracker/dist/index.js"],
      "env": {
        "TASKTRACKER_API_URL": "http://localhost:8000",
        "TASKTRACKER_API_TOKEN": "your-api-secret-token"
      }
    }
  }
}

Any other MCP-compatible client should work the same way: spawn node dist/index.js with the two environment variables set.

Tools

Every tool mirrors a Task-Tracker API endpoint 1:1 — no invented aggregate operations, no client-side validation duplicating what the API already does.

Trackers

Tool Description
list_trackers List all trackers with open task counts
create_tracker Create a tracker (name must be unique)
get_tracker Get a single tracker by id
update_tracker Update a tracker's name/type
delete_tracker Delete a tracker and its tasks/notes

Tasks

Tool Description
list_tasks List tasks on a tracker
create_task Create a task on a tracker
get_task Get a single task by id
update_task Update title, completion, sort order, severity
delete_task Delete a task and its notes

Notes

Tool Description
list_notes List notes on a task
create_note Create a rich-text note on a task
get_note Get a single note by id
update_note Update a note's title, date, content
delete_note Delete a note

Checklists

Tool Description
list_checklists List checklists/templates, filterable by template/search
create_checklist Create a checklist or reusable template
get_checklist Get a checklist with its items and steps
update_checklist Replace a checklist's name and/or items (full replace)
delete_checklist Delete a checklist (undoable once)
clone_checklist Clone a template into a new instance for a device list
undo_checklist_delete Restore the most recently deleted checklist

Projects, Steps & References

Tool Description
list_projects List projects, filterable by incomplete/search
create_project Create a project
get_project Get a project with all steps and references
update_project Update a project's title
delete_project Delete a project and its steps/references
list_project_steps List a project's ordered steps
add_project_step Add a step to the end of a project
reorder_project_steps Reorder steps by full ordered id list
update_project_step Update a step's title/rich-text content
toggle_project_step_complete Toggle a step's completion state
delete_project_step Delete a step and its references
list_step_references List reference links on a step
add_step_reference Add a reference link to a step
update_step_reference Update a reference link
delete_step_reference Delete a reference link

Rich-text content (notes & project steps)

create_note, update_note, add_project_step, and update_project_step all take a content field. Task-Tracker stores this internally as a TipTap JSON document, but you don't need to construct that by hand — pass a plain string of Markdown or plain text and it's converted automatically:

{ "content": "Goal: create the widget\n\n## Sub-tasks\n\n1. Create directory\n2. Init package.json" }

Supported Markdown: paragraphs, # headings, **bold**, _italic_, `inline code`, [links](url), bullet (-) and numbered (1.) lists, > blockquotes, fenced code blocks, and hard line breaks. Constructs the converter doesn't understand (tables, images, raw HTML, task-list checkboxes) are never silently dropped — they degrade to plain text so the content survives, just not as their intended rich element.

If you need something the converter can't express exactly, you can still pass a raw TipTap JSON document directly instead of a string — it's stored as-is.

For project steps, content_text (used for search) is derived automatically from content when omitted, so you only need to write the text once. Pass content_text explicitly if you want the search index to see different text than what's rendered.

Error handling

  • Connection failures (Task-Tracker unreachable): returned as a clear message naming the configured URL, not a stack trace.
  • Authentication failures (401): returned as a message pointing at TASKTRACKER_API_TOKEN.
  • Validation errors: the API's own FastAPI/Pydantic error details are passed through as-is.
  • Unexpected/non-JSON responses (e.g. a reverse proxy error page instead of the API): surfaced as a clear message rather than crashing on an invalid-JSON parse.
  • Destructive operations (deletes): exposed as plain tools with no extra confirmation step — the same trust model as calling the API directly. Only checklists support undo_checklist_delete; other deletes are permanent.

Development

npm run dev         # run directly from source with tsx
npm run build        # compile to dist/
npm start            # run the compiled server (dist/index.js)
npm run typecheck    # type-check without emitting
npm test             # run the automated test suite (mocked HTTP, no live Task-Tracker needed)

Compatibility

Built and tested against Task-Tracker v3.0.x's /api/v1 REST API. Versioned independently of Task-Tracker itself, starting at v1.0.0.

License

MIT — see LICENSE.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选