traqr-memory-mcp 0.1.0 → 0.1.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/UPGRADING.md ADDED
@@ -0,0 +1,43 @@
1
+ # Upgrading TraqrDB
2
+
3
+ ## Version Compatibility
4
+
5
+ | MCP Server | Required Schema | Upgrade Script |
6
+ |-----------|----------------|----------------|
7
+ | 0.1.x | v2 | (initial setup.sql) |
8
+ | 0.2.x | v3 | upgrade-v3.sql |
9
+
10
+ ## How to Upgrade
11
+
12
+ 1. Update the npm package:
13
+ ```bash
14
+ npm update traqr-memory-mcp
15
+ ```
16
+
17
+ 2. The MCP server will warn on startup if your schema needs upgrading:
18
+ ```
19
+ TraqrDB: Schema v2 detected, v3 required.
20
+ Run upgrade-v3.sql on your database. See UPGRADING.md.
21
+ ```
22
+
23
+ 3. Run the upgrade script on your database:
24
+ - **Supabase:** Paste `upgrade-v3.sql` into SQL Editor at supabase.com/dashboard
25
+ - **Postgres:** `psql $DATABASE_URL -f node_modules/traqr-memory-mcp/upgrade-v3.sql`
26
+
27
+ 4. Restart the MCP server. The startup line should now show the new schema version.
28
+
29
+ ## Schema Version Policy
30
+
31
+ - **Patch updates** (0.1.x) never change the database schema
32
+ - **Minor updates** (0.x.0) may require running an upgrade script
33
+ - Upgrade scripts are safe to re-run (idempotent)
34
+ - The MCP server warns but does not crash on schema mismatch — tools that work on the old schema still function
35
+
36
+ ## Finding Upgrade Scripts
37
+
38
+ Upgrade scripts ship inside the npm package:
39
+ ```bash
40
+ ls node_modules/traqr-memory-mcp/upgrade-*.sql
41
+ ```
42
+
43
+ Or check the [releases page](https://github.com/jiggycapital/traqr-oss/releases) for changelogs.
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Teaching error helpers.
3
+ * Every error tells: what went wrong, why it matters, and what to do.
4
+ * First-mover DX differentiator — no memory competitor does this.
5
+ */
6
+ export declare function teachingError(what: string, why: string, fixes: string[], docUrl?: string): string;
7
+ /**
8
+ * Pattern-match common Postgres/Supabase/embedding errors and add teaching context.
9
+ * Used by errorResult() in tools.ts to enrich every tool error automatically.
10
+ */
11
+ export declare function enrichError(toolName: string, err: unknown): string;
12
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAKjG;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAuElE"}
package/dist/errors.js ADDED
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Teaching error helpers.
3
+ * Every error tells: what went wrong, why it matters, and what to do.
4
+ * First-mover DX differentiator — no memory competitor does this.
5
+ */
6
+ export function teachingError(what, why, fixes, docUrl) {
7
+ let msg = `${what}\n\n${why}\n\nQuick fixes:\n`;
8
+ fixes.forEach((fix, i) => { msg += ` ${i + 1}. ${fix}\n`; });
9
+ if (docUrl)
10
+ msg += `\nDocs: ${docUrl}`;
11
+ return msg;
12
+ }
13
+ /**
14
+ * Pattern-match common Postgres/Supabase/embedding errors and add teaching context.
15
+ * Used by errorResult() in tools.ts to enrich every tool error automatically.
16
+ */
17
+ export function enrichError(toolName, err) {
18
+ const msg = err instanceof Error ? err.message : String(err);
19
+ // Missing tables (setup.sql not run)
20
+ if (msg.includes('relation') && msg.includes('does not exist')) {
21
+ return teachingError(`Tool "${toolName}" failed: database tables not found.`, 'setup.sql has not been run on your database.', [
22
+ 'For Supabase: paste setup.sql into SQL Editor at supabase.com/dashboard',
23
+ 'For Postgres: psql $DATABASE_URL -f node_modules/traqr-memory-mcp/setup.sql',
24
+ 'Get setup.sql: it ships inside this package (check node_modules/traqr-memory-mcp/)',
25
+ ], 'https://github.com/jiggycapital/traqr-oss#quick-start');
26
+ }
27
+ // Invalid API key (Supabase returns specific error)
28
+ if (msg.includes('Invalid API key') || msg.includes('JWT') || msg.includes('invalid claim')) {
29
+ return teachingError(`Tool "${toolName}" failed: invalid database credentials.`, 'The SUPABASE_SERVICE_ROLE_KEY is incorrect or expired.', [
30
+ 'Get the correct key from: Supabase Dashboard > Settings > API > service_role',
31
+ 'Make sure you copied the full key (starts with "eyJ...")',
32
+ 'Check your MCP config env block for typos',
33
+ ]);
34
+ }
35
+ // Network/connection errors
36
+ if (msg.includes('ECONNREFUSED') || msg.includes('ENOTFOUND') || msg.includes('fetch failed') || msg.includes('network')) {
37
+ return teachingError(`Tool "${toolName}" failed: cannot reach database.`, 'The database URL may be wrong or the server is unreachable.', [
38
+ 'Verify SUPABASE_URL or DATABASE_URL is correct',
39
+ 'Check if the database server is running',
40
+ 'For Supabase: verify the project is not paused (check dashboard)',
41
+ ]);
42
+ }
43
+ // Embedding/API key errors
44
+ if (msg.includes('OPENAI_API_KEY') || (msg.includes('embedding') && msg.includes('not set'))) {
45
+ return teachingError(`Tool "${toolName}" failed: embedding provider not configured.`, 'Semantic search needs an embedding API key. Keyword search (BM25) still works without one.', [
46
+ 'Set OPENAI_API_KEY for OpenAI ($0.02/1M tokens) — https://platform.openai.com/api-keys',
47
+ 'Or set GOOGLE_API_KEY for Gemini (free tier) — https://aistudio.google.com',
48
+ 'Or skip embeddings entirely — BM25 keyword search still works',
49
+ ]);
50
+ }
51
+ // OpenAI rate limit / quota
52
+ if (msg.includes('429') || msg.includes('rate limit') || msg.includes('quota')) {
53
+ return teachingError(`Tool "${toolName}" failed: API rate limit or quota exceeded.`, 'Your embedding provider is temporarily throttling requests.', [
54
+ 'Wait a moment and try again',
55
+ 'Check your API usage at your provider dashboard',
56
+ 'Consider switching to Gemini (free tier) via EMBEDDING_PROVIDER=gemini',
57
+ ]);
58
+ }
59
+ // Default: return with tool context
60
+ return `Error in ${toolName}: ${msg}`;
61
+ }
62
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,GAAW,EAAE,KAAe,EAAE,MAAe;IACvF,IAAI,GAAG,GAAG,GAAG,IAAI,OAAO,GAAG,oBAAoB,CAAA;IAC/C,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAA,CAAC,CAAC,CAAC,CAAA;IAC5D,IAAI,MAAM;QAAE,GAAG,IAAI,WAAW,MAAM,EAAE,CAAA;IACtC,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,GAAY;IACxD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAE5D,qCAAqC;IACrC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/D,OAAO,aAAa,CAClB,SAAS,QAAQ,sCAAsC,EACvD,8CAA8C,EAC9C;YACE,yEAAyE;YACzE,6EAA6E;YAC7E,oFAAoF;SACrF,EACD,uDAAuD,CACxD,CAAA;IACH,CAAC;IAED,oDAAoD;IACpD,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC5F,OAAO,aAAa,CAClB,SAAS,QAAQ,yCAAyC,EAC1D,wDAAwD,EACxD;YACE,8EAA8E;YAC9E,0DAA0D;YAC1D,2CAA2C;SAC5C,CACF,CAAA;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzH,OAAO,aAAa,CAClB,SAAS,QAAQ,kCAAkC,EACnD,6DAA6D,EAC7D;YACE,gDAAgD;YAChD,yCAAyC;YACzC,kEAAkE;SACnE,CACF,CAAA;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC7F,OAAO,aAAa,CAClB,SAAS,QAAQ,8CAA8C,EAC/D,4FAA4F,EAC5F;YACE,wFAAwF;YACxF,4EAA4E;YAC5E,+DAA+D;SAChE,CACF,CAAA;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/E,OAAO,aAAa,CAClB,SAAS,QAAQ,6CAA6C,EAC9D,6DAA6D,EAC7D;YACE,6BAA6B;YAC7B,iDAAiD;YACjD,wEAAwE;SACzE,CACF,CAAA;IACH,CAAC;IAED,oCAAoC;IACpC,OAAO,YAAY,QAAQ,KAAK,GAAG,EAAE,CAAA;AACvC,CAAC"}
package/dist/index.js CHANGED
@@ -9,36 +9,123 @@
9
9
  * Usage:
10
10
  * SUPABASE_URL=... SUPABASE_SERVICE_ROLE_KEY=... npx traqr-memory-mcp
11
11
  */
12
+ import { readFileSync } from 'node:fs';
13
+ import { fileURLToPath } from 'node:url';
14
+ import { dirname, join } from 'node:path';
12
15
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
13
16
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
14
- import { configureMemory } from '@traqr/memory';
17
+ import { configureMemory, getMemoryClient } from '@traqr/memory';
15
18
  import { registerTools } from './tools.js';
19
+ import { teachingError } from './errors.js';
20
+ // Read version from package.json
21
+ const __dirname = dirname(fileURLToPath(import.meta.url));
22
+ const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
16
23
  // Configure database from environment
17
- const supabaseUrl = process.env.SUPABASE_URL || process.env.DATABASE_URL;
18
- const supabaseKey = process.env.SUPABASE_SERVICE_ROLE_KEY || 'service_role';
19
- if (!supabaseUrl) {
20
- console.error('Error: SUPABASE_URL or DATABASE_URL environment variable required.');
21
- console.error('See README.md for setup instructions.');
24
+ const supabaseUrl = process.env.SUPABASE_URL;
25
+ const databaseUrl = process.env.DATABASE_URL;
26
+ const supabaseKey = process.env.SUPABASE_SERVICE_ROLE_KEY;
27
+ if (!supabaseUrl && !databaseUrl) {
28
+ console.error(`
29
+ TraqrDB: No database connection configured.
30
+
31
+ Set one of these in your MCP client config:
32
+ SUPABASE_URL + SUPABASE_SERVICE_ROLE_KEY (easiest: supabase.com free tier)
33
+ DATABASE_URL (any Postgres 15+ with pgvector)
34
+
35
+ Example (Claude Code settings.json):
36
+ "traqr-memory": {
37
+ "command": "npx",
38
+ "args": ["traqr-memory-mcp"],
39
+ "env": {
40
+ "SUPABASE_URL": "https://xxx.supabase.co",
41
+ "SUPABASE_SERVICE_ROLE_KEY": "eyJ..."
42
+ }
43
+ }
44
+
45
+ Setup guide: https://github.com/jiggycapital/traqr-oss#quick-start
46
+ `);
47
+ process.exit(1);
48
+ }
49
+ if (supabaseUrl && !supabaseKey) {
50
+ console.error(`
51
+ TraqrDB: SUPABASE_SERVICE_ROLE_KEY is missing.
52
+
53
+ When using SUPABASE_URL, you also need the service role key.
54
+ Find it at: Supabase Dashboard > Settings > API > service_role (not anon!)
55
+
56
+ Add to your MCP config env block:
57
+ "SUPABASE_SERVICE_ROLE_KEY": "eyJ..."
58
+ `);
22
59
  process.exit(1);
23
60
  }
24
61
  configureMemory({
25
- supabaseUrl,
26
- supabaseKey,
62
+ supabaseUrl: supabaseUrl || databaseUrl,
63
+ supabaseKey: supabaseKey || 'not-needed-for-raw-postgres',
27
64
  userId: process.env.TRAQR_USER_ID,
28
65
  projectId: process.env.TRAQR_PROJECT_ID,
29
66
  });
30
67
  // Create and start MCP server
31
68
  const server = new McpServer({
32
69
  name: 'traqr-memory',
33
- version: '1.0.0',
70
+ version: pkg.version,
34
71
  });
35
72
  registerTools(server);
73
+ const REQUIRED_SCHEMA_VERSION = 2;
74
+ async function checkSchemaAndReport() {
75
+ const dbProvider = supabaseUrl ? 'Supabase' : 'Postgres';
76
+ const embeddingProvider = process.env.EMBEDDING_PROVIDER
77
+ || (process.env.OPENAI_API_KEY ? 'OpenAI' : process.env.GOOGLE_API_KEY ? 'Gemini' : 'None (BM25 only)');
78
+ let schemaVersion = '?';
79
+ try {
80
+ const client = getMemoryClient();
81
+ const { data, error } = await client.from('schema_version')
82
+ .select('version')
83
+ .order('version', { ascending: false })
84
+ .limit(1)
85
+ .maybeSingle();
86
+ if (error || !data) {
87
+ console.error(teachingError('TraqrDB: schema_version table not found.', 'setup.sql may not have been run on your database.', [
88
+ 'For Supabase: paste setup.sql into SQL Editor',
89
+ 'For Postgres: psql $DATABASE_URL -f setup.sql',
90
+ 'Get setup.sql from: node_modules/traqr-memory-mcp/setup.sql',
91
+ ]));
92
+ }
93
+ else {
94
+ schemaVersion = `v${data.version}`;
95
+ if (data.version < REQUIRED_SCHEMA_VERSION) {
96
+ console.error(`TraqrDB: Schema v${data.version} detected, v${REQUIRED_SCHEMA_VERSION} required.`);
97
+ console.error(`Run upgrade-v${REQUIRED_SCHEMA_VERSION}.sql on your database. See UPGRADING.md.`);
98
+ }
99
+ else if (data.version > REQUIRED_SCHEMA_VERSION) {
100
+ console.error(`TraqrDB: Schema v${data.version} is newer than this server (expects v${REQUIRED_SCHEMA_VERSION}).`);
101
+ console.error('Update the package: npm update traqr-memory-mcp');
102
+ }
103
+ }
104
+ }
105
+ catch {
106
+ // Can't check — proceed and let tool calls surface errors
107
+ }
108
+ console.error(`TraqrDB Memory MCP v${pkg.version} | Schema ${schemaVersion} | DB: ${dbProvider} | Embeddings: ${embeddingProvider} | Ready`);
109
+ }
36
110
  async function main() {
37
111
  const transport = new StdioServerTransport();
112
+ await checkSchemaAndReport();
38
113
  await server.connect(transport);
39
114
  }
40
115
  main().catch((err) => {
41
- console.error('TraqrDB Memory MCP server failed to start:', err);
116
+ console.error(`
117
+ TraqrDB Memory MCP server failed to start.
118
+
119
+ Error: ${err instanceof Error ? err.message : String(err)}
120
+
121
+ Troubleshooting:
122
+ 1. Check that SUPABASE_URL or DATABASE_URL is correct
123
+ 2. Verify your database is running and accessible
124
+ 3. Ensure setup.sql has been run on the database
125
+ 4. Check your MCP client config for env var typos
126
+
127
+ Guide: https://github.com/jiggycapital/traqr-oss#quick-start
128
+ `);
42
129
  process.exit(1);
43
130
  });
44
131
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,sCAAsC;AACtC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAA;AACxE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,cAAc,CAAA;AAE3E,IAAI,CAAC,WAAW,EAAE,CAAC;IACjB,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAA;IACnF,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;IACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,eAAe,CAAC;IACd,WAAW;IACX,WAAW;IACX,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;IACjC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;CACxC,CAAC,CAAA;AAEF,8BAA8B;AAC9B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAA;AAEF,aAAa,CAAC,MAAM,CAAC,CAAA;AAErB,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC5C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;AACjC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAA;IAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/tools.js CHANGED
@@ -5,6 +5,7 @@
5
5
  * No HTTP layer, no apiCall(), no localhost server needed.
6
6
  */
7
7
  import { z } from 'zod';
8
+ import { enrichError } from './errors.js';
8
9
  import { storeMemory, searchMemoriesV2, getMemory, archiveMemory, triageAndStore, getSystemHealth, getDetailedStats, assembleSessionContext, deriveAll, getMemoryClient, } from '@traqr/memory';
9
10
  // ---------------------------------------------------------------------------
10
11
  // Shared schemas
@@ -14,9 +15,8 @@ const controlledTagEnum = z.enum(['critical', 'important', 'nice-to-know', 'ever
14
15
  // ---------------------------------------------------------------------------
15
16
  // Helpers
16
17
  // ---------------------------------------------------------------------------
17
- function errorResult(err) {
18
- const msg = err instanceof Error ? err.message : String(err);
19
- return { content: [{ type: 'text', text: `Error: ${msg}` }] };
18
+ function errorResult(toolName, err) {
19
+ return { content: [{ type: 'text', text: enrichError(toolName, err) }] };
20
20
  }
21
21
  function toSummaryResult(r) {
22
22
  return {
@@ -35,7 +35,7 @@ export function registerTools(server) {
35
35
  // --- memory_store ---
36
36
  server.tool('memory_store', 'Remember something. Only content required — domain, category, summary, topic, tags are all auto-derived. ' +
37
37
  'Use when you learn a fact, preference, or pattern worth keeping. Override any field if auto-detection is wrong.', {
38
- content: z.string().describe('What you learned — be specific. Include WHAT, WHY, WHERE.'),
38
+ content: z.string().max(50000).describe('What you learned — be specific. Include WHAT, WHY, WHERE.'),
39
39
  summary: z.string().max(120).optional().describe('Override auto-summary'),
40
40
  category: categoryEnum.optional().describe('Override auto-category'),
41
41
  topic: z.string().optional().describe('Override auto-topic'),
@@ -63,7 +63,7 @@ export function registerTools(server) {
63
63
  };
64
64
  }
65
65
  catch (err) {
66
- return errorResult(err);
66
+ return errorResult('memory_store', err);
67
67
  }
68
68
  });
69
69
  // --- memory_search ---
@@ -90,11 +90,11 @@ export function registerTools(server) {
90
90
  };
91
91
  }
92
92
  catch (err) {
93
- return errorResult(err);
93
+ return errorResult('memory_search', err);
94
94
  }
95
95
  });
96
96
  // --- memory_read ---
97
- server.tool('memory_read', 'Expand a memory by ID. Shows full content, metadata, version history, and related memories.', { memoryId: z.string().describe('UUID of the memory') }, async ({ memoryId }) => {
97
+ server.tool('memory_read', 'Expand a memory by ID. Shows full content, metadata, version history, and related memories.', { memoryId: z.string().uuid().describe('UUID of the memory') }, async ({ memoryId }) => {
98
98
  try {
99
99
  const memory = await getMemory(memoryId);
100
100
  if (!memory)
@@ -102,13 +102,13 @@ export function registerTools(server) {
102
102
  return { content: [{ type: 'text', text: JSON.stringify(memory, null, 2) }] };
103
103
  }
104
104
  catch (err) {
105
- return errorResult(err);
105
+ return errorResult('memory_read', err);
106
106
  }
107
107
  });
108
108
  // --- memory_enhance ---
109
109
  server.tool('memory_enhance', 'Deepen understanding of a topic. Stores a new connected memory that extends existing knowledge. ' +
110
110
  'Use when you learn something that adds to what you already know.', {
111
- content: z.string().describe('New observation or detail to add'),
111
+ content: z.string().max(50000).describe('New observation or detail to add'),
112
112
  context: z.string().optional().describe('Why this matters or when it applies'),
113
113
  }, async ({ content, context }) => {
114
114
  try {
@@ -133,7 +133,7 @@ export function registerTools(server) {
133
133
  };
134
134
  }
135
135
  catch (err) {
136
- return errorResult(err);
136
+ return errorResult('memory_enhance', err);
137
137
  }
138
138
  });
139
139
  // --- memory_browse ---
@@ -174,7 +174,7 @@ export function registerTools(server) {
174
174
  return { content: [{ type: 'text', text: JSON.stringify(summaries, null, 2) }] };
175
175
  }
176
176
  catch (err) {
177
- return errorResult(err);
177
+ return errorResult('memory_browse', err);
178
178
  }
179
179
  });
180
180
  // --- memory_context ---
@@ -189,7 +189,7 @@ export function registerTools(server) {
189
189
  return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
190
190
  }
191
191
  catch (err) {
192
- return errorResult(err);
192
+ return errorResult('memory_context', err);
193
193
  }
194
194
  });
195
195
  // --- memory_pulse ---
@@ -197,7 +197,7 @@ export function registerTools(server) {
197
197
  search: z.string().optional(),
198
198
  searchLimit: z.number().min(1).max(5).default(3),
199
199
  captures: z.array(z.object({
200
- content: z.string().describe('What you learned (min 20 chars)'),
200
+ content: z.string().max(50000).describe('What you learned (min 20 chars)'),
201
201
  category: categoryEnum.optional(),
202
202
  tags: z.array(controlledTagEnum).optional(),
203
203
  })).default([]),
@@ -245,7 +245,7 @@ export function registerTools(server) {
245
245
  return { content: [{ type: 'text', text }] };
246
246
  }
247
247
  catch (err) {
248
- return errorResult(err);
248
+ return errorResult('memory_pulse', err);
249
249
  }
250
250
  });
251
251
  // --- memory_audit ---
@@ -258,12 +258,12 @@ export function registerTools(server) {
258
258
  return { content: [{ type: 'text', text: JSON.stringify({ health, stats }, null, 2) }] };
259
259
  }
260
260
  catch (err) {
261
- return errorResult(err);
261
+ return errorResult('memory_audit', err);
262
262
  }
263
263
  });
264
264
  // --- memory_archive ---
265
265
  server.tool('memory_archive', 'Archive a memory. Use for stale or outdated content that was once correct.', {
266
- memoryId: z.string(),
266
+ memoryId: z.string().uuid(),
267
267
  reason: z.string().describe('Why: stale, incorrect, duplicate, noise'),
268
268
  }, async ({ memoryId, reason }) => {
269
269
  try {
@@ -271,13 +271,13 @@ export function registerTools(server) {
271
271
  return { content: [{ type: 'text', text: `Archived ${memoryId}: ${reason}` }] };
272
272
  }
273
273
  catch (err) {
274
- return errorResult(err);
274
+ return errorResult('memory_archive', err);
275
275
  }
276
276
  });
277
277
  // --- memory_forget ---
278
278
  server.tool('memory_forget', 'Forget a memory. Use for incorrect, irrelevant, or harmful content that should never surface again. ' +
279
279
  'Different from archive: archive = once correct but now stale, forget = should not exist.', {
280
- memoryId: z.string().describe('UUID of the memory to forget'),
280
+ memoryId: z.string().uuid().describe('UUID of the memory to forget'),
281
281
  reason: z.string().optional().describe('Why this memory should be forgotten'),
282
282
  }, async ({ memoryId, reason }) => {
283
283
  try {
@@ -294,7 +294,7 @@ export function registerTools(server) {
294
294
  return { content: [{ type: 'text', text: `Forgotten ${memoryId}${reason ? `: ${reason}` : ''}` }] };
295
295
  }
296
296
  catch (err) {
297
- return errorResult(err);
297
+ return errorResult('memory_forget', err);
298
298
  }
299
299
  });
300
300
  }
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "traqr-memory-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Memory-as-a-service MCP server for AI agents. 10 tools, Postgres + pgvector, multi-strategy retrieval. Works with Claude Code, Cursor, Codex, and any MCP client.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -16,8 +16,10 @@
16
16
  "files": [
17
17
  "dist",
18
18
  "setup.sql",
19
+ "upgrade-*.sql",
19
20
  "README.md",
20
- "MEMORY_INSTRUCTIONS.md"
21
+ "MEMORY_INSTRUCTIONS.md",
22
+ "UPGRADING.md"
21
23
  ],
22
24
  "scripts": {
23
25
  "build": "tsc",
package/upgrade-v3.sql ADDED
@@ -0,0 +1,29 @@
1
+ -- ============================================================================
2
+ -- TraqrDB Upgrade: Schema v2 -> v3
3
+ -- ============================================================================
4
+ -- Run this AFTER upgrading traqr-memory-mcp to v0.2.0+
5
+ --
6
+ -- Usage:
7
+ -- Supabase: Paste into SQL Editor at supabase.com/dashboard
8
+ -- Postgres: psql $DATABASE_URL -f upgrade-v3.sql
9
+ --
10
+ -- Safe to re-run: all operations use IF NOT EXISTS / CREATE OR REPLACE.
11
+ -- ============================================================================
12
+
13
+ -- (No schema changes in v0.2.0 — this file is a template for future upgrades)
14
+
15
+ -- Example patterns for future upgrades:
16
+ --
17
+ -- Add a new column:
18
+ -- ALTER TABLE traqr_memories ADD COLUMN IF NOT EXISTS new_col TEXT;
19
+ --
20
+ -- Update an RPC function:
21
+ -- CREATE OR REPLACE FUNCTION search_memories(...) ...
22
+ --
23
+ -- Add a new index:
24
+ -- CREATE INDEX IF NOT EXISTS idx_new ON traqr_memories (new_col);
25
+
26
+ -- Stamp version
27
+ INSERT INTO schema_version (version, description)
28
+ VALUES (3, 'v0.2.0 — BYO providers, teaching errors, schema detection')
29
+ ON CONFLICT (version) DO NOTHING;