Amazing Marvin task manager: complete public-API coverage (34 tools) with built-in rate limiting
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
An MCP (Model Context Protocol) server for
Amazing Marvin with complete coverage of the
public API: 37 tools over all ~31 documented endpoints (plus the
undocumented /doneItems), a global rate
limiter that respects Marvin's documented limits, least-privilege token
routing, and MCP tool annotations. As of 1.1.0 every writable field in
Marvin's official data model (Tasks and Categories/Projects) is either
supported by a tool or explicitly documented as unsupported β see
docs/field-reconciliation.md. Every
non-obvious behavior claim in the tool descriptions was verified against
the live API β the findings are documented below in
Marvin API quirks & findings,
which may be useful even if you never run this server.
Maintenance status: Bug reports are welcome and appreciated β they help keep this working for everyone. Please note this is a side project maintained when time allows: bug reports get looked at, but response times vary and feature requests are unlikely to be picked up. For installation help, paste this README into your AI assistant β it can walk you through setup and troubleshooting far faster than I can. Provided as-is, without guarantees β it's MIT, fork freely.
| Group | Tools |
|---|---|
| Core | test_connection, create_task, mark_done, unmark_done, update_task, set_priority, delete_task |
| Reading | get_today_items, get_due_items, get_done_items, get_children, get_categories |
| Structure | create_category_or_project, update_category_or_project, convert_category_or_project (experimental) |
| Habits | list_habits, get_habit, record_habit |
| Time blocks | get_today_time_blocks, create_time_block (experimental) |
| Time tracking | get_tracked_item, start_tracking, stop_tracking, get_time_tracks |
| Kudos/rewards | get_kudos, claim_reward_points, unclaim_reward_points, spend_reward_points, reset_reward_points |
| Misc | get_labels, get_goals, get_reminders, set_reminder, delete_reminder, create_event (experimental), get_account_info, get_rate_limit_status |
Deliberately not included: Smart List / task-picking logic (Marvin's own
Spotlight does the picking; the server gives your assistant hands, not
opinions), and the /reminder/deleteAll endpoint β the one documented
endpoint without a tool, deliberately: it wipes every reminder in a single
call and delete_reminder already covers targeted cleanup.
Every tool carries MCP tool annotations
(readOnlyHint, destructiveHint, idempotentHint, openWorldHint) so
capable clients can treat delete_task and reset_reward_points with the
respect they deserve.
Both tokens live in Amazing Marvin under Settings β API (app.amazingmarvin.com/pre?api):
MARVIN_API_TOKEN, required for use) β limited access;
enough for reading and creating tasks. The server does start without it
(so MCP clients and directories can list the tools), but every tool call
returns a clear error until the token is set.MARVIN_FULL_ACCESS_TOKEN, optional but
recommended) β required by all /doc*-based tools: update_task,
set_priority, unmark_done, delete_task, category creation, time
blocks, list_habits, reminders, reset_reward_points.Treat them like passwords; see SECURITY.md.
Requires Python 3.12+.
From PyPI (recommended): with uv installed
there is nothing to set up β point your MCP client at
uvx amazing-marvin-complete-mcp as shown below.
From source:
The default transport is stdio, so the client starts the server itself:
(For Claude Code: claude mcp add amazing-marvin -e MARVIN_API_TOKEN=β¦ -- uvx amazing-marvin-complete-mcp.)
The MCP endpoint is /mcp. HTTP mode fails closed: without
MCP_AUTH_TOKEN (or MCP_AUTH_TOKEN_FILE) the server refuses to start,
with instructions in the error message; set MCP_ALLOW_UNAUTHENTICATED=true
only to deliberately run an open instance on localhost. The built-in bearer
check protects every path but is an internal barrier, not a complete auth
story:
put a reverse proxy with TLS in front, and for Claude custom connectors an
OAuth 2.1-capable MCP auth proxy. A Dockerfile for HTTP mode is included
(runs as a non-root user; mount a volume on /data to persist the daily
rate-limit counter across restarts).
All settings via environment variables β see .env.example
for the full annotated list. Highlights: every secret supports a *_FILE
variant (recommended); MARVIN_TIMEZONE should match the timezone your
Marvin account lives in (defaults to the system timezone, which is UTC in
most containers).
Marvin's documented limits β 1 write/second, 1 read/3 seconds, 1440
calls/day β are enforced by a single process-global queue shared by all
tools and sessions, with margin (1.1 s / 3.1 s). The daily counter persists
across restarts (STATE_DIR) and rolls over at midnight in the configured
timezone. get_rate_limit_status shows today's usage.
Everything below was verified against the live API (2026-08-19 through 2026-08-29). This is the half of the repo you can use without running it.
Habits
GET /habits does not read your habit documents. It reads a
server-side tracking registry that is created lazily on the first
recording β a habit that has never been recorded is missing from the
response entirely, and the entries carry no titles (only habitId +
history). Use ?raw=1 (Full Access Token) to list actual habit documents.
GET /habit?id=β¦ returns the tracking record β history but no title.POST /updateHabit rejects integers serialized as floats:
"value": 1.0 β 400 Bad request, "value": 1 β 200. Send ints as ints.No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/amazing-marvin-complete)<a href="https://allmcps.com/mcp/amazing-marvin-complete"><img src="https://allmcps.com/api/badge/amazing-marvin-complete?style=directory" alt="Amazing Marvin (complete) on AllMCPs" /></a>