A TypeScript MCP (Model Context Protocol) server for managing todo lists with projects and document attachments.
- Projects: Create and manage projects with unique names within workspaces
- Workspaces: Associate projects with Claude Code directories
- Todo Items: Add, update, delete, and reorder todo items with status tracking
- Phases: Organize todos into optional phases within projects
- Documents: Attach links, files, or Confluence pages to projects
- Status Management: Only one todo can be in-progress at a time
- Web Interface: Human-friendly web UI for CRUD operations
npm install-
Build and install globally:
npm install npm run build npm i -g . -
Add to Claude Desktop:
claude mcp add-json <<EOF { "mcpServers": { "todos-mcp": { "command": "todos-mcp" } } } EOF
-
Build the project:
npm install npm run build
-
Add to Claude Desktop with full path:
claude mcp add-json <<EOF { "mcpServers": { "todos-mcp": { "command": "node", "args": ["${PWD}/dist/index-scoped.js"] } } } EOF
- Restart Claude Desktop after adding the configuration
- In a new conversation, you should have access to all MCP tools listed below
- Test with: "Create a new project called 'My Project'" or "List all my projects"
- If the MCP server doesn't appear in Claude, ensure the path in the configuration is absolute
- Check that the project has been built (
npm run build) - Verify Node.js is installed and accessible from your PATH
- The server stores data in
todos-data.jsonin the current working directory
Build and run the MCP server:
npm run build
npm startOr run in development mode:
npm run devStart the web server:
npm run webThen visit http://localhost:3003 to use the web interface.
Once the MCP server is installed in Claude Desktop, you can ask Claude to:
- "Create a new project called 'My Project'"
- "List all my projects"
- "Create a todo item in my project"
- "Show me all workspaces"
- "Update a todo's status to completed"
The server provides the following MCP tools:
create_project- Create a new projectlist_projects- List all projectsget_project- Get project detailsupdate_project- Update project detailsdelete_project- Delete a projectcreate_phase- Create a phase in a projectcreate_todo- Create a todo itemupdate_todo- Update a todo itemdelete_todo- Delete a todo itemreorder_todos- Reorder todos in a projectattach_document- Attach a document to a projectremove_document- Remove a document from a projectlist_workspaces- List all workspaces
Projects are organized as follows:
Workspace (Claude Code directory)
├── Project 1
│ ├── Phase A
│ │ ├── Todo 1 (pending)
│ │ └── Todo 2 (in-progress)
│ ├── Phase B
│ │ └── Todo 3 (completed)
│ └── Documents
│ ├── Link: Design Doc
│ ├── File: requirements.md
│ └── Confluence: Architecture
└── Project 2
└── ...
pending- Not startedin-progress- Currently being worked on (only one allowed)completed- Finished
link- Web URLfile- Relative file pathconfluence- Confluence page (space + page name or link)
The server stores data in todos-data.json in the current working directory by default.
Additional documentation can be found in the docs/ directory:
CONCURRENT_WORK_STRATEGY.md- Multi-worker coordination strategiesDEPENDENCY_GRAPH_DESIGN.md- Todo dependency managementDEPENDENCY_IMPLEMENTATION_SUMMARY.md- Implementation detailsMULTI_CLAUDE_WORKFLOW.md- Multi-Claude workflow patternsNEW_FILE_STRUCTURE.md- Project file organizationSCOPED_DATA_DESIGN.md- Scoped data architectureSTATE_CHANGE_TRACKING_DESIGN.md- Change tracking systemWEBSITE_UPGRADE_PLAN.md- Web interface upgrade plan
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build TypeScript
npm run build
# Type checking
npm run typecheck
# Linting
npm run lint