remnote-mcp-server 0.15.0 → 0.17.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 (58) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/README.md +14 -9
  3. package/dist/cli.d.ts +1 -0
  4. package/dist/cli.js +7 -2
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config.d.ts +2 -0
  7. package/dist/config.js +26 -2
  8. package/dist/config.js.map +1 -1
  9. package/dist/daemon.js.map +1 -1
  10. package/dist/http-server.d.ts +2 -1
  11. package/dist/http-server.js +4 -2
  12. package/dist/http-server.js.map +1 -1
  13. package/dist/index.js +3 -8
  14. package/dist/index.js.map +1 -1
  15. package/dist/media.d.ts +32 -0
  16. package/dist/media.js +184 -0
  17. package/dist/media.js.map +1 -0
  18. package/dist/remnote-cli/cli.js +8 -2
  19. package/dist/remnote-cli/cli.js.map +1 -1
  20. package/dist/remnote-cli/client/mcp-server-client.d.ts +1 -0
  21. package/dist/remnote-cli/client/mcp-server-client.js +24 -4
  22. package/dist/remnote-cli/client/mcp-server-client.js.map +1 -1
  23. package/dist/remnote-cli/commands/create.js +5 -2
  24. package/dist/remnote-cli/commands/create.js.map +1 -1
  25. package/dist/remnote-cli/commands/journal.js +1 -1
  26. package/dist/remnote-cli/commands/journal.js.map +1 -1
  27. package/dist/remnote-cli/commands/media.d.ts +2 -0
  28. package/dist/remnote-cli/commands/media.js +62 -0
  29. package/dist/remnote-cli/commands/media.js.map +1 -0
  30. package/dist/remnote-cli/commands/read.js +29 -3
  31. package/dist/remnote-cli/commands/read.js.map +1 -1
  32. package/dist/remnote-cli/commands/search.d.ts +1 -0
  33. package/dist/remnote-cli/commands/search.js +91 -7
  34. package/dist/remnote-cli/commands/search.js.map +1 -1
  35. package/dist/remnote-cli/commands/update.js +1 -1
  36. package/dist/remnote-cli/commands/update.js.map +1 -1
  37. package/dist/remnote-cli/commands/write-actions.d.ts +3 -0
  38. package/dist/remnote-cli/commands/write-actions.js +158 -2
  39. package/dist/remnote-cli/commands/write-actions.js.map +1 -1
  40. package/dist/schemas/remnote-schemas.d.ts +107 -9
  41. package/dist/schemas/remnote-schemas.js +194 -50
  42. package/dist/schemas/remnote-schemas.js.map +1 -1
  43. package/dist/shutdown.d.ts +15 -0
  44. package/dist/shutdown.js +59 -0
  45. package/dist/shutdown.js.map +1 -0
  46. package/dist/tools/index.d.ts +3364 -585
  47. package/dist/tools/index.js +685 -41
  48. package/dist/tools/index.js.map +1 -1
  49. package/dist/types/bridge.d.ts +1 -0
  50. package/dist/websocket-server.d.ts +5 -1
  51. package/dist/websocket-server.js +18 -2
  52. package/dist/websocket-server.js.map +1 -1
  53. package/mcpb/remnote-local/manifest.json +26 -6
  54. package/mcpb/remnote-local/package.json +1 -1
  55. package/mcpb/remnote-local/remnote-local.mcpb +0 -0
  56. package/mcpb/remnote-local/server/fallback-tools.generated.js +285 -14
  57. package/mcpb/remnote-local/server/index.js +4 -2
  58. package/package.json +4 -4
package/dist/media.js ADDED
@@ -0,0 +1,184 @@
1
+ import { constants } from 'node:fs';
2
+ import { open, realpath, stat } from 'node:fs/promises';
3
+ import { basename, dirname, isAbsolute, relative, resolve } from 'node:path';
4
+ import { z } from 'zod';
5
+ export const DEFAULT_MAX_INLINE_BYTES = 5 * 1024 * 1024;
6
+ export const HARD_MAX_INLINE_BYTES = 10 * 1024 * 1024;
7
+ export const MediaLocatorSchema = z
8
+ .object({
9
+ remId: z.string().min(1),
10
+ mediaId: z.string().min(1),
11
+ kind: z.literal('image'),
12
+ field: z.enum(['text', 'backText']),
13
+ elementIndex: z.number().int().min(0),
14
+ imageIndex: z.number().int().min(0),
15
+ imgId: z.string().min(1).optional(),
16
+ title: z.string().min(1).optional(),
17
+ dimensions: z
18
+ .object({ width: z.number().positive(), height: z.number().positive() })
19
+ .strict()
20
+ .optional(),
21
+ mimeType: z.string().min(1).optional(),
22
+ source: z.literal('remnote_managed_local'),
23
+ localToken: z.string().min(1),
24
+ })
25
+ .strict();
26
+ function validateLocalToken(token) {
27
+ if (!token ||
28
+ basename(token) !== token ||
29
+ token === '.' ||
30
+ token === '..' ||
31
+ token.normalize('NFC') !== token ||
32
+ token.includes('\0')) {
33
+ throw new Error('Media path traversal rejected: local media token must be a basename');
34
+ }
35
+ }
36
+ export function parseMediaLocator(value) {
37
+ const parsed = MediaLocatorSchema.safeParse(value);
38
+ if (!parsed.success) {
39
+ throw new Error(`Invalid media locator payload received from bridge: ${parsed.error.message}`);
40
+ }
41
+ validateLocalToken(parsed.data.localToken);
42
+ return parsed.data;
43
+ }
44
+ function detectImageMime(data) {
45
+ if (data.length >= 8 && data.subarray(0, 8).equals(Buffer.from('89504e470d0a1a0a', 'hex'))) {
46
+ return 'image/png';
47
+ }
48
+ if (data.length >= 3 && data.subarray(0, 3).equals(Buffer.from('ffd8ff', 'hex'))) {
49
+ return 'image/jpeg';
50
+ }
51
+ if (data.length >= 6) {
52
+ const signature = data.subarray(0, 6).toString('ascii');
53
+ if (signature === 'GIF87a' || signature === 'GIF89a')
54
+ return 'image/gif';
55
+ }
56
+ if (data.length >= 12 &&
57
+ data.subarray(0, 4).toString('ascii') === 'RIFF' &&
58
+ data.subarray(8, 12).toString('ascii') === 'WEBP') {
59
+ return 'image/webp';
60
+ }
61
+ return undefined;
62
+ }
63
+ function isWithinRoot(root, candidate) {
64
+ const pathFromRoot = relative(root, candidate);
65
+ return pathFromRoot === '' || (!pathFromRoot.startsWith('..') && !isAbsolute(pathFromRoot));
66
+ }
67
+ export async function resolveManagedImage(locatorValue, roots, maxInlineBytes = DEFAULT_MAX_INLINE_BYTES) {
68
+ if (!Number.isInteger(maxInlineBytes) ||
69
+ maxInlineBytes < 1 ||
70
+ maxInlineBytes > HARD_MAX_INLINE_BYTES) {
71
+ throw new Error(`maxInlineBytes must be an integer between 1 and ${HARD_MAX_INLINE_BYTES}`);
72
+ }
73
+ const locator = parseMediaLocator(locatorValue);
74
+ const matches = new Map();
75
+ for (const configuredRoot of roots) {
76
+ let root;
77
+ try {
78
+ root = await realpath(resolve(configuredRoot));
79
+ }
80
+ catch (error) {
81
+ const code = error.code;
82
+ if (code === 'ENOENT' || code === 'ENOTDIR')
83
+ continue;
84
+ throw new Error(`Media permission/read failure for configured root: ${code ?? String(error)}`, {
85
+ cause: error,
86
+ });
87
+ }
88
+ const candidate = resolve(root, locator.localToken);
89
+ if (!isWithinRoot(root, candidate) || dirname(candidate) !== root) {
90
+ throw new Error('Media path traversal rejected: resolved path escaped the configured root');
91
+ }
92
+ try {
93
+ const candidateReal = await realpath(candidate);
94
+ if (!isWithinRoot(root, candidateReal) || dirname(candidateReal) !== root) {
95
+ throw new Error('Media path traversal rejected: resolved file escaped the configured root');
96
+ }
97
+ const fileStat = await stat(candidateReal);
98
+ if (fileStat.isFile())
99
+ matches.set(candidateReal, candidateReal);
100
+ }
101
+ catch (error) {
102
+ if (error instanceof Error && error.message.startsWith('Media path traversal rejected:')) {
103
+ throw error;
104
+ }
105
+ const code = error.code;
106
+ if (code === 'ENOENT' || code === 'ENOTDIR')
107
+ continue;
108
+ throw new Error(`Media permission/read failure for ${locator.localToken}: ${code ?? String(error)}`, {
109
+ cause: error,
110
+ });
111
+ }
112
+ }
113
+ if (matches.size === 0) {
114
+ throw new Error(`Media file missing: ${locator.localToken}`);
115
+ }
116
+ if (matches.size > 1) {
117
+ throw new Error(`Media file ambiguous: ${locator.localToken} matched ${matches.size} roots`);
118
+ }
119
+ const filePath = [...matches.values()][0];
120
+ let data;
121
+ let sizeBytes;
122
+ let handle;
123
+ try {
124
+ handle = await open(filePath, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0));
125
+ const initialStat = await handle.stat();
126
+ if (!initialStat.isFile()) {
127
+ throw new Error(`Media file missing: ${locator.localToken}`);
128
+ }
129
+ if (initialStat.size > maxInlineBytes) {
130
+ throw new Error(`Media file oversized: ${initialStat.size} bytes exceeds maxInlineBytes ${maxInlineBytes}`);
131
+ }
132
+ const buffer = Buffer.alloc(maxInlineBytes + 1);
133
+ let offset = 0;
134
+ while (offset < buffer.length) {
135
+ const { bytesRead } = await handle.read(buffer, offset, buffer.length - offset, offset);
136
+ if (bytesRead === 0)
137
+ break;
138
+ offset += bytesRead;
139
+ }
140
+ if (offset > maxInlineBytes) {
141
+ throw new Error(`Media file oversized: more than ${maxInlineBytes} bytes exceeds maxInlineBytes ${maxInlineBytes}`);
142
+ }
143
+ const finalStat = await handle.stat();
144
+ if (finalStat.size !== offset ||
145
+ finalStat.size !== initialStat.size ||
146
+ finalStat.mtimeMs !== initialStat.mtimeMs) {
147
+ throw new Error('Media file changed during read; retry the request');
148
+ }
149
+ data = buffer.subarray(0, offset);
150
+ sizeBytes = offset;
151
+ }
152
+ catch (error) {
153
+ if (error instanceof Error &&
154
+ (error.message.startsWith('Media file oversized:') ||
155
+ error.message.startsWith('Media file missing:') ||
156
+ error.message === 'Media file changed during read; retry the request')) {
157
+ throw error;
158
+ }
159
+ const code = error.code;
160
+ if (code === 'ELOOP') {
161
+ throw new Error('Media path traversal rejected: resolved file became a symlink', {
162
+ cause: error,
163
+ });
164
+ }
165
+ throw new Error(`Media permission/read failure for ${locator.localToken}: ${code ?? String(error)}`, {
166
+ cause: error,
167
+ });
168
+ }
169
+ finally {
170
+ await handle?.close();
171
+ }
172
+ const mimeType = detectImageMime(data);
173
+ if (!mimeType) {
174
+ throw new Error('Unsupported MIME: allowed image types are png, jpeg, gif, and webp');
175
+ }
176
+ const { localToken: _localToken, ...metadata } = locator;
177
+ return {
178
+ data: data.toString('base64'),
179
+ mimeType,
180
+ sizeBytes,
181
+ metadata,
182
+ };
183
+ }
184
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,14 @@ import { Command } from 'commander';
2
2
  import { createRequire } from 'node:module';
3
3
  import { DEFAULT_MCP_URL } from './config.js';
4
4
  import { registerCreateCommand } from './commands/create.js';
5
- import { registerSearchByTagCommand, registerSearchCommand } from './commands/search.js';
5
+ import { registerListChildrenCommand, registerSearchByTagCommand, registerSearchCommand, } from './commands/search.js';
6
6
  import { registerReadCommand } from './commands/read.js';
7
7
  import { registerUpdateCommand } from './commands/update.js';
8
- import { registerInsertChildrenCommand, registerReplaceChildrenCommand, registerUpdateTagsCommand, } from './commands/write-actions.js';
8
+ import { registerInsertChildrenCommand, registerMoveNoteCommand, registerReplaceChildrenCommand, registerSetDocumentStatusCommand, registerSetPropertyCommand, registerUpdateTagsCommand, } from './commands/write-actions.js';
9
9
  import { registerJournalCommand } from './commands/journal.js';
10
10
  import { registerStatusCommand } from './commands/status.js';
11
11
  import { registerReadTableCommand } from './commands/table.js';
12
+ import { registerGetMediaCommand } from './commands/media.js';
12
13
  const require = createRequire(import.meta.url);
13
14
  const packageJson = require('../../package.json');
14
15
  export function createProgram(version) {
@@ -24,11 +25,16 @@ export function createProgram(version) {
24
25
  registerCreateCommand(program);
25
26
  registerSearchCommand(program);
26
27
  registerSearchByTagCommand(program);
28
+ registerListChildrenCommand(program);
27
29
  registerReadCommand(program);
30
+ registerGetMediaCommand(program);
28
31
  registerUpdateCommand(program);
29
32
  registerInsertChildrenCommand(program);
33
+ registerMoveNoteCommand(program);
34
+ registerSetDocumentStatusCommand(program);
30
35
  registerReplaceChildrenCommand(program);
31
36
  registerUpdateTagsCommand(program);
37
+ registerSetPropertyCommand(program);
32
38
  registerJournalCommand(program);
33
39
  registerStatusCommand(program);
34
40
  registerReadTableCommand(program);
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/remnote-cli/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEzE,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,aAAa,CAAC;SACnB,WAAW,CAAC,mCAAmC,CAAC;SAChD,OAAO,CAAC,OAAO,CAAC;SAChB,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CACL,iBAAiB,EACjB,wBAAwB,EACxB,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,eAAe,CAC/C;SACA,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC,CAAC;IAExD,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACpC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,6BAA6B,CAAC,OAAO,CAAC,CAAC;IACvC,8BAA8B,CAAC,OAAO,CAAC,CAAC;IACxC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACnC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAElC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;IACxC,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/remnote-cli/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,8BAA8B,EAC9B,gCAAgC,EAChC,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEzE,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,aAAa,CAAC;SACnB,WAAW,CAAC,mCAAmC,CAAC;SAChD,OAAO,CAAC,OAAO,CAAC;SAChB,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CACL,iBAAiB,EACjB,wBAAwB,EACxB,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,eAAe,CAC/C;SACA,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC,CAAC;IAExD,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACpC,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACrC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,6BAA6B,CAAC,OAAO,CAAC,CAAC;IACvC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,gCAAgC,CAAC,OAAO,CAAC,CAAC;IAC1C,8BAA8B,CAAC,OAAO,CAAC,CAAC;IACxC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACnC,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACpC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAElC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;IACxC,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC"}
@@ -1,3 +1,4 @@
1
+ export declare const BRIDGE_ACTION_TO_TOOL: Readonly<Record<string, string>>;
1
2
  /**
2
3
  * Short-lived MCP client used by CLI commands to call remnote-mcp-server.
3
4
  */
@@ -4,15 +4,20 @@ import { createRequire } from 'node:module';
4
4
  import { checkVersionCompatibility } from '../version-compat.js';
5
5
  const require = createRequire(import.meta.url);
6
6
  const packageJson = require('../../../package.json');
7
- const ACTION_TO_TOOL = {
7
+ export const BRIDGE_ACTION_TO_TOOL = {
8
8
  create_note: 'remnote_create_note',
9
9
  search: 'remnote_search',
10
10
  search_by_tag: 'remnote_search_by_tag',
11
11
  read_note: 'remnote_read_note',
12
+ get_media: 'remnote_get_media',
13
+ list_children: 'remnote_list_children',
14
+ move_note: 'remnote_move_note',
12
15
  update_note: 'remnote_update_note',
16
+ set_document_status: 'remnote_set_document_status',
13
17
  insert_children: 'remnote_insert_children',
14
18
  replace_children: 'remnote_replace_children',
15
19
  update_tags: 'remnote_update_tags',
20
+ set_property: 'remnote_set_property',
16
21
  append_journal: 'remnote_append_journal',
17
22
  get_status: 'remnote_status',
18
23
  read_table: 'remnote_read_table',
@@ -30,7 +35,7 @@ export class McpServerClient {
30
35
  this.clientInfo = clientInfo;
31
36
  }
32
37
  async execute(action, payload) {
33
- const toolName = ACTION_TO_TOOL[action];
38
+ const toolName = BRIDGE_ACTION_TO_TOOL[action];
34
39
  if (!toolName) {
35
40
  throw new Error(`Unknown bridge action: ${action}`);
36
41
  }
@@ -39,6 +44,21 @@ export class McpServerClient {
39
44
  if (result.isError) {
40
45
  throw new Error(this.extractText(result));
41
46
  }
47
+ if (action === 'get_media') {
48
+ const content = result.content;
49
+ const image = content?.find((item) => item.type === 'image' &&
50
+ typeof item.data === 'string' &&
51
+ typeof item.mimeType === 'string');
52
+ if (!image) {
53
+ throw new Error('MCP server returned media metadata without MCP-native image content');
54
+ }
55
+ const metadata = result.structuredContent &&
56
+ typeof result.structuredContent === 'object' &&
57
+ !Array.isArray(result.structuredContent)
58
+ ? result.structuredContent
59
+ : {};
60
+ return { ...metadata, data: image.data, mimeType: image.mimeType };
61
+ }
42
62
  const parsed = this.parseResult(result);
43
63
  if (action === 'get_status' && parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
44
64
  const status = { ...parsed, cliVersion: this.clientInfo.version };
@@ -113,10 +133,10 @@ export class McpServerClient {
113
133
  }
114
134
  }
115
135
  function normalizeMcpUrl(value) {
116
- const trimmed = value.trim();
136
+ const trimmed = value.trim().replace(/\/+$/, '');
117
137
  if (trimmed.endsWith('/mcp')) {
118
138
  return trimmed;
119
139
  }
120
- return `${trimmed.replace(/\/+$/, '')}/mcp`;
140
+ return `${trimmed}/mcp`;
121
141
  }
122
142
  //# sourceMappingURL=mcp-server-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server-client.js","sourceRoot":"","sources":["../../../src/remnote-cli/client/mcp-server-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server-client.js","sourceRoot":"","sources":["../../../src/remnote-cli/client/mcp-server-client.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,12 @@ export function registerCreateCommand(program) {
8
8
  const validate = (val) => validateNotFlag(val, subprogram);
9
9
  subprogram
10
10
  .description('Create a new note in RemNote (title or content required)')
11
- .option('--title <text>', 'Note title', validate)
12
- .option('-c, --content <text>', 'Note content (markdown/flashcard supported)', validate)
11
+ .option('--title <text>', 'Note title (supports [[id:<remId>]] references)', validate)
12
+ .option('-c, --content <text>', 'Note content (markdown/flashcard supported; use [[id:<remId>]] for exact references)', validate)
13
13
  .option('--content-file <path>', 'Read note content from UTF-8 file ("-" for stdin)', validate)
14
14
  .option('--parent-id <id>', 'Parent Rem ID', validate)
15
15
  .option('--tag-ids <tagRemIds...>', 'Exact tag Rem IDs to add')
16
+ .option('--as-document', 'Mark the created title/root Rem as a document')
16
17
  .action(async (titleArg, opts) => {
17
18
  const globalOpts = program.opts();
18
19
  const format = globalOpts.text ? 'text' : 'json';
@@ -36,6 +37,8 @@ export function registerCreateCommand(program) {
36
37
  payload.parentId = opts.parentId;
37
38
  if (opts.tagIds && opts.tagIds.length > 0)
38
39
  payload.tagRemIds = opts.tagIds;
40
+ if (opts.asDocument)
41
+ payload.asDocument = true;
39
42
  const result = await client.execute('create_note', payload);
40
43
  console.log(formatResult(result, format, (data) => {
41
44
  const r = data;
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/remnote-cli/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/remnote-cli/commands/create.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export function registerJournalCommand(program) {
8
8
  const validate = (val) => validateNotFlag(val, subprogram);
9
9
  subprogram
10
10
  .description("Append an entry to today's journal")
11
- .option('--content <text>', 'Journal entry content', validate)
11
+ .option('--content <text>', 'Journal entry content (use [[id:<remId>]] for exact references)', validate)
12
12
  .option('--content-file <path>', 'Read journal entry from UTF-8 file ("-" for stdin)', validate)
13
13
  .option('--tag-ids <tagRemIds...>', 'Exact tag Rem IDs to add')
14
14
  .option('--no-timestamp', 'Omit timestamp prefix')
@@ -1 +1 @@
1
- {"version":3,"file":"journal.js","sourceRoot":"","sources":["../../../src/remnote-cli/commands/journal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"journal.js","sourceRoot":"","sources":["../../../src/remnote-cli/commands/journal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerGetMediaCommand(program: Command): void;
@@ -0,0 +1,62 @@
1
+ import { constants } from 'node:fs';
2
+ import { writeFile } from 'node:fs/promises';
3
+ import { resolve } from 'node:path';
4
+ import { createCommandClient } from '../client/command-client.js';
5
+ import { EXIT } from '../config.js';
6
+ import { formatError, formatResult } from '../output/formatter.js';
7
+ function requireMediaResult(value) {
8
+ if (!value ||
9
+ typeof value !== 'object' ||
10
+ typeof value.data !== 'string' ||
11
+ typeof value.mimeType !== 'string' ||
12
+ typeof value.sizeBytes !== 'number') {
13
+ throw new Error('MCP server returned an invalid media result');
14
+ }
15
+ return value;
16
+ }
17
+ export function registerGetMediaCommand(program) {
18
+ program
19
+ .command('get-media <rem-id>')
20
+ .description('Save one RemNote-managed image returned by read --include-media-metadata')
21
+ .requiredOption('--field <field>', 'Rich-text field: text or backText')
22
+ .requiredOption('--media-id <id>', 'Stable media ID returned by read')
23
+ .requiredOption('-o, --output <path>', 'Destination file; existing files are protected by default')
24
+ .option('--max-inline-bytes <n>', 'Maximum image bytes to retrieve (default: 5242880)')
25
+ .option('--force', 'Overwrite an existing destination file')
26
+ .action(async (remId, opts) => {
27
+ const globalOpts = program.opts();
28
+ const format = globalOpts.text ? 'text' : 'json';
29
+ const client = createCommandClient(program);
30
+ try {
31
+ const payload = {
32
+ remId,
33
+ field: opts.field,
34
+ mediaId: opts.mediaId,
35
+ };
36
+ if (opts.maxInlineBytes)
37
+ payload.maxInlineBytes = Number.parseInt(opts.maxInlineBytes, 10);
38
+ const media = requireMediaResult(await client.execute('get_media', payload));
39
+ const bytes = Buffer.from(media.data, 'base64');
40
+ if (bytes.length !== media.sizeBytes || bytes.toString('base64') !== media.data) {
41
+ throw new Error('MCP server returned invalid or truncated base64 image data');
42
+ }
43
+ const outputPath = resolve(opts.output);
44
+ await writeFile(outputPath, bytes, {
45
+ flag: opts.force ? 'w' : 'wx',
46
+ mode: constants.S_IRUSR | constants.S_IWUSR | constants.S_IRGRP | constants.S_IROTH,
47
+ });
48
+ const { data: _data, ...metadata } = media;
49
+ const output = { ...metadata, outputPath };
50
+ console.log(formatResult(output, format, () => `Saved ${media.mimeType} (${media.sizeBytes} bytes) to ${outputPath}`));
51
+ }
52
+ catch (error) {
53
+ const message = error instanceof Error ? error.message : String(error);
54
+ console.error(formatError(message, format));
55
+ process.exit(EXIT.ERROR);
56
+ }
57
+ finally {
58
+ await client.close();
59
+ }
60
+ });
61
+ }
62
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/remnote-cli/commands/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAqB,MAAM,wBAAwB,CAAC;AAQtF,SAAS,kBAAkB,CAAC,KAAc;IACxC,IACE,CAAC,KAAK;QACN,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAQ,KAAiC,CAAC,IAAI,KAAK,QAAQ;QAC3D,OAAQ,KAAiC,CAAC,QAAQ,KAAK,QAAQ;QAC/D,OAAQ,KAAiC,CAAC,SAAS,KAAK,QAAQ,EAChE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,KAAoB,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,0EAA0E,CAAC;SACvF,cAAc,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;SACtE,cAAc,CAAC,iBAAiB,EAAE,kCAAkC,CAAC;SACrE,cAAc,CACb,qBAAqB,EACrB,2DAA2D,CAC5D;SACA,MAAM,CAAC,wBAAwB,EAAE,oDAAoD,CAAC;SACtF,MAAM,CAAC,SAAS,EAAE,wCAAwC,CAAC;SAC3D,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAAI,EAAE,EAAE;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,MAAM,GAAiB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/D,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,CAAC;YACH,MAAM,OAAO,GAA4B;gBACvC,KAAK;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC;YACF,IAAI,IAAI,CAAC,cAAc;gBAAE,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAE3F,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAChD,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChF,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAChF,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE;gBACjC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;gBAC7B,IAAI,EAAE,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO;aACpF,CAAC,CAAC;YAEH,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;YAC3C,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CACT,YAAY,CACV,MAAM,EACN,MAAM,EACN,GAAG,EAAE,CAAC,SAAS,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,SAAS,cAAc,UAAU,EAAE,CAC5E,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -23,9 +23,12 @@ export function registerReadCommand(program) {
23
23
  .command('read <rem-id>')
24
24
  .description('Read a note by its Rem ID')
25
25
  .option('-d, --depth <n>', 'Depth of child hierarchy to render (default: 5)', '5')
26
- .option('--include-content <mode>', 'Content rendering mode: "markdown" (default), "none", or "structured"')
26
+ .option('--content-mode <mode>', 'Content rendering mode: "markdown" (default), "none", or "structured"')
27
+ .option('--view <view>', 'Output detail level: compact, standard, or full')
28
+ .option('--ancestor-depth <n>', 'Number of parent Rems to include, direct parent first')
27
29
  .option('--child-limit <n>', 'Maximum children per level (default: 100)')
28
30
  .option('--max-content-length <n>', 'Maximum content character length (default: 100000)')
31
+ .option('--include-media-metadata', 'Include ordered root image metadata for get-media')
29
32
  .action(async (remId, opts) => {
30
33
  const globalOpts = program.opts();
31
34
  const format = globalOpts.text ? 'text' : 'json';
@@ -35,12 +38,18 @@ export function registerReadCommand(program) {
35
38
  remId,
36
39
  depth: parseInt(opts.depth, 10),
37
40
  };
38
- if (opts.includeContent)
39
- payload.includeContent = opts.includeContent;
41
+ if (opts.contentMode)
42
+ payload.contentMode = opts.contentMode;
43
+ if (opts.view)
44
+ payload.view = opts.view;
45
+ if (opts.ancestorDepth)
46
+ payload.ancestorDepth = parseInt(opts.ancestorDepth, 10);
40
47
  if (opts.childLimit)
41
48
  payload.childLimit = parseInt(opts.childLimit, 10);
42
49
  if (opts.maxContentLength)
43
50
  payload.maxContentLength = parseInt(opts.maxContentLength, 10);
51
+ if (opts.includeMediaMetadata)
52
+ payload.includeMediaMetadata = true;
44
53
  const result = await client.execute('read_note', payload);
45
54
  console.log(formatResult(result, format, (data) => {
46
55
  const r = data;
@@ -59,6 +68,14 @@ export function registerReadCommand(program) {
59
68
  const parentIdSuffix = typeof r.parentRemId === 'string' ? ` [${r.parentRemId}]` : '';
60
69
  lines.push(`Parent: ${r.parentTitle}${parentIdSuffix}`);
61
70
  }
71
+ if (Array.isArray(r.ancestors) && r.ancestors.length > 0) {
72
+ lines.push(`Ancestors: ${r.ancestors
73
+ .map((ancestor) => ancestor && typeof ancestor === 'object'
74
+ ? ancestor.title
75
+ : '')
76
+ .filter(Boolean)
77
+ .join(' <- ')}`);
78
+ }
62
79
  if (r.aliases && Array.isArray(r.aliases) && r.aliases.length > 0) {
63
80
  lines.push(`Aliases: ${r.aliases.join(', ')}`);
64
81
  }
@@ -68,6 +85,15 @@ export function registerReadCommand(program) {
68
85
  }
69
86
  if (r.cardDirection)
70
87
  lines.push(`Card: ${r.cardDirection}`);
88
+ if (Array.isArray(r.media) && r.media.length > 0) {
89
+ lines.push(`Media: ${r.media.length}`);
90
+ for (const item of r.media) {
91
+ if (!item || typeof item !== 'object')
92
+ continue;
93
+ const media = item;
94
+ lines.push(` - ${String(media.kind)} ${String(media.field)} ${String(media.mediaId)}${typeof media.mimeType === 'string' ? ` (${media.mimeType})` : ''}`);
95
+ }
96
+ }
71
97
  if (r.contentProperties) {
72
98
  const cp = r.contentProperties;
73
99
  lines.push(`Children: ${cp.childrenRendered}/${cp.childrenTotal}${cp.contentTruncated ? ' (truncated)' : ''}`);
@@ -1 +1 @@
1
- {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/remnote-cli/commands/read.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../src/remnote-cli/commands/read.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import { Command } from 'commander';
2
2
  export declare function registerSearchCommand(program: Command): void;
3
3
  export declare function registerSearchByTagCommand(program: Command): void;
4
+ export declare function registerListChildrenCommand(program: Command): void;