@fredrika/mcp-mochi
Version:
MCP server for Mochi flashcard integration
135 lines (108 loc) • 3.16 kB
Markdown
MCP server for [Mochi](https://mochi.cards) flashcard integration, allowing you to manage your flashcards through the Model Context Protocol.
- 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>"
}
}
}
}
```
```json
{
"mcpServers": {
"mochi": {
"command": "node",
"args": ["/path/to/mcp-mochi/dist/index.js"],
"env": {
"MOCHI_API_KEY": "<YOUR_TOKEN>"
}
}
}
}
```
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
```
| 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>"
}
}
```
```json
{
"tool": "mochi_create_card_from_template",
"params": {
"templateId": "<TEMPLATE_ID>",
"deckId": "<DECK_ID>",
"fields": {
"Front": "What is the capital of France?",
"Back": "Paris"
}
}
}
```
```json
{
"tool": "mochi_get_due_cards",
"params": {}
}
```