mochi-mcp
by louis030195
README.md
# @louis030195/mochi-mcp
MCP (Model Context Protocol) server for [Mochi](https://mochi.cards) flashcard integration. Create, manage, and review spaced repetition flashcards directly from Claude, ChatGPT, or any LLM that supports MCP.
---
<div align="center">
### 💖 Support This Project
**If you find this MCP server useful, please consider supporting its development!**
[](https://buy.stripe.com/5kQ14n1j3a347Q59a8gA803)
[**👉 Click here to support this project**](https://buy.stripe.com/5kQ14n1j3a347Q59a8gA803)
Your support helps maintain and improve this tool for everyone. Thank you! 🙏
</div>
---
## Features
- 📇 **Card Management** - Create, read, update, delete flashcards
- 🔍 **Search** - Find cards by name or content
- 📚 **Deck Organization** - Manage decks and organize cards
- 🔄 **Pagination** - Handle large card collections efficiently
- 🧠 **Spaced Repetition** - Integrate with Mochi's learning algorithm
- ✨ **Markdown Support** - Rich formatting for card content
## Installation
### Claude Desktop
Add to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json` on Mac or `%APPDATA%\Claude\claude_desktop_config.json` on Windows):
```json
{
"mcpServers": {
"mochi": {
"command": "npx",
"args": ["-y", "@louis030195/mochi-mcp"],
"env": {
"MOCHI_API_KEY": "your-mochi-api-key"
}
}
}
}
```
### Claude Code
```bash
# Install globally in user scope with API key
claude mcp add -s user mochi npx -e MOCHI_API_KEY=your-mochi-api-key -- -y @louis030195/mochi-mcp
```
## Get Your Mochi API Key
1. Go to [Mochi Account Settings](https://app.mochi.cards/settings/account)
2. Sign up or log in
3. Navigate to Settings → Account
4. Copy your API key
## Usage
Once configured, you can use natural language to interact with Mochi:
### Card Management
- "Create a flashcard about the Krebs cycle"
- "Show me my recent flashcards"
- "Update the card about Python decorators"
- "Delete the card with ID abc123"
### Search & Organization
- "Search for cards about machine learning"
- "List all my decks"
- "Create a new deck called 'Spanish Vocabulary'"
- "Find cards containing 'neural networks'"
### Study & Review
- "Get the next 20 cards for review"
- "Show me cards from the Biology deck"
## Tools
### `mochi_list_cards`
List all Mochi flashcards with pagination support.
**Parameters:**
- `bookmark` (string, optional): Pagination bookmark from previous response
- `limit` (number, optional): Maximum number of cards to fetch (default: 100)
**Returns:** List of cards with content, IDs, deck info, review status, etc.
### `mochi_get_card`
Get a specific Mochi flashcard by ID.
**Parameters:**
- `card_id` (string, required): The ID of the card to retrieve
**Returns:** Detailed card data including front, back, deck, review history, etc.
### `mochi_create_card`
Create a new Mochi flashcard with front/back content.
**Parameters:**
- `name` (string, required): The front/question of the card
- `content` (string, required): The back/answer of the card (markdown supported)
- `deck_id` (string, optional): Optional deck ID to add the card to
**Returns:** Created card data with ID
### `mochi_update_card`
Update an existing Mochi flashcard.
**Parameters:**
- `card_id` (string, required): The ID of the card to update
- `name` (string, optional): The front/question of the card
- `content` (string, optional): The back/answer of the card (markdown supported)
**Returns:** Updated card data
### `mochi_delete_card`
Delete a Mochi flashcard by ID.
**Parameters:**
- `card_id` (string, required): The ID of the card to delete
**Returns:** Deletion confirmation
### `mochi_list_decks`
List all Mochi decks.
**Returns:** List of decks with names, IDs, card counts, etc.
### `mochi_create_deck`
Create a new Mochi deck.
**Parameters:**
- `name` (string, required): The name of the deck
**Returns:** Created deck data with ID
### `mochi_search_cards`
Search for Mochi flashcards by name or content.
**Parameters:**
- `query` (string, required): Search query
- `bookmark` (string, optional): Pagination bookmark from previous response
**Returns:** List of matching cards
## Development
```bash
# Clone the repo
git clone https://github.com/louis030195/mochi-mcp.git
cd mochi-mcp
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Run locally
MOCHI_API_KEY=your-api-key npm start
```
## API Documentation
See [Mochi API Docs](https://app.mochi.cards/api-docs) for full API details.
## License
MIT
## Author
[Louis Beaumont](https://twitter.com/louis030195)
TDQS
A3.6/5.0
Scored across 8 tools
Disambiguation5/5
Each tool targets a distinct action on a specific resource (cards vs decks), with no overlap. The names and descriptions clearly differentiate between CRUD operations, listing, and searching.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern using snake_case and a 'mochi_' prefix, e.g., mochi_list_cards, mochi_create_deck. No deviations or mixed conventions.
Tool Count5/5
8 tools is well-suited for a flashcard application, covering essential operations on cards and decks without being too few or excessive.
Completeness4/5
Cards have full CRUD plus search and list, but decks lack update, delete, and get operations. This is a minor gap that agents can work around, but the deck surface is incomplete.
Maintenance
ActivityInactive
ResponsivenessNo issues