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 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.21.2...HEAD
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
- There is one backend: `https://memory.mcpscraper.dev`. This package is a thin local proxy to it —
9
- every tool call is forwarded over HTTPS with your API key; nothing runs or is stored on your machine.
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
- ## Two ways to connect
34
+ ## Connect
34
35
 
35
- **OAuth remote connector** (Claude.ai web, Claude Desktop's "Add custom connector") — no install,
36
- no key management. Add `https://memory.mcpscraper.dev/mcp` and log in.
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": { "MCP_MEMORY_API_KEY": "mk_..." }
48
+ "env": { "MCP_SCRAPER_API_KEY": "sk_..." }
48
49
  }
49
50
  }
50
51
  }
51
52
  ```
52
53
 
53
- Get your key at `memory.mcpscraper.dev`, or from the mobile Scheduled Actions link
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
- - `MCP_MEMORY_API_KEY` (or `MCP_MEMORY_KEY`) — required. Alternatively, write the key to
90
- `~/.mcp-memory-key` (or point `MCP_MEMORY_KEY_PATH` at a file containing it).
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.21.2";
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
- function readApiKeyFile() {
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 local stdio bridge to memory.mcpscraper.dev`,
19
+ `mcp-memory v${PACKAGE_VERSION} \u2014 compatibility bridge to MCP Scraper`,
35
20
  "",
36
21
  `API key: ${status}`,
37
22
  "",
38
- "This package is a thin proxy: every tool call is forwarded over HTTPS to",
39
- "your hosted mcp-memory account, the same one used by the OAuth remote",
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. Get your key from memory.mcpscraper.dev (or the mobile automations link).",
44
- " 2. Set it: export MCP_MEMORY_API_KEY=mk_...",
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": { "MCP_MEMORY_API_KEY": "mk_..." } }',
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("MCP_MEMORY_API_KEY env var or ~/.mcp-memory-key is required\n");
42
+ process.stderr.write("MCP_SCRAPER_API_KEY is required\n");
60
43
  process.exit(1);
61
44
  }
62
- var baseUrl = (process.env.MCP_MEMORY_BASE_URL?.trim() || "https://memory.mcpscraper.dev").replace(/\/$/, "");
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
- Authorization: `Bearer ${apiKey}`
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.21.2",
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.17.1",
51
- "mcpscraper-memory-tools": "1.18.2",
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": {