@ankimcp/anki-mcp-server 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +659 -5
- package/README.md +64 -12
- package/dist/app.module.js +3 -0
- package/dist/app.module.js.map +1 -1
- package/dist/mcp/mcp-icons.d.ts +2 -0
- package/dist/mcp/mcp-icons.js +11 -0
- package/dist/mcp/mcp-icons.js.map +1 -0
- package/dist/mcp/primitives/essential/index.d.ts +25 -7
- package/dist/mcp/primitives/essential/index.js +49 -13
- package/dist/mcp/primitives/essential/index.js.map +1 -1
- package/dist/mcp/primitives/essential/prompts/twenty-rules.prompt/content.md +2 -2
- package/dist/mcp/primitives/essential/tools/add-note.tool.d.ts +2 -1
- package/dist/mcp/primitives/essential/tools/add-note.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/add-note.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/add-notes.tool.d.ts +2 -1
- package/dist/mcp/primitives/essential/tools/add-notes.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/add-notes.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/{tagActions/tagActions.tool.d.ts → add-tags.tool.d.ts} +6 -9
- package/dist/mcp/primitives/essential/tools/add-tags.tool.js +85 -0
- package/dist/mcp/primitives/essential/tools/add-tags.tool.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/change-deck.tool.d.ts +107 -0
- package/dist/mcp/primitives/essential/tools/change-deck.tool.js +79 -0
- package/dist/mcp/primitives/essential/tools/change-deck.tool.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/clear-unused-tags.tool.d.ts +104 -0
- package/dist/mcp/primitives/essential/tools/clear-unused-tags.tool.js +68 -0
- package/dist/mcp/primitives/essential/tools/clear-unused-tags.tool.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/collection-stats/collection-stats.tool.d.ts +2 -1
- package/dist/mcp/primitives/essential/tools/collection-stats/collection-stats.tool.js +6 -2
- package/dist/mcp/primitives/essential/tools/collection-stats/collection-stats.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/collection-stats/collection-stats.types.d.ts +1 -1
- package/dist/mcp/primitives/essential/tools/create-deck.tool.d.ts +106 -0
- package/dist/mcp/primitives/essential/tools/create-deck.tool.js +78 -0
- package/dist/mcp/primitives/essential/tools/create-deck.tool.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/create-model.tool.d.ts +3 -2
- package/dist/mcp/primitives/essential/tools/create-model.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/create-model.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/{deckActions/deckActions.tool.d.ts → deck-stats.tool.d.ts} +5 -12
- package/dist/mcp/primitives/essential/tools/deck-stats.tool.js +108 -0
- package/dist/mcp/primitives/essential/tools/deck-stats.tool.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/deckActions/actions/changeDeck.action.d.ts +1 -1
- package/dist/mcp/primitives/essential/tools/deckActions/actions/createDeck.action.d.ts +1 -1
- package/dist/mcp/primitives/essential/tools/deckActions/actions/deckStats.action.d.ts +2 -2
- package/dist/mcp/primitives/essential/tools/deckActions/actions/listDecks.action.d.ts +2 -2
- package/dist/mcp/primitives/essential/tools/delete-media-file.tool.d.ts +106 -0
- package/dist/mcp/primitives/essential/tools/delete-media-file.tool.js +73 -0
- package/dist/mcp/primitives/essential/tools/delete-media-file.tool.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/delete-notes.tool.d.ts +2 -1
- package/dist/mcp/primitives/essential/tools/delete-notes.tool.js +2 -1
- package/dist/mcp/primitives/essential/tools/delete-notes.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/find-notes.tool.d.ts +2 -1
- package/dist/mcp/primitives/essential/tools/find-notes.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/find-notes.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/get-cards.tool.d.ts +3 -2
- package/dist/mcp/primitives/essential/tools/get-cards.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/get-cards.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/get-due-cards.tool.d.ts +3 -2
- package/dist/mcp/primitives/essential/tools/get-due-cards.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/get-due-cards.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/get-media-files-names.tool.d.ts +106 -0
- package/dist/mcp/primitives/essential/tools/get-media-files-names.tool.js +76 -0
- package/dist/mcp/primitives/essential/tools/get-media-files-names.tool.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/get-tags.tool.d.ts +2 -1
- package/dist/mcp/primitives/essential/tools/get-tags.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/get-tags.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/list-decks.tool.d.ts +106 -0
- package/dist/mcp/primitives/essential/tools/list-decks.tool.js +96 -0
- package/dist/mcp/primitives/essential/tools/list-decks.tool.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/mediaActions/actions/deleteMediaFile.action.d.ts +1 -1
- package/dist/mcp/primitives/essential/tools/mediaActions/actions/deleteMediaFile.action.js +3 -2
- package/dist/mcp/primitives/essential/tools/mediaActions/actions/deleteMediaFile.action.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/mediaActions/actions/getMediaFilesNames.action.d.ts +1 -1
- package/dist/mcp/primitives/essential/tools/mediaActions/actions/retrieveMediaFile.action.d.ts +1 -1
- package/dist/mcp/primitives/essential/tools/mediaActions/actions/retrieveMediaFile.action.js +3 -2
- package/dist/mcp/primitives/essential/tools/mediaActions/actions/retrieveMediaFile.action.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/mediaActions/actions/storeMediaFile.action.d.ts +1 -1
- package/dist/mcp/primitives/essential/tools/mediaActions/actions/storeMediaFile.action.js +18 -4
- package/dist/mcp/primitives/essential/tools/mediaActions/actions/storeMediaFile.action.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/model-field-names.tool.d.ts +2 -1
- package/dist/mcp/primitives/essential/tools/model-field-names.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/model-field-names.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/model-names.tool.d.ts +2 -1
- package/dist/mcp/primitives/essential/tools/model-names.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/model-names.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/model-styling.tool.d.ts +2 -1
- package/dist/mcp/primitives/essential/tools/model-styling.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/model-styling.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/notes-info.tool.d.ts +3 -2
- package/dist/mcp/primitives/essential/tools/notes-info.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/notes-info.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/present-card.tool.d.ts +3 -2
- package/dist/mcp/primitives/essential/tools/present-card.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/present-card.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/rate-card.tool.d.ts +2 -1
- package/dist/mcp/primitives/essential/tools/rate-card.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/rate-card.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/remove-tags.tool.d.ts +107 -0
- package/dist/mcp/primitives/essential/tools/remove-tags.tool.js +85 -0
- package/dist/mcp/primitives/essential/tools/remove-tags.tool.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/replace-tags.tool.d.ts +108 -0
- package/dist/mcp/primitives/essential/tools/replace-tags.tool.js +92 -0
- package/dist/mcp/primitives/essential/tools/replace-tags.tool.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/retrieve-media-file.tool.d.ts +106 -0
- package/dist/mcp/primitives/essential/tools/retrieve-media-file.tool.js +75 -0
- package/dist/mcp/primitives/essential/tools/retrieve-media-file.tool.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/review-stats/review-stats.tool.d.ts +2 -1
- package/dist/mcp/primitives/essential/tools/review-stats/review-stats.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/review-stats/review-stats.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/review-stats/review-stats.types.d.ts +1 -1
- package/dist/mcp/primitives/essential/tools/{mediaActions/mediaActions.tool.d.ts → store-media-file.tool.d.ts} +5 -8
- package/dist/mcp/primitives/essential/tools/store-media-file.tool.js +92 -0
- package/dist/mcp/primitives/essential/tools/store-media-file.tool.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/sync.tool.d.ts +2 -1
- package/dist/mcp/primitives/essential/tools/sync.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/sync.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/tagActions/actions/addTags.action.d.ts +1 -1
- package/dist/mcp/primitives/essential/tools/tagActions/actions/clearUnusedTags.action.d.ts +1 -1
- package/dist/mcp/primitives/essential/tools/tagActions/actions/removeTags.action.d.ts +1 -1
- package/dist/mcp/primitives/essential/tools/tagActions/actions/replaceTags.action.d.ts +1 -1
- package/dist/mcp/primitives/essential/tools/update-model-styling.tool.d.ts +2 -1
- package/dist/mcp/primitives/essential/tools/update-model-styling.tool.js +2 -0
- package/dist/mcp/primitives/essential/tools/update-model-styling.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/update-note-fields.tool.d.ts +2 -1
- package/dist/mcp/primitives/essential/tools/update-note-fields.tool.js +19 -0
- package/dist/mcp/primitives/essential/tools/update-note-fields.tool.js.map +1 -1
- package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.d.ts +2 -1
- package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.js +3 -1
- package/dist/mcp/primitives/gui/tools/gui-add-cards.tool.js.map +1 -1
- package/dist/mcp/primitives/gui/tools/gui-browse.tool.d.ts +2 -1
- package/dist/mcp/primitives/gui/tools/gui-browse.tool.js +2 -0
- package/dist/mcp/primitives/gui/tools/gui-browse.tool.js.map +1 -1
- package/dist/mcp/primitives/gui/tools/gui-current-card.tool.d.ts +3 -2
- package/dist/mcp/primitives/gui/tools/gui-current-card.tool.js +2 -0
- package/dist/mcp/primitives/gui/tools/gui-current-card.tool.js.map +1 -1
- package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.d.ts +2 -1
- package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.js +2 -0
- package/dist/mcp/primitives/gui/tools/gui-deck-browser.tool.js.map +1 -1
- package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.d.ts +2 -1
- package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.js +2 -0
- package/dist/mcp/primitives/gui/tools/gui-deck-overview.tool.js.map +1 -1
- package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.d.ts +2 -1
- package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.js +2 -0
- package/dist/mcp/primitives/gui/tools/gui-edit-note.tool.js.map +1 -1
- package/dist/mcp/primitives/gui/tools/gui-select-card.tool.d.ts +2 -1
- package/dist/mcp/primitives/gui/tools/gui-select-card.tool.js +2 -0
- package/dist/mcp/primitives/gui/tools/gui-select-card.tool.js.map +1 -1
- package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.d.ts +2 -1
- package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.js +2 -0
- package/dist/mcp/primitives/gui/tools/gui-selected-notes.tool.js.map +1 -1
- package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.d.ts +2 -1
- package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.js +2 -0
- package/dist/mcp/primitives/gui/tools/gui-show-answer.tool.js.map +1 -1
- package/dist/mcp/primitives/gui/tools/gui-show-question.tool.d.ts +2 -1
- package/dist/mcp/primitives/gui/tools/gui-show-question.tool.js +2 -0
- package/dist/mcp/primitives/gui/tools/gui-show-question.tool.js.map +1 -1
- package/dist/mcp/primitives/gui/tools/gui-undo.tool.d.ts +2 -1
- package/dist/mcp/primitives/gui/tools/gui-undo.tool.js +2 -0
- package/dist/mcp/primitives/gui/tools/gui-undo.tool.js.map +1 -1
- package/dist/mcp/utils/media-validation.utils.d.ts +33 -0
- package/dist/mcp/utils/media-validation.utils.js +208 -0
- package/dist/mcp/utils/media-validation.utils.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +24 -19
- package/dist/mcp/primitives/essential/tools/deckActions/deckActions.tool.js +0 -208
- package/dist/mcp/primitives/essential/tools/deckActions/deckActions.tool.js.map +0 -1
- package/dist/mcp/primitives/essential/tools/deckActions/index.d.ts +0 -5
- package/dist/mcp/primitives/essential/tools/deckActions/index.js +0 -6
- package/dist/mcp/primitives/essential/tools/deckActions/index.js.map +0 -1
- package/dist/mcp/primitives/essential/tools/mediaActions/index.d.ts +0 -5
- package/dist/mcp/primitives/essential/tools/mediaActions/index.js +0 -6
- package/dist/mcp/primitives/essential/tools/mediaActions/index.js.map +0 -1
- package/dist/mcp/primitives/essential/tools/mediaActions/mediaActions.tool.js +0 -156
- package/dist/mcp/primitives/essential/tools/mediaActions/mediaActions.tool.js.map +0 -1
- package/dist/mcp/primitives/essential/tools/tagActions/index.d.ts +0 -5
- package/dist/mcp/primitives/essential/tools/tagActions/index.js +0 -6
- package/dist/mcp/primitives/essential/tools/tagActions/index.js.map +0 -1
- package/dist/mcp/primitives/essential/tools/tagActions/tagActions.tool.js +0 -151
- package/dist/mcp/primitives/essential/tools/tagActions/tagActions.tool.js.map +0 -1
package/README.md
CHANGED
|
@@ -32,6 +32,18 @@ For comprehensive guides, real-world examples, and step-by-step tutorials on usi
|
|
|
32
32
|
|
|
33
33
|
**[ankimcp.ai](https://ankimcp.ai)** - Complete documentation with practical examples and use cases
|
|
34
34
|
|
|
35
|
+
See [`docs/`](./docs/README.md) for supplementary documentation, including the [reviewer setup guide](./docs/reviewer-setup.md) and the sample Anki deck.
|
|
36
|
+
|
|
37
|
+
## Example Use Cases
|
|
38
|
+
|
|
39
|
+
Three representative prompts showing the tool flows this server enables:
|
|
40
|
+
|
|
41
|
+
1. **"Help me review my Spanish deck."** — The assistant syncs with AnkiWeb (`sync`), fetches due cards (`get_due_cards` with deck filter), presents each card (`present_card`), and records your rating (`rate_card`). Natural study conversation with explanations tailored to you.
|
|
42
|
+
|
|
43
|
+
2. **"Create 10 Arabic vocab cards with RTL styling."** — The assistant lists note types (`modelNames`), creates a custom RTL model if needed (`createModel` + `updateModelStyling` for right-to-left CSS), then batch-creates the cards (`addNotes`).
|
|
44
|
+
|
|
45
|
+
3. **"Import this image from my Downloads folder into the front of the selected note."** — The assistant uploads the local file (`storeMediaFile` with a file path), reads the currently-selected note from the browser (`guiSelectedNotes` + `notesInfo`), and updates the front field with an `<img>` tag (`updateNoteFields`).
|
|
46
|
+
|
|
35
47
|
## Available Tools
|
|
36
48
|
|
|
37
49
|
### Review & Study
|
|
@@ -41,11 +53,10 @@ For comprehensive guides, real-world examples, and step-by-step tutorials on usi
|
|
|
41
53
|
- `rate_card` - Rate card performance
|
|
42
54
|
|
|
43
55
|
### Deck Management
|
|
44
|
-
- `
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
- `changeDeck` - Move cards to a different deck
|
|
56
|
+
- `listDecks` - List all decks with optional statistics
|
|
57
|
+
- `deckStats` - Get comprehensive deck statistics (counts, ease/interval distributions)
|
|
58
|
+
- `createDeck` - Create a new empty deck (max 2 levels: "Parent::Child")
|
|
59
|
+
- `changeDeck` - Move cards to a different deck
|
|
49
60
|
|
|
50
61
|
### Note Management
|
|
51
62
|
- `addNote` - Create a single note
|
|
@@ -55,12 +66,18 @@ For comprehensive guides, real-world examples, and step-by-step tutorials on usi
|
|
|
55
66
|
- `updateNoteFields` - Update existing note fields (CSS-aware, supports HTML)
|
|
56
67
|
- `deleteNotes` - Delete notes and their cards
|
|
57
68
|
|
|
69
|
+
### Tag Management
|
|
70
|
+
- `getTags` - Discover all tags in the collection (use first to avoid duplication)
|
|
71
|
+
- `addTags` - Add space-separated tags to notes
|
|
72
|
+
- `removeTags` - Remove space-separated tags from notes
|
|
73
|
+
- `replaceTags` - Rename a tag across notes
|
|
74
|
+
- `clearUnusedTags` - Remove orphaned tags from the collection (destructive)
|
|
75
|
+
|
|
58
76
|
### Media Management
|
|
59
|
-
- `
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
- `deleteMediaFile` - Remove media files
|
|
77
|
+
- `getMediaFilesNames` - List media files with optional pattern filtering
|
|
78
|
+
- `retrieveMediaFile` - Download media as base64
|
|
79
|
+
- `storeMediaFile` - Upload media from base64 data, file paths, or URLs
|
|
80
|
+
- `deleteMediaFile` - Remove media files (destructive)
|
|
64
81
|
|
|
65
82
|
**💡 Best Practice for Images:**
|
|
66
83
|
- ✅ **Use file paths** (e.g., `/Users/you/image.png`) - Fast and efficient
|
|
@@ -99,6 +116,8 @@ The easiest way to install this MCP server for Claude Desktop:
|
|
|
99
116
|
|
|
100
117
|
That's it! The bundle includes everything needed to run the server locally.
|
|
101
118
|
|
|
119
|
+
> **For Anthropic MCP Directory reviewers:** a zero-to-integration walkthrough with a pre-populated sample deck lives in [`docs/reviewer-setup.md`](./docs/reviewer-setup.md).
|
|
120
|
+
|
|
102
121
|
### Option 2: NPM Package with STDIO (For Other MCP Clients)
|
|
103
122
|
|
|
104
123
|
Want to use Anki with MCP clients like **Cursor IDE**, **Cline**, or **Zed Editor**? Use the npm package with the `--stdio` flag:
|
|
@@ -368,6 +387,9 @@ For more details, see the [official MCP documentation](https://modelcontextproto
|
|
|
368
387
|
| `ANKI_CONNECT_API_KEY` | API key if configured in AnkiConnect | - |
|
|
369
388
|
| `ANKI_CONNECT_TIMEOUT` | Request timeout in ms | `5000` |
|
|
370
389
|
| `READ_ONLY` | Enable read-only mode (`true` or `1`) | `false` |
|
|
390
|
+
| `MEDIA_ALLOWED_TYPES` | Extra MIME types to allow for file path imports (comma-separated, e.g., `application/pdf`) | - |
|
|
391
|
+
| `MEDIA_IMPORT_DIR` | Restrict file path imports to this directory | - |
|
|
392
|
+
| `MEDIA_ALLOWED_HOSTS` | Allow specific private network hosts for URL imports (comma-separated, e.g., `192.168.1.50,my-nas`) | - |
|
|
371
393
|
|
|
372
394
|
## Usage Examples
|
|
373
395
|
|
|
@@ -421,6 +443,32 @@ The `findNotes` tool supports Anki's powerful query syntax:
|
|
|
421
443
|
#### Deletion Safety
|
|
422
444
|
The `deleteNotes` tool requires explicit confirmation (`confirmDeletion: true`) to prevent accidental deletions. Deleting a note removes ALL associated cards permanently.
|
|
423
445
|
|
|
446
|
+
## Security
|
|
447
|
+
|
|
448
|
+
### Media File Path and URL Validation
|
|
449
|
+
|
|
450
|
+
The media tools (`storeMediaFile`, `retrieveMediaFile`, `deleteMediaFile`) and `updateNoteFields` audio/picture fields include security validation to prevent misuse via prompt injection:
|
|
451
|
+
|
|
452
|
+
- **File path imports** are restricted to media file types only (images, audio, video). Non-media files (e.g., SSH keys, credentials, shell configs) are rejected based on MIME type. Configure `MEDIA_ALLOWED_TYPES` to allow additional file types, or `MEDIA_IMPORT_DIR` to restrict imports to a specific directory.
|
|
453
|
+
- **URL imports** are validated against SSRF attacks. Requests to private networks (10.x, 172.16.x, 192.168.x), loopback (127.x), link-local (169.254.x), and non-HTTP(S) schemes are blocked. Configure `MEDIA_ALLOWED_HOSTS` to allow specific private network hosts.
|
|
454
|
+
- **Filenames** are sanitized to prevent path traversal (e.g., `../../` sequences are stripped).
|
|
455
|
+
|
|
456
|
+
These protections apply to `storeMediaFile`, `retrieveMediaFile`, `deleteMediaFile`, and `updateNoteFields` audio/picture fields.
|
|
457
|
+
|
|
458
|
+
> Path traversal vulnerability reported by [Hideaki Takahashi](https://github.com/Koukyosyumei).
|
|
459
|
+
|
|
460
|
+
## Privacy Policy
|
|
461
|
+
|
|
462
|
+
This MCP server runs locally on your machine and collects no telemetry, analytics, or usage data.
|
|
463
|
+
|
|
464
|
+
Full policy: **[https://ankimcp.ai/privacy/](https://ankimcp.ai/privacy/)**
|
|
465
|
+
|
|
466
|
+
- **Data collection**: The server collects nothing. It proxies requests between your AI assistant and your local AnkiConnect plugin.
|
|
467
|
+
- **Usage / storage**: No server-side storage. All flashcard data stays in your Anki installation on your own device.
|
|
468
|
+
- **Third-party sharing**: None. The server only talks to the AnkiConnect URL you configure (default: localhost). If you enable Anki's built-in AnkiWeb sync, that happens between your Anki install and AnkiWeb directly — outside this server's scope.
|
|
469
|
+
- **Retention**: Not applicable — no data is retained server-side.
|
|
470
|
+
- **Contact**: support@ankimcp.ai
|
|
471
|
+
|
|
424
472
|
## Known Issues
|
|
425
473
|
|
|
426
474
|
For a comprehensive list of known issues and limitations, please visit our documentation:
|
|
@@ -537,7 +585,7 @@ The output file will be named `anki-mcp-server-X.X.X.mcpb` and can be distribute
|
|
|
537
585
|
|
|
538
586
|
#### What Gets Bundled
|
|
539
587
|
|
|
540
|
-
The MCPB
|
|
588
|
+
The MCPB bundle includes:
|
|
541
589
|
- Compiled JavaScript (`dist/` directory - includes both entry points)
|
|
542
590
|
- Production dependencies only (`node_modules/` - devDependencies removed by `mcpb clean`)
|
|
543
591
|
- Package metadata (`package.json`)
|
|
@@ -789,7 +837,11 @@ This project follows [Semantic Versioning](https://semver.org/) with a pre-1.0 d
|
|
|
789
837
|
- Will be released when the API is stable and tested
|
|
790
838
|
- Breaking changes will require major version bumps (2.0.0, etc.)
|
|
791
839
|
|
|
792
|
-
**Current Status**: `0.
|
|
840
|
+
**Current Status**: `0.15.1` - Active beta development. Recent features include batch note creation (`addNotes`), integrated ngrok tunneling (`--ngrok` flag), media file management, model/template management, and comprehensive deck statistics. APIs may change based on feedback and testing.
|
|
841
|
+
|
|
842
|
+
### MCPB spec evolution
|
|
843
|
+
|
|
844
|
+
This project targets Anthropic's MCPB bundle specification, which is still evolving. We track the spec at [https://github.com/modelcontextprotocol/mcpb](https://github.com/modelcontextprotocol/mcpb) and may introduce breaking changes to stay compliant. Breaking changes are permitted under the 0.x.x versioning scheme.
|
|
793
845
|
|
|
794
846
|
## Similar Projects
|
|
795
847
|
|
package/dist/app.module.js
CHANGED
|
@@ -14,6 +14,7 @@ const mcp_nest_1 = require("@rekog/mcp-nest");
|
|
|
14
14
|
const essential_1 = require("./mcp/primitives/essential");
|
|
15
15
|
const gui_1 = require("./mcp/primitives/gui");
|
|
16
16
|
const anki_config_service_1 = require("./anki-config.service");
|
|
17
|
+
const mcp_icons_1 = require("./mcp/mcp-icons");
|
|
17
18
|
let AppModule = AppModule_1 = class AppModule {
|
|
18
19
|
static forStdio() {
|
|
19
20
|
return {
|
|
@@ -28,6 +29,7 @@ let AppModule = AppModule_1 = class AppModule {
|
|
|
28
29
|
name: process.env.MCP_SERVER_NAME || "anki-mcp-server",
|
|
29
30
|
version: process.env.MCP_SERVER_VERSION || "1.0.0",
|
|
30
31
|
transport: mcp_nest_1.McpTransportType.STDIO,
|
|
32
|
+
icons: mcp_icons_1.MCP_ICONS,
|
|
31
33
|
}),
|
|
32
34
|
essential_1.McpPrimitivesAnkiEssentialModule.forRoot({
|
|
33
35
|
ankiConfigProvider: {
|
|
@@ -59,6 +61,7 @@ let AppModule = AppModule_1 = class AppModule {
|
|
|
59
61
|
version: process.env.MCP_SERVER_VERSION || "1.0.0",
|
|
60
62
|
transport: mcp_nest_1.McpTransportType.STREAMABLE_HTTP,
|
|
61
63
|
mcpEndpoint: "/",
|
|
64
|
+
icons: mcp_icons_1.MCP_ICONS,
|
|
62
65
|
}),
|
|
63
66
|
essential_1.McpPrimitivesAnkiEssentialModule.forRoot({
|
|
64
67
|
ankiConfigProvider: {
|
package/dist/app.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,2CAA8C;AAC9C,8CAA8D;AAC9D,0DAIoC;AACpC,8CAG8B;AAC9B,+DAA0D;
|
|
1
|
+
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,2CAA8C;AAC9C,8CAA8D;AAC9D,0DAIoC;AACpC,8CAG8B;AAC9B,+DAA0D;AAC1D,+CAA4C;AAGrC,IAAM,SAAS,iBAAf,MAAM,SAAS;IAIpB,MAAM,CAAC,QAAQ;QACb,OAAO;YACL,MAAM,EAAE,WAAS;YACjB,OAAO,EAAE;gBAEP,qBAAY,CAAC,OAAO,CAAC;oBACnB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI;oBACX,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;iBACpC,CAAC;gBAGF,oBAAS,CAAC,OAAO,CAAC;oBAChB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,iBAAiB;oBACtD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO;oBAClD,SAAS,EAAE,2BAAgB,CAAC,KAAK;oBACjC,KAAK,EAAE,qBAAS;iBACjB,CAAC;gBAGF,4CAAgC,CAAC,OAAO,CAAC;oBACvC,kBAAkB,EAAE;wBAClB,OAAO,EAAE,uBAAW;wBACpB,QAAQ,EAAE,uCAAiB;qBAC5B;iBACF,CAAC;gBAGF,gCAA0B,CAAC,OAAO,CAAC;oBACjC,kBAAkB,EAAE;wBAClB,OAAO,EAAE,uBAAW;wBACpB,QAAQ,EAAE,uCAAiB;qBAC5B;iBACF,CAAC;aACH;YAED,SAAS,EAAE,CAAC,uCAAiB,EAAE,GAAG,+BAAmB,EAAE,GAAG,mBAAa,CAAC;SACzE,CAAC;IACJ,CAAC;IAKD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,MAAM,EAAE,WAAS;YACjB,OAAO,EAAE;gBAEP,qBAAY,CAAC,OAAO,CAAC;oBACnB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI;oBACX,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;iBACpC,CAAC;gBAGF,oBAAS,CAAC,OAAO,CAAC;oBAChB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,iBAAiB;oBACtD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO;oBAClD,SAAS,EAAE,2BAAgB,CAAC,eAAe;oBAC3C,WAAW,EAAE,GAAG;oBAChB,KAAK,EAAE,qBAAS;iBACjB,CAAC;gBAGF,4CAAgC,CAAC,OAAO,CAAC;oBACvC,kBAAkB,EAAE;wBAClB,OAAO,EAAE,uBAAW;wBACpB,QAAQ,EAAE,uCAAiB;qBAC5B;iBACF,CAAC;gBAGF,gCAA0B,CAAC,OAAO,CAAC;oBACjC,kBAAkB,EAAE;wBAClB,OAAO,EAAE,uBAAW;wBACpB,QAAQ,EAAE,uCAAiB;qBAC5B;iBACF,CAAC;aACH;YAED,SAAS,EAAE,CAAC,uCAAiB,EAAE,GAAG,+BAAmB,EAAE,GAAG,mBAAa,CAAC;SACzE,CAAC;IACJ,CAAC;CACF,CAAA;AAvFY,8BAAS;oBAAT,SAAS;IADrB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,SAAS,CAuFrB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MCP_ICONS = void 0;
|
|
4
|
+
exports.MCP_ICONS = [
|
|
5
|
+
{
|
|
6
|
+
src: "https://ankimcp.ai/favicon.svg",
|
|
7
|
+
mimeType: "image/svg+xml",
|
|
8
|
+
sizes: ["any"],
|
|
9
|
+
},
|
|
10
|
+
];
|
|
11
|
+
//# sourceMappingURL=mcp-icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-icons.js","sourceRoot":"","sources":["../../src/mcp/mcp-icons.ts"],"names":[],"mappings":";;;AAUa,QAAA,SAAS,GAAW;IAC/B;QACE,GAAG,EAAE,gCAAgC;QACrC,QAAQ,EAAE,eAAe;QACzB,KAAK,EAAE,CAAC,KAAK,CAAC;KACf;CACF,CAAC"}
|
|
@@ -19,10 +19,19 @@ export { FindNotesTool } from "./tools/find-notes.tool";
|
|
|
19
19
|
export { NotesInfoTool } from "./tools/notes-info.tool";
|
|
20
20
|
export { UpdateNoteFieldsTool } from "./tools/update-note-fields.tool";
|
|
21
21
|
export { DeleteNotesTool } from "./tools/delete-notes.tool";
|
|
22
|
-
export { MediaActionsTool } from "./tools/mediaActions";
|
|
23
22
|
export { GetTagsTool } from "./tools/get-tags.tool";
|
|
24
|
-
export {
|
|
25
|
-
export {
|
|
23
|
+
export { ListDecksTool } from "./tools/list-decks.tool";
|
|
24
|
+
export { DeckStatsTool } from "./tools/deck-stats.tool";
|
|
25
|
+
export { CreateDeckTool } from "./tools/create-deck.tool";
|
|
26
|
+
export { ChangeDeckTool } from "./tools/change-deck.tool";
|
|
27
|
+
export { RetrieveMediaFileTool } from "./tools/retrieve-media-file.tool";
|
|
28
|
+
export { GetMediaFilesNamesTool } from "./tools/get-media-files-names.tool";
|
|
29
|
+
export { StoreMediaFileTool } from "./tools/store-media-file.tool";
|
|
30
|
+
export { DeleteMediaFileTool } from "./tools/delete-media-file.tool";
|
|
31
|
+
export { AddTagsTool } from "./tools/add-tags.tool";
|
|
32
|
+
export { RemoveTagsTool } from "./tools/remove-tags.tool";
|
|
33
|
+
export { ReplaceTagsTool } from "./tools/replace-tags.tool";
|
|
34
|
+
export { ClearUnusedTagsTool } from "./tools/clear-unused-tags.tool";
|
|
26
35
|
export { CollectionStatsTool } from "./tools/collection-stats";
|
|
27
36
|
export { ReviewStatsTool } from "./tools/review-stats";
|
|
28
37
|
export { ReviewSessionPrompt } from "./prompts/review-session.prompt";
|
|
@@ -45,16 +54,25 @@ import { FindNotesTool } from "./tools/find-notes.tool";
|
|
|
45
54
|
import { NotesInfoTool } from "./tools/notes-info.tool";
|
|
46
55
|
import { UpdateNoteFieldsTool } from "./tools/update-note-fields.tool";
|
|
47
56
|
import { DeleteNotesTool } from "./tools/delete-notes.tool";
|
|
48
|
-
import { MediaActionsTool } from "./tools/mediaActions";
|
|
49
57
|
import { GetTagsTool } from "./tools/get-tags.tool";
|
|
50
|
-
import {
|
|
51
|
-
import {
|
|
58
|
+
import { ListDecksTool } from "./tools/list-decks.tool";
|
|
59
|
+
import { DeckStatsTool } from "./tools/deck-stats.tool";
|
|
60
|
+
import { CreateDeckTool } from "./tools/create-deck.tool";
|
|
61
|
+
import { ChangeDeckTool } from "./tools/change-deck.tool";
|
|
62
|
+
import { RetrieveMediaFileTool } from "./tools/retrieve-media-file.tool";
|
|
63
|
+
import { GetMediaFilesNamesTool } from "./tools/get-media-files-names.tool";
|
|
64
|
+
import { StoreMediaFileTool } from "./tools/store-media-file.tool";
|
|
65
|
+
import { DeleteMediaFileTool } from "./tools/delete-media-file.tool";
|
|
66
|
+
import { AddTagsTool } from "./tools/add-tags.tool";
|
|
67
|
+
import { RemoveTagsTool } from "./tools/remove-tags.tool";
|
|
68
|
+
import { ReplaceTagsTool } from "./tools/replace-tags.tool";
|
|
69
|
+
import { ClearUnusedTagsTool } from "./tools/clear-unused-tags.tool";
|
|
52
70
|
import { CollectionStatsTool } from "./tools/collection-stats";
|
|
53
71
|
import { ReviewStatsTool } from "./tools/review-stats";
|
|
54
72
|
import { ReviewSessionPrompt } from "./prompts/review-session.prompt";
|
|
55
73
|
import { TwentyRulesPrompt } from "./prompts/twenty-rules.prompt";
|
|
56
74
|
import { SystemInfoResource } from "./resources/system-info.resource";
|
|
57
|
-
export declare const ESSENTIAL_MCP_TOOLS: (typeof SyncTool | typeof GetDueCardsTool | typeof GetCardsTool | typeof PresentCardTool | typeof RateCardTool | typeof ModelNamesTool | typeof ModelFieldNamesTool | typeof ModelStylingTool | typeof CreateModelTool | typeof UpdateModelStylingTool | typeof AddNoteTool | typeof AddNotesTool | typeof FindNotesTool | typeof NotesInfoTool | typeof UpdateNoteFieldsTool | typeof DeleteNotesTool | typeof
|
|
75
|
+
export declare const ESSENTIAL_MCP_TOOLS: (typeof SyncTool | typeof GetDueCardsTool | typeof GetCardsTool | typeof PresentCardTool | typeof RateCardTool | typeof ModelNamesTool | typeof ModelFieldNamesTool | typeof ModelStylingTool | typeof CreateModelTool | typeof UpdateModelStylingTool | typeof AddNoteTool | typeof AddNotesTool | typeof FindNotesTool | typeof NotesInfoTool | typeof UpdateNoteFieldsTool | typeof DeleteNotesTool | typeof GetTagsTool | typeof ListDecksTool | typeof DeckStatsTool | typeof CreateDeckTool | typeof ChangeDeckTool | typeof RetrieveMediaFileTool | typeof GetMediaFilesNamesTool | typeof StoreMediaFileTool | typeof DeleteMediaFileTool | typeof AddTagsTool | typeof RemoveTagsTool | typeof ReplaceTagsTool | typeof ClearUnusedTagsTool | typeof CollectionStatsTool | typeof ReviewStatsTool | typeof ReviewSessionPrompt | typeof TwentyRulesPrompt | typeof SystemInfoResource)[];
|
|
58
76
|
export interface McpPrimitivesAnkiEssentialModuleOptions {
|
|
59
77
|
ankiConfigProvider: Provider;
|
|
60
78
|
}
|
|
@@ -21,7 +21,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
21
21
|
};
|
|
22
22
|
var McpPrimitivesAnkiEssentialModule_1;
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.McpPrimitivesAnkiEssentialModule = exports.ESSENTIAL_MCP_TOOLS = exports.SystemInfoResource = exports.TwentyRulesPrompt = exports.ReviewSessionPrompt = exports.ReviewStatsTool = exports.CollectionStatsTool = exports.
|
|
24
|
+
exports.McpPrimitivesAnkiEssentialModule = exports.ESSENTIAL_MCP_TOOLS = exports.SystemInfoResource = exports.TwentyRulesPrompt = exports.ReviewSessionPrompt = exports.ReviewStatsTool = exports.CollectionStatsTool = exports.ClearUnusedTagsTool = exports.ReplaceTagsTool = exports.RemoveTagsTool = exports.AddTagsTool = exports.DeleteMediaFileTool = exports.StoreMediaFileTool = exports.GetMediaFilesNamesTool = exports.RetrieveMediaFileTool = exports.ChangeDeckTool = exports.CreateDeckTool = exports.DeckStatsTool = exports.ListDecksTool = exports.GetTagsTool = exports.DeleteNotesTool = exports.UpdateNoteFieldsTool = exports.NotesInfoTool = exports.FindNotesTool = exports.AddNotesTool = exports.AddNoteTool = exports.UpdateModelStylingTool = exports.CreateModelTool = exports.ModelStylingTool = exports.ModelFieldNamesTool = exports.ModelNamesTool = exports.RateCardTool = exports.PresentCardTool = exports.GetCardsTool = exports.GetDueCardsTool = exports.SyncTool = exports.ReadOnlyModeError = exports.AnkiConnectError = exports.AnkiConnectClient = exports.ANKI_CONFIG = void 0;
|
|
25
25
|
var anki_config_interface_1 = require("../../config/anki-config.interface");
|
|
26
26
|
Object.defineProperty(exports, "ANKI_CONFIG", { enumerable: true, get: function () { return anki_config_interface_1.ANKI_CONFIG; } });
|
|
27
27
|
__exportStar(require("../../types/anki.types"), exports);
|
|
@@ -62,14 +62,32 @@ var update_note_fields_tool_1 = require("./tools/update-note-fields.tool");
|
|
|
62
62
|
Object.defineProperty(exports, "UpdateNoteFieldsTool", { enumerable: true, get: function () { return update_note_fields_tool_1.UpdateNoteFieldsTool; } });
|
|
63
63
|
var delete_notes_tool_1 = require("./tools/delete-notes.tool");
|
|
64
64
|
Object.defineProperty(exports, "DeleteNotesTool", { enumerable: true, get: function () { return delete_notes_tool_1.DeleteNotesTool; } });
|
|
65
|
-
var mediaActions_1 = require("./tools/mediaActions");
|
|
66
|
-
Object.defineProperty(exports, "MediaActionsTool", { enumerable: true, get: function () { return mediaActions_1.MediaActionsTool; } });
|
|
67
65
|
var get_tags_tool_1 = require("./tools/get-tags.tool");
|
|
68
66
|
Object.defineProperty(exports, "GetTagsTool", { enumerable: true, get: function () { return get_tags_tool_1.GetTagsTool; } });
|
|
69
|
-
var
|
|
70
|
-
Object.defineProperty(exports, "
|
|
71
|
-
var
|
|
72
|
-
Object.defineProperty(exports, "
|
|
67
|
+
var list_decks_tool_1 = require("./tools/list-decks.tool");
|
|
68
|
+
Object.defineProperty(exports, "ListDecksTool", { enumerable: true, get: function () { return list_decks_tool_1.ListDecksTool; } });
|
|
69
|
+
var deck_stats_tool_1 = require("./tools/deck-stats.tool");
|
|
70
|
+
Object.defineProperty(exports, "DeckStatsTool", { enumerable: true, get: function () { return deck_stats_tool_1.DeckStatsTool; } });
|
|
71
|
+
var create_deck_tool_1 = require("./tools/create-deck.tool");
|
|
72
|
+
Object.defineProperty(exports, "CreateDeckTool", { enumerable: true, get: function () { return create_deck_tool_1.CreateDeckTool; } });
|
|
73
|
+
var change_deck_tool_1 = require("./tools/change-deck.tool");
|
|
74
|
+
Object.defineProperty(exports, "ChangeDeckTool", { enumerable: true, get: function () { return change_deck_tool_1.ChangeDeckTool; } });
|
|
75
|
+
var retrieve_media_file_tool_1 = require("./tools/retrieve-media-file.tool");
|
|
76
|
+
Object.defineProperty(exports, "RetrieveMediaFileTool", { enumerable: true, get: function () { return retrieve_media_file_tool_1.RetrieveMediaFileTool; } });
|
|
77
|
+
var get_media_files_names_tool_1 = require("./tools/get-media-files-names.tool");
|
|
78
|
+
Object.defineProperty(exports, "GetMediaFilesNamesTool", { enumerable: true, get: function () { return get_media_files_names_tool_1.GetMediaFilesNamesTool; } });
|
|
79
|
+
var store_media_file_tool_1 = require("./tools/store-media-file.tool");
|
|
80
|
+
Object.defineProperty(exports, "StoreMediaFileTool", { enumerable: true, get: function () { return store_media_file_tool_1.StoreMediaFileTool; } });
|
|
81
|
+
var delete_media_file_tool_1 = require("./tools/delete-media-file.tool");
|
|
82
|
+
Object.defineProperty(exports, "DeleteMediaFileTool", { enumerable: true, get: function () { return delete_media_file_tool_1.DeleteMediaFileTool; } });
|
|
83
|
+
var add_tags_tool_1 = require("./tools/add-tags.tool");
|
|
84
|
+
Object.defineProperty(exports, "AddTagsTool", { enumerable: true, get: function () { return add_tags_tool_1.AddTagsTool; } });
|
|
85
|
+
var remove_tags_tool_1 = require("./tools/remove-tags.tool");
|
|
86
|
+
Object.defineProperty(exports, "RemoveTagsTool", { enumerable: true, get: function () { return remove_tags_tool_1.RemoveTagsTool; } });
|
|
87
|
+
var replace_tags_tool_1 = require("./tools/replace-tags.tool");
|
|
88
|
+
Object.defineProperty(exports, "ReplaceTagsTool", { enumerable: true, get: function () { return replace_tags_tool_1.ReplaceTagsTool; } });
|
|
89
|
+
var clear_unused_tags_tool_1 = require("./tools/clear-unused-tags.tool");
|
|
90
|
+
Object.defineProperty(exports, "ClearUnusedTagsTool", { enumerable: true, get: function () { return clear_unused_tags_tool_1.ClearUnusedTagsTool; } });
|
|
73
91
|
var collection_stats_1 = require("./tools/collection-stats");
|
|
74
92
|
Object.defineProperty(exports, "CollectionStatsTool", { enumerable: true, get: function () { return collection_stats_1.CollectionStatsTool; } });
|
|
75
93
|
var review_stats_1 = require("./tools/review-stats");
|
|
@@ -98,10 +116,19 @@ const find_notes_tool_2 = require("./tools/find-notes.tool");
|
|
|
98
116
|
const notes_info_tool_2 = require("./tools/notes-info.tool");
|
|
99
117
|
const update_note_fields_tool_2 = require("./tools/update-note-fields.tool");
|
|
100
118
|
const delete_notes_tool_2 = require("./tools/delete-notes.tool");
|
|
101
|
-
const mediaActions_2 = require("./tools/mediaActions");
|
|
102
119
|
const get_tags_tool_2 = require("./tools/get-tags.tool");
|
|
103
|
-
const
|
|
104
|
-
const
|
|
120
|
+
const list_decks_tool_2 = require("./tools/list-decks.tool");
|
|
121
|
+
const deck_stats_tool_2 = require("./tools/deck-stats.tool");
|
|
122
|
+
const create_deck_tool_2 = require("./tools/create-deck.tool");
|
|
123
|
+
const change_deck_tool_2 = require("./tools/change-deck.tool");
|
|
124
|
+
const retrieve_media_file_tool_2 = require("./tools/retrieve-media-file.tool");
|
|
125
|
+
const get_media_files_names_tool_2 = require("./tools/get-media-files-names.tool");
|
|
126
|
+
const store_media_file_tool_2 = require("./tools/store-media-file.tool");
|
|
127
|
+
const delete_media_file_tool_2 = require("./tools/delete-media-file.tool");
|
|
128
|
+
const add_tags_tool_2 = require("./tools/add-tags.tool");
|
|
129
|
+
const remove_tags_tool_2 = require("./tools/remove-tags.tool");
|
|
130
|
+
const replace_tags_tool_2 = require("./tools/replace-tags.tool");
|
|
131
|
+
const clear_unused_tags_tool_2 = require("./tools/clear-unused-tags.tool");
|
|
105
132
|
const collection_stats_2 = require("./tools/collection-stats");
|
|
106
133
|
const review_stats_2 = require("./tools/review-stats");
|
|
107
134
|
const review_session_prompt_2 = require("./prompts/review-session.prompt");
|
|
@@ -124,10 +151,19 @@ exports.ESSENTIAL_MCP_TOOLS = [
|
|
|
124
151
|
notes_info_tool_2.NotesInfoTool,
|
|
125
152
|
update_note_fields_tool_2.UpdateNoteFieldsTool,
|
|
126
153
|
delete_notes_tool_2.DeleteNotesTool,
|
|
127
|
-
mediaActions_2.MediaActionsTool,
|
|
128
154
|
get_tags_tool_2.GetTagsTool,
|
|
129
|
-
|
|
130
|
-
|
|
155
|
+
list_decks_tool_2.ListDecksTool,
|
|
156
|
+
deck_stats_tool_2.DeckStatsTool,
|
|
157
|
+
create_deck_tool_2.CreateDeckTool,
|
|
158
|
+
change_deck_tool_2.ChangeDeckTool,
|
|
159
|
+
retrieve_media_file_tool_2.RetrieveMediaFileTool,
|
|
160
|
+
get_media_files_names_tool_2.GetMediaFilesNamesTool,
|
|
161
|
+
store_media_file_tool_2.StoreMediaFileTool,
|
|
162
|
+
delete_media_file_tool_2.DeleteMediaFileTool,
|
|
163
|
+
add_tags_tool_2.AddTagsTool,
|
|
164
|
+
remove_tags_tool_2.RemoveTagsTool,
|
|
165
|
+
replace_tags_tool_2.ReplaceTagsTool,
|
|
166
|
+
clear_unused_tags_tool_2.ClearUnusedTagsTool,
|
|
131
167
|
collection_stats_2.CollectionStatsTool,
|
|
132
168
|
review_stats_2.ReviewStatsTool,
|
|
133
169
|
review_session_prompt_2.ReviewSessionPrompt,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/primitives/essential/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,4EAAiE;AAAxD,oHAAA,WAAW,OAAA;AAIpB,yDAAuC;AAGvC,yDAAuC;AAGvC,yEAI2C;AAHzC,wHAAA,iBAAiB,OAAA;AACjB,uHAAA,gBAAgB,OAAA;AAChB,wHAAA,iBAAiB,OAAA;AAInB,+CAA6C;AAApC,qGAAA,QAAQ,OAAA;AACjB,iEAA6D;AAApD,qHAAA,eAAe,OAAA;AACxB,yDAAsD;AAA7C,8GAAA,YAAY,OAAA;AACrB,+DAA4D;AAAnD,oHAAA,eAAe,OAAA;AACxB,yDAAsD;AAA7C,8GAAA,YAAY,OAAA;AACrB,6DAA0D;AAAjD,kHAAA,cAAc,OAAA;AACvB,yEAAqE;AAA5D,6HAAA,mBAAmB,OAAA;AAC5B,iEAA8D;AAArD,sHAAA,gBAAgB,OAAA;AACzB,+DAA4D;AAAnD,oHAAA,eAAe,OAAA;AACxB,+EAA2E;AAAlE,mIAAA,sBAAsB,OAAA;AAC/B,uDAAoD;AAA3C,4GAAA,WAAW,OAAA;AACpB,yDAAsD;AAA7C,8GAAA,YAAY,OAAA;AACrB,2DAAwD;AAA/C,gHAAA,aAAa,OAAA;AACtB,2DAAwD;AAA/C,gHAAA,aAAa,OAAA;AACtB,2EAAuE;AAA9D,+HAAA,oBAAoB,OAAA;AAC7B,+DAA4D;AAAnD,oHAAA,eAAe,OAAA;AACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/primitives/essential/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,7 +49,7 @@ You are helping a user create effective Anki flashcards based on Dr. Piotr Wozni
|
|
|
49
49
|
- Geography, anatomy, architecture
|
|
50
50
|
- Historical figures, artworks
|
|
51
51
|
- Diagrams for abstract concepts
|
|
52
|
-
- Use the
|
|
52
|
+
- Use the storeMediaFile tool to help users add images
|
|
53
53
|
|
|
54
54
|
### 7. Use Mnemonic Techniques
|
|
55
55
|
**Memory aids make retention easier.**
|
|
@@ -185,7 +185,7 @@ A: [Text description]
|
|
|
185
185
|
✅ **With Image**:
|
|
186
186
|
Q: [Image of heart with blank labels]
|
|
187
187
|
A: [Same image with labels visible]
|
|
188
|
-
(Use
|
|
188
|
+
(Use storeMediaFile to help user add the image)
|
|
189
189
|
|
|
190
190
|
## Remember
|
|
191
191
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Context } from "@rekog/mcp-nest";
|
|
2
|
-
import { AnkiConnectClient } from "
|
|
2
|
+
import { AnkiConnectClient } from "../../../clients/anki-connect.client";
|
|
3
3
|
export declare class AddNoteTool {
|
|
4
4
|
private readonly ankiClient;
|
|
5
5
|
private readonly logger;
|
|
@@ -59,6 +59,7 @@ export declare class AddNoteTool {
|
|
|
59
59
|
type: "resource_link";
|
|
60
60
|
description?: string | undefined;
|
|
61
61
|
mimeType?: string | undefined;
|
|
62
|
+
size?: number | undefined;
|
|
62
63
|
annotations?: {
|
|
63
64
|
audience?: ("user" | "assistant")[] | undefined;
|
|
64
65
|
priority?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-note.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/add-note.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAAuC;AAEvC,6BAAwB;AACxB,8EAAsE;AAEtE,0DAA6D;AAMtD,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAGO;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,aAAW,CAAC,IAAI,CAAC,CAAC;IAEvD,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"add-note.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/add-note.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Context } from "@rekog/mcp-nest";
|
|
2
|
-
import { AnkiConnectClient } from "
|
|
2
|
+
import { AnkiConnectClient } from "../../../clients/anki-connect.client";
|
|
3
3
|
type NoteResultStatus = "created" | "skipped" | "failed";
|
|
4
4
|
interface NoteResult {
|
|
5
5
|
index: number;
|
|
@@ -65,6 +65,7 @@ export declare class AddNotesTool {
|
|
|
65
65
|
type: "resource_link";
|
|
66
66
|
description?: string | undefined;
|
|
67
67
|
mimeType?: string | undefined;
|
|
68
|
+
size?: number | undefined;
|
|
68
69
|
annotations?: {
|
|
69
70
|
audience?: ("user" | "assistant")[] | undefined;
|
|
70
71
|
priority?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-notes.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/add-notes.tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAAuC;AAEvC,6BAAwB;AACxB,8EAG2C;AAC3C,0DAA6D;AAmBtD,IAAM,YAAY,oBAAlB,MAAM,YAAY;IAGM;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,cAAY,CAAC,IAAI,CAAC,CAAC;IAExD,YAA6B,UAA6B;QAA7B,eAAU,GAAV,UAAU,CAAmB;IAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"add-notes.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/add-notes.tool.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/primitives/essential/tools/{tagActions/tagActions.tool.d.ts → add-tags.tool.d.ts}
RENAMED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import type { Context } from "@rekog/mcp-nest";
|
|
2
|
-
import { AnkiConnectClient } from "
|
|
3
|
-
|
|
4
|
-
export declare class TagActionsTool {
|
|
2
|
+
import { AnkiConnectClient } from "../../../clients/anki-connect.client";
|
|
3
|
+
export declare class AddTagsTool {
|
|
5
4
|
private readonly ankiClient;
|
|
6
5
|
private readonly logger;
|
|
7
6
|
constructor(ankiClient: AnkiConnectClient);
|
|
8
7
|
execute(params: {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
tags?: string;
|
|
12
|
-
tagToReplace?: string;
|
|
13
|
-
replaceWithTag?: string;
|
|
8
|
+
notes: number[];
|
|
9
|
+
tags: string;
|
|
14
10
|
}, context: Context): Promise<{
|
|
15
11
|
[x: string]: unknown;
|
|
16
12
|
content: ({
|
|
@@ -54,6 +50,7 @@ export declare class TagActionsTool {
|
|
|
54
50
|
type: "resource_link";
|
|
55
51
|
description?: string | undefined;
|
|
56
52
|
mimeType?: string | undefined;
|
|
53
|
+
size?: number | undefined;
|
|
57
54
|
annotations?: {
|
|
58
55
|
audience?: ("user" | "assistant")[] | undefined;
|
|
59
56
|
priority?: number | undefined;
|
|
@@ -106,5 +103,5 @@ export declare class TagActionsTool {
|
|
|
106
103
|
[x: string]: unknown;
|
|
107
104
|
} | undefined;
|
|
108
105
|
isError?: boolean | undefined;
|
|
109
|
-
} |
|
|
106
|
+
} | import("./tagActions/actions/addTags.action").AddTagsResult>;
|
|
110
107
|
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var AddTagsTool_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.AddTagsTool = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const mcp_nest_1 = require("@rekog/mcp-nest");
|
|
16
|
+
const zod_1 = require("zod");
|
|
17
|
+
const anki_connect_client_1 = require("../../../clients/anki-connect.client");
|
|
18
|
+
const anki_utils_1 = require("../../../utils/anki.utils");
|
|
19
|
+
const addTags_action_1 = require("./tagActions/actions/addTags.action");
|
|
20
|
+
let AddTagsTool = AddTagsTool_1 = class AddTagsTool {
|
|
21
|
+
ankiClient;
|
|
22
|
+
logger = new common_1.Logger(AddTagsTool_1.name);
|
|
23
|
+
constructor(ankiClient) {
|
|
24
|
+
this.ankiClient = ankiClient;
|
|
25
|
+
}
|
|
26
|
+
async execute(params, context) {
|
|
27
|
+
try {
|
|
28
|
+
this.logger.log(`Executing addTags on ${params.notes?.length ?? 0} note(s)`);
|
|
29
|
+
if (!params.notes || params.notes.length === 0) {
|
|
30
|
+
throw new Error("notes array is required for addTags action");
|
|
31
|
+
}
|
|
32
|
+
if (!params.tags) {
|
|
33
|
+
throw new Error("tags string is required for addTags action");
|
|
34
|
+
}
|
|
35
|
+
await context.reportProgress({ progress: 25, total: 100 });
|
|
36
|
+
const result = await (0, addTags_action_1.addTags)({ notes: params.notes, tags: params.tags }, this.ankiClient);
|
|
37
|
+
await context.reportProgress({ progress: 100, total: 100 });
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
this.logger.error("Failed to execute addTags", error);
|
|
42
|
+
return (0, anki_utils_1.createErrorResponse)(error, {
|
|
43
|
+
action: "addTags",
|
|
44
|
+
hint: "Make sure Anki is running and the note IDs are valid",
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
exports.AddTagsTool = AddTagsTool;
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, mcp_nest_1.Tool)({
|
|
52
|
+
name: "addTags",
|
|
53
|
+
description: 'Add tags to specified notes. Tags is a space-separated string (e.g., "tag1 tag2 tag3"). Use getTags first to discover existing tags and prevent duplication.',
|
|
54
|
+
parameters: zod_1.z.object({
|
|
55
|
+
notes: zod_1.z
|
|
56
|
+
.array(zod_1.z.number())
|
|
57
|
+
.min(1)
|
|
58
|
+
.max(1000)
|
|
59
|
+
.describe("Array of note IDs to modify"),
|
|
60
|
+
tags: zod_1.z
|
|
61
|
+
.string()
|
|
62
|
+
.describe('Space-separated tags to add (e.g., "tag1 tag2")'),
|
|
63
|
+
}),
|
|
64
|
+
outputSchema: zod_1.z.object({
|
|
65
|
+
success: zod_1.z.boolean(),
|
|
66
|
+
message: zod_1.z.string(),
|
|
67
|
+
notesAffected: zod_1.z.number(),
|
|
68
|
+
tagsAdded: zod_1.z.array(zod_1.z.string()),
|
|
69
|
+
}),
|
|
70
|
+
annotations: {
|
|
71
|
+
title: "Add Tags",
|
|
72
|
+
readOnlyHint: false,
|
|
73
|
+
destructiveHint: false,
|
|
74
|
+
idempotentHint: true,
|
|
75
|
+
},
|
|
76
|
+
}),
|
|
77
|
+
__metadata("design:type", Function),
|
|
78
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
79
|
+
__metadata("design:returntype", Promise)
|
|
80
|
+
], AddTagsTool.prototype, "execute", null);
|
|
81
|
+
exports.AddTagsTool = AddTagsTool = AddTagsTool_1 = __decorate([
|
|
82
|
+
(0, common_1.Injectable)(),
|
|
83
|
+
__metadata("design:paramtypes", [anki_connect_client_1.AnkiConnectClient])
|
|
84
|
+
], AddTagsTool);
|
|
85
|
+
//# sourceMappingURL=add-tags.tool.js.map
|