@mnemoverse/mcp-memory-server 0.12.1 → 0.13.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 +13 -6
- package/dist/limits.d.ts +17 -0
- package/dist/limits.js +17 -0
- package/dist/limits.js.map +1 -1
- package/dist/requests.d.ts +22 -0
- package/dist/requests.js +23 -0
- package/dist/requests.js.map +1 -1
- package/dist/teaching.d.ts +15 -1
- package/dist/teaching.js +15 -1
- package/dist/teaching.js.map +1 -1
- package/dist/tools.d.ts +2 -2
- package/dist/tools.js +360 -89
- package/dist/tools.js.map +1 -1
- package/package.json +7 -3
- package/tools.json +140 -0
package/README.md
CHANGED
|
@@ -292,6 +292,7 @@ If it doesn't remember: check that the client was fully restarted and the config
|
|
|
292
292
|
| `memory_invite_to_room` | Mint an invite (code + link) for a room you own; single-use unless `max_uses` allows more |
|
|
293
293
|
| `memory_join_room` | Join a shared room with an invite code (`mnvr_...`) |
|
|
294
294
|
| `memory_list_rooms` | List rooms you own or joined, with each room's address to use as `domain` |
|
|
295
|
+
| `memory_graph` | Read the association edges around given concepts — weight, outcome valence, co-activation count |
|
|
295
296
|
| `vault_list` | List Vault secrets by alias and purpose — the secret value is never returned |
|
|
296
297
|
|
|
297
298
|
### Prompts
|
|
@@ -346,9 +347,9 @@ saw and diff it against what the server serves today, by version.
|
|
|
346
347
|
tool (or parameter) stays, its description says
|
|
347
348
|
`deprecated since x.y, removed in x.z`, and the change lands only in the
|
|
348
349
|
announced version, with its CHANGELOG line. A renamed parameter is accepted
|
|
349
|
-
under both names until then (0.11
|
|
350
|
-
`memory_ids`;
|
|
351
|
-
|
|
350
|
+
under both names until then (0.11 renamed `memory_feedback`'s `atom_ids` to
|
|
351
|
+
`memory_ids`; the old name was removed in 0.13, as announced after 0.12
|
|
352
|
+
shipped sooner than the first announcement assumed). A rename is announced by naming
|
|
352
353
|
both the old and the new name; the version pair alone does not say what a
|
|
353
354
|
client should look for. Because a MINOR may add a field but not remove one, a
|
|
354
355
|
renamed annotation field is declared under both names until the announced
|
|
@@ -360,8 +361,13 @@ saw and diff it against what the server serves today, by version.
|
|
|
360
361
|
changes those three description strings and nothing else; tool names,
|
|
361
362
|
input and output schemas and annotations never vary by configuration.
|
|
362
363
|
|
|
363
|
-
The list above is the
|
|
364
|
-
The hosted connector at `mcp.mnemoverse.com/mcp` serves the same
|
|
364
|
+
The list above is the current surface: eleven tools, each declaring all four hints.
|
|
365
|
+
The hosted connector at `mcp.mnemoverse.com/mcp` serves the same surface, registered
|
|
366
|
+
from this package at the version it pins. The list itself is published as
|
|
367
|
+
[`tools.json`](./tools.json), generated from the built server (name, title,
|
|
368
|
+
description and annotations per tool); the test suite and the release workflow
|
|
369
|
+
fail when it does not list what the server registers, and the `.mcpb` manifest's
|
|
370
|
+
tool list is derived from it.
|
|
365
371
|
|
|
366
372
|
**If the hosted connector stops answering in a session.** A client can keep showing the connector as connected while every call in that session fails with "not connected". Reconnecting it on claude.ai does not revive a session that is already stuck; reconnect from inside the session instead (in Claude Code, `/mcp`, then sign in again). Meanwhile this local server, set up with an API key from the same account as in the Quick Start, reaches the same memory and does not depend on that session's sign-in.
|
|
367
373
|
|
|
@@ -435,7 +441,7 @@ The same memory, packaged for hosts that prefer a plugin or an extension over an
|
|
|
435
441
|
```
|
|
436
442
|
- [Cursor plugin](https://github.com/mnemoverse/cursor-plugin) — same remote endpoint, same sign-in
|
|
437
443
|
- [Gemini CLI extension](https://github.com/mnemoverse/gemini-extension) — same remote endpoint. `gemini extensions install https://github.com/mnemoverse/gemini-extension`
|
|
438
|
-
- [VS Code extension](https://github.com/mnemoverse/mnemoverse-vscode) — signs in through the browser, with pasting a key kept as a fallback command
|
|
444
|
+
- VS Code extension ([VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=Mnemoverse.mnemoverse-vscode), [Open VSX](https://open-vsx.org/extension/mnemoverse/mnemoverse-vscode), [source](https://github.com/mnemoverse/mnemoverse-vscode)) — signs in through the browser, with pasting a key kept as a fallback command
|
|
439
445
|
- Desktop extension: `manifest.json` in this repository is an MCPB manifest. This one is different from the four above: it runs the server as a local `node` process and reads `MNEMOVERSE_API_KEY` from the extension settings rather than calling the hosted endpoint. The packaged `.mcpb` ships with each release
|
|
440
446
|
|
|
441
447
|
**Standing rules, separate from this server**
|
|
@@ -465,6 +471,7 @@ What each tool sends:
|
|
|
465
471
|
| `memory_create_room` | the room `name` and `description` |
|
|
466
472
|
| `memory_invite_to_room` | the `room_id`, invite `scope`, and expiry |
|
|
467
473
|
| `memory_join_room` | the invite `code` |
|
|
474
|
+
| `memory_graph` | the `seeds`, plus any of `depth`, `domain`, `min_weight`, `limit` you pass |
|
|
468
475
|
| `memory_stats` / `memory_list_rooms` / `vault_list` | no request body — authenticated GETs |
|
|
469
476
|
|
|
470
477
|
One thing goes out that you did not explicitly request: since 0.8.1, when a search or feed comes back empty, the server sends one or two authenticated read-only GET probes (`/memory/rooms` and/or `/memory/stats`) so the empty answer can say what it did not cover. The probes carry your API key and nothing else, change no stored state, and are disclosed in the [CHANGELOG](CHANGELOG.md).
|
package/dist/limits.d.ts
CHANGED
|
@@ -60,6 +60,23 @@ export declare const CORE_LIMITS: {
|
|
|
60
60
|
readonly maximum: 1000;
|
|
61
61
|
readonly default: 1;
|
|
62
62
|
};
|
|
63
|
+
readonly graphSeeds: {
|
|
64
|
+
readonly minItems: 1;
|
|
65
|
+
readonly maxItems: 20;
|
|
66
|
+
};
|
|
67
|
+
readonly graphDepth: {
|
|
68
|
+
readonly minimum: 1;
|
|
69
|
+
readonly maximum: 3;
|
|
70
|
+
readonly default: 1;
|
|
71
|
+
};
|
|
72
|
+
readonly graphMinWeight: {
|
|
73
|
+
readonly minimum: 0;
|
|
74
|
+
};
|
|
75
|
+
readonly graphLimit: {
|
|
76
|
+
readonly minimum: 1;
|
|
77
|
+
readonly maximum: 500;
|
|
78
|
+
readonly default: 100;
|
|
79
|
+
};
|
|
63
80
|
};
|
|
64
81
|
/** The contract this file was generated from, for the freshness check. */
|
|
65
82
|
export declare const CORE_CONTRACT: {
|
package/dist/limits.js
CHANGED
|
@@ -60,6 +60,23 @@ export const CORE_LIMITS = {
|
|
|
60
60
|
maximum: 1000,
|
|
61
61
|
default: 1,
|
|
62
62
|
},
|
|
63
|
+
graphSeeds: {
|
|
64
|
+
minItems: 1,
|
|
65
|
+
maxItems: 20,
|
|
66
|
+
},
|
|
67
|
+
graphDepth: {
|
|
68
|
+
minimum: 1,
|
|
69
|
+
maximum: 3,
|
|
70
|
+
default: 1,
|
|
71
|
+
},
|
|
72
|
+
graphMinWeight: {
|
|
73
|
+
minimum: 0,
|
|
74
|
+
},
|
|
75
|
+
graphLimit: {
|
|
76
|
+
minimum: 1,
|
|
77
|
+
maximum: 500,
|
|
78
|
+
default: 100,
|
|
79
|
+
},
|
|
63
80
|
};
|
|
64
81
|
/** The contract this file was generated from, for the freshness check. */
|
|
65
82
|
export const CORE_CONTRACT = {
|
package/dist/limits.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limits.js","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY,EAAE;QACZ,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,KAAK;KACjB;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,GAAG;KACd;IACD,MAAM,EAAE;QACN,SAAS,EAAE,GAAG;KACf;IACD,SAAS,EAAE;QACT,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,IAAI;KAChB;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,EAAE;KACZ;IACD,WAAW,EAAE;QACX,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,EAAE;KACZ;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,GAAG;KACf;IACD,eAAe,EAAE;QACf,OAAO,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,CAAC;KACX;IACD,QAAQ,EAAE;QACR,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,GAAG;KACf;IACD,eAAe,EAAE;QACf,SAAS,EAAE,IAAI;KAChB;IACD,mBAAmB,EAAE;QACnB,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,CAAC;KACX;IACD,aAAa,EAAE;QACb,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC;KACX;CACO,CAAC;AAEX,0EAA0E;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,GAAG,EAAE,0CAA0C;IAC/C,UAAU,EAAE,OAAO;CACX,CAAC"}
|
|
1
|
+
{"version":3,"file":"limits.js","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY,EAAE;QACZ,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,KAAK;KACjB;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,GAAG;KACd;IACD,MAAM,EAAE;QACN,SAAS,EAAE,GAAG;KACf;IACD,SAAS,EAAE;QACT,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,IAAI;KAChB;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,EAAE;KACZ;IACD,WAAW,EAAE;QACX,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,EAAE;KACZ;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,GAAG;KACf;IACD,eAAe,EAAE;QACf,OAAO,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,CAAC;KACX;IACD,QAAQ,EAAE;QACR,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,GAAG;KACf;IACD,eAAe,EAAE;QACf,SAAS,EAAE,IAAI;KAChB;IACD,mBAAmB,EAAE;QACnB,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,CAAC;KACX;IACD,aAAa,EAAE;QACb,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC;KACX;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,EAAE;KACb;IACD,UAAU,EAAE;QACV,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;KACX;IACD,cAAc,EAAE;QACd,OAAO,EAAE,CAAC;KACX;IACD,UAAU,EAAE;QACV,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,GAAG;KACb;CACO,CAAC;AAEX,0EAA0E;AAC1E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,GAAG,EAAE,0CAA0C;IAC/C,UAAU,EAAE,OAAO;CACX,CAAC"}
|
package/dist/requests.d.ts
CHANGED
|
@@ -52,6 +52,13 @@ export interface WriteArgs {
|
|
|
52
52
|
concepts?: string[];
|
|
53
53
|
domain?: string;
|
|
54
54
|
}
|
|
55
|
+
export interface GraphArgs {
|
|
56
|
+
seeds: string[];
|
|
57
|
+
depth?: number;
|
|
58
|
+
domain?: string;
|
|
59
|
+
min_weight?: number;
|
|
60
|
+
limit?: number;
|
|
61
|
+
}
|
|
55
62
|
/**
|
|
56
63
|
* Supplier-vouched authorship for a write (STEP4-5, owner 2026-09-24),
|
|
57
64
|
* mirroring core's `ProvenanceWriteSchema` field for field
|
|
@@ -89,6 +96,21 @@ export declare function searchedScope(domain?: string): string | undefined;
|
|
|
89
96
|
export declare function readRequestBody(a: ReadArgs): Record<string, unknown>;
|
|
90
97
|
/** memory_list_recent. */
|
|
91
98
|
export declare function recentRequestBody(a: RecentArgs): Record<string, unknown>;
|
|
99
|
+
/**
|
|
100
|
+
* memory_graph. `depth` and `limit` are sent with an explicit default (1 and
|
|
101
|
+
* 100), the same convention `readRequestBody` uses for `top_k` — this
|
|
102
|
+
* server's own default rather than a field left out for the engine's to
|
|
103
|
+
* apply, so it stays stated here even though, unlike `top_k`, both currently
|
|
104
|
+
* match the engine's own (GraphRequestSchema `depth.default`/`limit.default`).
|
|
105
|
+
*
|
|
106
|
+
* `min_weight` is `??`, never `||`: `0.0` is a meaningful, contract-honoured
|
|
107
|
+
* value (an explicit floor of zero, honoured at every hop with no server
|
|
108
|
+
* override — GraphRequestSchema), not a falsy placeholder for "unset". It is
|
|
109
|
+
* omitted from the body entirely when the caller passed none, so core applies
|
|
110
|
+
* its OWN default (no floor at depth 1; its own 0.05 floor from depth 2) —
|
|
111
|
+
* this package does not invent one.
|
|
112
|
+
*/
|
|
113
|
+
export declare function graphRequestBody(a: GraphArgs): Record<string, unknown>;
|
|
92
114
|
/**
|
|
93
115
|
* memory_write. `"general"` is the server-side default made explicit, and is
|
|
94
116
|
* what 0.8.0 sent — NOT a normalisation of the caller's value.
|
package/dist/requests.js
CHANGED
|
@@ -71,6 +71,29 @@ export function recentRequestBody(a) {
|
|
|
71
71
|
cursor: a.cursor || undefined,
|
|
72
72
|
};
|
|
73
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* memory_graph. `depth` and `limit` are sent with an explicit default (1 and
|
|
76
|
+
* 100), the same convention `readRequestBody` uses for `top_k` — this
|
|
77
|
+
* server's own default rather than a field left out for the engine's to
|
|
78
|
+
* apply, so it stays stated here even though, unlike `top_k`, both currently
|
|
79
|
+
* match the engine's own (GraphRequestSchema `depth.default`/`limit.default`).
|
|
80
|
+
*
|
|
81
|
+
* `min_weight` is `??`, never `||`: `0.0` is a meaningful, contract-honoured
|
|
82
|
+
* value (an explicit floor of zero, honoured at every hop with no server
|
|
83
|
+
* override — GraphRequestSchema), not a falsy placeholder for "unset". It is
|
|
84
|
+
* omitted from the body entirely when the caller passed none, so core applies
|
|
85
|
+
* its OWN default (no floor at depth 1; its own 0.05 floor from depth 2) —
|
|
86
|
+
* this package does not invent one.
|
|
87
|
+
*/
|
|
88
|
+
export function graphRequestBody(a) {
|
|
89
|
+
return {
|
|
90
|
+
seeds: a.seeds,
|
|
91
|
+
depth: a.depth ?? 1,
|
|
92
|
+
domain: searchedScope(a.domain),
|
|
93
|
+
...(a.min_weight === undefined ? {} : { min_weight: a.min_weight }),
|
|
94
|
+
limit: a.limit ?? 100,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
74
97
|
/**
|
|
75
98
|
* memory_write. `"general"` is the server-side default made explicit, and is
|
|
76
99
|
* what 0.8.0 sent — NOT a normalisation of the caller's value.
|
package/dist/requests.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../src/requests.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,wDAAwD;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../src/requests.ts"],"names":[],"mappings":"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"}
|
package/dist/teaching.d.ts
CHANGED
|
@@ -22,8 +22,22 @@ import type { ReadScope } from "./scope.js";
|
|
|
22
22
|
* - No delete tool on this surface (2026-08-20): deletion was withdrawn to an
|
|
23
23
|
* administrative REST-only operation, so the instructions point a model at
|
|
24
24
|
* writing a corrected memory instead of asking to delete one.
|
|
25
|
+
*
|
|
26
|
+
* memory_graph (0.13): mentioning the eleventh tool here pushed the string
|
|
27
|
+
* past 800 at 833 chars. Two sentences were shortened to make room, both
|
|
28
|
+
* with margin under the cap left afterward (793 total) rather than trimmed to
|
|
29
|
+
* the wire:
|
|
30
|
+
* - the room sentence dropped its "(memory_list_rooms)" parenthetical —
|
|
31
|
+
* that tool name is not one of the ones this file's own tests require
|
|
32
|
+
* present (`test/descriptions.test.ts` pins
|
|
33
|
+
* "...pass its address as domain" and "unscoped reads never cover rooms"
|
|
34
|
+
* as two independent substrings, not the text between them, so removing
|
|
35
|
+
* only the aside between those two anchors keeps both intact);
|
|
36
|
+
* - "deletion is administrative, not a tool" lost its last three words —
|
|
37
|
+
* the sentence still states the fact ("write a fresh one" and
|
|
38
|
+
* "administrative" both survive, and both are separately asserted).
|
|
25
39
|
*/
|
|
26
|
-
export declare const SERVER_INSTRUCTIONS = "You own this long-term memory. It persists across sessions and every AI tool this user connects. Use it as a habit: memory_read before answering anything that may have come up; memory_write the moment you learn a durable fact, preference or decision \u2014 don't wait to be asked. Shared rooms are SEPARATE stores: to read one, pass its address as domain
|
|
40
|
+
export declare const SERVER_INSTRUCTIONS = "You own this long-term memory. It persists across sessions and every AI tool this user connects. Use it as a habit: memory_read before answering anything that may have come up; memory_write the moment you learn a durable fact, preference or decision \u2014 don't wait to be asked. Shared rooms are SEPARATE stores: to read one, pass its address as domain; unscoped reads never cover rooms. Rate recalls with memory_feedback; memory_stats shows counts; memory_list_recent is newest-first; memory_graph shows links. To correct a wrong memory, write a fresh one \u2014 deletion is administrative. Rooms: memory_create_room, memory_invite_to_room, memory_join_room. vault_list names secrets by alias, never values. Never store passwords, API keys, payment data, MFA codes, government IDs, or health records.";
|
|
27
41
|
/** The pre-existing zero-result message — kept as the fail-open fallback. */
|
|
28
42
|
export declare const NO_MATCH_MESSAGE = "No memories found for this query.";
|
|
29
43
|
/** Hint for an UNSCOPED no-match against a non-empty store: widen the query.
|
package/dist/teaching.js
CHANGED
|
@@ -21,8 +21,22 @@
|
|
|
21
21
|
* - No delete tool on this surface (2026-08-20): deletion was withdrawn to an
|
|
22
22
|
* administrative REST-only operation, so the instructions point a model at
|
|
23
23
|
* writing a corrected memory instead of asking to delete one.
|
|
24
|
+
*
|
|
25
|
+
* memory_graph (0.13): mentioning the eleventh tool here pushed the string
|
|
26
|
+
* past 800 at 833 chars. Two sentences were shortened to make room, both
|
|
27
|
+
* with margin under the cap left afterward (793 total) rather than trimmed to
|
|
28
|
+
* the wire:
|
|
29
|
+
* - the room sentence dropped its "(memory_list_rooms)" parenthetical —
|
|
30
|
+
* that tool name is not one of the ones this file's own tests require
|
|
31
|
+
* present (`test/descriptions.test.ts` pins
|
|
32
|
+
* "...pass its address as domain" and "unscoped reads never cover rooms"
|
|
33
|
+
* as two independent substrings, not the text between them, so removing
|
|
34
|
+
* only the aside between those two anchors keeps both intact);
|
|
35
|
+
* - "deletion is administrative, not a tool" lost its last three words —
|
|
36
|
+
* the sentence still states the fact ("write a fresh one" and
|
|
37
|
+
* "administrative" both survive, and both are separately asserted).
|
|
24
38
|
*/
|
|
25
|
-
export const SERVER_INSTRUCTIONS = "You own this long-term memory. It persists across sessions and every AI tool this user connects. Use it as a habit: memory_read before answering anything that may have come up; memory_write the moment you learn a durable fact, preference or decision — don't wait to be asked. Shared rooms are SEPARATE stores: to read one, pass its address as domain
|
|
39
|
+
export const SERVER_INSTRUCTIONS = "You own this long-term memory. It persists across sessions and every AI tool this user connects. Use it as a habit: memory_read before answering anything that may have come up; memory_write the moment you learn a durable fact, preference or decision — don't wait to be asked. Shared rooms are SEPARATE stores: to read one, pass its address as domain; unscoped reads never cover rooms. Rate recalls with memory_feedback; memory_stats shows counts; memory_list_recent is newest-first; memory_graph shows links. To correct a wrong memory, write a fresh one — deletion is administrative. Rooms: memory_create_room, memory_invite_to_room, memory_join_room. vault_list names secrets by alias, never values. Never store passwords, API keys, payment data, MFA codes, government IDs, or health records.";
|
|
26
40
|
/** The pre-existing zero-result message — kept as the fail-open fallback. */
|
|
27
41
|
export const NO_MATCH_MESSAGE = "No memories found for this query.";
|
|
28
42
|
/** Hint for an UNSCOPED no-match against a non-empty store: widen the query.
|
package/dist/teaching.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teaching.js","sourceRoot":"","sources":["../src/teaching.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH
|
|
1
|
+
{"version":3,"file":"teaching.js","sourceRoot":"","sources":["../src/teaching.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The ten memory tools, as one function any MCP server can register.
|
|
2
|
+
* The eleven tools (ten memory tools and vault_list), as one function any MCP server can register.
|
|
3
3
|
*
|
|
4
4
|
* ADR-025 (mnemoverse-core): this package defines the MCP surface, and every
|
|
5
5
|
* server that exposes Mnemoverse memory over MCP registers the SAME tools from
|
|
@@ -128,7 +128,7 @@ export declare function structured(text: string, data: Record<string, unknown>):
|
|
|
128
128
|
structuredContent: Record<string, unknown>;
|
|
129
129
|
};
|
|
130
130
|
/**
|
|
131
|
-
* Register the
|
|
131
|
+
* Register the eleven tools on `server`. Call once per server instance.
|
|
132
132
|
* `deps.apiFetch` is the only way the tools reach the API.
|
|
133
133
|
*/
|
|
134
134
|
export declare function registerMemoryTools(server: McpServer, deps: MemoryToolDeps): void;
|