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 ServerAdd groceries to my todo list"
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.
📝 Todo MCP Server
A simple Todo List MCP server built for learning!
What is this?
This is an MCP (Model Context Protocol) server that gives AI assistants (like Claude) the ability to manage a todo list for you.
Tools Included:
add_todo - Add a new task
list_todos - See all your tasks
complete_todo - Mark a task as done ✅
delete_todo - Remove a task 🗑️
Related MCP server: mcp-server-interview
🚀 Quick Start
1. Install dependencies
cd todo-mcp
npm install2. Build the project
npm run build3. Test it works
node index.js(Press Ctrl+C to stop - it will just wait for input)
🔌 Connect to Claude Desktop
Edit your Claude Desktop config file:
Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Add this to the file:
{
"mcpServers": {
"todo": {
"command": "node",
"args": ["/FULL/PATH/TO/todo-mcp/index.js"]
}
}
}⚠️ Replace /FULL/PATH/TO/ with the actual path to your todo-mcp folder!
Then restart Claude Desktop.
🔌 Connect to Codebuff
Create or edit .codebuff/config.json in your project:
{
"mcpServers": {
"todo": {
"command": "node",
"args": ["/FULL/PATH/TO/todo-mcp/index.js"]
}
}
}Or add to global config at ~/.codebuff/config.json.
Then restart Codebuff.
💡 How to Use
Once connected, just talk to Claude naturally:
"Add 'buy groceries' to my todo list"
"What's on my todo list?"
"Mark todo #1 as complete"
"Delete todo #2"
Claude will automatically use the right tools!
📚 Learning More
Look at index.ts - it's full of comments explaining every part!
Key concepts:
Tools = Actions the AI can take
inputSchema = What info each tool needs
Request Handlers = Code that runs when tools are used
⚠️ Note
Todos are stored in memory only - they disappear when the server restarts. This is intentional for learning! A real app would save to a file or database.
Available Tools
4 toolsadd_todoA
Add a new todo item to the list. Returns the created todo with its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The todo text - what needs to be done |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It discloses that the created todo is returned with its ID, which is useful. However, it omits details like error conditions or idempotency, though for a simple add operation these may be less critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. Action and return value are stated upfront, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema or annotations, the description adequately covers the action and return value. It lacks explicit usage context, but the simplicity of the operation makes this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with text described as 'The todo text - what needs to be done'. The description adds no extra parameter details, but the baseline of 3 applies when the schema already documents the parameter adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States 'Add a new todo item to the list' with a specific verb and resource, clearly distinguishing from sibling tools list_todos, complete_todo, and delete_todo. Also mentions return value, further clarifying its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The verb 'Add' implies usage for creating todos, but there is no explicit guidance on when to use this tool versus alternatives. No exclusions or sibling comparisons are provided, leaving the agent to infer usage from the name and action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_todoA
Mark a todo item as done/completed by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID number of the todo to mark as done |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states the state change ('done/completed') without mentioning irreversibility, error handling for non-existent IDs, required permissions, or side effects. This is a significant gap for a state-changing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler or repetition. It conveys the essential information efficiently without redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a form with one simple parameter and no output schema, the description is mostly adequate, but it lacks behavioral transparency (e.g., return value, error behavior) that would be helpful. It is a minimal viable description but leaves gaps relevant to agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sole param is self-explanatory ('The ID number of the todo to mark as done'). The tool description adds no extra meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Mark') and resource ('todo item') with a clear mechanism ('by its ID'), making the action unambiguous. It also differentiates from siblings (add, list, delete) by focusing on the completion state change.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a todo ID and want to mark it as done, but it does not explicitly state when to use this over alternatives like delete_todo or add_todo. No exclusions or context are given, so guidance is merely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_todoB
Remove a todo item from the list by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID number of the todo to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that a todo is removed, implying destructiveness, but does not disclose whether the removal is permanent, whether it is idempotent, what happens if the ID does not exist, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear, front-loaded sentence with no wasted words. It effectively communicates the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is incomplete. It does not describe the return value, error handling, or consequences of deletion. While the operation is simple, an agent would benefit from knowing whether the deletion is permanent or what response to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the single parameter 'id' with 100% coverage, describing it as 'The ID number of the todo to delete'. The description's phrase 'by its ID' adds no additional meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (remove) and the resource (todo item) and specifies the mechanism (by its ID). This distinguishes it from sibling tools like complete_todo, add_todo, and list_todos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that complete_todo is for marking as done, or that this is for permanent deletion. The only hint is the verb 'Remove', which is implicit rather than explicit usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_todosA
Get all todo items as a structured list with IDs, text, completion status, and creation dates.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filter todos: 'all' (default), 'pending' (not done), or 'completed' (done) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It discloses that the tool returns a structured list with IDs, text, completion status, and creation dates, and that it returns all items. It does not mention caveats like filtering behavior, but that is covered by the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, 17 words, front-loaded with the action and resource, no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with one optional parameter (covered by schema), the description adequately describes the return payload and scope. No output schema exists, but the description covers the return fields directly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the single 'filter' parameter with an enum and description (100% coverage). The description adds no parameter-specific semantics, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('todo items'), states the return format (structured list with IDs, text, completion status, and creation dates), and clearly distinguishes from sibling tools (add, complete, delete) which are mutations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the tool is for retrieving todo items, which distinguishes it from the mutation siblings. However, it does not explicitly state when-not-to-use or name alternatives, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool performs a distinct operation on todos: add, list, complete, and delete. There is no overlap or ambiguity between them.
All tool names follow a consistent verb_noun pattern (add_todo, list_todos, complete_todo, delete_todo), making the API predictable.
Four tools is a well-scoped set for a todo server, covering the essential operations without unnecessary bloat.
The core lifecycle of create, read, update status, and delete is covered. The only notable gap is the lack of an update_todo tool for editing todo text, but this is minor for the domain.
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 Connectors
Manage Superlist tasks and lists in plain language from any MCP-compatible AI agent.
Create, list, and complete todo items through MCP.
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to manage todo lists through natural language by creating, listing, updating, completing, and deleting tasks stored in Firebase Firestore. Supports custom system prompts for personalized task management workflows.520ISC
- FlicenseCqualityDmaintenanceEnables managing todo lists and tasks through natural language, supporting creation, status changes, and deletion.7
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to manage a todo list with full CRUD operations, including creating, reading, updating, and deleting todos via a FastAPI backend with SQLite persistence.
- FlicenseNot gradedqualityCmaintenanceEnables to manage to-do items through natural language, with tools for creating, reading, updating, and deleting tasks.
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/X4MU-L/todo-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server