todoapp
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., "@todoappshow my incomplete todos"
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 App
pnpm monorepo:
Package | Stack |
Express 5, Drizzle ORM, PostgreSQL, JWT auth, MCP server | |
React 19, Zustand, Vite | |
zod schemas, API types and MCP tool metadata used by both apps |
Getting started
Requires Node 22+, pnpm 10 and Docker.
pnpm install
cp apps/server/.env.example apps/server/.env # then set JWT_SECRET
pnpm db:up # start Postgres (host port 5433)
pnpm db:migrate # apply migrations
pnpm dev # API on :4000, web on :5173Open http://localhost:5173. In dev, Vite proxies /api to the server.
Related MCP server: Stytch Consumer TODO MCP Server
Scripts
Command | What it does |
| Run server and web in watch mode |
| Build every package |
| Type-check every package |
| Start the Postgres container |
| Create a migration after changing |
| Apply pending migrations |
API
/api/todos and /api/mcp routes need an Authorization: Bearer <token> header.
Method | Path | Body | Response |
POST |
|
|
|
POST |
|
|
|
GET |
|
| |
GET |
|
| |
GET |
|
| |
POST |
|
|
|
PATCH |
|
|
|
DELETE |
|
| |
GET |
|
| |
POST |
|
|
Errors come back as { error, details? }. Status codes: 400 validation, 401 auth, 404 missing or not yours, 409 email already taken.
MCP server
Each user has a personal MCP URL, shown in the MCP tab of the web app:
http://localhost:4000/mcp?token=mcp_...The token identifies the user, and the tools only see that user's todos. Regenerating it in the web app revokes the old URL immediately. Set PUBLIC_URL in apps/server/.env to the address clients use to reach the server.
The endpoint speaks Streamable HTTP in stateless mode (POST /mcp). Tools: list_todos, get_todo, create_todo, update_todo, delete_todo.
Connect Claude Code:
claude mcp add --transport http todoapp "http://localhost:4000/mcp?token=mcp_..."This server cannot be deployed
Maintenance
Related MCP Connectors
Create, list, and complete todo items through MCP.
Local-first task manager: create, edit, and complete tasks, projects, and checklists via MCP.
An authenticated remote MCP server for user-owned devices and one-shot capability invocation.
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables users to manage a persistent todo list through natural language, supporting adding, listing, toggling completion status, and removing todos. Features both stdio and HTTP transports with optional authentication and JSON file storage.4-
- 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 gradedqualityDmaintenanceEnables MCP client interaction via streamable HTTP, providing example tools (echo, getPostsByUser) and resources (posts, users) with pluggable authentication providers.6MIT
- FlicenseNot gradedqualityBmaintenanceMCP server that wraps the Arc Todo REST API to manage tasks, knowledge, and workspace context via Streamable HTTP.-