remnote-mcp-server 0.14.1 → 0.15.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.
Files changed (49) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +82 -28
  3. package/dist/cli.d.ts +2 -1
  4. package/dist/cli.js +9 -2
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config.d.ts +14 -2
  7. package/dist/config.js +210 -10
  8. package/dist/config.js.map +1 -1
  9. package/dist/daemon.d.ts +61 -0
  10. package/dist/daemon.js +735 -0
  11. package/dist/daemon.js.map +1 -0
  12. package/dist/index.js +6 -3
  13. package/dist/index.js.map +1 -1
  14. package/dist/remnote-cli/cli.js +4 -0
  15. package/dist/remnote-cli/cli.js.map +1 -1
  16. package/dist/remnote-cli/client/mcp-server-client.js +7 -1
  17. package/dist/remnote-cli/client/mcp-server-client.js.map +1 -1
  18. package/dist/remnote-cli/commands/content-input.d.ts +0 -12
  19. package/dist/remnote-cli/commands/content-input.js +0 -20
  20. package/dist/remnote-cli/commands/content-input.js.map +1 -1
  21. package/dist/remnote-cli/commands/create.js +3 -3
  22. package/dist/remnote-cli/commands/create.js.map +1 -1
  23. package/dist/remnote-cli/commands/journal.js +3 -0
  24. package/dist/remnote-cli/commands/journal.js.map +1 -1
  25. package/dist/remnote-cli/commands/read.js +20 -2
  26. package/dist/remnote-cli/commands/read.js.map +1 -1
  27. package/dist/remnote-cli/commands/search.js +24 -5
  28. package/dist/remnote-cli/commands/search.js.map +1 -1
  29. package/dist/remnote-cli/commands/update.js +5 -24
  30. package/dist/remnote-cli/commands/update.js.map +1 -1
  31. package/dist/remnote-cli/commands/write-actions.d.ts +4 -0
  32. package/dist/remnote-cli/commands/write-actions.js +123 -0
  33. package/dist/remnote-cli/commands/write-actions.js.map +1 -0
  34. package/dist/schemas/remnote-schemas.d.ts +33 -10
  35. package/dist/schemas/remnote-schemas.js +58 -16
  36. package/dist/schemas/remnote-schemas.js.map +1 -1
  37. package/dist/tools/index.d.ts +1264 -12
  38. package/dist/tools/index.js +157 -47
  39. package/dist/tools/index.js.map +1 -1
  40. package/dist/websocket-server.d.ts +5 -0
  41. package/dist/websocket-server.js +64 -10
  42. package/dist/websocket-server.js.map +1 -1
  43. package/mcpb/remnote-local/README.md +4 -3
  44. package/mcpb/remnote-local/manifest.json +30 -28
  45. package/mcpb/remnote-local/package.json +1 -1
  46. package/mcpb/remnote-local/remnote-local.mcpb +0 -0
  47. package/mcpb/remnote-local/server/fallback-tools.generated.js +323 -0
  48. package/mcpb/remnote-local/server/index.js +7 -122
  49. package/package.json +5 -3
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-server.js","sourceRoot":"","sources":["../src/websocket-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket-server.js","sourceRoot":"","sources":["../src/websocket-server.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  # RemNote Local MCPB
2
2
 
3
- Claude Desktop extension that exposes a local `remnote-mcp-server` to Claude Desktop without a public HTTPS tunnel.
3
+ Claude Desktop extension that exposes a local `remnote-mcp-server` to Claude Desktop and eligible Claude Cowork
4
+ desktop sessions without a public HTTPS tunnel.
4
5
 
5
6
  ## Usage
6
7
 
@@ -13,8 +14,8 @@ Claude Desktop extension that exposes a local `remnote-mcp-server` to Claude Des
13
14
  http://127.0.0.1:3001/mcp
14
15
  ```
15
16
 
16
- This extension does not start or supervise `remnote-mcp-server`. It is a stdio proxy that forwards Claude Desktop tool
17
- calls to the local Streamable HTTP endpoint.
17
+ This extension does not start or supervise `remnote-mcp-server`. It is a stdio proxy that forwards Claude Desktop and
18
+ eligible Claude Cowork tool calls to the local Streamable HTTP endpoint.
18
19
 
19
20
  ## Installed Package Path
20
21
 
@@ -2,17 +2,11 @@
2
2
  "manifest_version": "0.3",
3
3
  "name": "remnote-local",
4
4
  "display_name": "RemNote Local",
5
- "version": "0.14.1",
6
- "description": "Use a locally running RemNote MCP Server from Claude Desktop without a public HTTPS tunnel.",
7
- "long_description": "RemNote Local is a Claude Desktop extension that exposes RemNote MCP tools over stdio and forwards calls to a local remnote-mcp-server Streamable HTTP endpoint. Start remnote-mcp-server and keep the RemNote Automation Bridge plugin connected before using the tools.",
8
- "author": {
9
- "name": "Robert Spiegel",
10
- "email": "nightingale7@gmail.com"
11
- },
12
- "repository": {
13
- "type": "git",
14
- "url": "https://github.com/robert7/remnote-mcp-server.git"
15
- },
5
+ "version": "0.15.0",
6
+ "description": "Use a locally running RemNote MCP Server from Claude Desktop or Cowork without a public HTTPS tunnel.",
7
+ "long_description": "RemNote Local is a Claude Desktop extension that exposes RemNote MCP tools over stdio and forwards calls to a local remnote-mcp-server Streamable HTTP endpoint. It can also be used by Claude Cowork in Claude Desktop when desktop extensions are enabled. Start remnote-mcp-server and keep the RemNote Automation Bridge plugin connected before using the tools.",
8
+ "author": { "name": "Robert Spiegel", "email": "nightingale7@gmail.com" },
9
+ "repository": { "type": "git", "url": "https://github.com/robert7/remnote-mcp-server.git" },
16
10
  "homepage": "https://github.com/robert7/remnote-mcp-server",
17
11
  "documentation": "https://github.com/robert7/remnote-mcp-server/tree/main/docs/guides",
18
12
  "support": "https://github.com/robert7/remnote-mcp-server/issues",
@@ -22,47 +16,57 @@
22
16
  "mcp_config": {
23
17
  "command": "node",
24
18
  "args": ["${__dirname}/server/index.js"],
25
- "env": {
26
- "REMNOTE_MCP_URL": "${user_config.mcp_url}"
27
- }
19
+ "env": { "REMNOTE_MCP_URL": "${user_config.mcp_url}" }
28
20
  }
29
21
  },
30
22
  "tools": [
31
23
  {
32
24
  "name": "remnote_create_note",
33
- "description": "Create a new note in RemNote."
25
+ "description": "Create a new note in RemNote with optional content, parent, and exact tag Rem IDs. Supports hierarchical markdown in content and flashcard syntax (e.g. \"- Term :: Definition\"). At least one of title or content must be provided. Recommended preflight once per session: remnote_status."
34
26
  },
35
27
  {
36
28
  "name": "remnote_search",
37
- "description": "Search the RemNote knowledge base."
29
+ "description": "Search the RemNote knowledge base. For whole-KB orientation, prefer includeContent=\"structured\" with depth=1 and childLimit=500, then follow remIds with remnote_read_note. Use includeContent=\"markdown\" for human-readable summaries."
38
30
  },
39
31
  {
40
32
  "name": "remnote_search_by_tag",
41
- "description": "Find notes by tag."
33
+ "description": "Find notes by exact tag Rem ID and return resolved ancestor context targets (nearest document/daily document when available, otherwise nearest non-document ancestor). Does not look up tags by name or alias. Supports the same includeContent modes as remnote_search."
42
34
  },
43
35
  {
44
36
  "name": "remnote_read_note",
45
- "description": "Read a specific note from RemNote by Rem ID."
37
+ "description": "Read a specific note from RemNote by its Rem ID. For hierarchy traversal, prefer includeContent=\"structured\" and start shallow (depth=1, childLimit=500), then deepen only selected branches. Use includeContent=\"markdown\" for summarization."
46
38
  },
47
39
  {
48
40
  "name": "remnote_update_note",
49
- "description": "Update an existing note in RemNote."
41
+ "description": "Update note metadata in RemNote. Use this tool for title changes only."
50
42
  },
51
43
  {
52
- "name": "remnote_append_journal",
53
- "description": "Append content to today's daily document in RemNote."
44
+ "name": "remnote_insert_children",
45
+ "description": "Insert new child Rems under a parent at a deterministic position without replacing existing children. Use this for tag description nodes and hierarchy maintenance."
54
46
  },
55
47
  {
56
- "name": "remnote_read_table",
57
- "description": "Read an Advanced Table from RemNote."
48
+ "name": "remnote_replace_children",
49
+ "description": "Replace all direct children under a parent Rem. This is destructive because existing child Rem IDs are removed and may be blocked by bridge policy."
50
+ },
51
+ {
52
+ "name": "remnote_update_tags",
53
+ "description": "Add or remove tags from a note by exact tag Rem IDs. Use this for production tagging workflows to avoid ambiguous name lookup."
54
+ },
55
+ {
56
+ "name": "remnote_append_journal",
57
+ "description": "Append content to today's daily document in RemNote with optional exact tag Rem IDs. Recommended preflight once per session: remnote_status."
58
58
  },
59
59
  {
60
60
  "name": "remnote_get_playbook",
61
- "description": "Get an operations playbook for MCP agents."
61
+ "description": "Get an operations playbook for MCP agents: status-first recommendation, navigation presets, content-mode guidance, and write-safety decision tree."
62
62
  },
63
63
  {
64
64
  "name": "remnote_status",
65
- "description": "Check bridge connection health and write-policy capabilities."
65
+ "description": "Check bridge connection health, compatibility warnings, and write-policy capabilities. Recommended once per session before write operations."
66
+ },
67
+ {
68
+ "name": "remnote_read_table",
69
+ "description": "Read an Advanced Table from RemNote by exact title or Rem ID. Returns the table schema (columns with property types) and row data (cell values). Use this when you need structured tabular data. For simple tag-based queries without table structure, prefer remnote_search_by_tag."
66
70
  }
67
71
  ],
68
72
  "tools_generated": true,
@@ -71,9 +75,7 @@
71
75
  "compatibility": {
72
76
  "claude_desktop": ">=1.0.0",
73
77
  "platforms": ["darwin", "win32", "linux"],
74
- "runtimes": {
75
- "node": ">=20.0.0"
76
- }
78
+ "runtimes": { "node": ">=20.0.0" }
77
79
  },
78
80
  "user_config": {
79
81
  "mcp_url": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "remnote-local-mcpb",
3
- "version": "0.14.1",
3
+ "version": "0.15.0",
4
4
  "description": "Claude Desktop MCPB stdio proxy for a local RemNote MCP Server",
5
5
  "type": "module",
6
6
  "private": true,
@@ -0,0 +1,323 @@
1
+ // Generated by scripts/generate-mcpb-tools.mjs; do not edit by hand.
2
+ export const FALLBACK_TOOLS = [
3
+ {
4
+ name: 'remnote_create_note',
5
+ description:
6
+ 'Create a new note in RemNote with optional content, parent, and exact tag Rem IDs. Supports hierarchical markdown in content and flashcard syntax (e.g. "- Term :: Definition"). At least one of title or content must be provided. Recommended preflight once per session: remnote_status.',
7
+ inputSchema: {
8
+ type: 'object',
9
+ properties: {
10
+ title: {
11
+ type: 'string',
12
+ description: 'The title of the note (optional if content is provided)',
13
+ },
14
+ content: {
15
+ type: 'string',
16
+ description: 'Content as plain text, child bullets or hierarchical markdown',
17
+ },
18
+ parentId: {
19
+ type: 'string',
20
+ description: 'Parent Rem ID',
21
+ },
22
+ tagRemIds: {
23
+ type: 'array',
24
+ items: {
25
+ type: 'string',
26
+ },
27
+ description: 'Exact tag Rem IDs to apply',
28
+ },
29
+ },
30
+ required: [],
31
+ additionalProperties: false,
32
+ },
33
+ },
34
+ {
35
+ name: 'remnote_search',
36
+ description:
37
+ 'Search the RemNote knowledge base. For whole-KB orientation, prefer includeContent="structured" with depth=1 and childLimit=500, then follow remIds with remnote_read_note. Use includeContent="markdown" for human-readable summaries.',
38
+ inputSchema: {
39
+ type: 'object',
40
+ properties: {
41
+ query: {
42
+ type: 'string',
43
+ description: 'Search query text',
44
+ },
45
+ limit: {
46
+ type: 'number',
47
+ description: 'Maximum results (1-150, default: 50)',
48
+ },
49
+ includeContent: {
50
+ type: 'string',
51
+ enum: ['none', 'markdown', 'structured'],
52
+ description:
53
+ 'Content rendering mode: "none" omits content (default), "markdown" renders child subtree as indented markdown, "structured" returns nested child objects with remIds',
54
+ },
55
+ depth: {
56
+ type: 'number',
57
+ description:
58
+ 'Depth of child hierarchy to render for markdown/structured content (0-10, default: 1)',
59
+ },
60
+ childLimit: {
61
+ type: 'number',
62
+ description: 'Maximum children per level (1-500, default: 20)',
63
+ },
64
+ maxContentLength: {
65
+ type: 'number',
66
+ description: 'Maximum character length for rendered content (default: 3000)',
67
+ },
68
+ },
69
+ required: ['query'],
70
+ },
71
+ },
72
+ {
73
+ name: 'remnote_search_by_tag',
74
+ description:
75
+ 'Find notes by exact tag Rem ID and return resolved ancestor context targets (nearest document/daily document when available, otherwise nearest non-document ancestor). Does not look up tags by name or alias. Supports the same includeContent modes as remnote_search.',
76
+ inputSchema: {
77
+ type: 'object',
78
+ properties: {
79
+ tagRemId: {
80
+ type: 'string',
81
+ description: 'Exact tag Rem ID to search',
82
+ },
83
+ limit: {
84
+ type: 'number',
85
+ description: 'Maximum results (1-150, default: 50)',
86
+ },
87
+ includeContent: {
88
+ type: 'string',
89
+ enum: ['none', 'markdown', 'structured'],
90
+ description:
91
+ 'Content rendering mode: "none" omits content (default), "markdown" renders child subtree as indented markdown, "structured" returns nested child objects with remIds',
92
+ },
93
+ depth: {
94
+ type: 'number',
95
+ description:
96
+ 'Depth of child hierarchy to render for markdown/structured content (0-10, default: 1)',
97
+ },
98
+ childLimit: {
99
+ type: 'number',
100
+ description: 'Maximum children per level (1-500, default: 20)',
101
+ },
102
+ maxContentLength: {
103
+ type: 'number',
104
+ description: 'Maximum character length for rendered content (default: 3000)',
105
+ },
106
+ },
107
+ required: ['tagRemId'],
108
+ },
109
+ },
110
+ {
111
+ name: 'remnote_read_note',
112
+ description:
113
+ 'Read a specific note from RemNote by its Rem ID. For hierarchy traversal, prefer includeContent="structured" and start shallow (depth=1, childLimit=500), then deepen only selected branches. Use includeContent="markdown" for summarization.',
114
+ inputSchema: {
115
+ type: 'object',
116
+ properties: {
117
+ remId: {
118
+ type: 'string',
119
+ description: 'The Rem ID to read',
120
+ },
121
+ depth: {
122
+ type: 'number',
123
+ description: 'Depth of child hierarchy to render (0-10, default: 5)',
124
+ },
125
+ includeContent: {
126
+ type: 'string',
127
+ enum: ['none', 'markdown', 'structured'],
128
+ description:
129
+ 'Content rendering mode: "markdown" renders child subtree (default), "structured" returns nested child objects with remIds, "none" omits content',
130
+ },
131
+ childLimit: {
132
+ type: 'number',
133
+ description: 'Maximum children per level (1-500, default: 100)',
134
+ },
135
+ maxContentLength: {
136
+ type: 'number',
137
+ description: 'Maximum character length for rendered content (default: 100000)',
138
+ },
139
+ },
140
+ required: ['remId'],
141
+ },
142
+ },
143
+ {
144
+ name: 'remnote_update_note',
145
+ description: 'Update note metadata in RemNote. Use this tool for title changes only.',
146
+ inputSchema: {
147
+ type: 'object',
148
+ properties: {
149
+ remId: {
150
+ type: 'string',
151
+ description: 'The Rem ID to update',
152
+ },
153
+ title: {
154
+ type: 'string',
155
+ description: 'New title',
156
+ },
157
+ },
158
+ required: ['remId', 'title'],
159
+ additionalProperties: false,
160
+ },
161
+ },
162
+ {
163
+ name: 'remnote_insert_children',
164
+ description:
165
+ 'Insert new child Rems under a parent at a deterministic position without replacing existing children. Use this for tag description nodes and hierarchy maintenance.',
166
+ inputSchema: {
167
+ type: 'object',
168
+ properties: {
169
+ parentRemId: {
170
+ type: 'string',
171
+ description: 'Parent Rem ID that will receive the new children',
172
+ },
173
+ content: {
174
+ type: 'string',
175
+ description: 'Markdown content to insert as child Rems',
176
+ },
177
+ position: {
178
+ type: 'string',
179
+ enum: ['first', 'last', 'before', 'after'],
180
+ description: 'Where to insert the new child Rems',
181
+ },
182
+ siblingRemId: {
183
+ type: 'string',
184
+ description: 'Sibling Rem ID required when position is before or after',
185
+ },
186
+ },
187
+ required: ['parentRemId', 'content', 'position'],
188
+ additionalProperties: false,
189
+ },
190
+ },
191
+ {
192
+ name: 'remnote_replace_children',
193
+ description:
194
+ 'Replace all direct children under a parent Rem. This is destructive because existing child Rem IDs are removed and may be blocked by bridge policy.',
195
+ inputSchema: {
196
+ type: 'object',
197
+ properties: {
198
+ parentRemId: {
199
+ type: 'string',
200
+ description: 'Parent Rem ID whose direct children will be replaced',
201
+ },
202
+ content: {
203
+ type: 'string',
204
+ description:
205
+ 'Markdown content to use as replacement children; empty string clears all direct children',
206
+ },
207
+ },
208
+ required: ['parentRemId', 'content'],
209
+ additionalProperties: false,
210
+ },
211
+ },
212
+ {
213
+ name: 'remnote_update_tags',
214
+ description:
215
+ 'Add or remove tags from a note by exact tag Rem IDs. Use this for production tagging workflows to avoid ambiguous name lookup.',
216
+ inputSchema: {
217
+ type: 'object',
218
+ properties: {
219
+ remId: {
220
+ type: 'string',
221
+ description: 'The Rem ID whose tags should change',
222
+ },
223
+ addTagRemIds: {
224
+ type: 'array',
225
+ items: {
226
+ type: 'string',
227
+ },
228
+ minItems: 1,
229
+ description: 'Exact tag Rem IDs to add',
230
+ },
231
+ removeTagRemIds: {
232
+ type: 'array',
233
+ items: {
234
+ type: 'string',
235
+ },
236
+ minItems: 1,
237
+ description: 'Exact tag Rem IDs to remove',
238
+ },
239
+ },
240
+ required: ['remId'],
241
+ additionalProperties: false,
242
+ },
243
+ },
244
+ {
245
+ name: 'remnote_append_journal',
246
+ description:
247
+ "Append content to today's daily document in RemNote with optional exact tag Rem IDs. Recommended preflight once per session: remnote_status.",
248
+ inputSchema: {
249
+ type: 'object',
250
+ properties: {
251
+ content: {
252
+ type: 'string',
253
+ description: "Content to append to today's daily document (markdown supported)",
254
+ },
255
+ timestamp: {
256
+ type: 'boolean',
257
+ description: 'Include timestamp (default: true)',
258
+ },
259
+ tagRemIds: {
260
+ type: 'array',
261
+ items: {
262
+ type: 'string',
263
+ },
264
+ description: 'Exact tag Rem IDs to apply',
265
+ },
266
+ },
267
+ required: ['content'],
268
+ additionalProperties: false,
269
+ },
270
+ },
271
+ {
272
+ name: 'remnote_get_playbook',
273
+ description:
274
+ 'Get an operations playbook for MCP agents: status-first recommendation, navigation presets, content-mode guidance, and write-safety decision tree.',
275
+ inputSchema: {
276
+ type: 'object',
277
+ properties: {},
278
+ },
279
+ },
280
+ {
281
+ name: 'remnote_status',
282
+ description:
283
+ 'Check bridge connection health, compatibility warnings, and write-policy capabilities. Recommended once per session before write operations.',
284
+ inputSchema: {
285
+ type: 'object',
286
+ properties: {},
287
+ },
288
+ },
289
+ {
290
+ name: 'remnote_read_table',
291
+ description:
292
+ 'Read an Advanced Table from RemNote by exact title or Rem ID. Returns the table schema (columns with property types) and row data (cell values). Use this when you need structured tabular data. For simple tag-based queries without table structure, prefer remnote_search_by_tag.',
293
+ inputSchema: {
294
+ type: 'object',
295
+ properties: {
296
+ tableRemId: {
297
+ type: 'string',
298
+ description: 'Table Rem ID',
299
+ },
300
+ tableTitle: {
301
+ type: 'string',
302
+ description: 'Exact Advanced Table title',
303
+ },
304
+ limit: {
305
+ type: 'number',
306
+ description: 'Maximum rows to return (1-150, default: 50)',
307
+ },
308
+ offset: {
309
+ type: 'number',
310
+ description: '0-based row offset for pagination (default: 0)',
311
+ },
312
+ propertyFilter: {
313
+ type: 'array',
314
+ items: {
315
+ type: 'string',
316
+ },
317
+ description: 'Only return these property/column names (all if omitted)',
318
+ },
319
+ },
320
+ description: 'Provide exactly one of tableRemId or tableTitle.',
321
+ },
322
+ },
323
+ ];
@@ -2,136 +2,21 @@
2
2
 
3
3
  import process from 'node:process';
4
4
  import { realpathSync } from 'node:fs';
5
+ import { createRequire } from 'node:module';
5
6
  import { fileURLToPath, URL, pathToFileURL } from 'node:url';
6
7
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
7
8
  import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
8
9
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
9
10
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
10
11
  import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
12
+ import { FALLBACK_TOOLS } from './fallback-tools.generated.js';
11
13
 
12
- export const DEFAULT_MCP_URL = 'http://127.0.0.1:3001/mcp';
13
- export const SERVER_INFO = { name: 'remnote-mcp-stdio', version: '0.14.1' };
14
+ export { FALLBACK_TOOLS } from './fallback-tools.generated.js';
14
15
 
15
- export const FALLBACK_TOOLS = [
16
- {
17
- name: 'remnote_create_note',
18
- description:
19
- 'Create a new note in RemNote with optional content, parent, and tags. Supports hierarchical markdown in content and flashcard syntax.',
20
- inputSchema: {
21
- type: 'object',
22
- properties: {
23
- title: { type: 'string', description: 'The title of the note' },
24
- content: { type: 'string', description: 'Content as plain text or hierarchical markdown' },
25
- parentId: { type: 'string', description: 'Parent Rem ID' },
26
- tags: { type: 'array', items: { type: 'string' }, description: 'Tags to apply' },
27
- },
28
- },
29
- },
30
- {
31
- name: 'remnote_search',
32
- description: 'Search the RemNote knowledge base.',
33
- inputSchema: {
34
- type: 'object',
35
- properties: {
36
- query: { type: 'string', description: 'Search query text' },
37
- limit: { type: 'number', description: 'Maximum results' },
38
- includeContent: { type: 'string', enum: ['none', 'markdown', 'structured'] },
39
- depth: { type: 'number', description: 'Depth of child hierarchy to render' },
40
- childLimit: { type: 'number', description: 'Maximum children per level' },
41
- maxContentLength: { type: 'number', description: 'Maximum rendered content length' },
42
- },
43
- required: ['query'],
44
- },
45
- },
46
- {
47
- name: 'remnote_search_by_tag',
48
- description: 'Find notes by tag.',
49
- inputSchema: {
50
- type: 'object',
51
- properties: {
52
- tag: { type: 'string', description: 'Tag name to search' },
53
- limit: { type: 'number', description: 'Maximum results' },
54
- includeContent: { type: 'string', enum: ['none', 'markdown', 'structured'] },
55
- depth: { type: 'number', description: 'Depth of child hierarchy to render' },
56
- childLimit: { type: 'number', description: 'Maximum children per level' },
57
- maxContentLength: { type: 'number', description: 'Maximum rendered content length' },
58
- },
59
- required: ['tag'],
60
- },
61
- },
62
- {
63
- name: 'remnote_read_note',
64
- description: 'Read a specific note from RemNote by its Rem ID.',
65
- inputSchema: {
66
- type: 'object',
67
- properties: {
68
- remId: { type: 'string', description: 'The Rem ID to read' },
69
- depth: { type: 'number', description: 'Depth of child hierarchy to render' },
70
- includeContent: { type: 'string', enum: ['none', 'markdown', 'structured'] },
71
- childLimit: { type: 'number', description: 'Maximum children per level' },
72
- maxContentLength: { type: 'number', description: 'Maximum rendered content length' },
73
- },
74
- required: ['remId'],
75
- },
76
- },
77
- {
78
- name: 'remnote_update_note',
79
- description: 'Update an existing note in RemNote.',
80
- inputSchema: {
81
- type: 'object',
82
- properties: {
83
- remId: { type: 'string', description: 'The Rem ID to update' },
84
- title: { type: 'string', description: 'New title' },
85
- appendContent: { type: 'string', description: 'Content to append as children' },
86
- replaceContent: { type: 'string', description: 'Content to replace direct children' },
87
- addTags: { type: 'array', items: { type: 'string' }, description: 'Tags to add' },
88
- removeTags: { type: 'array', items: { type: 'string' }, description: 'Tags to remove' },
89
- },
90
- required: ['remId'],
91
- },
92
- },
93
- {
94
- name: 'remnote_append_journal',
95
- description: "Append content to today's daily document in RemNote.",
96
- inputSchema: {
97
- type: 'object',
98
- properties: {
99
- content: { type: 'string', description: "Content to append to today's daily document" },
100
- timestamp: { type: 'boolean', description: 'Include timestamp' },
101
- },
102
- required: ['content'],
103
- },
104
- },
105
- {
106
- name: 'remnote_read_table',
107
- description: 'Read an Advanced Table from RemNote by exact title or Rem ID.',
108
- inputSchema: {
109
- type: 'object',
110
- properties: {
111
- tableRemId: { type: 'string', description: 'Table Rem ID' },
112
- tableTitle: { type: 'string', description: 'Exact Advanced Table title' },
113
- limit: { type: 'number', description: 'Maximum rows to return' },
114
- offset: { type: 'number', description: '0-based row offset for pagination' },
115
- propertyFilter: {
116
- type: 'array',
117
- items: { type: 'string' },
118
- description: 'Only return these property/column names',
119
- },
120
- },
121
- },
122
- },
123
- {
124
- name: 'remnote_get_playbook',
125
- description: 'Get an operations playbook for MCP agents.',
126
- inputSchema: { type: 'object', properties: {} },
127
- },
128
- {
129
- name: 'remnote_status',
130
- description:
131
- 'Check bridge connection health, compatibility warnings, and write-policy capabilities.',
132
- inputSchema: { type: 'object', properties: {} },
133
- },
134
- ];
16
+ export const DEFAULT_MCP_URL = 'http://127.0.0.1:3001/mcp';
17
+ const require = createRequire(import.meta.url);
18
+ const packageJson = require('../package.json');
19
+ export const SERVER_INFO = { name: 'remnote-mcp-stdio', version: packageJson.version };
135
20
 
136
21
  export function normalizeMcpUrl(value) {
137
22
  const trimmed = String(value || DEFAULT_MCP_URL).trim();