MCP Todo & Context Server

MCP Todo & Context Server

Provides AI clients with per-project todo management and persistent context notes via MCP, enabling task tracking and resume summaries.

Category
Visit Server

README

MCP Todo & Context Server

A lightweight backend service that provides AI clients with two core capabilities:

  1. Todo Management: Create, list, complete, and delete todo items per project
  2. 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

  1. create_todo - Create a new todo item

    • project_name (required): Project identifier
    • title (required): Todo title
    • description (optional): Detailed description
    • priority (optional): low/medium/high (default: medium)
  2. list_todos - List todos for a project

    • project_name (required): Project identifier
    • filter_status (optional): 'open', 'done', or None for all
  3. complete_todo - Mark a todo as complete

    • project_name (required): Project identifier
    • todo_id (required): Todo ID to complete
  4. delete_todo - Delete a todo permanently

    • project_name (required): Project identifier
    • todo_id (required): Todo ID to delete

Project Context

  1. append_context_note - Add a context note to project history

    • project_name (required): Project identifier
    • note (required): Context note text
    • status (optional): Update project status label
  2. get_project_summary - Get resume-work summary

    • project_name (required): Project identifier
    • recent_notes_count (optional): Number of recent notes (default: 10)
    • Returns: status, recent notes, and all open todos

Project Directory

  1. 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 information
  • GET /health - Health check
  • GET /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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured