TaskRelayMCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TaskRelayMCPShow my TODO tasks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TaskRelayMCP
A small private-team Todo/Done workspace for humans and MCP agents. One container serves the Angular client-side UI, REST API, and MCP endpoint, backed by SQLite.
Features
Local username/password accounts administered by a bootstrap administrator.
Private projects with exactly one owner and optional members.
Named, revocable, user-owned MCP keys.
Membership-filtered REST and MCP reads, search, counts, tags, assignments, and notifications.
Explicit, audited, read-only administrator inspection mode.
Tasks have only
TODOand immutableDONEstates.Project Notes support nested folders, safe Markdown preview, same-project wiki links, backlinks, and revision restore; MCP exposes explicit note and folder operations.
Home (
/home), global Tasks (/tasks), and global Notes (/notes) separate workspace navigation from project editing routes;/projectsredirects to Home for compatibility.
Related MCP server: task-manager-mcp
Run locally
export TASKRELAY_DATABASE_URL=sqlite:///./workspace.db
export TASKRELAY_ADMIN_USERNAME=admin
export TASKRELAY_ADMIN_PASSWORD='replace-with-a-long-secret'
export TASKRELAY_ADMIN_DISPLAY_NAME='Administrator'
export TASKRELAY_SECURE_COOKIES=false # local HTTP only
export TASKRELAY_PUBLIC_ORIGIN=http://localhost:8080
uv run taskrelaymcpOpen http://localhost:8080. Production deployments must retain the default secure-cookie setting and terminate TLS in front of the service.
For frontend development:
cd frontend
npm ci
npm run devThe checked-in development Compose stack uses loopback-only ports and known local credentials (admin / taskrelay-local-password); never use it in production.
Browser E2E checks
Install Chromium once, then run the browser suite from frontend/:
npm run e2e:install
npm run e2ee2e builds the Angular client and starts a fresh FastAPI server on 127.0.0.1:18080 with a temporary /tmp/taskrelay-playwright.db, loopback-only insecure cookies, and an E2E bootstrap administrator. It covers project capabilities, owner settings, and responsive global navigation. It removes that database after the run and never reuses an existing server.
Production Compose
export TASKRELAY_ADMIN_USERNAME=admin
export TASKRELAY_ADMIN_PASSWORD='replace-with-a-long-random-secret'
export TASKRELAY_PUBLIC_ORIGIN=https://tasks.example.com
docker compose pull
docker compose up -dPin release v0.5.0 with:
TASKRELAY_IMAGE=ghcr.io/stratmannbenedikt/taskrelaymcp:0.5.0 docker compose up -dThe service binds to 127.0.0.1:8080. Use a TLS-terminating reverse proxy and set TASKRELAY_PUBLIC_ORIGIN to its public origin (for example, https://tasks.example.com). TASKRELAY_SECURE_COOKIES defaults to true; disabling it is only for loopback HTTP development.
MCP authentication
Create a named key under Account → MCP keys. Its secret is shown once and stored only as a SHA-256 hash. Configure that key and a Home Project of which its user is a member:
{
"mcp": {
"tasks": {
"type": "remote",
"url": "https://tasks.example.com/mcp/",
"headers": {
"Authorization": "Bearer {env:TASKRELAY_MCP_KEY}",
"X-Home-Project": "project-name"
}
}
}
}Available tools include task, note, an folder read/write/move/archive operations. MCP writes record the owning user, channel, and key name. Notification consumption is per user; browser reads never consume MCP notifications.
Tags
Tags are colored, project-scoped definitions. Project members manage them from Manage tags on a project's Tasks page: create a lowercase slug with a color and description, edit color/description, and (owners) rename or archive. REST lists TagOut objects at GET /api/tags and
GET /api/projects/{key}/tags; browser task create/patch uses tag_ids: [int]. Archived tags remain
on historical tasks but cannot be assigned. MCP agents list active definitions with list_project_tags()
and may assign existing names; create_project_tag() requires elicited confirmation and otherwise returns
{"status":"ELICITATION_UNSUPPORTED","fallback_tool":"propose_project_tag"}. Proposals are approved or
rejected only through the browser API.
Upgrade to v0.4
Pre-0.4 development databases and volumes must be reset once before starting v0.4; they are not compatible with the new baseline. The project-tag baseline is also pre-deployment: reset disposable development data rather than applying it to an existing volume. Back up any data you need first, remove the old development volume or database, then start normally. Alembic initializes the baseline and applies future schema upgrades.
Development checks
uv sync --frozen
uv run ruff format --check .
uv run ruff check .
npm --prefix frontend ci
npm --prefix frontend run build
npm --prefix frontend test -- --watch=false
uv run pytest -qPersistence and backup
The production named volume stores /data/workspace.db. SQLite foreign keys and WAL are enabled.
docker compose exec taskrelay python -c "import sqlite3; s=sqlite3.connect('/data/workspace.db'); d=sqlite3.connect('/data/workspace.backup.db'); s.backup(d)"
docker cp "$(docker compose ps -q taskrelay):/data/workspace.backup.db" ./workspace.backup.dbNon-goals
Organizations, public registration, email, invitations, viewer roles, multiple assignees, granular task ACLs, time tracking, OAuth, external identity providers, billing, Kubernetes, and workflow expansion.
This server cannot be deployed
Maintenance
Related MCP Connectors
- OctopadOAuthapp.octopad
The back-office workspace for your team's AIs: tasks, knowledge and context shared over MCP.
Local-first task manager: create, edit, and complete tasks, projects, and checklists via MCP.
Task & board management for AI agents + humans. Kanban, comments, digests via MCP.
Work management where AI agents are first-class members: tasks, projects, memory over hosted MCP
Related MCP Servers
- AlicenseAqualityCmaintenanceMulti-interface task management system that enables AI agents and users to manage hierarchical tasks (projects, task lists, tasks) with dependency tracking, tags, and search through MCP Server, REST API, or React UI.23MIT
- FlicenseNot gradedqualityDmaintenanceA task manager MCP server that demonstrates all three MCP primitives (tools, resources, prompts). Enables users to manage tasks, read task summaries and details, and run structured planning/review prompts through natural language.-
- FlicenseNot gradedqualityCmaintenanceProvides AI clients with per-project todo management and persistent context notes via MCP, enabling task tracking and resume summaries.-
- AlicenseNot gradedqualityBmaintenanceEnables agents to manage personal task lists through the MCP protocol, supporting task creation, editing, completion, deletion, grouping, reordering, and JSON import/export.1AGPL 3.0