todo-mcp-server
Click on "Install 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., "@todo-mcp-serverprioritize my tasks using AI"
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.
MCP Todo Server
A distributed MCP server for task prioritization with AI-powered analysis.
Quick Start
# Set your OpenRouter API key
echo "OPENROUTER_API_KEY=your-api-key" > .env
# Start the stack
docker compose up --build -dServer runs at http://localhost:3000/mcp
Related MCP server: TickTick MCP Server
Example Usage
Adding TODOs

Analyzing TODOs

Marking TODO as done

Removing TODO


Clearing TODOs

Architecture
2 Node instances behind Caddy load balancer (round-robin)
Redis for shared state (no sticky sessions required)
OpenRouter for AI-powered task analysis
MCP Tools
Tool | Description |
| Add a new task |
| List all tasks |
| Remove a task by ID |
| Clear all tasks |
| Mark task as completed |
| AI analysis for task prioritization |
Client Setup
⚠️ User Isolation: Set the x-user-id header to isolate your todos. Without it, todos are shared with all users.
⚠️ Important: Before starting your full conversation at any given client, you should start by sending message that you want to use MCP tools from this MCP server.
For example in OpenCode the tools have the prefix todo-mcp due to the name of the MCP server in the config. See example first message would be: For this conversation I want you to use MCP tools starting with todo-mcp.
Reason why is that because most of the clients will have their TODO implementation already and it could mix up.
Cursor
Disclaimer
After adding the MCP server to Cursor, Cursor will be saying that the server is not available and there is error. The logs show that it is looking for SSE connections but still manages to connect and use the tools. Ignore that for now. It might be Cursor bug, could be reported to them.
Or manually add to ~/.cursor/mcp.json:
{
"mcpServers": {
"todo-mcp": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": {
"x-user-id": "your-unique-user-id"
}
}
}
}Or manually add to ~/.cursor/mcp.json:
{
"mcpServers": {
"todo-mcp": {
"type": "http",
"url": "http://localhost:3000/mcp"
}
}
}VS Code
{
"servers": {
"todo-mcp": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": {
"x-user-id": "your-unique-user-id"
}
}
}
}{
"servers": {
"todo-mcp": {
"type": "http",
"url": "http://localhost:3000/mcp"
}
}
}OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"todo-mcp": {
"type": "remote",
"url": "http://localhost:3000/mcp",
"headers": {
"x-user-id": "your-unique-user-id"
},
"enabled": true
}
}
}{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"todo-mcp": {
"type": "remote",
"url": "http://localhost:3000/mcp",
"enabled": true
}
}
}Endpoints
POST /mcp- MCP protocol endpointGET /health- Health check
Environment Variables
Variable | Description | Default |
| OpenRouter API key | required |
| Redis connection URL |
|
| Server port |
|
Development
npm install
npm run devUser Isolation
Todos are isolated per user via the x-user-id header:
Redis keys:
todo:{userId}:{id}andtodos:{userId}No sticky sessions required - any node can handle any request
Without the header, requests are associated with a shared
defaultuser (no 401 is returned)
The user isolation is implemented in a dummy manner. Usage of API key would be better and preferred but I wanted to keep it simple and focus on the MCP server implementation.
Load Balancing
Caddy distributes requests round-robin across both nodes. All state is in Redis.
Testing
Unit and integration tests.
npm testThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceAI-powered MCP server that analyzes project structures to create optimized task architectures for mise, enabling intelligent task management, dependency mapping, and automated task suggestions.10MIT
- Alicense-qualityDmaintenanceAn MCP server for TickTick/Dida365 task integration, enabling AI-driven task decomposition and management with automated OAuth authentication.9MIT
- Flicense-qualityDmaintenanceAn MCP server that automates project task breakdown, dependency management, and smart task recommendations, integrating with LLMs like Gemini and OpenAI.7
- Flicense-qualityDmaintenanceAn AI-powered TODO list MCP server with categories, timeboxing, and due dates, enabling natural language task management.
Related MCP Connectors
MCP server for generating rough-draft project plans from natural-language prompts.
An MCP server that integrates with Discord to provide AI-powered features.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/janvavrina/todo-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server