mcpscraper-memory 1.16.2 → 1.17.2
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/CHANGELOG.md +178 -0
- package/dist/bin/mcp-stdio-server.js +1 -1
- package/dist/bin/mcp-stdio-server.js.map +1 -1
- package/package.json +12 -4
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to MCP Memory are documented here. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project follows semantic versioning for published packages.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [1.17.2] - 2026-08-11
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Published the README and changelog with the npm artifact, added canonical repository links, and pinned the release-history repair in `mcpscraper-memory-tools` 1.14.2 without changing the 114-tool MCP contract.
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- Restored comparison links for every published release since 1.9.2, including the RAG-first 1.17.1 server contract.
|
|
16
|
+
|
|
17
|
+
## [1.17.1] - 2026-08-10
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Standalone Memory server instructions now require hybrid Smart RAG before vault, note, or title inventories for ordinary discovery, while preserving explicit inventory, exact-note, title-only, and export exceptions.
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- Removed the replaceable reranking vendor name from public server instructions.
|
|
26
|
+
- Made MCP Scraper schema generation create its output directory, skip multi-tool modules owned by dedicated registries, and fail closed instead of writing a partial contract after extraction errors.
|
|
27
|
+
|
|
28
|
+
## [1.17.0] - 2026-08-05
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- Exposed the registered Personal Authority preset and renderer-specific template configuration through hosted and stdio Memory clients.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- Generalized the scheduled-results resource around multiple registered template families and pinned `mcpscraper-memory-db@1.13.1` plus `mcpscraper-memory-tools@1.14.0`.
|
|
37
|
+
|
|
38
|
+
## [1.16.2] - 2026-08-03
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Pinned `mcpscraper-memory-tools@1.13.3` so tiny valid images receive embeddable sanitized previews instead of failing after a successful save.
|
|
43
|
+
|
|
44
|
+
## [1.16.1] - 2026-08-03
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
|
|
48
|
+
- Added a secret-authenticated, once-per-minute Vercel Cron invocation for the image embedding and asset-reconciliation worker.
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
|
|
52
|
+
- Pinned `mcpscraper-memory-db@1.12.1` and `mcpscraper-memory-tools@1.13.2` so the hosted server uses its dedicated private Vercel Blob store.
|
|
53
|
+
|
|
54
|
+
## [1.16.0] - 2026-08-03
|
|
55
|
+
|
|
56
|
+
### Added
|
|
57
|
+
|
|
58
|
+
- Registered governed private image projects, folders, asset lifecycle tools, and text/image/fused semantic search for hosted and stdio Memory clients.
|
|
59
|
+
- Added a secret-gated image worker endpoint that processes multimodal embeddings and repairs expired reservations, stale leases, quota accounting, and orphaned object-store files.
|
|
60
|
+
|
|
61
|
+
### Changed
|
|
62
|
+
|
|
63
|
+
- Server instructions distinguish hosted Memory image organization from local filesystem delivery and make durable image preservation explicitly opt in.
|
|
64
|
+
- Pinned `mcpscraper-memory-db@1.12.0` and `mcpscraper-memory-tools@1.13.0` so hosted builds use the released image contracts.
|
|
65
|
+
|
|
66
|
+
### Security
|
|
67
|
+
|
|
68
|
+
- Production image assets require a configured private object store; the service no longer falls back to ephemeral local storage in hosted environments.
|
|
69
|
+
|
|
70
|
+
## [1.15.1] - 2026-08-03
|
|
71
|
+
|
|
72
|
+
### Fixed
|
|
73
|
+
|
|
74
|
+
- Hosted and stdio MCP clients can list schedules created before artifact templates existed; those legacy actions now return the canonical no-artifact selection instead of failing output validation.
|
|
75
|
+
|
|
76
|
+
## [1.15.0] - 2026-07-30
|
|
77
|
+
|
|
78
|
+
### Added
|
|
79
|
+
|
|
80
|
+
- Registered the unified scheduled-results inbox and versioned artifact-template tools for hosted MCP clients, including stable run IDs, opened/archive state, immutable Editorial Reading Room template versions, and exact artifact selections on scheduled-action edits.
|
|
81
|
+
- Exposed `memory://scheduled-results-contract` so clients can discover the resource split, no-artifact semantics, embedding boundary, and view-link safety contract without parsing tool prose.
|
|
82
|
+
|
|
83
|
+
### Changed
|
|
84
|
+
|
|
85
|
+
- The legacy per-action run-history tool now reads durable scheduled-run results first, includes their opaque `runId`, and falls back to operational receipts only for pre-rollout schedules with no result records.
|
|
86
|
+
- Pinned `mcpscraper-memory-db@1.11.0` and `mcpscraper-memory-tools@1.12.0` with registry-backed integrity so clean hosted builds execute the same canonical contracts.
|
|
87
|
+
|
|
88
|
+
## [1.14.0] - 2026-07-28
|
|
89
|
+
|
|
90
|
+
### Added
|
|
91
|
+
|
|
92
|
+
- Registered `answer-inbox-item` and `auto-optimization` so the agent inbox can be answered and the scheduled optimizer controlled from any MCP client.
|
|
93
|
+
|
|
94
|
+
## [1.13.1] - 2026-07-28
|
|
95
|
+
|
|
96
|
+
### Fixed
|
|
97
|
+
|
|
98
|
+
- Ships memory-tools 1.10.1 / memory-db 1.9.1 so `merge-memory-tags` no longer fails with a unique-index violation.
|
|
99
|
+
|
|
100
|
+
## [1.13.0] - 2026-07-28
|
|
101
|
+
|
|
102
|
+
### Added
|
|
103
|
+
|
|
104
|
+
- Registered `merge-memory-tags` on the MCP server, and exposed the tag policy once as the `memory://tag-policy` resource (previously `listResources` returned nothing) instead of repeating tag rules across every tag-writing tool description.
|
|
105
|
+
- New `updateScheduledActionTool` (`update-scheduled-action`): edit an existing scheduled action's description, target vault, cadence, timeOfDay, and timezone in place, preserving its id, status, and run history; cadence/time/timezone changes recompute `nextRunAt` exactly like create, vault changes require write access to the new vault, and system-managed actions are refused.
|
|
106
|
+
- New `listScheduledActionRunsTool` (`list-scheduled-action-runs`): per-action run history, newest first, read from the scheduler's `mem_scheduled_agent_runs` and `mem_connection_sync_runs` receipt tables in the shared memory Postgres, with per-connection failure detail for sync runs and a single last-run fallback entry when no receipts exist yet.
|
|
107
|
+
|
|
108
|
+
## [1.12.2] - 2026-07-22
|
|
109
|
+
|
|
110
|
+
### Fixed
|
|
111
|
+
|
|
112
|
+
- Updated the hosted and stdio services to `mcpscraper-memory-tools` 1.9.1 so scheduling-access calls normalize surrounding whitespace in the shared internal billing secret.
|
|
113
|
+
- Documented the canonical cross-service billing-secret contract used by MCP Memory, MCP Scraper Scheduler, and MCP Scraper.
|
|
114
|
+
|
|
115
|
+
## [1.11.3] - 2026-07-20
|
|
116
|
+
|
|
117
|
+
### Fixed
|
|
118
|
+
|
|
119
|
+
- Kept the runtime MCP version in sync with the published package so deployed clients can identify the People contact-card release accurately.
|
|
120
|
+
|
|
121
|
+
## [1.11.2] - 2026-07-20
|
|
122
|
+
|
|
123
|
+
### Added
|
|
124
|
+
|
|
125
|
+
- Published the shared People contact-card contract to hosted and stdio MCP clients, including verified Gmail/Google Calendar activity linkage to existing People hubs.
|
|
126
|
+
|
|
127
|
+
## [1.11.1] - 2026-07-20
|
|
128
|
+
|
|
129
|
+
### Fixed
|
|
130
|
+
|
|
131
|
+
- Corrected hosted and stdio MCP instructions so Tasks are independent Inbox todos by default and use a Project relationship only when it is known. Agents now avoid inferring a project from task wording.
|
|
132
|
+
|
|
133
|
+
## [1.11.0] - 2026-07-20
|
|
134
|
+
|
|
135
|
+
### Changed
|
|
136
|
+
|
|
137
|
+
- Updated the hosted and local MCP instructions to route People, Deals, Projects, Tasks, and Communications by their relationship contract, including project-required tasks and pending human approval for email drafts.
|
|
138
|
+
- Upgraded the shared memory database and tools dependencies to the governed 15-vault contract without moving legacy records.
|
|
139
|
+
|
|
140
|
+
## [1.10.1] - 2026-07-20
|
|
141
|
+
|
|
142
|
+
### Fixed
|
|
143
|
+
|
|
144
|
+
- Updated the Vault App link issuer dependency so standalone MCP Memory returns the canonical mcpscraper.dev/vault path instead of a separate subdomain.
|
|
145
|
+
|
|
146
|
+
## [1.10.0] - 2026-07-20
|
|
147
|
+
|
|
148
|
+
### Added
|
|
149
|
+
|
|
150
|
+
- Added the separate `get-vault-app-link` and `revoke-vault-app-link` MCP tools for the mobile-first People, Projects, and Tasks Vault App. These tools issue and revoke an independently stored bearer link without changing Omni-Chat.
|
|
151
|
+
|
|
152
|
+
## [1.9.2] - 2026-07-17
|
|
153
|
+
|
|
154
|
+
### Changed
|
|
155
|
+
|
|
156
|
+
- The hosted service now consumes `mcpscraper-memory-db` 1.5 and `mcpscraper-memory-tools` 1.6, aligning direct OAuth and stdio clients with the current 14-vault Smart RAG contract, including bounded multi-query retrieval, graph expansion, and Jina reranking metadata.
|
|
157
|
+
- Server guidance now documents the Skills vault and the exact hybrid retrieval workflow exposed by `memory-search`.
|
|
158
|
+
|
|
159
|
+
[Unreleased]: https://github.com/VilovietaSEO/mcp-memory/compare/v1.17.2...HEAD
|
|
160
|
+
[1.17.2]: https://github.com/VilovietaSEO/mcp-memory/compare/v1.17.1...v1.17.2
|
|
161
|
+
[1.17.1]: https://github.com/VilovietaSEO/mcp-memory/compare/v1.17.0...v1.17.1
|
|
162
|
+
[1.17.0]: https://github.com/VilovietaSEO/mcp-memory/compare/v1.16.2...v1.17.0
|
|
163
|
+
[1.16.2]: https://github.com/VilovietaSEO/mcp-memory/compare/v1.16.1...v1.16.2
|
|
164
|
+
[1.16.1]: https://github.com/VilovietaSEO/mcp-memory/compare/v1.16.0...v1.16.1
|
|
165
|
+
[1.16.0]: https://github.com/VilovietaSEO/mcp-memory/releases/tag/v1.16.0
|
|
166
|
+
[1.15.1]: https://github.com/VilovietaSEO/mcp-memory/compare/v1.15.0...v1.15.1
|
|
167
|
+
[1.15.0]: https://github.com/VilovietaSEO/mcp-memory/compare/v1.14.0...v1.15.0
|
|
168
|
+
[1.14.0]: https://github.com/VilovietaSEO/mcp-memory/compare/v1.13.1...v1.14.0
|
|
169
|
+
[1.13.1]: https://github.com/VilovietaSEO/mcp-memory/compare/v1.13.0...v1.13.1
|
|
170
|
+
[1.13.0]: https://github.com/VilovietaSEO/mcp-memory/compare/v1.12.2...v1.13.0
|
|
171
|
+
[1.12.2]: https://github.com/VilovietaSEO/mcp-memory/releases/tag/v1.12.2
|
|
172
|
+
[1.11.3]: https://github.com/VilovietaSEO/mcp-memory/releases/tag/v1.11.3
|
|
173
|
+
[1.11.2]: https://github.com/VilovietaSEO/mcp-memory/releases/tag/v1.11.2
|
|
174
|
+
[1.11.1]: https://github.com/VilovietaSEO/mcp-memory/releases/tag/v1.11.1
|
|
175
|
+
[1.11.0]: https://github.com/VilovietaSEO/mcp-memory/releases/tag/v1.11.0
|
|
176
|
+
[1.10.1]: https://github.com/VilovietaSEO/mcp-memory/releases/tag/v1.10.1
|
|
177
|
+
[1.10.0]: https://github.com/VilovietaSEO/mcp-memory/releases/tag/v1.10.0
|
|
178
|
+
[1.9.2]: https://github.com/VilovietaSEO/mcp-memory/releases/tag/v1.9.2
|
|
@@ -9,7 +9,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
9
9
|
import { ListToolsRequestSchema, CallToolRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
10
10
|
|
|
11
11
|
// src/version.ts
|
|
12
|
-
var PACKAGE_VERSION = "1.
|
|
12
|
+
var PACKAGE_VERSION = "1.17.2";
|
|
13
13
|
|
|
14
14
|
// bin/mcp-stdio-server.ts
|
|
15
15
|
var wantsHelp = process.argv.includes("--help") || process.argv.includes("-h");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../bin/mcp-stdio-server.ts","../../src/version.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { readFileSync } from 'node:fs'\nimport { homedir } from 'node:os'\nimport { join } from 'node:path'\nimport { Server } from '@modelcontextprotocol/sdk/server/index.js'\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'\nimport { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js'\nimport { PACKAGE_VERSION } from '../src/version.js'\n\nconst wantsHelp = process.argv.includes('--help') || process.argv.includes('-h')\nconst forceStdio = process.argv.includes('--stdio') || process.env.MCP_MEMORY_FORCE_STDIO === '1'\nconst interactiveTerminal = Boolean(process.stdin.isTTY && process.stdout.isTTY)\n\nfunction readApiKeyFile(): string | undefined {\n const explicitPath = process.env.MCP_MEMORY_KEY_PATH?.trim()\n const paths = [explicitPath, join(homedir(), '.mcp-memory-key')].filter(Boolean) as string[]\n for (const path of paths) {\n try {\n const value = readFileSync(path, 'utf8').trim()\n if (value) return value\n } catch {\n void 0\n }\n }\n return undefined\n}\n\nconst apiKey = (\n process.env.MCP_MEMORY_API_KEY ??\n process.env.MCP_MEMORY_KEY ??\n readApiKeyFile()\n)?.trim()\n\nfunction renderHelp(): string {\n const status = apiKey ? 'configured' : 'NOT configured'\n return [\n `mcp-memory v${PACKAGE_VERSION} — local stdio bridge to memory.mcpscraper.dev`,\n '',\n `API key: ${status}`,\n '',\n 'This package is a thin proxy: every tool call is forwarded over HTTPS to',\n 'your hosted mcp-memory account, the same one used by the OAuth remote',\n 'connector. Nothing runs or is stored locally.',\n '',\n 'Setup:',\n ' 1. Get your key from memory.mcpscraper.dev (or the mobile automations link).',\n ' 2. Set it: export MCP_MEMORY_API_KEY=mk_...',\n ' (or write it to ~/.mcp-memory-key)',\n ' 3. Add to your MCP client config:',\n ' { \"command\": \"npx\", \"args\": [\"-y\", \"mcpscraper-memory\"],',\n ' \"env\": { \"MCP_MEMORY_API_KEY\": \"mk_...\" } }',\n '',\n 'Flags: --stdio (skip this screen and run directly), --help',\n '',\n ].join('\\n')\n}\n\nif (!forceStdio && (interactiveTerminal || wantsHelp)) {\n process.stdout.write(renderHelp())\n process.exit(0)\n}\n\nif (!apiKey) {\n process.stderr.write('MCP_MEMORY_API_KEY env var or ~/.mcp-memory-key is required\\n')\n process.exit(1)\n}\n\nconst baseUrl = (process.env.MCP_MEMORY_BASE_URL?.trim() || 'https://memory.mcpscraper.dev').replace(/\\/$/, '')\nconst remoteUrl = `${baseUrl}/mcp`\n\nlet rpcId = 0\n\nfunction parseRpcBody(text: string): { result?: unknown; error?: { message?: string } } {\n const dataLine = text.split('\\n').find((line) => line.startsWith('data:'))\n const payload = dataLine ? dataLine.slice(5).trim() : text\n return JSON.parse(payload)\n}\n\nasync function rpc(method: string, params?: Record<string, unknown>): Promise<unknown> {\n const res = await fetch(remoteUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json, text/event-stream',\n Authorization: `Bearer ${apiKey}`,\n },\n body: JSON.stringify({ jsonrpc: '2.0', id: ++rpcId, method, params }),\n })\n const text = await res.text()\n if (!res.ok) {\n throw new Error(`mcp-memory HTTP ${res.status}: ${text.slice(0, 500)}`)\n }\n const body = parseRpcBody(text)\n if (body.error) throw new Error(body.error.message ?? 'remote mcp-memory error')\n return body.result\n}\n\nasync function main(): Promise<void> {\n let remoteInfo: { serverInfo?: { name?: string; version?: string }; instructions?: string } = {}\n try {\n remoteInfo = (await rpc('initialize', {\n protocolVersion: '2025-06-18',\n capabilities: {},\n clientInfo: { name: 'mcp-memory-stdio-proxy', version: PACKAGE_VERSION },\n })) as typeof remoteInfo\n } catch (err) {\n process.stderr.write(`Failed to reach ${remoteUrl}: ${err instanceof Error ? err.message : String(err)}\\n`)\n process.exit(1)\n }\n\n const server = new Server(\n { name: 'mcp-memory', version: PACKAGE_VERSION },\n { capabilities: { tools: {} }, instructions: remoteInfo.instructions },\n )\n\n server.setRequestHandler(ListToolsRequestSchema, async () => {\n const result = (await rpc('tools/list')) as { tools: unknown[] }\n return { tools: result.tools }\n })\n\n server.setRequestHandler(CallToolRequestSchema, async (request) => {\n return (await rpc('tools/call', {\n name: request.params.name,\n arguments: request.params.arguments,\n })) as Record<string, unknown>\n })\n\n const transport = new StdioServerTransport()\n await server.connect(transport)\n}\n\nmain().catch((err) => {\n process.stderr.write(`${err instanceof Error ? err.message : String(err)}\\n`)\n process.exit(1)\n})\n","export const PACKAGE_VERSION = '1.
|
|
1
|
+
{"version":3,"sources":["../../bin/mcp-stdio-server.ts","../../src/version.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { readFileSync } from 'node:fs'\nimport { homedir } from 'node:os'\nimport { join } from 'node:path'\nimport { Server } from '@modelcontextprotocol/sdk/server/index.js'\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'\nimport { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js'\nimport { PACKAGE_VERSION } from '../src/version.js'\n\nconst wantsHelp = process.argv.includes('--help') || process.argv.includes('-h')\nconst forceStdio = process.argv.includes('--stdio') || process.env.MCP_MEMORY_FORCE_STDIO === '1'\nconst interactiveTerminal = Boolean(process.stdin.isTTY && process.stdout.isTTY)\n\nfunction readApiKeyFile(): string | undefined {\n const explicitPath = process.env.MCP_MEMORY_KEY_PATH?.trim()\n const paths = [explicitPath, join(homedir(), '.mcp-memory-key')].filter(Boolean) as string[]\n for (const path of paths) {\n try {\n const value = readFileSync(path, 'utf8').trim()\n if (value) return value\n } catch {\n void 0\n }\n }\n return undefined\n}\n\nconst apiKey = (\n process.env.MCP_MEMORY_API_KEY ??\n process.env.MCP_MEMORY_KEY ??\n readApiKeyFile()\n)?.trim()\n\nfunction renderHelp(): string {\n const status = apiKey ? 'configured' : 'NOT configured'\n return [\n `mcp-memory v${PACKAGE_VERSION} — local stdio bridge to memory.mcpscraper.dev`,\n '',\n `API key: ${status}`,\n '',\n 'This package is a thin proxy: every tool call is forwarded over HTTPS to',\n 'your hosted mcp-memory account, the same one used by the OAuth remote',\n 'connector. Nothing runs or is stored locally.',\n '',\n 'Setup:',\n ' 1. Get your key from memory.mcpscraper.dev (or the mobile automations link).',\n ' 2. Set it: export MCP_MEMORY_API_KEY=mk_...',\n ' (or write it to ~/.mcp-memory-key)',\n ' 3. Add to your MCP client config:',\n ' { \"command\": \"npx\", \"args\": [\"-y\", \"mcpscraper-memory\"],',\n ' \"env\": { \"MCP_MEMORY_API_KEY\": \"mk_...\" } }',\n '',\n 'Flags: --stdio (skip this screen and run directly), --help',\n '',\n ].join('\\n')\n}\n\nif (!forceStdio && (interactiveTerminal || wantsHelp)) {\n process.stdout.write(renderHelp())\n process.exit(0)\n}\n\nif (!apiKey) {\n process.stderr.write('MCP_MEMORY_API_KEY env var or ~/.mcp-memory-key is required\\n')\n process.exit(1)\n}\n\nconst baseUrl = (process.env.MCP_MEMORY_BASE_URL?.trim() || 'https://memory.mcpscraper.dev').replace(/\\/$/, '')\nconst remoteUrl = `${baseUrl}/mcp`\n\nlet rpcId = 0\n\nfunction parseRpcBody(text: string): { result?: unknown; error?: { message?: string } } {\n const dataLine = text.split('\\n').find((line) => line.startsWith('data:'))\n const payload = dataLine ? dataLine.slice(5).trim() : text\n return JSON.parse(payload)\n}\n\nasync function rpc(method: string, params?: Record<string, unknown>): Promise<unknown> {\n const res = await fetch(remoteUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json, text/event-stream',\n Authorization: `Bearer ${apiKey}`,\n },\n body: JSON.stringify({ jsonrpc: '2.0', id: ++rpcId, method, params }),\n })\n const text = await res.text()\n if (!res.ok) {\n throw new Error(`mcp-memory HTTP ${res.status}: ${text.slice(0, 500)}`)\n }\n const body = parseRpcBody(text)\n if (body.error) throw new Error(body.error.message ?? 'remote mcp-memory error')\n return body.result\n}\n\nasync function main(): Promise<void> {\n let remoteInfo: { serverInfo?: { name?: string; version?: string }; instructions?: string } = {}\n try {\n remoteInfo = (await rpc('initialize', {\n protocolVersion: '2025-06-18',\n capabilities: {},\n clientInfo: { name: 'mcp-memory-stdio-proxy', version: PACKAGE_VERSION },\n })) as typeof remoteInfo\n } catch (err) {\n process.stderr.write(`Failed to reach ${remoteUrl}: ${err instanceof Error ? err.message : String(err)}\\n`)\n process.exit(1)\n }\n\n const server = new Server(\n { name: 'mcp-memory', version: PACKAGE_VERSION },\n { capabilities: { tools: {} }, instructions: remoteInfo.instructions },\n )\n\n server.setRequestHandler(ListToolsRequestSchema, async () => {\n const result = (await rpc('tools/list')) as { tools: unknown[] }\n return { tools: result.tools }\n })\n\n server.setRequestHandler(CallToolRequestSchema, async (request) => {\n return (await rpc('tools/call', {\n name: request.params.name,\n arguments: request.params.arguments,\n })) as Record<string, unknown>\n })\n\n const transport = new StdioServerTransport()\n await server.connect(transport)\n}\n\nmain().catch((err) => {\n process.stderr.write(`${err instanceof Error ? err.message : String(err)}\\n`)\n process.exit(1)\n})\n","export const PACKAGE_VERSION = '1.17.2'\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcpscraper-memory",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.17.2",
|
|
4
4
|
"description": "mcp-memory — a hosted, multi-tenant, access-controlled per-user Obsidian/Neon memory exposed AS an MCP server, with a scheduled optimization layer. Its own standalone MCP product.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"mcpscraper-memory": "dist/bin/mcp-stdio-server.js"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
|
-
"dist"
|
|
10
|
+
"dist",
|
|
11
|
+
"README.md",
|
|
12
|
+
"CHANGELOG.md"
|
|
11
13
|
],
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "https://github.com/VilovietaSEO/mcp-memory.git"
|
|
17
|
+
},
|
|
18
|
+
"homepage": "https://github.com/VilovietaSEO/mcp-memory#readme",
|
|
19
|
+
"bugs": "https://github.com/VilovietaSEO/mcp-memory/issues",
|
|
12
20
|
"engines": {
|
|
13
21
|
"node": ">=22.13.0"
|
|
14
22
|
},
|
|
@@ -25,8 +33,8 @@
|
|
|
25
33
|
"@mastra/mcp": "latest",
|
|
26
34
|
"@mastra/pg": "latest",
|
|
27
35
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
28
|
-
"mcpscraper-memory-db": "1.
|
|
29
|
-
"mcpscraper-memory-tools": "1.
|
|
36
|
+
"mcpscraper-memory-db": "1.13.1",
|
|
37
|
+
"mcpscraper-memory-tools": "1.14.2",
|
|
30
38
|
"zod": "^3.25.0"
|
|
31
39
|
},
|
|
32
40
|
"devDependencies": {
|