@hu14/memos-mcp 1.0.0 → 1.0.1

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 CHANGED
@@ -12,13 +12,13 @@ A Model Context Protocol (MCP) server for interacting with [Memos](https://useme
12
12
  ## Installation
13
13
 
14
14
  ```bash
15
- npm install -g memos-mcp
15
+ npm install -g @hu14/memos-mcp
16
16
  ```
17
17
 
18
18
  Or run directly with npx:
19
19
 
20
20
  ```bash
21
- npx memos-mcp
21
+ npx @hu14/memos-mcp
22
22
  ```
23
23
 
24
24
  ## Configuration
@@ -108,6 +108,8 @@ Or for local development:
108
108
  - **`create_tag`** - Create a new tag
109
109
  - `name`: Tag name (without # prefix)
110
110
 
111
+ **Returns**: Tag name in success message
112
+
111
113
  - **`delete_tag`** - Delete a tag
112
114
  - `name`: Tag name (e.g., `tags/ideas`)
113
115
 
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js CHANGED
@@ -1,9 +1,8 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
5
- const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
6
- const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
2
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
+ import { z } from "zod";
7
6
  // Environment configuration
8
7
  const MEMOS_API_URL = process.env.MEMOS_API_URL || "http://localhost:5230";
9
8
  const MEMOS_API_TOKEN = process.env.MEMOS_API_TOKEN;
@@ -15,9 +14,9 @@ if (!MEMOS_API_TOKEN) {
15
14
  async function memosApi(path, options = {}) {
16
15
  const url = `${MEMOS_API_URL}${path}`;
17
16
  const headers = {
18
- "Authorization": `Bearer ${MEMOS_API_TOKEN}`,
17
+ Authorization: `Bearer ${MEMOS_API_TOKEN}`,
19
18
  "Content-Type": "application/json",
20
- ...options.headers,
19
+ ...(options.headers || {}),
21
20
  };
22
21
  const response = await fetch(url, { ...options, headers });
23
22
  if (!response.ok) {
@@ -29,6 +28,40 @@ async function memosApi(path, options = {}) {
29
28
  }
30
29
  return response.json();
31
30
  }
31
+ // Zod schemas for validation
32
+ const ListMemosSchema = z.object({
33
+ filter: z.string().optional(),
34
+ limit: z.number().default(10),
35
+ offset: z.number().default(0),
36
+ sort: z.string().default("create_time desc"),
37
+ });
38
+ const GetMemoSchema = z.object({
39
+ name: z.string(),
40
+ });
41
+ const CreateMemoSchema = z.object({
42
+ content: z.string(),
43
+ visibility: z.enum(["PRIVATE", "PROTECTED", "PUBLIC"]).default("PRIVATE"),
44
+ tags: z.array(z.string()).default([]),
45
+ });
46
+ const UpdateMemoSchema = z.object({
47
+ name: z.string(),
48
+ content: z.string().optional(),
49
+ visibility: z.enum(["PRIVATE", "PROTECTED", "PUBLIC"]).optional(),
50
+ tags: z.array(z.string()).optional(),
51
+ });
52
+ const DeleteMemoSchema = z.object({
53
+ name: z.string(),
54
+ });
55
+ const ListTagsSchema = z.object({
56
+ creator: z.string().optional(),
57
+ limit: z.number().default(100),
58
+ });
59
+ const CreateTagSchema = z.object({
60
+ name: z.string(),
61
+ });
62
+ const DeleteTagSchema = z.object({
63
+ name: z.string(),
64
+ });
32
65
  // Tool definitions
33
66
  const TOOLS = [
34
67
  {
@@ -39,7 +72,7 @@ const TOOLS = [
39
72
  properties: {
40
73
  filter: {
41
74
  type: "string",
42
- description: "Filter expression (e.g., 'creator == \"users/1\"', 'tag == \"ideas\"')",
75
+ description: 'Filter expression (e.g., \'creator == "users/1"\', \'tag == "ideas"\')',
43
76
  },
44
77
  limit: {
45
78
  type: "number",
@@ -187,17 +220,21 @@ const TOOLS = [
187
220
  },
188
221
  },
189
222
  ];
190
- // Tool handlers
191
223
  async function handleListMemos(args) {
224
+ const parsed = ListMemosSchema.parse(args);
192
225
  const params = new URLSearchParams();
193
- if (args.filter)
194
- params.append("filter", args.filter);
195
- if (args.limit)
196
- params.append("pageSize", args.limit.toString());
197
- if (args.offset)
198
- params.append("offset", args.offset.toString());
199
- if (args.sort)
200
- params.append("orderBy", args.sort);
226
+ if (parsed.filter) {
227
+ params.append("filter", parsed.filter);
228
+ }
229
+ if (parsed.limit) {
230
+ params.append("pageSize", parsed.limit.toString());
231
+ }
232
+ if (parsed.offset) {
233
+ params.append("offset", parsed.offset.toString());
234
+ }
235
+ if (parsed.sort) {
236
+ params.append("orderBy", parsed.sort);
237
+ }
201
238
  const result = await memosApi(`/api/v1/memos?${params.toString()}`);
202
239
  return {
203
240
  content: [
@@ -209,7 +246,10 @@ async function handleListMemos(args) {
209
246
  };
210
247
  }
211
248
  async function handleGetMemo(args) {
212
- const result = await memosApi(`/api/v1/${args.name}`);
249
+ const parsed = GetMemoSchema.parse(args);
250
+ // Ensure name is properly encoded for URL
251
+ const encodedName = encodeURIComponent(parsed.name);
252
+ const result = await memosApi(`/api/v1/${encodedName}`);
213
253
  return {
214
254
  content: [
215
255
  {
@@ -220,10 +260,11 @@ async function handleGetMemo(args) {
220
260
  };
221
261
  }
222
262
  async function handleCreateMemo(args) {
263
+ const parsed = CreateMemoSchema.parse(args);
223
264
  const body = {
224
- content: args.content,
225
- visibility: args.visibility || "PRIVATE",
226
- tags: args.tags || [],
265
+ content: parsed.content,
266
+ visibility: parsed.visibility,
267
+ tags: parsed.tags,
227
268
  };
228
269
  const result = await memosApi("/api/v1/memos", {
229
270
  method: "POST",
@@ -239,14 +280,17 @@ async function handleCreateMemo(args) {
239
280
  };
240
281
  }
241
282
  async function handleUpdateMemo(args) {
283
+ const parsed = UpdateMemoSchema.parse(args);
284
+ // Build update body with only provided fields
242
285
  const body = {};
243
- if (args.content !== undefined)
244
- body.content = args.content;
245
- if (args.visibility !== undefined)
246
- body.visibility = args.visibility;
247
- if (args.tags !== undefined)
248
- body.tags = args.tags;
249
- const result = await memosApi(`/api/v1/${args.name}`, {
286
+ if (parsed.content !== undefined)
287
+ body.content = parsed.content;
288
+ if (parsed.visibility !== undefined)
289
+ body.visibility = parsed.visibility;
290
+ if (parsed.tags !== undefined)
291
+ body.tags = parsed.tags;
292
+ const encodedName = encodeURIComponent(parsed.name);
293
+ const result = await memosApi(`/api/v1/${encodedName}`, {
250
294
  method: "PATCH",
251
295
  body: JSON.stringify(body),
252
296
  });
@@ -260,24 +304,31 @@ async function handleUpdateMemo(args) {
260
304
  };
261
305
  }
262
306
  async function handleDeleteMemo(args) {
263
- await memosApi(`/api/v1/${args.name}`, {
307
+ const parsed = DeleteMemoSchema.parse(args);
308
+ const encodedName = encodeURIComponent(parsed.name);
309
+ await memosApi(`/api/v1/${encodedName}`, {
264
310
  method: "DELETE",
265
311
  });
312
+ // Extract ID for user-friendly message
313
+ const id = parsed.name.split("/").pop() || parsed.name;
266
314
  return {
267
315
  content: [
268
316
  {
269
317
  type: "text",
270
- text: `Memo ${args.name} deleted successfully.`,
318
+ text: `Memo ${id} deleted successfully.`,
271
319
  },
272
320
  ],
273
321
  };
274
322
  }
275
323
  async function handleListTags(args) {
324
+ const parsed = ListTagsSchema.parse(args);
276
325
  const params = new URLSearchParams();
277
- if (args.creator)
278
- params.append("filter", `creator == "${args.creator}"`);
279
- if (args.limit)
280
- params.append("pageSize", args.limit.toString());
326
+ if (parsed.creator) {
327
+ params.append("filter", `creator == "${parsed.creator}"`);
328
+ }
329
+ if (parsed.limit) {
330
+ params.append("pageSize", parsed.limit.toString());
331
+ }
281
332
  const result = await memosApi(`/api/v1/tags?${params.toString()}`);
282
333
  return {
283
334
  content: [
@@ -289,8 +340,9 @@ async function handleListTags(args) {
289
340
  };
290
341
  }
291
342
  async function handleCreateTag(args) {
343
+ const parsed = CreateTagSchema.parse(args);
292
344
  const body = {
293
- name: args.name,
345
+ name: parsed.name,
294
346
  };
295
347
  const result = await memosApi("/api/v1/tags", {
296
348
  method: "POST",
@@ -300,37 +352,41 @@ async function handleCreateTag(args) {
300
352
  content: [
301
353
  {
302
354
  type: "text",
303
- text: `Tag created successfully:\n${JSON.stringify(result, null, 2)}`,
355
+ text: `Tag "${parsed.name}" created successfully:\n${JSON.stringify(result, null, 2)}`,
304
356
  },
305
357
  ],
306
358
  };
307
359
  }
308
360
  async function handleDeleteTag(args) {
309
- await memosApi(`/api/v1/${args.name}`, {
361
+ const parsed = DeleteTagSchema.parse(args);
362
+ const encodedName = encodeURIComponent(parsed.name);
363
+ await memosApi(`/api/v1/${encodedName}`, {
310
364
  method: "DELETE",
311
365
  });
366
+ // Extract tag name for user-friendly message
367
+ const tagName = parsed.name.split("/").pop() || parsed.name;
312
368
  return {
313
369
  content: [
314
370
  {
315
371
  type: "text",
316
- text: `Tag ${args.name} deleted successfully.`,
372
+ text: `Tag "${tagName}" deleted successfully.`,
317
373
  },
318
374
  ],
319
375
  };
320
376
  }
321
377
  // Main server
322
- const server = new index_js_1.Server({
378
+ const server = new Server({
323
379
  name: "memos-mcp",
324
- version: "1.0.0",
380
+ version: "1.0.1",
325
381
  }, {
326
382
  capabilities: {
327
383
  tools: {},
328
384
  },
329
385
  });
330
- server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
386
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
331
387
  return { tools: TOOLS };
332
388
  });
333
- server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
389
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
334
390
  const { name, arguments: args } = request.params;
335
391
  try {
336
392
  switch (name) {
@@ -355,6 +411,18 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
355
411
  }
356
412
  }
357
413
  catch (error) {
414
+ if (error instanceof z.ZodError) {
415
+ const issues = error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; ");
416
+ return {
417
+ content: [
418
+ {
419
+ type: "text",
420
+ text: `Validation error: ${issues}`,
421
+ },
422
+ ],
423
+ isError: true,
424
+ };
425
+ }
358
426
  const errorMessage = error instanceof Error ? error.message : String(error);
359
427
  return {
360
428
  content: [
@@ -369,7 +437,7 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
369
437
  });
370
438
  // Start server
371
439
  async function main() {
372
- const transport = new stdio_js_1.StdioServerTransport();
440
+ const transport = new StdioServerTransport();
373
441
  await server.connect(transport);
374
442
  console.error("Memos MCP server running on stdio");
375
443
  }
@@ -377,3 +445,4 @@ main().catch((error) => {
377
445
  console.error("Fatal error:", error);
378
446
  process.exit(1);
379
447
  });
448
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,4BAA4B;AAC5B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,uBAAuB,CAAC;AAC3E,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;AAEpD,IAAI,CAAC,eAAe,EAAE,CAAC;IACrB,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,aAAa;AACb,KAAK,UAAU,QAAQ,CACrB,IAAY,EACZ,UAAuB,EAAE;IAEzB,MAAM,GAAG,GAAG,GAAG,aAAa,GAAG,IAAI,EAAE,CAAC;IACtC,MAAM,OAAO,GAA2B;QACtC,aAAa,EAAE,UAAU,eAAe,EAAE;QAC1C,cAAc,EAAE,kBAAkB;QAClC,GAAG,CAAE,OAAO,CAAC,OAAkC,IAAI,EAAE,CAAC;KACvD,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAE3D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;AACvC,CAAC;AAED,6BAA6B;AAC7B,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;CAC7C,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IACzE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACtC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;CAC/B,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,mBAAmB;AACnB,MAAM,KAAK,GAAG;IACZ;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,uDAAuD;QACpE,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAiB;oBACvB,WAAW,EACT,wEAAwE;iBAC3E;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAiB;oBACvB,WAAW,EAAE,iDAAiD;oBAC9D,OAAO,EAAE,EAAE;iBACZ;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAiB;oBACvB,WAAW,EAAE,wCAAwC;oBACrD,OAAO,EAAE,CAAC;iBACX;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAiB;oBACvB,WAAW,EAAE,sDAAsD;oBACnE,OAAO,EAAE,kBAAkB;iBAC5B;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,yBAAyB;QACtC,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAiB;oBACvB,WAAW,EAAE,kCAAkC;iBAChD;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAiB;oBACvB,WAAW,EAAE,kCAAkC;iBAChD;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAiB;oBACvB,WAAW,EAAE,gDAAgD;oBAC7D,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC;oBACxC,OAAO,EAAE,SAAS;iBACnB;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAgB;oBACtB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE;oBAClC,WAAW,EAAE,4BAA4B;iBAC1C;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,yBAAyB;QACtC,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAiB;oBACvB,WAAW,EAAE,kCAAkC;iBAChD;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAiB;oBACvB,WAAW,EAAE,kBAAkB;iBAChC;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAiB;oBACvB,WAAW,EAAE,+CAA+C;oBAC5D,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC;iBACzC;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAgB;oBACtB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE;oBAClC,WAAW,EAAE,mCAAmC;iBACjD;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAiB;oBACvB,WAAW,EAAE,4CAA4C;iBAC1D;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,uCAAuC;QACpD,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAiB;oBACvB,WAAW,EAAE,qCAAqC;iBACnD;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAiB;oBACvB,WAAW,EAAE,kCAAkC;oBAC/C,OAAO,EAAE,GAAG;iBACb;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAiB;oBACvB,WAAW,EAAE,6BAA6B;iBAC3C;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAiB;oBACvB,WAAW,EAAE,yCAAyC;iBACvD;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;CACF,CAAC;AAQF,KAAK,UAAU,eAAe,CAAC,IAAa;IAC1C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IAErC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACpE,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAa;IACxC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,0CAA0C;IAC1C,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC;IACxD,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAa;IAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE;QAC7C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,+BAA+B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACvE;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAa;IAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE5C,8CAA8C;IAC9C,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAChE,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACzE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAEvD,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,WAAW,EAAE,EAAE;QACtD,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,+BAA+B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACvE;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAa;IAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,QAAQ,CAAC,WAAW,WAAW,EAAE,EAAE;QACvC,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;IAEH,uCAAuC;IACvC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC;IACvD,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ,EAAE,wBAAwB;aACzC;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAa;IACzC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IAErC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gBAAgB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACnE,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAa;IAC1C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE;QAC5C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ,MAAM,CAAC,IAAI,4BAA4B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACvF;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAa;IAC1C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,QAAQ,CAAC,WAAW,WAAW,EAAE,EAAE;QACvC,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;IAEH,6CAA6C;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC;IAC5D,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ,OAAO,yBAAyB;aAC/C;SACF;KACF,CAAC;AACJ,CAAC;AAED,cAAc;AACd,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAC;AAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,CAAC;QACH,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,YAAY;gBACf,OAAO,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;YACrC,KAAK,UAAU;gBACb,OAAO,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;YACnC,KAAK,aAAa;gBAChB,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,aAAa;gBAChB,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,aAAa;gBAChB,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,WAAW;gBACd,OAAO,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;YACpC,KAAK,YAAY;gBACf,OAAO,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;YACrC,KAAK,YAAY;gBACf,OAAO,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;YACrC;gBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,qBAAqB,MAAM,EAAE;qBACpC;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,UAAU,YAAY,EAAE;iBAC/B;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,eAAe;AACf,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACrD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hu14/memos-mcp",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "MCP server for Memos - A lightweight, open-source memo hub",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -14,7 +14,8 @@
14
14
  "scripts": {
15
15
  "build": "tsc",
16
16
  "start": "node dist/index.js",
17
- "dev": "npm run build && npm run start"
17
+ "dev": "npm run build && npm run start",
18
+ "prepublishOnly": "npm run build"
18
19
  },
19
20
  "keywords": [
20
21
  "mcp",
@@ -22,7 +23,7 @@
22
23
  "model-context-protocol"
23
24
  ],
24
25
  "author": "",
25
- "license": "ISC",
26
+ "license": "MIT",
26
27
  "engines": {
27
28
  "node": ">=18"
28
29
  },