@laomeifun/my-anki-mcp 0.11.2 → 0.11.3
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/dist/mcp/primitives/essential/tools/add-note.tool.d.ts +1 -1
- package/dist/mcp/primitives/essential/tools/add-note.tool.js +33 -6
- package/dist/mcp/primitives/essential/tools/add-note.tool.js.map +1 -1
- package/dist/mcp/primitives/essential/tools/add-notes.tool.d.ts +1 -1
- package/dist/mcp/primitives/essential/tools/add-notes.tool.js +46 -17
- package/dist/mcp/primitives/essential/tools/add-notes.tool.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@ export declare class AddNoteTool {
|
|
|
7
7
|
addNote({ deckName, modelName, fields, tags, allowDuplicate, duplicateScope, duplicateScopeOptions, }: {
|
|
8
8
|
deckName: string;
|
|
9
9
|
modelName: string;
|
|
10
|
-
fields: Record<string, string
|
|
10
|
+
fields: Record<string, string> | string;
|
|
11
11
|
tags?: string[];
|
|
12
12
|
allowDuplicate?: boolean;
|
|
13
13
|
duplicateScope?: "deck" | "collection";
|
|
@@ -16,6 +16,17 @@ const mcp_nest_1 = require("@rekog/mcp-nest");
|
|
|
16
16
|
const zod_1 = require("zod");
|
|
17
17
|
const anki_connect_client_1 = require("../../../clients/anki-connect.client");
|
|
18
18
|
const anki_utils_1 = require("../../../utils/anki.utils");
|
|
19
|
+
function preprocessFieldsInput(val) {
|
|
20
|
+
if (typeof val === "string") {
|
|
21
|
+
try {
|
|
22
|
+
return JSON.parse(val);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return val;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return val;
|
|
29
|
+
}
|
|
19
30
|
let AddNoteTool = AddNoteTool_1 = class AddNoteTool {
|
|
20
31
|
ankiClient;
|
|
21
32
|
logger = new common_1.Logger(AddNoteTool_1.name);
|
|
@@ -23,6 +34,22 @@ let AddNoteTool = AddNoteTool_1 = class AddNoteTool {
|
|
|
23
34
|
this.ankiClient = ankiClient;
|
|
24
35
|
}
|
|
25
36
|
async addNote({ deckName, modelName, fields, tags, allowDuplicate, duplicateScope, duplicateScopeOptions, }, context) {
|
|
37
|
+
let parsedFields;
|
|
38
|
+
if (typeof fields === "string") {
|
|
39
|
+
try {
|
|
40
|
+
parsedFields = JSON.parse(fields);
|
|
41
|
+
this.logger.warn("fields parameter passed as JSON string instead of object - auto-parsing");
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return (0, anki_utils_1.createErrorResponse)(new Error("Invalid fields parameter: expected object or valid JSON string"), { hint: "Pass fields as an object, not a string" });
|
|
45
|
+
}
|
|
46
|
+
if (typeof parsedFields !== "object" || Array.isArray(parsedFields)) {
|
|
47
|
+
return (0, anki_utils_1.createErrorResponse)(new Error("Invalid fields parameter: parsed value is not an object"), { hint: "fields must be an object with field name keys" });
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
parsedFields = fields;
|
|
52
|
+
}
|
|
26
53
|
try {
|
|
27
54
|
const modelFields = await this.ankiClient.invoke("modelFieldNames", { modelName });
|
|
28
55
|
if (!modelFields || modelFields.length === 0) {
|
|
@@ -33,7 +60,7 @@ let AddNoteTool = AddNoteTool_1 = class AddNoteTool {
|
|
|
33
60
|
});
|
|
34
61
|
}
|
|
35
62
|
const primaryField = modelFields[0];
|
|
36
|
-
const primaryValue =
|
|
63
|
+
const primaryValue = parsedFields[primaryField];
|
|
37
64
|
if (!primaryValue || primaryValue.trim() === "") {
|
|
38
65
|
return (0, anki_utils_1.createErrorResponse)(new Error(`Primary field "${primaryField}" cannot be empty. AnkiConnect requires the first field to have content.`), {
|
|
39
66
|
deckName,
|
|
@@ -47,7 +74,7 @@ let AddNoteTool = AddNoteTool_1 = class AddNoteTool {
|
|
|
47
74
|
const noteParams = {
|
|
48
75
|
deckName: deckName,
|
|
49
76
|
modelName: modelName,
|
|
50
|
-
fields:
|
|
77
|
+
fields: parsedFields,
|
|
51
78
|
};
|
|
52
79
|
if (tags && tags.length > 0) {
|
|
53
80
|
noteParams.tags = tags;
|
|
@@ -87,7 +114,7 @@ let AddNoteTool = AddNoteTool_1 = class AddNoteTool {
|
|
|
87
114
|
}
|
|
88
115
|
await context.reportProgress({ progress: 100, total: 100 });
|
|
89
116
|
this.logger.log(`Successfully created note with ID: ${noteId}`);
|
|
90
|
-
const fieldCount = Object.keys(
|
|
117
|
+
const fieldCount = Object.keys(parsedFields).length;
|
|
91
118
|
const tagCount = tags ? tags.length : 0;
|
|
92
119
|
return (0, anki_utils_1.createSuccessResponse)({
|
|
93
120
|
success: true,
|
|
@@ -123,7 +150,7 @@ let AddNoteTool = AddNoteTool_1 = class AddNoteTool {
|
|
|
123
150
|
return (0, anki_utils_1.createErrorResponse)(error, {
|
|
124
151
|
deckName,
|
|
125
152
|
modelName,
|
|
126
|
-
providedFields: Object.keys(
|
|
153
|
+
providedFields: Object.keys(parsedFields),
|
|
127
154
|
hint: "Field mismatch. Use modelFieldNames tool to see required fields for this model.",
|
|
128
155
|
});
|
|
129
156
|
}
|
|
@@ -147,9 +174,9 @@ __decorate([
|
|
|
147
174
|
.string()
|
|
148
175
|
.min(1)
|
|
149
176
|
.describe('The note type/model to use (e.g., "Basic", "Cloze")'),
|
|
150
|
-
fields: zod_1.z
|
|
177
|
+
fields: zod_1.z.preprocess(preprocessFieldsInput, zod_1.z
|
|
151
178
|
.record(zod_1.z.string(), zod_1.z.string())
|
|
152
|
-
.describe('Field values as key-value pairs (e.g., {"Front": "question", "Back": "answer"})'),
|
|
179
|
+
.describe('Field values as key-value pairs (e.g., {"Front": "question", "Back": "answer"})')),
|
|
153
180
|
tags: zod_1.z
|
|
154
181
|
.array(zod_1.z.string())
|
|
155
182
|
.optional()
|
|
@@ -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,0DAGgC;
|
|
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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"}
|
|
@@ -23,7 +23,7 @@ export declare class AddNotesTool {
|
|
|
23
23
|
private readonly logger;
|
|
24
24
|
constructor(ankiClient: AnkiConnectClient);
|
|
25
25
|
addNotes({ notes }: {
|
|
26
|
-
notes: NoteInput[];
|
|
26
|
+
notes: NoteInput[] | string;
|
|
27
27
|
}, context: Context): Promise<{
|
|
28
28
|
[x: string]: unknown;
|
|
29
29
|
content: ({
|
|
@@ -16,6 +16,17 @@ const mcp_nest_1 = require("@rekog/mcp-nest");
|
|
|
16
16
|
const zod_1 = require("zod");
|
|
17
17
|
const anki_connect_client_1 = require("../../../clients/anki-connect.client");
|
|
18
18
|
const anki_utils_1 = require("../../../utils/anki.utils");
|
|
19
|
+
function preprocessNotesInput(val) {
|
|
20
|
+
if (typeof val === "string") {
|
|
21
|
+
try {
|
|
22
|
+
return JSON.parse(val);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return val;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return val;
|
|
29
|
+
}
|
|
19
30
|
const NoteInputSchema = zod_1.z.object({
|
|
20
31
|
deckName: zod_1.z.string().min(1).describe("The deck to add the note to"),
|
|
21
32
|
modelName: zod_1.z
|
|
@@ -65,10 +76,26 @@ let AddNotesTool = AddNotesTool_1 = class AddNotesTool {
|
|
|
65
76
|
this.ankiClient = ankiClient;
|
|
66
77
|
}
|
|
67
78
|
async addNotes({ notes }, context) {
|
|
79
|
+
let parsedNotes;
|
|
80
|
+
if (typeof notes === "string") {
|
|
81
|
+
try {
|
|
82
|
+
parsedNotes = JSON.parse(notes);
|
|
83
|
+
this.logger.warn("notes parameter passed as JSON string instead of array - auto-parsing");
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return (0, anki_utils_1.createErrorResponse)(new Error("Invalid notes parameter: expected array or valid JSON string"), { hint: "Pass notes as an array, not a string" });
|
|
87
|
+
}
|
|
88
|
+
if (!Array.isArray(parsedNotes)) {
|
|
89
|
+
return (0, anki_utils_1.createErrorResponse)(new Error("Invalid notes parameter: parsed value is not an array"), { hint: "notes must be an array of note objects" });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
parsedNotes = notes;
|
|
94
|
+
}
|
|
68
95
|
try {
|
|
69
|
-
this.logger.log(`Adding ${
|
|
96
|
+
this.logger.log(`Adding ${parsedNotes.length} note(s) in batch`);
|
|
70
97
|
await context.reportProgress({ progress: 10, total: 100 });
|
|
71
|
-
const uniqueModels = [...new Set(
|
|
98
|
+
const uniqueModels = [...new Set(parsedNotes.map((n) => n.modelName))];
|
|
72
99
|
const modelFieldsMap = new Map();
|
|
73
100
|
for (const modelName of uniqueModels) {
|
|
74
101
|
const fields = await this.ankiClient.invoke("modelFieldNames", { modelName });
|
|
@@ -80,8 +107,8 @@ let AddNotesTool = AddNotesTool_1 = class AddNotesTool {
|
|
|
80
107
|
}
|
|
81
108
|
modelFieldsMap.set(modelName, fields);
|
|
82
109
|
}
|
|
83
|
-
for (let i = 0; i <
|
|
84
|
-
const note =
|
|
110
|
+
for (let i = 0; i < parsedNotes.length; i++) {
|
|
111
|
+
const note = parsedNotes[i];
|
|
85
112
|
const modelFields = modelFieldsMap.get(note.modelName);
|
|
86
113
|
const primaryField = modelFields[0];
|
|
87
114
|
const primaryValue = note.fields[primaryField];
|
|
@@ -96,7 +123,7 @@ let AddNotesTool = AddNotesTool_1 = class AddNotesTool {
|
|
|
96
123
|
}
|
|
97
124
|
}
|
|
98
125
|
await context.reportProgress({ progress: 25, total: 100 });
|
|
99
|
-
const ankiNotes =
|
|
126
|
+
const ankiNotes = parsedNotes.map((note) => {
|
|
100
127
|
const noteParams = {
|
|
101
128
|
deckName: note.deckName,
|
|
102
129
|
modelName: note.modelName,
|
|
@@ -128,7 +155,7 @@ let AddNotesTool = AddNotesTool_1 = class AddNotesTool {
|
|
|
128
155
|
const noteIds = await this.ankiClient.invoke("addNotes", { notes: ankiNotes });
|
|
129
156
|
await context.reportProgress({ progress: 75, total: 100 });
|
|
130
157
|
const results = noteIds.map((noteId, index) => {
|
|
131
|
-
const note =
|
|
158
|
+
const note = parsedNotes[index];
|
|
132
159
|
if (noteId !== null) {
|
|
133
160
|
return {
|
|
134
161
|
index,
|
|
@@ -156,9 +183,9 @@ let AddNotesTool = AddNotesTool_1 = class AddNotesTool {
|
|
|
156
183
|
const failedCount = failedNotes.length;
|
|
157
184
|
await context.reportProgress({ progress: 100, total: 100 });
|
|
158
185
|
if (successCount === 0) {
|
|
159
|
-
this.logger.warn(`All ${
|
|
186
|
+
this.logger.warn(`All ${parsedNotes.length} notes failed to create`);
|
|
160
187
|
return (0, anki_utils_1.createErrorResponse)(new Error("All notes failed to create"), {
|
|
161
|
-
totalRequested:
|
|
188
|
+
totalRequested: parsedNotes.length,
|
|
162
189
|
successCount: 0,
|
|
163
190
|
failedCount,
|
|
164
191
|
results,
|
|
@@ -167,12 +194,12 @@ let AddNotesTool = AddNotesTool_1 = class AddNotesTool {
|
|
|
167
194
|
}
|
|
168
195
|
const createdNoteIds = successfulNotes.map((r) => r.noteId);
|
|
169
196
|
const message = failedCount > 0
|
|
170
|
-
? `Created ${successCount} of ${
|
|
197
|
+
? `Created ${successCount} of ${parsedNotes.length} notes. ${failedCount} note(s) failed.`
|
|
171
198
|
: `Successfully created all ${successCount} notes`;
|
|
172
199
|
this.logger.log(message);
|
|
173
200
|
return (0, anki_utils_1.createSuccessResponse)({
|
|
174
201
|
success: true,
|
|
175
|
-
totalRequested:
|
|
202
|
+
totalRequested: parsedNotes.length,
|
|
176
203
|
successCount,
|
|
177
204
|
failedCount,
|
|
178
205
|
noteIds: createdNoteIds,
|
|
@@ -188,27 +215,29 @@ let AddNotesTool = AddNotesTool_1 = class AddNotesTool {
|
|
|
188
215
|
if (error instanceof Error) {
|
|
189
216
|
if (error.message.includes("model")) {
|
|
190
217
|
return (0, anki_utils_1.createErrorResponse)(error, {
|
|
191
|
-
totalRequested:
|
|
218
|
+
totalRequested: parsedNotes.length,
|
|
192
219
|
hint: "One or more models not found. Use modelNames tool to see available models.",
|
|
193
220
|
});
|
|
194
221
|
}
|
|
195
222
|
if (error.message.includes("deck")) {
|
|
196
223
|
return (0, anki_utils_1.createErrorResponse)(error, {
|
|
197
|
-
totalRequested:
|
|
224
|
+
totalRequested: parsedNotes.length,
|
|
198
225
|
hint: "One or more decks not found. Use list_decks tool to see available decks or createDeck to create new ones.",
|
|
199
226
|
});
|
|
200
227
|
}
|
|
201
228
|
if (error.message.includes("field")) {
|
|
202
|
-
const uniqueModels = [
|
|
229
|
+
const uniqueModels = [
|
|
230
|
+
...new Set(parsedNotes.map((n) => n.modelName)),
|
|
231
|
+
];
|
|
203
232
|
return (0, anki_utils_1.createErrorResponse)(error, {
|
|
204
|
-
totalRequested:
|
|
233
|
+
totalRequested: parsedNotes.length,
|
|
205
234
|
modelsUsed: uniqueModels,
|
|
206
235
|
hint: "Field name mismatch. Use modelFieldNames tool to see required fields for each model. Common models: Basic (Front, Back), Cloze (Text, Back Extra), Basic (and reversed card) (Front, Back).",
|
|
207
236
|
});
|
|
208
237
|
}
|
|
209
238
|
}
|
|
210
239
|
return (0, anki_utils_1.createErrorResponse)(error, {
|
|
211
|
-
totalRequested:
|
|
240
|
+
totalRequested: parsedNotes.length,
|
|
212
241
|
hint: "Make sure Anki is running and all deck/model names are correct",
|
|
213
242
|
});
|
|
214
243
|
}
|
|
@@ -223,11 +252,11 @@ __decorate([
|
|
|
223
252
|
"Use modelNames to see available note types and modelFieldNames to see required fields. " +
|
|
224
253
|
"IMPORTANT: Only create notes that were explicitly requested by the user.",
|
|
225
254
|
parameters: zod_1.z.object({
|
|
226
|
-
notes: zod_1.z
|
|
255
|
+
notes: zod_1.z.preprocess(preprocessNotesInput, zod_1.z
|
|
227
256
|
.array(NoteInputSchema)
|
|
228
257
|
.min(1)
|
|
229
258
|
.max(25)
|
|
230
|
-
.describe("Array of notes to add (1-25 notes). Each note requires deckName, modelName, and fields."),
|
|
259
|
+
.describe("Array of notes to add (1-25 notes). Each note requires deckName, modelName, and fields.")),
|
|
231
260
|
}),
|
|
232
261
|
}),
|
|
233
262
|
__metadata("design:type", Function),
|
|
@@ -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,8EAAsE;AAEtE,0DAGgC;
|
|
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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"}
|