MCP Todo & Context Server
Provides AI clients with per-project todo management and persistent context notes via MCP, enabling task tracking and resume summaries.
README
MCP Todo & Context Server
A lightweight backend service that provides AI clients with two core capabilities:
- Todo Management: Create, list, complete, and delete todo items per project
- Project Context: Record and retrieve running context notes about a project's state
Features
- ā Per-project todo lists with priority levels
- š Append-only context notes for tracking project state
- š Resume work summaries (status + recent notes + open todos)
- š MCP (Model Context Protocol) endpoint for AI clients
- š¾ Persistent JSON file storage
- š Single-instance deployment with FastAPI + uvicorn
Architecture
mcp-todo-context-server/
āāā app.py # FastAPI entry point - mounts /mcp and /health
āāā server.py # FastMCP instance + tool definitions
āāā storage.py # Persistence layer - reads/writes data.json
āāā data/
ā āāā data.json # Runtime data file (auto-created)
āāā requirements.txt
āāā README.md
Installation
1. Create Virtual Environment
python -m venv venv
2. Activate Virtual Environment
Windows (PowerShell):
.\venv\Scripts\activate.ps1
Windows (CMD):
venv\Scripts\activate.bat
Linux/Mac:
source venv/bin/activate
3. Install Dependencies
pip install -r requirements.txt
Running the Server
Development Mode (with auto-reload)
python app.py
Or using uvicorn directly:
uvicorn app:app --reload --host 0.0.0.0 --port 8000
Production Mode
uvicorn app:app --host 0.0.0.0 --port 8000
The server will be available at:
- MCP endpoint:
http://localhost:8000/mcp - Health check:
http://localhost:8000/health - API docs:
http://localhost:8000/docs
MCP Tools
The server exposes the following tools via the MCP protocol:
Todo Management
-
create_todo - Create a new todo item
project_name(required): Project identifiertitle(required): Todo titledescription(optional): Detailed descriptionpriority(optional): low/medium/high (default: medium)
-
list_todos - List todos for a project
project_name(required): Project identifierfilter_status(optional): 'open', 'done', or None for all
-
complete_todo - Mark a todo as complete
project_name(required): Project identifiertodo_id(required): Todo ID to complete
-
delete_todo - Delete a todo permanently
project_name(required): Project identifiertodo_id(required): Todo ID to delete
Project Context
-
append_context_note - Add a context note to project history
project_name(required): Project identifiernote(required): Context note textstatus(optional): Update project status label
-
get_project_summary - Get resume-work summary
project_name(required): Project identifierrecent_notes_count(optional): Number of recent notes (default: 10)- Returns: status, recent notes, and all open todos
Project Directory
- list_projects - List all projects
- No parameters required
- Returns: All projects with status and open todo counts
Connecting AI Clients
Claude Desktop Configuration
Add to your Claude Desktop MCP settings:
{
"mcpServers": {
"todo-context": {
"command": "uvicorn",
"args": ["app:app", "--host", "localhost", "--port", "8000"],
"cwd": "/path/to/mcp-todo-context-server",
"env": {
"VIRTUAL_ENV": "/path/to/mcp-todo-context-server/venv"
}
}
}
}
Data Storage
Data is stored in data/data.json with the following structure:
{
"projects": {
"project-name": {
"name": "project-name",
"status": "active",
"context_log": [
{
"timestamp": "2026-08-13T10:30:00.000Z",
"note": "Implemented user authentication"
}
],
"todos": [
{
"id": "20260813103000123456",
"title": "Add password reset",
"description": "Implement email-based password reset flow",
"priority": "high",
"done": false,
"created": "2026-08-13T10:30:00.000Z",
"completed": null
}
]
}
}
}
Example Usage
Creating a Todo
# Via MCP tool call
{
"tool": "create_todo",
"arguments": {
"project_name": "my-app",
"title": "Implement user authentication",
"description": "Add JWT-based auth with refresh tokens",
"priority": "high"
}
}
Getting Project Summary
# Via MCP tool call
{
"tool": "get_project_summary",
"arguments": {
"project_name": "my-app",
"recent_notes_count": 5
}
}
Response includes:
- Current project status
- 5 most recent context notes
- All open todos
- Metadata (counts, timestamps)
API Endpoints
GET /- Service informationGET /health- Health checkGET /docs- Interactive API documentation (Swagger UI)POST /mcp- MCP protocol endpoint
Requirements
- Python 3.8+
- FastAPI
- uvicorn
- fastmcp (FastMCP - Model Context Protocol SDK)
- pydantic
- python-dotenv
Roadmap
v1.0 (Current)
- ā MCP endpoint with 7 tools
- ā JSON file storage
- ā Direct uvicorn deployment
Future Considerations
- SQLite/PostgreSQL backend option
- Authentication/authorization layer
- Docker containerization
- Multi-user support
- Tags/categories for context notes
- Due dates and reminders for todos
License
MIT License - see LICENSE file for details
Contributing
Contributions welcome! Please open an issue or PR.
Support
For issues or questions, please open a GitHub issue.
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
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.