anki-mcp-http 0.12.1 → 0.13.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/README.md +53 -5
- package/bin/ankimcp.js +16 -0
- package/dist/anki-config.service.d.ts +1 -0
- package/dist/anki-config.service.js +4 -0
- package/dist/anki-config.service.js.map +1 -1
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +12 -3
- package/dist/cli.js.map +1 -1
- package/dist/main-http.js +1 -0
- package/dist/main-http.js.map +1 -1
- package/dist/main-stdio.js +28 -1
- package/dist/main-stdio.js.map +1 -1
- package/dist/mcp/clients/anki-connect.client.d.ts +5 -0
- package/dist/mcp/clients/anki-connect.client.js +35 -1
- package/dist/mcp/clients/anki-connect.client.js.map +1 -1
- package/dist/mcp/config/anki-config.interface.d.ts +1 -0
- package/dist/mcp/config/anki-config.interface.js.map +1 -1
- package/dist/mcp/primitives/essential/index.d.ts +4 -8
- package/dist/mcp/primitives/essential/index.js +6 -13
- package/dist/mcp/primitives/essential/index.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/add-note.tool.js +22 -9
- package/dist/mcp/primitives/essential/tools/add-note.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/deckActions/actions/changeDeck.action.d.ts +12 -0
- package/dist/mcp/primitives/essential/tools/deckActions/actions/changeDeck.action.js +24 -0
- package/dist/mcp/primitives/essential/tools/deckActions/actions/changeDeck.action.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/deckActions/actions/createDeck.action.d.ts +15 -0
- package/dist/mcp/primitives/essential/tools/deckActions/actions/createDeck.action.js +44 -0
- package/dist/mcp/primitives/essential/tools/deckActions/actions/createDeck.action.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/{deck-stats/deck-stats.types.d.ts → deckActions/actions/deckStats.action.d.ts} +5 -2
- package/dist/mcp/primitives/essential/tools/deckActions/actions/deckStats.action.js +78 -0
- package/dist/mcp/primitives/essential/tools/deckActions/actions/deckStats.action.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/deckActions/actions/listDecks.action.d.ts +18 -0
- package/dist/mcp/primitives/essential/tools/deckActions/actions/listDecks.action.js +63 -0
- package/dist/mcp/primitives/essential/tools/deckActions/actions/listDecks.action.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/{deck-stats/deck-stats.tool.d.ts → deckActions/deckActions.tool.d.ts} +8 -4
- package/dist/mcp/primitives/essential/tools/deckActions/deckActions.tool.js +138 -0
- package/dist/mcp/primitives/essential/tools/deckActions/deckActions.tool.js.map +1 -0
- package/dist/mcp/primitives/essential/tools/deckActions/index.d.ts +5 -0
- package/dist/mcp/primitives/essential/tools/deckActions/index.js +6 -0
- package/dist/mcp/primitives/essential/tools/deckActions/index.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +23 -23
- package/dist/mcp/primitives/essential/tools/create-deck.tool.d.ts +0 -105
- package/dist/mcp/primitives/essential/tools/create-deck.tool.js +0 -121
- package/dist/mcp/primitives/essential/tools/create-deck.tool.js.map +0 -1
- package/dist/mcp/primitives/essential/tools/deck-stats/deck-stats.tool.js +0 -165
- package/dist/mcp/primitives/essential/tools/deck-stats/deck-stats.tool.js.map +0 -1
- package/dist/mcp/primitives/essential/tools/deck-stats/deck-stats.types.js +0 -3
- package/dist/mcp/primitives/essential/tools/deck-stats/deck-stats.types.js.map +0 -1
- package/dist/mcp/primitives/essential/tools/deck-stats/index.d.ts +0 -2
- package/dist/mcp/primitives/essential/tools/deck-stats/index.js +0 -6
- package/dist/mcp/primitives/essential/tools/deck-stats/index.js.map +0 -1
- package/dist/mcp/primitives/essential/tools/list-decks.tool.d.ts +0 -105
- package/dist/mcp/primitives/essential/tools/list-decks.tool.js +0 -117
- package/dist/mcp/primitives/essential/tools/list-decks.tool.js.map +0 -1
|
@@ -1,117 +0,0 @@
|
|
|
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 ListDecksTool_1;
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.ListDecksTool = 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
|
-
let ListDecksTool = ListDecksTool_1 = class ListDecksTool {
|
|
20
|
-
ankiClient;
|
|
21
|
-
logger = new common_1.Logger(ListDecksTool_1.name);
|
|
22
|
-
constructor(ankiClient) {
|
|
23
|
-
this.ankiClient = ankiClient;
|
|
24
|
-
}
|
|
25
|
-
async listDecks({ include_stats }, context) {
|
|
26
|
-
try {
|
|
27
|
-
const includeStats = include_stats || false;
|
|
28
|
-
this.logger.log(`Listing Anki decks with stats: ${includeStats}`);
|
|
29
|
-
await context.reportProgress({ progress: 10, total: 100 });
|
|
30
|
-
const deckNames = await this.ankiClient.invoke("deckNames");
|
|
31
|
-
if (!deckNames || deckNames.length === 0) {
|
|
32
|
-
this.logger.log("No decks found");
|
|
33
|
-
await context.reportProgress({ progress: 100, total: 100 });
|
|
34
|
-
return (0, anki_utils_1.createSuccessResponse)({
|
|
35
|
-
success: true,
|
|
36
|
-
message: "No decks found in Anki",
|
|
37
|
-
decks: [],
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
await context.reportProgress({ progress: 50, total: 100 });
|
|
41
|
-
let decks;
|
|
42
|
-
let summary;
|
|
43
|
-
if (includeStats) {
|
|
44
|
-
const deckStatsResponse = await this.ankiClient.invoke("getDeckStats", {
|
|
45
|
-
decks: deckNames,
|
|
46
|
-
});
|
|
47
|
-
const statsArray = Object.values(deckStatsResponse);
|
|
48
|
-
decks = deckNames.map((name) => {
|
|
49
|
-
const stats = statsArray.find((s) => s.name === name);
|
|
50
|
-
if (stats) {
|
|
51
|
-
return {
|
|
52
|
-
name,
|
|
53
|
-
stats: {
|
|
54
|
-
deck_id: stats.deck_id || 0,
|
|
55
|
-
name,
|
|
56
|
-
new_count: stats.new_count || 0,
|
|
57
|
-
learn_count: stats.learn_count || 0,
|
|
58
|
-
review_count: stats.review_count || 0,
|
|
59
|
-
total_new: stats.new_count || 0,
|
|
60
|
-
total_cards: stats.total_in_deck || 0,
|
|
61
|
-
},
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
return { name };
|
|
65
|
-
});
|
|
66
|
-
summary = decks.reduce((acc, deck) => {
|
|
67
|
-
if (deck.stats) {
|
|
68
|
-
acc.total_cards += deck.stats.total_cards;
|
|
69
|
-
acc.new_cards += deck.stats.new_count;
|
|
70
|
-
acc.learning_cards += deck.stats.learn_count;
|
|
71
|
-
acc.review_cards += deck.stats.review_count;
|
|
72
|
-
}
|
|
73
|
-
return acc;
|
|
74
|
-
}, { total_cards: 0, new_cards: 0, learning_cards: 0, review_cards: 0 });
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
decks = deckNames.map((name) => ({ name }));
|
|
78
|
-
}
|
|
79
|
-
await context.reportProgress({ progress: 100, total: 100 });
|
|
80
|
-
this.logger.log(`Found ${decks.length} decks`);
|
|
81
|
-
const response = {
|
|
82
|
-
success: true,
|
|
83
|
-
decks,
|
|
84
|
-
total: decks.length,
|
|
85
|
-
};
|
|
86
|
-
if (summary) {
|
|
87
|
-
response.summary = summary;
|
|
88
|
-
}
|
|
89
|
-
return (0, anki_utils_1.createSuccessResponse)(response);
|
|
90
|
-
}
|
|
91
|
-
catch (error) {
|
|
92
|
-
this.logger.error("Failed to list decks", error);
|
|
93
|
-
return (0, anki_utils_1.createErrorResponse)(error);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
exports.ListDecksTool = ListDecksTool;
|
|
98
|
-
__decorate([
|
|
99
|
-
(0, mcp_nest_1.Tool)({
|
|
100
|
-
name: "list_decks",
|
|
101
|
-
description: "List all available Anki decks, optionally with statistics. Remember to sync first at the start of a review session for latest data.",
|
|
102
|
-
parameters: zod_1.z.object({
|
|
103
|
-
include_stats: zod_1.z
|
|
104
|
-
.boolean()
|
|
105
|
-
.default(false)
|
|
106
|
-
.describe("Include card count statistics for each deck"),
|
|
107
|
-
}),
|
|
108
|
-
}),
|
|
109
|
-
__metadata("design:type", Function),
|
|
110
|
-
__metadata("design:paramtypes", [Object, Object]),
|
|
111
|
-
__metadata("design:returntype", Promise)
|
|
112
|
-
], ListDecksTool.prototype, "listDecks", null);
|
|
113
|
-
exports.ListDecksTool = ListDecksTool = ListDecksTool_1 = __decorate([
|
|
114
|
-
(0, common_1.Injectable)(),
|
|
115
|
-
__metadata("design:paramtypes", [anki_connect_client_1.AnkiConnectClient])
|
|
116
|
-
], ListDecksTool);
|
|
117
|
-
//# sourceMappingURL=list-decks.tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list-decks.tool.js","sourceRoot":"","sources":["../../../../../src/mcp/primitives/essential/tools/list-decks.tool.ts"],"names":[],"mappings":"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"}
|