Todo MCP
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Todo MCP
Demo project for learning Model Context Protocol (MCP).
A small Next.js todo app exposes the same list as an MCP server over Streamable HTTP. Use it to see how agents call tools against a real app — either on your machine or against a hosted deployment.
What you get
Web UI at
/— add, complete, and purge todosMCP server at
/api/mcp— tools that operate on the same shared store
Tool | What it does |
| List todos (optional filter: |
| Create an active todo |
| Mark completed or return to active |
| Move a todo to purged (not restored) |
Related MCP server: MCP Todo Server
Storage
Local (no env): in-memory store. UI and MCP share it in one Node process. Resets on restart.
Local or Vercel (with KV env): Vercel KV via
@upstash/redis. UI and MCP stay in sync across serverless instances.Vercel without KV env: fails fast with a clear config error.
Copy .env.example to .env.local when you want KV locally:
KV_REST_API_URL=
KV_REST_API_TOKEN=Prerequisites
Node.js 20+
An MCP client (e.g. Cursor)
npm installOption A — Hosted MCP (default)
This repo’s .cursor/mcp.json points at the deployed demo:
{
"mcpServers": {
"todo-mcp": {
"type": "http",
"url": "https://todo-mcp-playground.vercel.app/api/mcp"
}
}
}Enable / refresh todo-mcp in Cursor MCP settings, then ask the agent to list or add todos. Open https://todo-mcp-playground.vercel.app/ — the UI polls every few seconds, so MCP changes show up without a hard refresh.
Hosted deploys need a KV database connected to the Vercel project so KV_REST_API_URL and KV_REST_API_TOKEN are injected.
Before exposing private data: add auth. The demo has none.
Option B — Run locally
Start the app:
npm run devOpen http://localhost:3000 for the UI.
Point your MCP client at the local server (override
.cursor/mcp.jsonor add a second entry):
{
"mcpServers": {
"todo-local": {
"type": "http",
"url": "http://localhost:3000/api/mcp"
}
}
}Enable / refresh
todo-localin Cursor MCP settings, then ask the agent to list or add todos.
No KV env required. Optional: set the vars from .env.example to exercise the same Redis path as production.
Project layout
app/ # Next.js UI + /api/mcp route
components/ # Todo UI
lib/todos.ts # In-memory local store + Vercel KV persistence
lib/redis.ts # KV client (null locally when env is unset)
mcp/server.ts # Tool registration (mcp-handler)
.cursor/mcp.json # Cursor MCP config (hosted by default)More MCP detail: mcp/README.md.
Learn by doing
Use the hosted MCP config, ask the agent to add a todo, watch it appear on the site.
Or run locally, open the UI, add a todo, then ask the agent to list it.
Deploy your own copy with KV connected, switch the MCP URL, confirm tools still work.
That loop is the point of the demo: MCP tools as another interface to your app.
This server cannot be deployed
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Official Todoist MCP server. Manage tasks and projects. Hosted, no API key needed.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to manage a TODO list with user authentication via Stytch. It provides tools for creating, reading, updating, and deleting TODO items while handling identity and authorization.27MIT
- AlicenseNot gradedqualityDmaintenanceA CRUD todo list server that exposes tools to create, list, and conclude tasks, compatible with any MCP host.5 npmMIT
- FlicenseNot gradedqualityDmaintenanceMCP server that provides tools to create and list tasks by consuming a REST API, allowing LLMs to manage a TODO list via natural language.-
- FlicenseAqualityDmaintenanceA minimal MCP server that demonstrates the entire protocol using a simple in-memory todo list, including tools, resources, prompts, and elicitation.31-