@chriscurrycc/memos-mcp 0.2.0 → 1.1.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 +29 -0
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js.map +1 -1
- package/dist/prompts/index.d.ts +6 -0
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +150 -27
- package/dist/prompts/index.js.map +1 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +23 -5
- package/dist/resources/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +10 -2
- package/dist/server.js.map +1 -1
- package/dist/tools/memos.d.ts.map +1 -1
- package/dist/tools/memos.js +55 -110
- package/dist/tools/memos.js.map +1 -1
- package/dist/tools/relations.d.ts.map +1 -1
- package/dist/tools/relations.js +116 -31
- package/dist/tools/relations.js.map +1 -1
- package/dist/tools/resources.d.ts.map +1 -1
- package/dist/tools/resources.js +78 -17
- package/dist/tools/resources.js.map +1 -1
- package/dist/tools/review.d.ts.map +1 -1
- package/dist/tools/review.js +81 -52
- package/dist/tools/review.js.map +1 -1
- package/dist/tools/tags.d.ts.map +1 -1
- package/dist/tools/tags.js +32 -30
- package/dist/tools/tags.js.map +1 -1
- package/dist/tools/utils.d.ts +4 -0
- package/dist/tools/utils.d.ts.map +1 -0
- package/dist/tools/utils.js +34 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/types.d.ts +6 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/tools/comments.d.ts +0 -4
- package/dist/tools/comments.d.ts.map +0 -1
- package/dist/tools/comments.js +0 -21
- package/dist/tools/comments.js.map +0 -1
- package/dist/tools/reactions.d.ts +0 -4
- package/dist/tools/reactions.d.ts.map +0 -1
- package/dist/tools/reactions.js +0 -25
- package/dist/tools/reactions.js.map +0 -1
package/README.md
CHANGED
|
@@ -102,11 +102,40 @@ claude mcp add --scope user memos -e MEMOS_URL=https://your-memos-instance.com -
|
|
|
102
102
|
| `update_tag` | Update a tag's pinned status or emoji |
|
|
103
103
|
| `rename_tag` | Rename a tag across all memos |
|
|
104
104
|
|
|
105
|
+
### Resources
|
|
106
|
+
|
|
107
|
+
| Tool | Description |
|
|
108
|
+
|------|-------------|
|
|
109
|
+
| `list_resources` | List all resources (attachments) |
|
|
110
|
+
| `upload_resource` | Upload a file (base64 encoded), with optional memo linking |
|
|
111
|
+
| `delete_resource` | Delete a resource |
|
|
112
|
+
|
|
113
|
+
### Relations
|
|
114
|
+
|
|
115
|
+
| Tool | Description |
|
|
116
|
+
|------|-------------|
|
|
117
|
+
| `list_memo_relations` | List memo relations with recursive graph traversal (depth 1-5) |
|
|
118
|
+
| `set_memo_relations` | Add or remove REFERENCE relations between memos |
|
|
119
|
+
|
|
120
|
+
### Review
|
|
121
|
+
|
|
122
|
+
| Tool | Description |
|
|
123
|
+
|------|-------------|
|
|
124
|
+
| `get_review_memos` | Get today's spaced-repetition review batch |
|
|
125
|
+
| `complete_review` | Mark the current review batch as completed |
|
|
126
|
+
| `get_on_this_day_memos` | Get memos created on this day in previous years, grouped by year |
|
|
127
|
+
| `update_review_setting` | Update review preferences (batch size, tag filters) |
|
|
128
|
+
|
|
105
129
|
## Prompts
|
|
106
130
|
|
|
107
131
|
| Prompt | Description |
|
|
108
132
|
|--------|-------------|
|
|
109
133
|
| `capture` | Quick-save a thought as a memo |
|
|
134
|
+
| `review` | Start a guided spaced-repetition review session |
|
|
135
|
+
| `on_this_day` | See memos from this day in previous years |
|
|
136
|
+
| `digest` | Summarize memo activity for a time period (today/week/month) |
|
|
137
|
+
| `tag_overview` | Review your tag system and organization |
|
|
138
|
+
| `relation_graph` | Explore the relation graph starting from a memo |
|
|
110
139
|
|
|
111
140
|
## Resources
|
|
112
141
|
|
package/dist/client.d.ts
CHANGED
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACtB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,YAAY,CAAuB;gBAE/B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAMpC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAOvC,OAAO,CAAC,OAAO;IAOT,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAiBjE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAajD,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAqBnF,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAWpD"}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts/index.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
export interface PromptDefinition {
|
|
3
|
+
description: string;
|
|
4
|
+
text: string;
|
|
5
|
+
}
|
|
6
|
+
/** Returns the static text for each prompt, keyed by prompt name. */
|
|
7
|
+
export declare const getPromptDefinitions: () => Record<string, PromptDefinition>;
|
|
2
8
|
export declare const registerPrompts: (server: McpServer) => void;
|
|
3
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,eAAO,MAAM,eAAe,GAAI,QAAQ,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,QAAO,MAAM,CAAC,MAAM,EAAE,gBAAgB,CA2DrE,CAAC;AAEH,eAAO,MAAM,eAAe,GAAI,QAAQ,SAAS,SA4JhD,CAAC"}
|
package/dist/prompts/index.js
CHANGED
|
@@ -1,9 +1,74 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
/** Returns the static text for each prompt, keyed by prompt name. */
|
|
3
|
+
export const getPromptDefinitions = () => ({
|
|
4
|
+
capture: {
|
|
5
|
+
description: "Quick-save a thought as a memo",
|
|
6
|
+
text: "Create a memo with the provided content using the create_memo tool.",
|
|
7
|
+
},
|
|
8
|
+
review: {
|
|
9
|
+
description: "Start a spaced-repetition review session (间隔回顾)",
|
|
10
|
+
text: `Start a memo review session:
|
|
11
|
+
1. Call get_review_memos to get today's review batch
|
|
12
|
+
2. If completed=true, let me know today's review is done and ask if I want to load a new batch (refresh=true)
|
|
13
|
+
3. Otherwise, present memos ONE AT A TIME in an interactive flow:
|
|
14
|
+
a. Use get_memo to fetch the full content of the FIRST memo and present it
|
|
15
|
+
b. Present the memo with ALL of its content (do not omit anything). Include:
|
|
16
|
+
- Created time and updated time at the top
|
|
17
|
+
- The full memo content with proper formatting (keep inline tags as-is in the content)
|
|
18
|
+
- If there are tags NOT already visible at the end of the content, display them highlighted at the bottom. If tags are already at the end of the content, no need to repeat them.
|
|
19
|
+
You may reformat for readability but must preserve the exact markdown formatting (bold, italic, links, etc.) from the original content. Do not drop any content or tags.
|
|
20
|
+
c. Wait for the user to confirm before moving to the next memo (e.g. user says "next", "ok", "continue", etc.)
|
|
21
|
+
d. Repeat for each memo until all memos have been reviewed
|
|
22
|
+
4. After the LAST memo is presented and the user confirms, ask the user if they want to mark this review batch as completed
|
|
23
|
+
5. Only call complete_review with the memo IDs after the user explicitly confirms completion
|
|
24
|
+
6. Congratulate me on completing the review`,
|
|
25
|
+
},
|
|
26
|
+
on_this_day: {
|
|
27
|
+
description: "See memos from this day in previous years (历史上的今天)",
|
|
28
|
+
text: `Show me my "On This Day" memories:
|
|
29
|
+
1. Call get_on_this_day_memos to get memos from this day in previous years
|
|
30
|
+
2. Present them grouped by year, starting from the most recent
|
|
31
|
+
3. For each memo, use get_memo to show the full content
|
|
32
|
+
4. Add a brief reflection on how my thoughts or interests have evolved over the years`,
|
|
33
|
+
},
|
|
34
|
+
digest: {
|
|
35
|
+
description: "Summarize memo activity for a time period",
|
|
36
|
+
text: "Create a digest of my memo activity for the specified period.",
|
|
37
|
+
},
|
|
38
|
+
tag_overview: {
|
|
39
|
+
description: "Review your tag system and organization",
|
|
40
|
+
text: `Give me an overview of my tag system:
|
|
41
|
+
1. Call list_tags to get all top-level tags with counts
|
|
42
|
+
2. For tags with children (hasChildren=true), call list_tags with parent param to show the hierarchy
|
|
43
|
+
3. Call list_tags with pinnedOnly=true to highlight my pinned tags
|
|
44
|
+
4. Analyze and present:
|
|
45
|
+
- Tag hierarchy structure
|
|
46
|
+
- Most used vs rarely used tags
|
|
47
|
+
- Pinned tags and their usage
|
|
48
|
+
- Suggestions for cleanup (similar tags that could be merged, unused tags, etc.)`,
|
|
49
|
+
},
|
|
50
|
+
relation_graph: {
|
|
51
|
+
description: "Explore the relation graph starting from a memo (关系图谱)",
|
|
52
|
+
text: `Explore the relation graph starting from the specified memo:
|
|
53
|
+
1. Call get_memo to show the starting memo's content
|
|
54
|
+
2. Call list_memo_relations with the memo id and depth=5 to get the full relation graph
|
|
55
|
+
3. For each connected memo, call get_memo to understand its content
|
|
56
|
+
4. Present:
|
|
57
|
+
- A text-based visualization of the graph structure (which memos reference which)
|
|
58
|
+
- Brief summary of each connected memo
|
|
59
|
+
- The themes and topics that connect these memos
|
|
60
|
+
- Any interesting patterns or clusters in the graph`,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
2
63
|
export const registerPrompts = (server) => {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
64
|
+
const defs = getPromptDefinitions();
|
|
65
|
+
server.registerPrompt("capture", {
|
|
66
|
+
description: defs.capture.description,
|
|
67
|
+
argsSchema: {
|
|
68
|
+
content: z.string().describe("The thought or note to capture"),
|
|
69
|
+
tags: z.string().optional().describe("Comma-separated tags to add, e.g. 'idea,project'"),
|
|
70
|
+
visibility: z.enum(["PRIVATE", "PROTECTED", "PUBLIC"]).default("PRIVATE").describe("Memo visibility"),
|
|
71
|
+
},
|
|
7
72
|
}, ({ content, tags, visibility }) => {
|
|
8
73
|
let memoContent = content;
|
|
9
74
|
if (tags) {
|
|
@@ -25,43 +90,101 @@ export const registerPrompts = (server) => {
|
|
|
25
90
|
],
|
|
26
91
|
};
|
|
27
92
|
});
|
|
28
|
-
server.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
2. Present each memo one by one with its content (use get_memo for full details)
|
|
38
|
-
3. After presenting all memos, ask if I'd like to see more or stop
|
|
39
|
-
4. Optionally suggest related memos based on tags`,
|
|
40
|
-
},
|
|
93
|
+
server.registerPrompt("review", {
|
|
94
|
+
description: defs.review.description,
|
|
95
|
+
}, () => ({
|
|
96
|
+
messages: [
|
|
97
|
+
{
|
|
98
|
+
role: "user",
|
|
99
|
+
content: {
|
|
100
|
+
type: "text",
|
|
101
|
+
text: defs.review.text,
|
|
41
102
|
},
|
|
42
|
-
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
}));
|
|
106
|
+
server.registerPrompt("on_this_day", {
|
|
107
|
+
description: defs.on_this_day.description,
|
|
108
|
+
}, () => ({
|
|
109
|
+
messages: [
|
|
110
|
+
{
|
|
111
|
+
role: "user",
|
|
112
|
+
content: {
|
|
113
|
+
type: "text",
|
|
114
|
+
text: defs.on_this_day.text,
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
}));
|
|
119
|
+
server.registerPrompt("digest", {
|
|
120
|
+
description: defs.digest.description,
|
|
121
|
+
argsSchema: {
|
|
122
|
+
period: z.enum(["today", "week", "month"]).default("week").describe("Time period to summarize"),
|
|
123
|
+
},
|
|
124
|
+
}, ({ period }) => {
|
|
125
|
+
const periodMap = {
|
|
126
|
+
today: { days: 1, label: "today" },
|
|
127
|
+
week: { days: 7, label: "the past week" },
|
|
128
|
+
month: { days: 30, label: "the past month" },
|
|
43
129
|
};
|
|
44
|
-
|
|
45
|
-
server.prompt("daily_digest", "Summarize recent memo activity", {}, () => {
|
|
130
|
+
const { days, label } = periodMap[period];
|
|
46
131
|
return {
|
|
47
132
|
messages: [
|
|
48
133
|
{
|
|
49
134
|
role: "user",
|
|
50
135
|
content: {
|
|
51
136
|
type: "text",
|
|
52
|
-
text: `Create a
|
|
53
|
-
1. Call list_memos with pageSize=
|
|
54
|
-
2. Call list_tags to see
|
|
137
|
+
text: `Create a digest of my memo activity for ${label}:
|
|
138
|
+
1. Call list_memos with startDate set to ${days} days ago, pageSize=100 to get recent memos
|
|
139
|
+
2. Call list_tags to see tag usage patterns
|
|
55
140
|
3. Summarize:
|
|
56
|
-
-
|
|
57
|
-
- Key themes and topics based on tags
|
|
141
|
+
- Total number of memos created/updated in this period
|
|
142
|
+
- Key themes and topics based on tags and content
|
|
58
143
|
- Any pinned memos that might need attention
|
|
59
|
-
- Any memos with incomplete tasks (
|
|
60
|
-
|
|
144
|
+
- Any memos with incomplete tasks (call list_memos with hasIncompleteTasks=true)
|
|
145
|
+
- Trends or patterns you notice
|
|
146
|
+
4. Present as a concise briefing`,
|
|
61
147
|
},
|
|
62
148
|
},
|
|
63
149
|
],
|
|
64
150
|
};
|
|
65
151
|
});
|
|
152
|
+
server.registerPrompt("tag_overview", {
|
|
153
|
+
description: defs.tag_overview.description,
|
|
154
|
+
}, () => ({
|
|
155
|
+
messages: [
|
|
156
|
+
{
|
|
157
|
+
role: "user",
|
|
158
|
+
content: {
|
|
159
|
+
type: "text",
|
|
160
|
+
text: defs.tag_overview.text,
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
],
|
|
164
|
+
}));
|
|
165
|
+
server.registerPrompt("relation_graph", {
|
|
166
|
+
description: defs.relation_graph.description,
|
|
167
|
+
argsSchema: {
|
|
168
|
+
memo: z.string().describe("Memo ID or UID to start from"),
|
|
169
|
+
},
|
|
170
|
+
}, ({ memo }) => ({
|
|
171
|
+
messages: [
|
|
172
|
+
{
|
|
173
|
+
role: "user",
|
|
174
|
+
content: {
|
|
175
|
+
type: "text",
|
|
176
|
+
text: `Explore the relation graph starting from memo ${memo}:
|
|
177
|
+
1. Call get_memo to show the starting memo's content
|
|
178
|
+
2. Call list_memo_relations with id="${memo}" and depth=5 to get the full relation graph
|
|
179
|
+
3. For each connected memo, call get_memo to understand its content
|
|
180
|
+
4. Present:
|
|
181
|
+
- A text-based visualization of the graph structure (which memos reference which)
|
|
182
|
+
- Brief summary of each connected memo
|
|
183
|
+
- The themes and topics that connect these memos
|
|
184
|
+
- Any interesting patterns or clusters in the graph`,
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
}));
|
|
66
189
|
};
|
|
67
190
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,eAAO,MAAM,iBAAiB,GAAI,QAAQ,SAAS,EAAE,QAAQ,WAAW,SA8DvE,CAAC"}
|
package/dist/resources/index.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
+
import { getPromptDefinitions } from "../prompts/index.js";
|
|
1
2
|
export const registerResources = (server, client) => {
|
|
2
|
-
server.
|
|
3
|
+
server.registerResource("memo", "memo://memos/{uid}", { description: "A memo by its UID", mimeType: "text/markdown" }, async (uri) => {
|
|
3
4
|
const uid = uri.pathname.split("/").pop();
|
|
4
5
|
if (!uid) {
|
|
5
6
|
throw new Error("Invalid memo URI: missing UID");
|
|
6
7
|
}
|
|
7
8
|
const memo = await client.get(`/api/v1/memos:by-uid/${uid}`);
|
|
8
|
-
|
|
9
|
+
const id = memo.name?.match(/^memos\/(\d+)$/)?.[1];
|
|
9
10
|
const frontmatter = [
|
|
10
11
|
"---",
|
|
12
|
+
id ? `id: ${id}` : null,
|
|
11
13
|
`uid: ${memo.uid}`,
|
|
12
|
-
`name: ${memo.name}`,
|
|
13
|
-
`creator: ${memo.creator}`,
|
|
14
14
|
`visibility: ${memo.visibility}`,
|
|
15
|
-
`pinned:
|
|
15
|
+
memo.pinned ? `pinned: true` : null,
|
|
16
16
|
`created: ${memo.createTime}`,
|
|
17
17
|
`updated: ${memo.updateTime}`,
|
|
18
18
|
memo.tags?.length ? `tags: [${memo.tags.join(", ")}]` : null,
|
|
@@ -30,5 +30,23 @@ export const registerResources = (server, client) => {
|
|
|
30
30
|
],
|
|
31
31
|
};
|
|
32
32
|
});
|
|
33
|
+
// Expose prompts as readable resources so the assistant can access them
|
|
34
|
+
// programmatically (e.g. from channel conversations where slash commands
|
|
35
|
+
// are not available).
|
|
36
|
+
const prompts = getPromptDefinitions();
|
|
37
|
+
for (const [name, prompt] of Object.entries(prompts)) {
|
|
38
|
+
server.registerResource(`prompt-${name}`, `memo://prompts/${name}`, {
|
|
39
|
+
description: `Prompt: ${prompt.description}`,
|
|
40
|
+
mimeType: "text/markdown",
|
|
41
|
+
}, async (uri) => ({
|
|
42
|
+
contents: [
|
|
43
|
+
{
|
|
44
|
+
uri: uri.href,
|
|
45
|
+
mimeType: "text/markdown",
|
|
46
|
+
text: prompt.text,
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
33
51
|
};
|
|
34
52
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAiB,EAAE,MAAmB,EAAE,EAAE;IAC1E,MAAM,CAAC,gBAAgB,CACrB,MAAM,EACN,oBAAoB,EACpB,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,EAC/D,KAAK,EAAE,GAAG,EAAE,EAAE;QACZ,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAO,wBAAwB,GAAG,EAAE,CAAC,CAAC;QAEnE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG;YAClB,KAAK;YACL,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI;YACvB,QAAQ,IAAI,CAAC,GAAG,EAAE;YAClB,eAAe,IAAI,CAAC,UAAU,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;YACnC,YAAY,IAAI,CAAC,UAAU,EAAE;YAC7B,YAAY,IAAI,CAAC,UAAU,EAAE;YAC7B,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;YAC5D,KAAK;SACN;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,eAAe;oBACzB,IAAI,EAAE,GAAG,WAAW,OAAO,IAAI,CAAC,OAAO,EAAE;iBAC1C;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,wEAAwE;IACxE,yEAAyE;IACzE,sBAAsB;IACtB,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,gBAAgB,CACrB,UAAU,IAAI,EAAE,EAChB,kBAAkB,IAAI,EAAE,EACxB;YACE,WAAW,EAAE,WAAW,MAAM,CAAC,WAAW,EAAE;YAC5C,QAAQ,EAAE,eAAe;SAC1B,EACD,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YACd,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,QAAQ,EAAE,eAAe;oBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB;aACF;SACF,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAapE,eAAO,MAAM,YAAY,iBAqCxB,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -2,6 +2,10 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
2
2
|
import { MemosClient } from "./client.js";
|
|
3
3
|
import { registerMemoTools } from "./tools/memos.js";
|
|
4
4
|
import { registerTagTools } from "./tools/tags.js";
|
|
5
|
+
import { registerResourceTools } from "./tools/resources.js";
|
|
6
|
+
import { registerRelationTools } from "./tools/relations.js";
|
|
7
|
+
import { registerReviewTools } from "./tools/review.js";
|
|
8
|
+
import { registerPrompts } from "./prompts/index.js";
|
|
5
9
|
import { registerResources } from "./resources/index.js";
|
|
6
10
|
const VALID_VISIBILITIES = ["PRIVATE", "PROTECTED", "PUBLIC"];
|
|
7
11
|
export const createServer = () => {
|
|
@@ -22,11 +26,15 @@ export const createServer = () => {
|
|
|
22
26
|
const client = new MemosClient(memosUrl, memosToken);
|
|
23
27
|
const server = new McpServer({
|
|
24
28
|
name: "memos-mcp",
|
|
25
|
-
version: "0.
|
|
29
|
+
version: "1.0.0",
|
|
26
30
|
});
|
|
27
31
|
registerMemoTools(server, client, { defaultVisibility });
|
|
28
32
|
registerTagTools(server, client);
|
|
29
|
-
|
|
33
|
+
registerResourceTools(server, client);
|
|
34
|
+
registerRelationTools(server, client);
|
|
35
|
+
registerReviewTools(server, client);
|
|
36
|
+
registerPrompts(server);
|
|
37
|
+
// Register MCP resources
|
|
30
38
|
registerResources(server, client);
|
|
31
39
|
return server;
|
|
32
40
|
};
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAC;AAGvE,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAE3C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,WAAW,EAAE,CAAC;IAC1E,MAAM,iBAAiB,GACrB,aAAa,IAAI,kBAAkB,CAAC,QAAQ,CAAC,aAA2B,CAAC;QACvE,CAAC,CAAE,aAA4B;QAC/B,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACzD,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAC;AAGvE,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAE3C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,WAAW,EAAE,CAAC;IAC1E,MAAM,iBAAiB,GACrB,aAAa,IAAI,kBAAkB,CAAC,QAAQ,CAAC,aAA2B,CAAC;QACvE,CAAC,CAAE,aAA4B;QAC/B,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACzD,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,eAAe,CAAC,MAAM,CAAC,CAAC;IAExB,yBAAyB;IACzB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memos.d.ts","sourceRoot":"","sources":["../../src/tools/memos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"memos.d.ts","sourceRoot":"","sources":["../../src/tools/memos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,KAAK,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAsFrD,UAAU,gBAAgB;IACxB,iBAAiB,EAAE,UAAU,CAAC;CAC/B;AAED,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,SAAS,EACjB,QAAQ,WAAW,EACnB,SAAS,gBAAgB,SAiK1B,CAAC"}
|