Skip to main content
Glama

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 server

  • streamable 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/effortLow|Medium|High; due_date = YYYY-MM-DD; reminder_at = YYYY-MM-DDTHH:MM (server local time, triggers a Telegram message).

Environment variables

Variable

Value

TASKS_API_URL

Base URL of the task manager API, e.g. https://<tunnel>.trycloudflare.com/api. Defaults to http://localhost:3131/api.

TASKS_API_KEY

API key; sent as Authorization: Bearer <key> on every call.

Local build & stdio registration

npm install
npm run build     # tsc → dist/

Claude Code config (~/.claude.jsonmcpServers):

{
  "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

  1. Push this repo to GitHub:

    git remote add origin git@github.com:<you>/mcp-task-manager.git
    git push -u origin main
  2. On vercel.com: Add New → Project → Import the GitHub repo. Framework preset: Other. No build settings needed (functions compile automatically).

  3. Project → Settings → Environment Variables, add for Production:

    • TASKS_API_URL = https://<tunnel>.trycloudflare.com/api

    • TASKS_API_KEY = the key from the task manager .env

  4. Deploy. The MCP endpoint will be:

    https://<project-name>.vercel.app/mcp

    (vercel.json rewrites /mcp → the api/mcp function; 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).