mcp-task-manager
mcp-task-manager
MCP (Model Context Protocol) server that wraps the personal task manager REST API, so Claude (Claude Code / Cowork / claude.ai) can read and manage tasks.
Two transports, same tools:
stdio (
dist/index.js) — for local Claude Code on the serverstreamable HTTP (
api/mcp.ts) — serverless function for Vercel, endpoint/mcp
Tools
get_categories, get_tasks, get_task, add_task, add_subtask, update_task, complete_task, reopen_task, delete_task
Field conventions: priority/effort ∈ Low|Medium|High; due_date = YYYY-MM-DD; reminder_at = YYYY-MM-DDTHH:MM (server local time, triggers a Telegram message).
Environment variables
Variable | Value |
| Base URL of the task manager API, e.g. |
| API key; sent as |
Local build & stdio registration
npm install
npm run build # tsc → dist/Claude Code config (~/.claude.json → mcpServers):
{
"mcpServers": {
"task-manager": {
"command": "node",
"args": ["/home/zsomb/Scripts/Personal/mcp-task-manager/dist/index.js"],
"env": { "TASKS_API_KEY": "<key from task-manager/.env>" }
}
}
}Deploy to Vercel
Push this repo to GitHub:
git remote add origin git@github.com:<you>/mcp-task-manager.git git push -u origin mainOn vercel.com: Add New → Project → Import the GitHub repo. Framework preset: Other. No build settings needed (functions compile automatically).
Project → Settings → Environment Variables, add for Production:
TASKS_API_URL=https://<tunnel>.trycloudflare.com/apiTASKS_API_KEY= the key from the task manager.env
Deploy. The MCP endpoint will be:
https://<project-name>.vercel.app/mcp(
vercel.jsonrewrites/mcp→ theapi/mcpfunction; stateless streamable HTTP, JSON responses.)
⚠️ The trycloudflare quick-tunnel URL changes every time the tunnel restarts — after a server reboot, run tunnel-url on the server and update TASKS_API_URL in Vercel (then redeploy).