Tasklife MCP Server v0.1.1

A Model Context Protocol server that exposes the Tasklife API to AI agents. Works with Claude Desktop, Hermes, Cursor, Windsurf, and any other MCP-compatible client. 26 tools covering Tasks, Comments, Pages, Projects, Users, Teams, and Releases.

Hosted MCP — one URL, OAuth device pairing (recommended)

If your client supports MCP over HTTP with OAuth (Claude.ai, Grok web, Cursor 1.0+), point it at:

https://mcp.tasklife.com/mcp

On first connection, the client will fetch our OAuth discovery, generate a device code, and show you a URL like https://tasklife.com/device with a short code. Visit it, sign in, type the code, click Approve. The client then receives a short-lived bearer token and you’re in — no API key copy/paste.

Tokens minted this way are tl_at_… access tokens (RFC 8628 device grant). They expire and can be revoked from Settings → Connected apps. The Worker advertises discovery at https://mcp.tasklife.com/.well-known/oauth-authorization-server (RFC 8414) and https://mcp.tasklife.com/.well-known/oauth-protected-resource (RFC 9728).

What is MCP?

MCP is an open standard that lets AI agents call external tools through a uniform interface. Instead of hand-coding HTTP requests, the agent discovers your tools automatically and invokes them by name.

With the Tasklife MCP server installed, an agent like Claude Desktop can do things like "show me my open tasks in project 8" or "create a follow-up task and assign it to Dave" — the model picks the right tool, calls it with the right arguments, and shows you the result.

Install

Requires uv (a Python tool manager). Install it once if you don't have it:

curl -LsSf https://astral.sh/uv/install.sh | sh

Then install the package:

uv tool install tasklife-mcp

Get a Tasklife API key: Settings → Agents → Create API key in the Tasklife web app. Copy it (looks like tl_prod_abc123…).

Configure your client

Pick your client. Each config tells the client how to spawn the MCP server as a local subprocess and what API key to pass it.

Settings → Developer → Edit Config. Add to claude_desktop_config.json:

{
  "mcpServers": {
    "tasklife": {
      "command": "tasklife-mcp",
      "env": {
        "TASKLIFE_API_KEY": "tl_prod_abc123..."
      }
    }
  }
}

Save. Restart Claude Desktop. Tools appear under the ‘🔌’ tools icon.

Add to ~/.hermes/config.yaml:

mcp_servers:
  tasklife:
    command: "tasklife-mcp"
    env:
      TASKLIFE_API_KEY: "tl_prod_abc123..."

Restart Hermes. Tools appear as mcp_tasklife_*.

Settings → Features → Model Context Protocol → Add new global MCP server. Paste:

Name: tasklife
Command: tasklife-mcp
Env: TASKLIFE_API_KEY=tl_prod_abc123...

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "tasklife": {
      "command": "tasklife-mcp",
      "env": { "TASKLIFE_API_KEY": "tl_prod_abc123..." }
    }
  }
}

Verify

In Claude Desktop, click the 🔌 tools icon — you should see all 26 Tasklife tools listed. In Hermes, ask "what MCP tools are available" and the agent will list them.

Try a prompt: "Show me my open tasks in project 8". The model will call list_tasks, get the tasks back, and summarize them for you.

Tools

26 tools total. The agent sees these names and descriptions automatically when it connects; you don't need to teach it anything.

list_tasks
List tasks in a project with filters (status, assignee).
get_task
Get full details for a single task.
create_task
Create a new task in a project.
update_task
Update an existing task (title, description, priority, assignee, due date).
move_task
Move a task to a different column (status).
list_comments
List comments on a task.
add_comment
Add a markdown comment to a task.
edit_comment
Edit a comment — simple body update or conflict-safe PATCH with line-range ops.
list_pages
List CMS pages, optionally filtered by parent.
get_page
Get a CMS page with its markdown content.
create_page
Create a new CMS page (optionally nested under a parent).
update_page
Update an existing page (title and/or content).
list_projects
List projects visible to your agent.
get_project
Get a project including its columns and task priorities.
get_current_user
Return the authenticated agent and current org context.
list_users
List users in the current org.
get_user
Get full details for a single user.
list_teams
List teams in the org (org-admin gated).
list_releases
List releases for the org, filtered by project / product / status.
get_release
Get a release with its attached tasks.
create_release
Create a new release for a project (with version, RC label, status).
update_release
Update fields on a release (status, RC, comments, etc.).
delete_release
Delete a release and detach all its tasks.
add_task_to_release
Attach a task to a release.
remove_task_from_release
Detach a task from a release.
search_release_tasks
Search tasks by title within a release's project.

Troubleshooting

Tools don't appear after restart

  • Verify the config file saved correctly (JSON must be valid).
  • Check tasklife-mcp is on your PATH: which tasklife-mcp.
  • Check Claude Desktop logs for spawn errors (macOS: ~/Library/Logs/Claude/; Windows: %APPDATA%\Claude\logs).

401 Unauthorized errors

Your API key is invalid or revoked. Regenerate in Tasklife → Settings → Agents.

Rate limits (429)

The HTTP client retries automatically; the agent should back off and retry the tool call.

Need a different endpoint?

v1 ships the 18 most common tools. For missing endpoints (agent key management, teams CRUD, CMS advanced ops), use the REST API directly via curl or open a feature request.

For developers

Source lives in the tasklife-web repo under mcp/. Package on PyPI.

git clone https://github.com/Iozzia-Lab/tasklife-web.git
cd tasklife-web/mcp
uv sync --extra dev
uv run pytest            # 35 tests
uv run tasklife-mcp      # stdio, test with MCP Inspector