UNPKG

@fredrika/mcp-mochi

Version:

MCP server for Mochi flashcard integration

135 lines (108 loc) 3.16 kB
# Mochi MCP Server MCP server for [Mochi](https://mochi.cards) flashcard integration, allowing you to manage your flashcards through the Model Context Protocol. ## Features - Create, update, and delete flashcards - Create cards from templates with automatic field name-to-ID mapping - Add attachments (images, audio) to cards - Get cards due for review - List flashcards, decks, and templates ## Usage with Claude Desktop Add the following to your `claude_desktop_config.json`: ### NPX (recommended) ```json { "mcpServers": { "mochi": { "command": "npx", "args": ["-y", "@fredrika/mcp-mochi"], "env": { "MOCHI_API_KEY": "<YOUR_TOKEN>" } } } } ``` ### Local Development ```json { "mcpServers": { "mochi": { "command": "node", "args": ["/path/to/mcp-mochi/dist/index.js"], "env": { "MOCHI_API_KEY": "<YOUR_TOKEN>" } } } } ``` ## Local Development Setup 1. Clone and install dependencies: ```bash git clone https://github.com/fredrika/mcp-mochi.git cd mcp-mochi npm install ``` 2. Build the project: ```bash npm run build ``` 3. Test with MCP Inspector: ```bash MOCHI_API_KEY=<YOUR_TOKEN> npx @modelcontextprotocol/inspector node dist/index.js ``` ## Available Tools | Tool | Description | |------|-------------| | `mochi_create_flashcard` | Create a new flashcard in Mochi | | `mochi_create_card_from_template` | Create a flashcard using a template with field names (auto-maps to IDs) | | `mochi_update_flashcard` | Update a flashcard's content, deck, template, or fields. Can also soft-delete with `trashed` property | | `mochi_delete_flashcard` | Permanently delete a flashcard and its attachments (cannot be undone) | | `mochi_archive_flashcard` | Archive or unarchive a flashcard | | `mochi_add_attachment` | Add an attachment (image, audio, etc.) to a card using base64 data | | `mochi_list_flashcards` | List flashcards, optionally filtered by deck | | `mochi_list_decks` | List all decks | | `mochi_list_templates` | List all templates with their field definitions | | `mochi_get_template` | Get a single template by ID | | `mochi_get_due_cards` | Get flashcards due for review | ## Resources | URI | Description | |-----|-------------| | `mochi://decks` | List of all decks | | `mochi://templates` | List of all templates | ## Prompts | Prompt | Description | |--------|-------------| | `write-flashcard` | Generates a well-structured flashcard following best practices (atomic questions, cloze deletions, etc.) | ## Examples ### Create a simple flashcard ```json { "tool": "mochi_create_flashcard", "params": { "content": "What is MCP?\n---\nModel Context Protocol - a protocol for providing context to LLMs", "deckId": "<DECK_ID>" } } ``` ### Create a card from template ```json { "tool": "mochi_create_card_from_template", "params": { "templateId": "<TEMPLATE_ID>", "deckId": "<DECK_ID>", "fields": { "Front": "What is the capital of France?", "Back": "Paris" } } } ``` ### Get today's due cards ```json { "tool": "mochi_get_due_cards", "params": {} } ```