todo-tree MCP Server
Exposes your todo-tree task list as MCP tools for reading and managing tasks via MCP-compatible AI clients like Claude Desktop.
README
todo-tree MCP Server
Exposes your todo-tree task list as MCP tools so any MCP-compatible AI client (Claude Desktop, etc.) can read and manage your tasks. It supports both stdio transport (default) and SSE (HTTP) transport with dynamic client-side authentication.
Modes of Operation
1. SSE (HTTP) Mode with Web Portal (Recommended)
By defining the PORT environment variable, the server will boot as an HTTP server supporting Server-Sent Events (SSE). It hosts a web interface allowing non-technical users to easily log in and connect.
Setup
- Create a
.envfile based on.env.example:PORT=3001 TODO_TREE_API_URL=http://localhost:1337 - Start the server:
npm start - Open
http://localhost:3001in your browser. - Log in with your Todo Tree credentials to get your personalized connection URL and configuration block.
2. Deployed SSE Mode (No Local Repository Needed)
If the server has already been deployed to a cloud platform (such as Fly.io, Render, or a VPS), you do not need to clone the repository or run any code locally to connect your AI client.
Setup for Clients
- Open the public URL of the deployed server in your browser (for example,
https://your-todo-tree-mcp.com). - Log in with your Todo Tree credentials to access the connector dashboard.
- The dashboard will automatically generate the required configuration for your client.
- Copy the generated Claude Desktop configuration block.
- Open your local Claude Desktop configuration file:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
- Paste the configuration block inside the
mcpServersobject:{ "mcpServers": { "todo-tree": { "url": "https://your-todo-tree-mcp.com/sse?token=YOUR_SECURE_TOKEN" } } } - Restart your Claude Desktop client.
3. Stdio Mode (Single User)
If no PORT is defined, the server runs in standard I/O mode. It uses a static token defined in the environment variables to authenticate all requests.
Setup for Claude Desktop
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"todo-tree": {
"command": "node",
"args": ["C:\\Users\\davei\\Desktop\\todo-tree\\mcp-server\\dist\\index.js"],
"env": {
"TODO_TREE_API_URL": "http://localhost:1337",
"TODO_TREE_TOKEN": "your-jwt-token-here"
}
}
}
}
Environment Variables
| Variable | Required | Description |
|---|---|---|
PORT |
No | Port to run in SSE mode. If omitted, runs in stdio mode. |
TODO_TREE_API_URL |
No | Base URL of the Strapi backend (defaults to http://localhost:1337). |
TODO_TREE_TOKEN |
No | Static JWT/token (required only for Stdio mode). |
Development
Run without a build step using tsx:
PORT=3001 npm run dev
Test interactively with the MCP Inspector:
npx @modelcontextprotocol/inspector tsx src/index.ts
Tools
get_tree
Returns the full task tree as indented text. Each line shows the task ID in brackets, completion status, due date, and child progress. Use the IDs in subsequent tool calls.
[work] : Work
[finish-report] : Finish report
[review-pr] : Review PR - Due: Today
[buy-groceries] : Buy groceries - Due: May 30
[call-dentist] : Call dentist
add_task
Creates a new task.
| Parameter | Type | Required | Description |
|---|---|---|---|
text |
string | Yes | Task name |
parent_id |
string | No | ID of the parent task; omit for root level |
due_date |
string | No | Due date in YYYY-MM-DD format |
delete_task
Permanently removes a task and all its children.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Task ID |
complete_task
Marks a task done or undone. Completion propagates to all child tasks, same as clicking the checkbox in the UI.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Task ID |
completed |
boolean | No | true (default) to complete, false to uncomplete |
set_due_date
Sets or clears the due date on a task.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Task ID |
due_date |
string | Yes | Date in YYYY-MM-DD, or "" to clear |
move_task
Moves a task to a new position in the tree.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Task to move |
target_id |
string | Yes | Reference task |
position |
before | after | inside |
Yes | before/after makes it a sibling; inside makes it a child |
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.