@predictable/ryumem-mcp-server 0.4.0 ā 0.6.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/README.md +28 -6
- package/build/index.js +1 -4
- package/build/index.js.map +1 -1
- package/build/install.d.ts.map +1 -1
- package/build/install.js +29 -10
- package/build/install.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -4
- package/src/install.ts +31 -10
package/README.md
CHANGED
|
@@ -14,6 +14,12 @@ This will:
|
|
|
14
14
|
1. Authenticate with your Ryumem account via GitHub (opens browser)
|
|
15
15
|
2. Configure Claude Code automatically
|
|
16
16
|
|
|
17
|
+
### Install for Cursor
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx @predictable/ryumem-mcp-server install --oauth --client cursor
|
|
21
|
+
```
|
|
22
|
+
|
|
17
23
|
### Install for Claude Desktop
|
|
18
24
|
|
|
19
25
|
```bash
|
|
@@ -28,9 +34,10 @@ npx @predictable/ryumem-mcp-server uninstall
|
|
|
28
34
|
|
|
29
35
|
## Manual Configuration
|
|
30
36
|
|
|
31
|
-
If you prefer manual setup, add to your
|
|
37
|
+
If you prefer manual setup, add to your configuration file:
|
|
32
38
|
|
|
33
|
-
**Claude Code:** `~/.claude
|
|
39
|
+
**Claude Code:** `~/.claude.json`
|
|
40
|
+
**Cursor:** `~/.cursor/mcp.json`
|
|
34
41
|
**Claude Desktop (macOS):** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
35
42
|
**Claude Desktop (Windows):** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
36
43
|
**Claude Desktop (Linux):** `~/.config/Claude/claude_desktop_config.json`
|
|
@@ -60,7 +67,7 @@ npx @predictable/ryumem-mcp-server install [options]
|
|
|
60
67
|
| `--oauth` | Authenticate via GitHub OAuth (default, recommended) |
|
|
61
68
|
| `--api-key <key>` | Use a specific API key instead of OAuth |
|
|
62
69
|
| `--api-url <url>` | Custom API URL (default: `https://api.ryumem.io`) |
|
|
63
|
-
| `--client <name>` | Target client: `claude-code` (default) or `claude-desktop` |
|
|
70
|
+
| `--client <name>` | Target client: `claude-code` (default), `cursor`, or `claude-desktop` |
|
|
64
71
|
|
|
65
72
|
### Examples
|
|
66
73
|
|
|
@@ -68,15 +75,30 @@ npx @predictable/ryumem-mcp-server install [options]
|
|
|
68
75
|
# OAuth authentication (recommended)
|
|
69
76
|
npx @predictable/ryumem-mcp-server install --oauth
|
|
70
77
|
|
|
71
|
-
#
|
|
72
|
-
npx @predictable/ryumem-mcp-server install --
|
|
78
|
+
# Configure for Cursor
|
|
79
|
+
npx @predictable/ryumem-mcp-server install --oauth --client cursor
|
|
73
80
|
|
|
74
81
|
# Configure for Claude Desktop
|
|
75
82
|
npx @predictable/ryumem-mcp-server install --oauth --client claude-desktop
|
|
76
83
|
|
|
77
84
|
# Use custom API server
|
|
78
|
-
npx @predictable/ryumem-mcp-server install --
|
|
85
|
+
npx @predictable/ryumem-mcp-server install --api-key ryu_api_key --api-url http://localhost:8000
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Cursor Configuration
|
|
89
|
+
|
|
90
|
+
Cursor's MCP implementation doesn't automatically load server instructions. To enable Ryumem's memory-first behavior, add the following to your project's `.cursorrules` file:
|
|
91
|
+
|
|
92
|
+
<details>
|
|
93
|
+
<summary>š Click to expand .cursorrules content</summary>
|
|
94
|
+
|
|
79
95
|
```
|
|
96
|
+
Always search and follow Ryumem's memory-first instructions.
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
</details>
|
|
100
|
+
|
|
101
|
+
**Alternative:** You can also add these instructions to Cursor's global "Rules for AI" in Settings ā General ā Rules for AI.
|
|
80
102
|
|
|
81
103
|
## Available Tools
|
|
82
104
|
|
package/build/index.js
CHANGED
|
@@ -46,7 +46,7 @@ Use user_id = project_name.
|
|
|
46
46
|
|
|
47
47
|
šØ REQUIRED - Run these 3 searches at the START of EVERY conversation:
|
|
48
48
|
1. search_memory({user_id, tags: ["project"], limit: 1}) // NO query parameter
|
|
49
|
-
2. search_memory({user_id, tags: ["preferences"], limit:
|
|
49
|
+
2. search_memory({user_id, tags: ["preferences"], limit: 1}) // NO query parameter
|
|
50
50
|
3. search_memory({user_id, tags: ["decision"], limit: 2}) // NO query parameter
|
|
51
51
|
|
|
52
52
|
IMPORTANT: Use ONLY tags for startup searches - do NOT include query parameter.
|
|
@@ -89,9 +89,6 @@ Search memory BEFORE:
|
|
|
89
89
|
ā Starting multi-step tasks
|
|
90
90
|
|
|
91
91
|
Search volume limits:
|
|
92
|
-
- Code summaries: limit: 1
|
|
93
|
-
- Preferences: limit: 3
|
|
94
|
-
- Decisions: limit: 2
|
|
95
92
|
- General queries: limit: 5
|
|
96
93
|
- Max 5 search results before starting work
|
|
97
94
|
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE5D,2DAA2D;AAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;IAC1B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1C,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;IACnC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5C,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,CAAC;IACN,sEAAsE;AACxE,CAAC;AAED,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEhD,MAAM,YAAY,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/install.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":";AAEA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAgNH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgChE;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBlE"}
|
package/build/install.js
CHANGED
|
@@ -8,7 +8,7 @@ import * as path from 'path';
|
|
|
8
8
|
import * as os from 'os';
|
|
9
9
|
import { RyumemAuth } from './auth.js';
|
|
10
10
|
const DEFAULT_API_URL = 'https://api.ryumem.io';
|
|
11
|
-
function
|
|
11
|
+
function getConfigPath(client) {
|
|
12
12
|
const home = os.homedir();
|
|
13
13
|
switch (client) {
|
|
14
14
|
case 'claude-code':
|
|
@@ -26,8 +26,11 @@ function getClaudeConfigPath(client) {
|
|
|
26
26
|
else {
|
|
27
27
|
return path.join(home, '.config', 'claude', 'claude_desktop_config.json');
|
|
28
28
|
}
|
|
29
|
+
case 'cursor':
|
|
30
|
+
// Cursor uses ~/.cursor/mcp.json on all platforms
|
|
31
|
+
return path.join(home, '.cursor', 'mcp.json');
|
|
29
32
|
default:
|
|
30
|
-
throw new Error(`Unknown client: ${client}. Supported: claude-code, claude-desktop`);
|
|
33
|
+
throw new Error(`Unknown client: ${client}. Supported: claude-code, claude-desktop, cursor`);
|
|
31
34
|
}
|
|
32
35
|
}
|
|
33
36
|
function loadConfig(configPath) {
|
|
@@ -49,16 +52,30 @@ function saveConfig(configPath, config) {
|
|
|
49
52
|
}
|
|
50
53
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
51
54
|
}
|
|
55
|
+
function getClientDisplayName(client) {
|
|
56
|
+
switch (client) {
|
|
57
|
+
case 'claude-code':
|
|
58
|
+
case 'claude':
|
|
59
|
+
return 'Claude Code';
|
|
60
|
+
case 'claude-desktop':
|
|
61
|
+
return 'Claude Desktop';
|
|
62
|
+
case 'cursor':
|
|
63
|
+
return 'Cursor';
|
|
64
|
+
default:
|
|
65
|
+
return client;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
52
68
|
async function uninstall(client) {
|
|
53
69
|
console.log('\nš§ Ryumem MCP Server Uninstaller\n');
|
|
54
|
-
const configPath =
|
|
70
|
+
const configPath = getConfigPath(client);
|
|
55
71
|
console.log(`š Config path: ${configPath}`);
|
|
56
72
|
// Load existing config
|
|
57
73
|
const config = loadConfig(configPath);
|
|
74
|
+
const clientName = getClientDisplayName(client);
|
|
58
75
|
if (config.mcpServers && config.mcpServers.ryumem) {
|
|
59
76
|
delete config.mcpServers.ryumem;
|
|
60
77
|
saveConfig(configPath, config);
|
|
61
|
-
console.log(
|
|
78
|
+
console.log(`\nā
Removed ryumem from ${clientName} config`);
|
|
62
79
|
}
|
|
63
80
|
else {
|
|
64
81
|
console.log('\nā ļø ryumem not found in config');
|
|
@@ -74,11 +91,12 @@ async function uninstall(client) {
|
|
|
74
91
|
catch {
|
|
75
92
|
// Ignore errors
|
|
76
93
|
}
|
|
77
|
-
console.log(
|
|
94
|
+
console.log(`\nš Restart ${clientName} to apply changes.\n`);
|
|
78
95
|
}
|
|
79
96
|
async function install(options) {
|
|
80
97
|
console.log('\nš§ Ryumem MCP Server Installer\n');
|
|
81
|
-
const configPath =
|
|
98
|
+
const configPath = getConfigPath(options.client);
|
|
99
|
+
const clientName = getClientDisplayName(options.client);
|
|
82
100
|
console.log(`š Config path: ${configPath}`);
|
|
83
101
|
let apiKey = options.apiKey;
|
|
84
102
|
// If OAuth enabled and no API key, run device flow
|
|
@@ -123,7 +141,7 @@ async function install(options) {
|
|
|
123
141
|
saveConfig(configPath, config);
|
|
124
142
|
console.log('\nā
Ryumem MCP server configured successfully!');
|
|
125
143
|
console.log(`\nš Added to: ${configPath}`);
|
|
126
|
-
console.log(
|
|
144
|
+
console.log(`\nš Restart ${clientName} to activate the server.\n`);
|
|
127
145
|
}
|
|
128
146
|
function printHelp() {
|
|
129
147
|
console.log(`
|
|
@@ -135,11 +153,11 @@ Usage:
|
|
|
135
153
|
|
|
136
154
|
Commands:
|
|
137
155
|
install Install and configure ryumem MCP server
|
|
138
|
-
uninstall Remove
|
|
156
|
+
uninstall Remove ryumem MCP server from config and clear credentials
|
|
139
157
|
|
|
140
158
|
Options:
|
|
141
|
-
--client <name>
|
|
142
|
-
Supported: claude-code, claude-desktop
|
|
159
|
+
--client <name> Client to configure (default: claude-code)
|
|
160
|
+
Supported: claude-code, claude-desktop, cursor
|
|
143
161
|
--oauth Authenticate via GitHub OAuth (recommended)
|
|
144
162
|
--api-key <key> Use a specific API key
|
|
145
163
|
--api-url <url> API URL (default: https://api.ryumem.io)
|
|
@@ -147,6 +165,7 @@ Options:
|
|
|
147
165
|
|
|
148
166
|
Examples:
|
|
149
167
|
npx @predictable/ryumem-mcp-server install --oauth
|
|
168
|
+
npx @predictable/ryumem-mcp-server install --oauth --client cursor
|
|
150
169
|
npx @predictable/ryumem-mcp-server install --api-key ryu_xxxxx
|
|
151
170
|
npx @predictable/ryumem-mcp-server install --api-url http://localhost:8000 --oauth
|
|
152
171
|
npx @predictable/ryumem-mcp-server uninstall
|
package/build/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAchD,SAAS,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -52,7 +52,7 @@ Use user_id = project_name.
|
|
|
52
52
|
|
|
53
53
|
šØ REQUIRED - Run these 3 searches at the START of EVERY conversation:
|
|
54
54
|
1. search_memory({user_id, tags: ["project"], limit: 1}) // NO query parameter
|
|
55
|
-
2. search_memory({user_id, tags: ["preferences"], limit:
|
|
55
|
+
2. search_memory({user_id, tags: ["preferences"], limit: 1}) // NO query parameter
|
|
56
56
|
3. search_memory({user_id, tags: ["decision"], limit: 2}) // NO query parameter
|
|
57
57
|
|
|
58
58
|
IMPORTANT: Use ONLY tags for startup searches - do NOT include query parameter.
|
|
@@ -95,9 +95,6 @@ Search memory BEFORE:
|
|
|
95
95
|
ā Starting multi-step tasks
|
|
96
96
|
|
|
97
97
|
Search volume limits:
|
|
98
|
-
- Code summaries: limit: 1
|
|
99
|
-
- Preferences: limit: 3
|
|
100
|
-
- Decisions: limit: 2
|
|
101
98
|
- General queries: limit: 5
|
|
102
99
|
- Max 5 search results before starting work
|
|
103
100
|
|
package/src/install.ts
CHANGED
|
@@ -24,7 +24,7 @@ interface ClaudeConfig {
|
|
|
24
24
|
[key: string]: unknown;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
function
|
|
27
|
+
function getConfigPath(client: string): string {
|
|
28
28
|
const home = os.homedir();
|
|
29
29
|
|
|
30
30
|
switch (client) {
|
|
@@ -41,8 +41,11 @@ function getClaudeConfigPath(client: string): string {
|
|
|
41
41
|
} else {
|
|
42
42
|
return path.join(home, '.config', 'claude', 'claude_desktop_config.json');
|
|
43
43
|
}
|
|
44
|
+
case 'cursor':
|
|
45
|
+
// Cursor uses ~/.cursor/mcp.json on all platforms
|
|
46
|
+
return path.join(home, '.cursor', 'mcp.json');
|
|
44
47
|
default:
|
|
45
|
-
throw new Error(`Unknown client: ${client}. Supported: claude-code, claude-desktop`);
|
|
48
|
+
throw new Error(`Unknown client: ${client}. Supported: claude-code, claude-desktop, cursor`);
|
|
46
49
|
}
|
|
47
50
|
}
|
|
48
51
|
|
|
@@ -66,19 +69,35 @@ function saveConfig(configPath: string, config: ClaudeConfig): void {
|
|
|
66
69
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
67
70
|
}
|
|
68
71
|
|
|
72
|
+
function getClientDisplayName(client: string): string {
|
|
73
|
+
switch (client) {
|
|
74
|
+
case 'claude-code':
|
|
75
|
+
case 'claude':
|
|
76
|
+
return 'Claude Code';
|
|
77
|
+
case 'claude-desktop':
|
|
78
|
+
return 'Claude Desktop';
|
|
79
|
+
case 'cursor':
|
|
80
|
+
return 'Cursor';
|
|
81
|
+
default:
|
|
82
|
+
return client;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
69
86
|
async function uninstall(client: string): Promise<void> {
|
|
70
87
|
console.log('\nš§ Ryumem MCP Server Uninstaller\n');
|
|
71
88
|
|
|
72
|
-
const configPath =
|
|
89
|
+
const configPath = getConfigPath(client);
|
|
73
90
|
console.log(`š Config path: ${configPath}`);
|
|
74
91
|
|
|
75
92
|
// Load existing config
|
|
76
93
|
const config = loadConfig(configPath);
|
|
77
94
|
|
|
95
|
+
const clientName = getClientDisplayName(client);
|
|
96
|
+
|
|
78
97
|
if (config.mcpServers && config.mcpServers.ryumem) {
|
|
79
98
|
delete config.mcpServers.ryumem;
|
|
80
99
|
saveConfig(configPath, config);
|
|
81
|
-
console.log(
|
|
100
|
+
console.log(`\nā
Removed ryumem from ${clientName} config`);
|
|
82
101
|
} else {
|
|
83
102
|
console.log('\nā ļø ryumem not found in config');
|
|
84
103
|
}
|
|
@@ -94,7 +113,7 @@ async function uninstall(client: string): Promise<void> {
|
|
|
94
113
|
// Ignore errors
|
|
95
114
|
}
|
|
96
115
|
|
|
97
|
-
console.log(
|
|
116
|
+
console.log(`\nš Restart ${clientName} to apply changes.\n`);
|
|
98
117
|
}
|
|
99
118
|
|
|
100
119
|
async function install(options: {
|
|
@@ -105,7 +124,8 @@ async function install(options: {
|
|
|
105
124
|
}): Promise<void> {
|
|
106
125
|
console.log('\nš§ Ryumem MCP Server Installer\n');
|
|
107
126
|
|
|
108
|
-
const configPath =
|
|
127
|
+
const configPath = getConfigPath(options.client);
|
|
128
|
+
const clientName = getClientDisplayName(options.client);
|
|
109
129
|
console.log(`š Config path: ${configPath}`);
|
|
110
130
|
|
|
111
131
|
let apiKey = options.apiKey;
|
|
@@ -159,7 +179,7 @@ async function install(options: {
|
|
|
159
179
|
|
|
160
180
|
console.log('\nā
Ryumem MCP server configured successfully!');
|
|
161
181
|
console.log(`\nš Added to: ${configPath}`);
|
|
162
|
-
console.log(
|
|
182
|
+
console.log(`\nš Restart ${clientName} to activate the server.\n`);
|
|
163
183
|
}
|
|
164
184
|
|
|
165
185
|
function printHelp(): void {
|
|
@@ -172,11 +192,11 @@ Usage:
|
|
|
172
192
|
|
|
173
193
|
Commands:
|
|
174
194
|
install Install and configure ryumem MCP server
|
|
175
|
-
uninstall Remove
|
|
195
|
+
uninstall Remove ryumem MCP server from config and clear credentials
|
|
176
196
|
|
|
177
197
|
Options:
|
|
178
|
-
--client <name>
|
|
179
|
-
Supported: claude-code, claude-desktop
|
|
198
|
+
--client <name> Client to configure (default: claude-code)
|
|
199
|
+
Supported: claude-code, claude-desktop, cursor
|
|
180
200
|
--oauth Authenticate via GitHub OAuth (recommended)
|
|
181
201
|
--api-key <key> Use a specific API key
|
|
182
202
|
--api-url <url> API URL (default: https://api.ryumem.io)
|
|
@@ -184,6 +204,7 @@ Options:
|
|
|
184
204
|
|
|
185
205
|
Examples:
|
|
186
206
|
npx @predictable/ryumem-mcp-server install --oauth
|
|
207
|
+
npx @predictable/ryumem-mcp-server install --oauth --client cursor
|
|
187
208
|
npx @predictable/ryumem-mcp-server install --api-key ryu_xxxxx
|
|
188
209
|
npx @predictable/ryumem-mcp-server install --api-url http://localhost:8000 --oauth
|
|
189
210
|
npx @predictable/ryumem-mcp-server uninstall
|