mcpscraper-memory 1.21.2 → 1.22.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 +14 -1
- package/README.md +10 -11
- package/dist/bin/mcp-stdio-server.js +11 -29
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,18 @@ All notable changes to MCP Memory are documented here. The format is based on [K
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [1.22.0] - 2026-09-02
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Accepted five-minute, audience-bound MCP Scraper assertions so customers use their single root API key for Memory, Research, and CRM.
|
|
12
|
+
- Routed the standalone CLI and public setup documentation through `https://mcpscraper.dev/mcp` with `MCP_SCRAPER_API_KEY`.
|
|
13
|
+
- Normalized every direct tool schema for strict current MCP clients.
|
|
14
|
+
|
|
15
|
+
### Security
|
|
16
|
+
|
|
17
|
+
- Retired new non-operator Memory-key issuance and scope mutation while retaining existing direct keys and revoke operations for one compatibility release.
|
|
18
|
+
|
|
7
19
|
## [1.21.2] - 2026-09-01
|
|
8
20
|
|
|
9
21
|
### Added
|
|
@@ -240,7 +252,8 @@ All notable changes to MCP Memory are documented here. The format is based on [K
|
|
|
240
252
|
- 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.
|
|
241
253
|
- Server guidance now documents the Skills vault and the exact hybrid retrieval workflow exposed by `memory-search`.
|
|
242
254
|
|
|
243
|
-
[Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/memory-v1.
|
|
255
|
+
[Unreleased]: https://github.com/VilovietaSEO/mcp-scraper/compare/memory-v1.22.0...HEAD
|
|
256
|
+
[1.22.0]: https://github.com/VilovietaSEO/mcp-scraper/compare/memory-v1.21.2...memory-v1.22.0
|
|
244
257
|
[1.21.2]: https://github.com/VilovietaSEO/mcp-scraper/compare/memory-v1.21.1...memory-v1.21.2
|
|
245
258
|
[1.21.1]: https://github.com/VilovietaSEO/mcp-scraper/compare/memory-v1.21.0...memory-v1.21.1
|
|
246
259
|
[1.21.0]: https://github.com/VilovietaSEO/mcp-scraper/compare/memory-v1.20.0...memory-v1.21.0
|
package/README.md
CHANGED
|
@@ -5,8 +5,9 @@ purpose-built vaults, semantic search, typeahead, and real structured data table
|
|
|
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
|
-
|
|
9
|
-
|
|
8
|
+
Customer setup uses one endpoint, `https://mcpscraper.dev/mcp`, and one long-lived credential,
|
|
9
|
+
`MCP_SCRAPER_API_KEY`, for scraping and Memory. This package is a compatibility stdio proxy to that
|
|
10
|
+
unified server; nothing runs or is stored on your machine.
|
|
10
11
|
|
|
11
12
|
This repository also owns the independently publishable `mcpscraper-memory-db` workspace for
|
|
12
13
|
Postgres/PgVector storage, vault contracts, Jina embeddings, and reranking, and the
|
|
@@ -30,10 +31,10 @@ npm run verify:packages
|
|
|
30
31
|
Package identities and release versions remain independent. See [`packages/README.md`](packages/README.md)
|
|
31
32
|
for ownership boundaries and import provenance.
|
|
32
33
|
|
|
33
|
-
##
|
|
34
|
+
## Connect
|
|
34
35
|
|
|
35
|
-
**OAuth remote connector** (Claude.ai web, Claude Desktop's "Add custom connector") —
|
|
36
|
-
|
|
36
|
+
**OAuth remote connector** (Claude.ai web, Claude Desktop's "Add custom connector") — add
|
|
37
|
+
`https://mcpscraper.dev/mcp` and log in.
|
|
37
38
|
|
|
38
39
|
**This package**, for clients that only support local stdio MCP servers (Claude Code, Cursor,
|
|
39
40
|
Windsurf, and similar):
|
|
@@ -44,14 +45,13 @@ Windsurf, and similar):
|
|
|
44
45
|
"mcp-memory": {
|
|
45
46
|
"command": "npx",
|
|
46
47
|
"args": ["-y", "mcpscraper-memory"],
|
|
47
|
-
"env": { "
|
|
48
|
+
"env": { "MCP_SCRAPER_API_KEY": "sk_..." }
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
}
|
|
51
52
|
```
|
|
52
53
|
|
|
53
|
-
|
|
54
|
-
(`get-schedule-link`).
|
|
54
|
+
Create or rotate the same key used by MCP Scraper at `https://mcpscraper.dev/dashboard`.
|
|
55
55
|
|
|
56
56
|
## Scheduled Actions access and billing
|
|
57
57
|
|
|
@@ -86,8 +86,7 @@ Scheduled Actions management links.
|
|
|
86
86
|
|
|
87
87
|
## Environment variables
|
|
88
88
|
|
|
89
|
-
- `
|
|
90
|
-
|
|
91
|
-
- `MCP_MEMORY_BASE_URL` — override the backend URL. Defaults to `https://memory.mcpscraper.dev`.
|
|
89
|
+
- `MCP_SCRAPER_API_KEY` — the one customer key used for scraping and Memory.
|
|
90
|
+
- `MCP_SCRAPER_MCP_URL` — optional endpoint override. Defaults to `https://mcpscraper.dev/mcp`.
|
|
92
91
|
|
|
93
92
|
Run `npx mcpscraper-memory --help` for setup instructions from the terminal.
|
|
@@ -1,51 +1,34 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
// bin/mcp-stdio-server.ts
|
|
4
|
-
import { readFileSync } from "fs";
|
|
5
|
-
import { homedir } from "os";
|
|
6
|
-
import { join } from "path";
|
|
7
4
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
8
5
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
9
6
|
import { ListToolsRequestSchema, CallToolRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
10
7
|
|
|
11
8
|
// src/version.ts
|
|
12
|
-
var PACKAGE_VERSION = "1.
|
|
9
|
+
var PACKAGE_VERSION = "1.22.0";
|
|
13
10
|
|
|
14
11
|
// bin/mcp-stdio-server.ts
|
|
15
12
|
var wantsHelp = process.argv.includes("--help") || process.argv.includes("-h");
|
|
16
13
|
var forceStdio = process.argv.includes("--stdio") || process.env.MCP_MEMORY_FORCE_STDIO === "1";
|
|
17
14
|
var interactiveTerminal = Boolean(process.stdin.isTTY && process.stdout.isTTY);
|
|
18
|
-
|
|
19
|
-
const explicitPath = process.env.MCP_MEMORY_KEY_PATH?.trim();
|
|
20
|
-
const paths = [explicitPath, join(homedir(), ".mcp-memory-key")].filter(Boolean);
|
|
21
|
-
for (const path of paths) {
|
|
22
|
-
try {
|
|
23
|
-
const value = readFileSync(path, "utf8").trim();
|
|
24
|
-
if (value) return value;
|
|
25
|
-
} catch {
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return void 0;
|
|
29
|
-
}
|
|
30
|
-
var apiKey = (process.env.MCP_MEMORY_API_KEY ?? process.env.MCP_MEMORY_KEY ?? readApiKeyFile())?.trim();
|
|
15
|
+
var apiKey = process.env.MCP_SCRAPER_API_KEY?.trim();
|
|
31
16
|
function renderHelp() {
|
|
32
17
|
const status = apiKey ? "configured" : "NOT configured";
|
|
33
18
|
return [
|
|
34
|
-
`mcp-memory v${PACKAGE_VERSION} \u2014
|
|
19
|
+
`mcp-memory v${PACKAGE_VERSION} \u2014 compatibility bridge to MCP Scraper`,
|
|
35
20
|
"",
|
|
36
21
|
`API key: ${status}`,
|
|
37
22
|
"",
|
|
38
|
-
"This package
|
|
39
|
-
"
|
|
40
|
-
"connector. Nothing runs or is stored locally.",
|
|
23
|
+
"This compatibility package forwards every tool call to the canonical",
|
|
24
|
+
"MCP Scraper server. Scraping and Memory use the same customer API key.",
|
|
41
25
|
"",
|
|
42
26
|
"Setup:",
|
|
43
|
-
" 1.
|
|
44
|
-
" 2. Set it: export
|
|
45
|
-
" (or write it to ~/.mcp-memory-key)",
|
|
27
|
+
" 1. Create or copy your key at https://mcpscraper.dev/dashboard.",
|
|
28
|
+
" 2. Set it: export MCP_SCRAPER_API_KEY=sk_...",
|
|
46
29
|
" 3. Add to your MCP client config:",
|
|
47
30
|
' { "command": "npx", "args": ["-y", "mcpscraper-memory"],',
|
|
48
|
-
' "env": { "
|
|
31
|
+
' "env": { "MCP_SCRAPER_API_KEY": "sk_..." } }',
|
|
49
32
|
"",
|
|
50
33
|
"Flags: --stdio (skip this screen and run directly), --help",
|
|
51
34
|
""
|
|
@@ -56,11 +39,10 @@ if (!forceStdio && (interactiveTerminal || wantsHelp)) {
|
|
|
56
39
|
process.exit(0);
|
|
57
40
|
}
|
|
58
41
|
if (!apiKey) {
|
|
59
|
-
process.stderr.write("
|
|
42
|
+
process.stderr.write("MCP_SCRAPER_API_KEY is required\n");
|
|
60
43
|
process.exit(1);
|
|
61
44
|
}
|
|
62
|
-
var
|
|
63
|
-
var remoteUrl = `${baseUrl}/mcp`;
|
|
45
|
+
var remoteUrl = (process.env.MCP_SCRAPER_MCP_URL?.trim() || "https://mcpscraper.dev/mcp").replace(/\/$/, "");
|
|
64
46
|
var rpcId = 0;
|
|
65
47
|
function parseRpcBody(text) {
|
|
66
48
|
const dataLine = text.split("\n").find((line) => line.startsWith("data:"));
|
|
@@ -73,7 +55,7 @@ async function rpc(method, params) {
|
|
|
73
55
|
headers: {
|
|
74
56
|
"Content-Type": "application/json",
|
|
75
57
|
Accept: "application/json, text/event-stream",
|
|
76
|
-
|
|
58
|
+
"x-api-key": apiKey
|
|
77
59
|
},
|
|
78
60
|
body: JSON.stringify({ jsonrpc: "2.0", id: ++rpcId, method, params })
|
|
79
61
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcpscraper-memory",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.22.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": {
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"build": "npm run build:packages && npm run build:server && npm run build:cli",
|
|
31
31
|
"build:server": "node scripts/build-mastra-with-released-deps.mjs && node scripts/verify-mastra-build.mjs",
|
|
32
32
|
"build:packages": "npm run build --workspace=mcpscraper-memory-db && npm run build --workspace=mcpscraper-memory-tools",
|
|
33
|
+
"verify:mcp-schema": "tsx scripts/verify-strict-mcp-schema.ts",
|
|
33
34
|
"build:cli": "tsup",
|
|
34
35
|
"prepack": "npm run build:cli",
|
|
35
36
|
"test": "npm run test:packages && npm run test:server",
|
|
@@ -47,8 +48,8 @@
|
|
|
47
48
|
"@mastra/mcp": "latest",
|
|
48
49
|
"@mastra/pg": "latest",
|
|
49
50
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
50
|
-
"mcpscraper-memory-db": "1.
|
|
51
|
-
"mcpscraper-memory-tools": "1.
|
|
51
|
+
"mcpscraper-memory-db": "1.18.0",
|
|
52
|
+
"mcpscraper-memory-tools": "1.19.0",
|
|
52
53
|
"zod": "^3.25.0"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|