@j0hanz/memory-mcp 1.3.0 → 1.3.1
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/README.md +8 -8
- package/dist/index.js +24 -1
- package/dist/index.js.map +1 -1
- package/dist/resources/server-config.js +1 -1
- package/dist/resources/server-config.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -445,18 +445,18 @@ Returns:
|
|
|
445
445
|
|
|
446
446
|
### Environment Variables
|
|
447
447
|
|
|
448
|
-
| Variable | Description | Default
|
|
449
|
-
| -------------------------- | ------------------------------------------------------- |
|
|
450
|
-
| `MEMORY_DB_PATH` | SQLite database file path | `memory.db` | No |
|
|
451
|
-
| `RECALL_MAX_FRONTIER_SIZE` | Max BFS frontier nodes per hop (100–50000) | `1000`
|
|
452
|
-
| `RECALL_MAX_EDGE_ROWS` | Max relationship rows fetched per traversal (100–50000) | `5000`
|
|
453
|
-
| `RECALL_MAX_VISITED_NODES` | Max visited nodes across entire traversal (100–50000) | `5000`
|
|
448
|
+
| Variable | Description | Default | Required |
|
|
449
|
+
| -------------------------- | ------------------------------------------------------- | --------------------- | -------- |
|
|
450
|
+
| `MEMORY_DB_PATH` | SQLite database file path | `memory_db/memory.db` | No |
|
|
451
|
+
| `RECALL_MAX_FRONTIER_SIZE` | Max BFS frontier nodes per hop (100–50000) | `1000` | No |
|
|
452
|
+
| `RECALL_MAX_EDGE_ROWS` | Max relationship rows fetched per traversal (100–50000) | `5000` | No |
|
|
453
|
+
| `RECALL_MAX_VISITED_NODES` | Max visited nodes across entire traversal (100–50000) | `5000` | No |
|
|
454
454
|
|
|
455
455
|
> [!IMPORTANT]
|
|
456
|
-
> If `MEMORY_DB_PATH` is relative (including the default `memory.db`), it resolves from the process working directory.
|
|
456
|
+
> If `MEMORY_DB_PATH` is relative (including the default `memory_db/memory.db`), it resolves from the process working directory.
|
|
457
457
|
|
|
458
458
|
> [!TIP]
|
|
459
|
-
> Add `
|
|
459
|
+
> Add `memory_db/` to your `.gitignore` to keep the database out of version control — it contains local session data and should not be shared or committed.
|
|
460
460
|
|
|
461
461
|
### Limits and Constraints
|
|
462
462
|
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
|
+
import { existsSync, mkdirSync, renameSync } from 'node:fs';
|
|
4
|
+
import { dirname } from 'node:path';
|
|
3
5
|
import process from 'node:process';
|
|
4
6
|
import { initTypedDatabase } from './db/index.js';
|
|
5
7
|
import { getErrorMessage } from './lib/errors.js';
|
|
6
8
|
import { createServer } from './server.js';
|
|
7
|
-
const
|
|
9
|
+
const DEFAULT_DB_PATH = 'memory_db/memory.db';
|
|
10
|
+
const MEMORY_DB_PATH = process.env['MEMORY_DB_PATH'] ?? DEFAULT_DB_PATH;
|
|
8
11
|
const SHUTDOWN_SIGNALS = ['SIGINT', 'SIGTERM'];
|
|
9
12
|
const SHUTDOWN_TIMEOUT_MS = 3000;
|
|
10
13
|
const FORCED_EXIT_CODE = 1;
|
|
@@ -50,7 +53,27 @@ function createShutdownHandler(server, db) {
|
|
|
50
53
|
void runShutdown(server, db);
|
|
51
54
|
};
|
|
52
55
|
}
|
|
56
|
+
function migrateLegacyDatabase() {
|
|
57
|
+
if (process.env['MEMORY_DB_PATH'])
|
|
58
|
+
return;
|
|
59
|
+
const legacyPath = 'memory.db';
|
|
60
|
+
if (!existsSync(legacyPath) || existsSync(DEFAULT_DB_PATH))
|
|
61
|
+
return;
|
|
62
|
+
try {
|
|
63
|
+
mkdirSync(dirname(DEFAULT_DB_PATH), { recursive: true });
|
|
64
|
+
const filesToMove = [legacyPath, `${legacyPath}-shm`, `${legacyPath}-wal`];
|
|
65
|
+
for (const file of filesToMove) {
|
|
66
|
+
if (existsSync(file)) {
|
|
67
|
+
renameSync(file, `memory_db/${file}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
process.stderr.write(`Warning: Failed to migrate legacy database: ${getErrorMessage(err)}\n`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
53
75
|
async function main() {
|
|
76
|
+
migrateLegacyDatabase();
|
|
54
77
|
const db = initTypedDatabase(MEMORY_DB_PATH);
|
|
55
78
|
const server = createServer(db);
|
|
56
79
|
const transport = new StdioServerTransport();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-config.js","sourceRoot":"","sources":["../../src/resources/server-config.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;IACf;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"server-config.js","sourceRoot":"","sources":["../../src/resources/server-config.ts"],"names":[],"mappings":"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"}
|