mcpscraper-memory 1.22.0 → 1.23.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.
- package/CHANGELOG.md +21 -1
- package/README.md +13 -5
- package/dist/bin/mcp-stdio-server.js +44 -14
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,24 @@ All notable changes to MCP Memory are documented here. The format is based on [K
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [1.23.0] - 2026-10-12
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- The compatibility stdio package now exposes the canonical server's resources and prompts, including shared guidance and complete-result artifact reads, alongside tool calls.
|
|
12
|
+
- Read complete oversized Memory results through authenticated artifact continuation and renewable downloads, with separate content and link expiry. Preserve full content, original recovery receipts and honest storage-failure status without repeating tools.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- Clarify CRM work identifiers, mutation prerequisites and probability bounds. Correct conditional write and replay annotations for pipeline creation, default-vault key issuance, Library ingestion, tag aliases and video status; remove the outdated fixed vault count.
|
|
17
|
+
- Hosted branch builds now install their own workspace packages before dependency resolution, so testing a new version does not require publishing it to npm first.
|
|
18
|
+
|
|
19
|
+
## [1.22.1] - 2026-09-22
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Remove Personal Assistant context-packet tools from the hosted Memory MCP catalog while preserving the underlying source and persisted Memory data for future recovery.
|
|
24
|
+
|
|
7
25
|
## [1.22.0] - 2026-09-02
|
|
8
26
|
|
|
9
27
|
### Changed
|
|
@@ -252,7 +270,9 @@ All notable changes to MCP Memory are documented here. The format is based on [K
|
|
|
252
270
|
- 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.
|
|
253
271
|
- Server guidance now documents the Skills vault and the exact hybrid retrieval workflow exposed by `memory-search`.
|
|
254
272
|
|
|
255
|
-
[Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/memory-v1.
|
|
273
|
+
[Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/memory-v1.23.0...HEAD
|
|
274
|
+
[1.23.0]: https://github.com/VilovietaSEO/mcp-scraper/compare/memory-v1.22.1...memory-v1.23.0
|
|
275
|
+
[1.22.1]: https://github.com/VilovietaSEO/mcp-scraper/compare/memory-v1.22.0...memory-v1.22.1
|
|
256
276
|
[1.22.0]: https://github.com/VilovietaSEO/mcp-scraper/compare/memory-v1.21.2...memory-v1.22.0
|
|
257
277
|
[1.21.2]: https://github.com/VilovietaSEO/mcp-scraper/compare/memory-v1.21.1...memory-v1.21.2
|
|
258
278
|
[1.21.1]: https://github.com/VilovietaSEO/mcp-scraper/compare/memory-v1.21.0...memory-v1.21.1
|
package/README.md
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
# mcp-memory
|
|
2
2
|
|
|
3
|
-
A hosted, multi-tenant MCP server for structured personal/business memory — notes across
|
|
3
|
+
A hosted, multi-tenant MCP server for structured personal/business memory — notes across the current
|
|
4
4
|
purpose-built vaults, semantic search, typeahead, and real structured data tables (typed columns,
|
|
5
5
|
filter, sort) — plus **Scheduled Actions**: freeform-text automations that run on a cadence, using
|
|
6
6
|
your [MCP Scraper](https://mcpscraper.dev) tools to gather live data and mcp-memory to store it.
|
|
7
7
|
|
|
8
8
|
Customer setup uses one endpoint, `https://mcpscraper.dev/mcp`, and one long-lived credential,
|
|
9
9
|
`MCP_SCRAPER_API_KEY`, for scraping and Memory. This package is a compatibility stdio proxy to that
|
|
10
|
-
unified server
|
|
10
|
+
unified server. It forwards tools, resources and prompts, including the shared guidance and
|
|
11
|
+
complete-result artifact reads. The compatibility bridge runs locally; Memory data remains hosted.
|
|
11
12
|
|
|
12
13
|
This repository also owns the independently publishable `mcpscraper-memory-db` workspace for
|
|
13
14
|
Postgres/PgVector storage, vault contracts, Jina embeddings, and reranking, and the
|
|
14
|
-
`mcpscraper-memory-tools` workspace for public tool behavior. The hosted
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
`mcpscraper-memory-tools` workspace for public tool behavior. The hosted build packages their
|
|
16
|
+
built workspace code into the deployable function, so deploying a branch includes that branch's
|
|
17
|
+
storage and tool implementations without a separate public package release. Package identities
|
|
18
|
+
and public release versions remain independent.
|
|
17
19
|
|
|
18
20
|
## Repository development
|
|
19
21
|
|
|
@@ -31,6 +33,12 @@ npm run verify:packages
|
|
|
31
33
|
Package identities and release versions remain independent. See [`packages/README.md`](packages/README.md)
|
|
32
34
|
for ownership boundaries and import provenance.
|
|
33
35
|
|
|
36
|
+
`build:server` expects `build:packages` to have completed. It temporarily materializes local
|
|
37
|
+
workspace archives for Mastra's dependency resolution, restores the original dependency links,
|
|
38
|
+
and includes those archives in the Vercel function. The final check compares every installed
|
|
39
|
+
workspace build file with its branch-local source build. Generated function dependencies and
|
|
40
|
+
their lockfile refer to the included archives, so reinstalling them preserves the branch code.
|
|
41
|
+
|
|
34
42
|
## Connect
|
|
35
43
|
|
|
36
44
|
**OAuth remote connector** (Claude.ai web, Claude Desktop's "Add custom connector") — add
|
|
@@ -3,10 +3,18 @@
|
|
|
3
3
|
// bin/mcp-stdio-server.ts
|
|
4
4
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
5
5
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
ListToolsRequestSchema,
|
|
8
|
+
CallToolRequestSchema,
|
|
9
|
+
ListResourcesRequestSchema,
|
|
10
|
+
ListResourceTemplatesRequestSchema,
|
|
11
|
+
ReadResourceRequestSchema,
|
|
12
|
+
ListPromptsRequestSchema,
|
|
13
|
+
GetPromptRequestSchema
|
|
14
|
+
} from "@modelcontextprotocol/sdk/types.js";
|
|
7
15
|
|
|
8
16
|
// src/version.ts
|
|
9
|
-
var PACKAGE_VERSION = "1.
|
|
17
|
+
var PACKAGE_VERSION = "1.23.0";
|
|
10
18
|
|
|
11
19
|
// bin/mcp-stdio-server.ts
|
|
12
20
|
var wantsHelp = process.argv.includes("--help") || process.argv.includes("-h");
|
|
@@ -20,7 +28,7 @@ function renderHelp() {
|
|
|
20
28
|
"",
|
|
21
29
|
`API key: ${status}`,
|
|
22
30
|
"",
|
|
23
|
-
"This compatibility package forwards
|
|
31
|
+
"This compatibility package forwards tools, resources and prompts to the canonical",
|
|
24
32
|
"MCP Scraper server. Scraping and Memory use the same customer API key.",
|
|
25
33
|
"",
|
|
26
34
|
"Setup:",
|
|
@@ -42,6 +50,7 @@ if (!apiKey) {
|
|
|
42
50
|
process.stderr.write("MCP_SCRAPER_API_KEY is required\n");
|
|
43
51
|
process.exit(1);
|
|
44
52
|
}
|
|
53
|
+
var authenticatedApiKey = apiKey;
|
|
45
54
|
var remoteUrl = (process.env.MCP_SCRAPER_MCP_URL?.trim() || "https://mcpscraper.dev/mcp").replace(/\/$/, "");
|
|
46
55
|
var rpcId = 0;
|
|
47
56
|
function parseRpcBody(text) {
|
|
@@ -55,7 +64,7 @@ async function rpc(method, params) {
|
|
|
55
64
|
headers: {
|
|
56
65
|
"Content-Type": "application/json",
|
|
57
66
|
Accept: "application/json, text/event-stream",
|
|
58
|
-
"x-api-key":
|
|
67
|
+
"x-api-key": authenticatedApiKey
|
|
59
68
|
},
|
|
60
69
|
body: JSON.stringify({ jsonrpc: "2.0", id: ++rpcId, method, params })
|
|
61
70
|
});
|
|
@@ -80,20 +89,41 @@ async function main() {
|
|
|
80
89
|
`);
|
|
81
90
|
process.exit(1);
|
|
82
91
|
}
|
|
92
|
+
const capabilities = {};
|
|
93
|
+
if (remoteInfo.capabilities?.tools) capabilities.tools = {};
|
|
94
|
+
if (remoteInfo.capabilities?.resources) capabilities.resources = {};
|
|
95
|
+
if (remoteInfo.capabilities?.prompts) capabilities.prompts = {};
|
|
83
96
|
const server = new Server(
|
|
84
97
|
{ name: "mcp-memory", version: PACKAGE_VERSION },
|
|
85
|
-
{ capabilities
|
|
98
|
+
{ capabilities, instructions: remoteInfo.instructions }
|
|
86
99
|
);
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
});
|
|
91
|
-
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
92
|
-
return await rpc("tools/call", {
|
|
93
|
-
name: request.params.name,
|
|
94
|
-
arguments: request.params.arguments
|
|
100
|
+
if (capabilities.tools) {
|
|
101
|
+
server.setRequestHandler(ListToolsRequestSchema, async (request) => {
|
|
102
|
+
return await rpc("tools/list", request.params);
|
|
95
103
|
});
|
|
96
|
-
|
|
104
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
105
|
+
return await rpc("tools/call", request.params);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
if (capabilities.resources) {
|
|
109
|
+
server.setRequestHandler(ListResourcesRequestSchema, async (request) => {
|
|
110
|
+
return await rpc("resources/list", request.params);
|
|
111
|
+
});
|
|
112
|
+
server.setRequestHandler(ListResourceTemplatesRequestSchema, async (request) => {
|
|
113
|
+
return await rpc("resources/templates/list", request.params);
|
|
114
|
+
});
|
|
115
|
+
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
|
|
116
|
+
return await rpc("resources/read", request.params);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
if (capabilities.prompts) {
|
|
120
|
+
server.setRequestHandler(ListPromptsRequestSchema, async (request) => {
|
|
121
|
+
return await rpc("prompts/list", request.params);
|
|
122
|
+
});
|
|
123
|
+
server.setRequestHandler(GetPromptRequestSchema, async (request) => {
|
|
124
|
+
return await rpc("prompts/get", request.params);
|
|
125
|
+
});
|
|
126
|
+
}
|
|
97
127
|
const transport = new StdioServerTransport();
|
|
98
128
|
await server.connect(transport);
|
|
99
129
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcpscraper-memory",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.23.0",
|
|
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": {
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@mastra/pg": "latest",
|
|
50
50
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
51
51
|
"mcpscraper-memory-db": "1.18.0",
|
|
52
|
-
"mcpscraper-memory-tools": "1.19.
|
|
52
|
+
"mcpscraper-memory-tools": "1.19.1",
|
|
53
53
|
"zod": "^3.25.0"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|