Skip to main content
Glama
README.md•8.49 kB
# Amazing Marvin MCP Server > **🌐 Hosted on Smithery** - Install-free access to Amazing Marvin through Claude and other MCP clients A high-quality Model Context Protocol (MCP) server that connects AI assistants to [Amazing Marvin](https://amazingmarvin.com), the powerful task management and productivity system. Built with **FastMCP** and deployed on **Smithery** for hosted, zero-installation access. [![Deploy to Smithery](https://smithery.ai/badge)](https://smithery.ai) ## ✨ What's New in v2.0 (Smithery) **Complete migration to Smithery for hosted deployment:** - 🌐 **Hosted Infrastructure**: No local installation, Python, or dependencies required - šŸ” **Secure Configuration**: API tokens managed through Smithery's session config - šŸ“Š **Usage Monitoring**: Track server usage and performance - šŸš€ **Auto-deployment**: Push to GitHub → Automatic deployment - šŸ”„ **Auto-scaling**: Handle multiple concurrent users - šŸ’Ŗ **Same Power**: All 10 tools with identical functionality **Technical improvements:** - FastMCP framework with `@smithery.server()` decorator - Pydantic V2 validation with session config schemas - Context-aware API authentication - Dual response formats (Markdown/JSON) - Enhanced error handling with actionable guidance ## Quick Start ### For Users 1. **Get your Amazing Marvin API token** - Visit https://app.amazingmarvin.com/pre?api= - Copy your `API_TOKEN` 2. **Connect via Smithery** - Visit: https://smithery.ai/server/amazing-marvin-mcp - Click "Connect" - Paste your API token when prompted - Use in Claude Desktop or other MCP clients 3. **Start using** ``` "Show me my tasks for today" "Create a task to review Q4 budget tomorrow" "What categories do I have?" ``` ### For Developers See [SMITHERY_DEPLOYMENT.md](./SMITHERY_DEPLOYMENT.md) for deployment guide. **Local testing:** ```bash uv venv uv pip install -r requirements.txt uv run playground ``` ## Features This MCP server provides 10 powerful tools for Amazing Marvin: ### šŸ“‹ Task Management - **marvin_add_task** - Create tasks with full support for scheduling, labels, time estimates, and Amazing Marvin shortcuts - **marvin_get_todays_tasks** - View all tasks scheduled for today or a specific date - **marvin_mark_done** - Mark tasks as complete (idempotent) - **marvin_get_due_tasks** - See all tasks due today or overdue with smart overdue indicators ### šŸ—‚ļø Organization - **marvin_get_categories** - List all your projects and categories with IDs - **marvin_get_labels** - View all available labels with IDs - **marvin_get_children** - Browse tasks within a specific project, category, or unassigned area ### ā±ļø Time Tracking - **marvin_start_tracking** - Start time tracking on a task - **marvin_stop_tracking** - Stop the currently running timer ### šŸŽØ Response Formats All list operations support two output formats: - **Markdown** (default): Human-readable with headers, emojis, and formatting - **JSON**: Structured data for programmatic processing ## Usage Examples ### Creating Tasks ``` "Create a task called 'Review Q4 budget' due tomorrow with a 2-hour time estimate" "Add a task 'Call dentist' with 15 minute estimate and schedule it for Friday" "Create a task 'Finish presentation slides #Work @urgent ~120 +2024-03-20'" ``` **Amazing Marvin shortcuts in task titles:** - `#ProjectName` - Assign to project - `@label` - Add a label - `~60` - Time estimate (60 minutes) - `+2024-03-15` - Set due date - `^1` - Set priority ### Viewing Tasks ``` "Show me my tasks for today" "What tasks are due today or overdue?" "List all tasks in my Personal category" "Show me tasks for March 15, 2024 in JSON format" ``` ### Managing Tasks ``` "Mark task task_abc123xyz as complete" "Start tracking time on task task_abc123xyz" "Stop the timer" ``` ### Organizing ``` "Show me all my categories and projects" "What labels do I have?" "List all unassigned tasks" ``` ## Technical Details ### Architecture **Smithery Deployment:** - Python 3.12+ runtime - FastMCP framework with `@smithery.server()` decorator - Context-aware authentication via `ctx.session_config` - HTTP/SSE transport (not STDIO) **Configuration:** ```python class AmazingMarvinConfig(BaseModel): api_token: str = Field( ..., description="Your Amazing Marvin API token. Get it from: https://app.amazingmarvin.com/pre?api=", min_length=10 ) ``` **Package Structure:** ``` src/amazing_marvin_mcp/ ā”œā”€ā”€ __init__.py # Package initialization └── server.py # Main server with tools ``` ### Key Features - **Pydantic V2 Validation**: Robust input validation with detailed constraints - **Agent-Centric Design**: Tools optimized for AI workflows, not just API wrappers - **Dual Response Formats**: Markdown (human-readable) and JSON (machine-readable) - **Character Limits**: Intelligent handling of large responses (25,000 char limit) - **Tool Annotations**: Proper hints for read-only, destructive, and idempotent operations - **Comprehensive Docstrings**: Detailed documentation with examples for every tool ### Error Handling The server provides actionable error messages: - **401 Unauthorized**: Guides to check API token configuration - **404 Not Found**: Suggests verifying IDs and item existence - **429 Rate Limit**: Advises waiting before retry - **500 Server Error**: Indicates Amazing Marvin service issues All errors include specific next steps for resolution. ## Development ### Local Setup ```bash # Clone repository git clone https://github.com/LucaDeLeo/amazing-marvin-mcp.git cd amazing-marvin-mcp # Create virtual environment uv venv # Install dependencies uv pip install -r requirements.txt ``` ### Testing ```bash # Use Smithery playground (ngrok port-forwarding) uv run playground # Or run in development mode uv run dev ``` ### Building Package ```bash # Build distribution python -m build # Verify build ls dist/ # Should show: amazing_marvin_mcp-2.0.0-py3-none-any.whl and .tar.gz ``` ### Deployment See [SMITHERY_DEPLOYMENT.md](./SMITHERY_DEPLOYMENT.md) for complete deployment guide. **Quick deploy:** 1. Push to GitHub: `git push origin main` 2. Go to https://smithery.ai/new 3. Connect repository 4. Click "Deploy" ## API Reference This server uses Amazing Marvin's Limited Access API: - **API Documentation**: https://github.com/amazingmarvin/MarvinAPI/wiki - **Help Center**: https://help.amazingmarvin.com/ - **API Base URL**: `https://serv.amazingmarvin.com/api` **Endpoints used:** ``` GET /api/categories - List all categories/projects GET /api/labels - List all labels GET /api/children - Get items in category GET /api/todayItems - Get scheduled tasks GET /api/dueItems - Get due/overdue tasks POST /api/addTask - Create task POST /api/markDone - Complete task POST /api/track - Start/stop timer ``` ## Security Notes - **API Tokens**: Stored encrypted in Smithery's session config, never in code - **HTTPS Only**: All communication over TLS 1.2+ - **Input Validation**: Pydantic models prevent injection attacks - **Limited Access API**: Additional security layer vs Full Access ## Contributing Potential future enhancements: - Document update/delete operations (`/api/doc/update`, `/api/doc/delete`) - Project creation tool (`/api/addProject`) - Goals integration (`/api/goals`) - Habit tracking (`/api/habits`, `/api/updateHabit`) - Reminders management (`/api/reminder/set`) - Time blocks viewing (`/api/todayTimeBlocks`) - Tracked item status (`/api/trackedItem`) - Reward points system When adding features, follow the same patterns: Pydantic model → `@mcp.tool` decorator → `ctx: Context` parameter → shared utilities → comprehensive docstring. ## Support **Server Issues**: - GitHub Issues: https://github.com/LucaDeLeo/amazing-marvin-mcp/issues **Smithery Platform**: - Email: support@smithery.ai - Discord: https://discord.gg/Afd38S5p9A **Amazing Marvin API**: - Email: support@amazingmarvin.com ## License MIT License - See LICENSE file ## Acknowledgments - Built with [FastMCP](https://github.com/modelcontextprotocol/python-sdk) - Deployed on [Smithery](https://smithery.ai) - Powered by [Amazing Marvin](https://amazingmarvin.com) --- **Version**: 2.0.0 (Smithery Deployment) **Repository**: https://github.com/LucaDeLeo/amazing-marvin-mcp **Smithery**: https://smithery.ai/server/amazing-marvin-mcp

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/LucaDeLeo/amazing-marvin-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server