Tomato Timer MCP
Reads and writes a tasks.json (and optional calendar.json) file stored in a private GitHub repository, using a fine-grained token and GitHub's version check to safely sync task data without overwriting concurrent app updates.
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.
Tomato Timer MCP
A small MCP server that lets an AI app (tested with Claude Desktop and Claude Code) read and change my task list in Tomato Timer, a personal productivity app I built for my own use. Tomato Timer is not a public product and isn't available to install; this repo is published to show how the connection works.
The app syncs its tasks to a private GitHub repo. This server reads and writes that same file, so changes made through an AI show up in the app on the next sync, and the other way round.
The data it works with
A tasks.json file in a private GitHub repo, shaped like this (the app writes it; the tests use made-up data):
{"v": 1, "deleted": [],
"tasks": [{"id": "abc123", "title": "Email the plumber", "done": false, "day": "2026-11-14",
"sessions": 0, "updated": 1731600000000, "ord": 10, "starred": false, "later": false}]}ord is the position in a list, later parks a task, and finished tasks carry a doneDay. An optional
calendar.json holds content-calendar posts. Anyone could point the server at a repo with a file in this shape.
Related MCP server: Task MCP Server
Tools (kept to four on purpose, so it costs very little to leave connected)
Tool | What it does |
| Short snapshot: today's open tasks in order, how many are in Later, what was done today, the next content-calendar posts |
| List |
| Add a task (to Today or Later, starred or not, top or bottom) |
| Mark done or undone, send to top or bottom, move between Today and Later, star or unstar, rename |
Replies are short lists, not whole files, so an AI can stay up to date without using many tokens.
How it keeps the data safe
It follows the same ordering rules as the app (starred tasks first, then position).
It only touches the rows it changes, and keeps everything else in the file as it was.
It never deletes tasks.
Writes use GitHub's version check. If the app syncs at the same moment, the server reloads and tries again instead of overwriting it.
Set up
Install (Python 3.10 or newer):
python -m venv .venv .venv/bin/pip install -r requirements.txt # Windows: .venv\Scripts\pip install -r requirements.txtMake a token. GitHub > Settings > Developer settings > Fine-grained tokens. Give it access to the
tomato-datarepo only, with Contents set to Read and write.Connect it.
Claude Code:
claude mcp add tomato-timer -e TOMATO_GITHUB_TOKEN=YOUR_TOKEN -- /full/path/.venv/bin/python /full/path/server.pyClaude Desktop: add this to
claude_desktop_config.jsonundermcpServers, then restart it:"tomato-timer": { "command": "/full/path/.venv/bin/python", "args": ["/full/path/server.py"], "env": { "TOMATO_GITHUB_TOKEN": "YOUR_TOKEN" } }Ask: "What's on my list today?" or "Put 'email the plumber' at the top of my tasks."
Never commit your token. Settings: TOMATO_REPO (required, e.g. your-username/tomato-data) and TOMATO_TZ
(default Europe/London).
Tests
python test_server.py # the real MCP protocol, on made-up tasks in a temp folder
python test_github_mock.py # the GitHub path against a fake GitHub API, including the "app synced at the same time" retryBoth use plain asserts, so pytest runs them too. They never touch the network or a real token.
Limits
This version runs on the computer it is installed on, so it works with Claude Code and Claude Desktop. ChatGPT and claude.ai on the web would need a hosted version (a small web server with a login). That is a possible next step for my own use, not something that exists yet.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
AI-native task management: list, create, update and archive tasks with rich context for AI agents
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
Related MCP Servers
- AlicenseAqualityDmaintenanceIntegrates task management capabilities into Claude Desktop, enabling users to create, track, search, and manage tasks with status updates, team assignments, overdue tracking, and automated standup reports.6MIT
- FlicenseBqualityDmaintenanceA simple task management server that allows users to add, list, complete, and delete tasks directly within Claude Desktop. It provides a suite of tools for efficient personal task organization using the Model Context Protocol.4-
- AlicenseNot gradedqualityDmaintenanceEnables natural language task management via Claude, allowing users to add, list, and complete tasks stored in a local JSON file.MIT
- AlicenseNot gradedqualityBmaintenanceEnables natural-language task management with monday.com-style boards, Kanban, subitems, Git-linked commits, and code TODO import, letting Claude create, update, track, and complete tasks.30 npmMIT