UNPKG

@mnemoverse/mcp-memory-server

Version:

Hosted AI agent memory over MCP that learns from outcomes — feedback re-ranks recall — with shared rooms for multi-agent work; one key or OAuth across Claude Code, Cursor, VS Code & ChatGPT, no infra to run

53 lines (52 loc) • 3.02 kB
/** * `@mnemoverse/mcp-memory-server/shared`: the MCP surface, for any server. * * ADR-025 (mnemoverse-core): this package defines the Mnemoverse MCP surface, * and a server that exposes Mnemoverse memory over MCP registers these tools * instead of keeping its own copy. Importing this entry point starts nothing: * the stdio server lives in the package's main entry, which this file does not * import. * * import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; * import { * registerMemoryPrompts, * registerMemoryResources, * registerMemoryTools, * SERVER_INSTRUCTIONS, * } from "@mnemoverse/mcp-memory-server/shared"; * * const server = new McpServer({ name, version }, { instructions: SERVER_INSTRUCTIONS }); * registerMemoryTools(server, { apiFetch }); * registerMemoryPrompts(server); * registerMemoryResources(server, { apiFetch }); * * `apiFetch` is the server's own way to reach the API (credential, base URL, * transport). Its contract is on the `ApiFetch` type: reject with `ApiError`, * `NetworkError` or `UnreadableBodyError`, because the tools branch on which. * * `MAX_RESULT_CHARS` and `capResult` are the tool-result size cap and the * helper that applies it: 96,000 characters (24,000 tokens), the one bound * both servers use for a tool result's text (`structuredContent` is not * capped, OD-11). ADR-025 makes this the single source of truth for the * number; the hosted connector still keeps its own 25,000-character literal * (`src/constants.ts`) and adopts this export in its place at a later step, * not yet done as of this release. `capResult` truncates on a code-point * boundary (never inside a UTF-16 surrogate pair) and appends the truncation notice, so a consumer does * not have to re-implement a `slice` that can cut a surrogate pair. * * `MemoryToolDeps.wording` and `.writeAuthor` (STEP4-2/3/5, owner * 2026-09-24) are how a SECOND server registering these tools (the hosted * connector is the first consumer) speaks in its own voice: `wording` * swaps "this server" for "this connector" in the three descriptions that * name it and, under `auth: "oauth"`, rewords every 401/403 explanation for * a user who never sees an API key; `writeAuthor` lets a supplier vouch for * the end user behind a write (core: `_get_provenance`, honoured only for a * SERVICE/supplier caller). Both are optional, and absent, reproduce this * package's existing behaviour exactly. Full contract: docs/shared.md. */ export { registerMemoryTools, MAX_RESULT_CHARS, capResult, type ApiFetch, type MemoryToolDeps, } from "./tools.js"; export { registerMemoryPrompts } from "./prompts.js"; export { registerMemoryResources } from "./resources.js"; export { SERVER_INSTRUCTIONS } from "./teaching.js"; export { ApiError, NetworkError, UnreadableBodyError, type ApiFailure, type ErrorEnvelope, type UnreadableBody, type Wording, } from "./errors.js"; export { type WriteAuthor } from "./requests.js";