@ekkos/mcp-server 1.2.1 → 1.2.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/README.md +241 -160
- package/build/index.d.ts +9 -7
- package/build/index.js +16 -14
- package/index.ts +16 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,231 +1,312 @@
|
|
|
1
|
-
#
|
|
1
|
+
# ekkOS™ Memory MCP Server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Give your AI agent (Claude, GPT-4, etc.) in Cursor, Windsurf, or VS Code a persistent memory. It remembers solutions, learns from mistakes, and gets smarter over time.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Quick Start
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
### 1. Install
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g @ekkos/mcp-server
|
|
11
|
+
```
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
- Fast BM25 + embedding search
|
|
13
|
-
- Proven patterns and solutions
|
|
14
|
-
- Implementation examples
|
|
13
|
+
### 2. Get Your API Key
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- Forever memory
|
|
15
|
+
1. Visit https://platform.ekkos.dev
|
|
16
|
+
2. Sign in or create an account
|
|
17
|
+
3. Copy your API key from the dashboard
|
|
18
|
+
4. Copy your User ID from your profile
|
|
21
19
|
|
|
22
|
-
3.
|
|
23
|
-
- User corrections
|
|
24
|
-
- Pattern applications
|
|
25
|
-
- Recent failures
|
|
26
|
-
- Last 72h activity
|
|
20
|
+
### 3. Configure Your IDE
|
|
27
21
|
|
|
28
|
-
|
|
29
|
-
- MUST/NEVER/PREFER/AVOID rules
|
|
30
|
-
- Derived from both short-term + long-term memory
|
|
31
|
-
- Updated in real-time
|
|
22
|
+
**For Cursor:** Add to `~/.cursor/mcp.json`
|
|
32
23
|
|
|
33
|
-
|
|
24
|
+
**For Windsurf:** Add to `~/.codeium/windsurf/mcp_config.json`
|
|
34
25
|
|
|
35
|
-
|
|
36
|
-
Search all memory systems at once.
|
|
26
|
+
**For Claude Code:** Add to `~/.claude_code/mcp.json`
|
|
37
27
|
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"mcpServers": {
|
|
31
|
+
"ekkos-memory": {
|
|
32
|
+
"command": "npx",
|
|
33
|
+
"args": ["-y", "@ekkos/mcp-server"],
|
|
34
|
+
"env": {
|
|
35
|
+
"EKKOS_API_KEY": "your-api-key-here",
|
|
36
|
+
"EKKOS_USER_ID": "your-user-id-here"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
44
41
|
```
|
|
45
42
|
|
|
46
|
-
|
|
43
|
+
### 4. Restart Your IDE
|
|
47
44
|
|
|
48
|
-
|
|
49
|
-
Get current behavioral directives from auto-scan.
|
|
45
|
+
The MCP server will be available in all chat sessions. Your AI can now remember!
|
|
50
46
|
|
|
51
|
-
|
|
52
|
-
get_directives({
|
|
53
|
-
userId: "system",
|
|
54
|
-
windowHours: 72
|
|
55
|
-
})
|
|
56
|
-
```
|
|
47
|
+
## How It Works
|
|
57
48
|
|
|
58
|
-
|
|
49
|
+
Your AI agent can now access a 10-layer memory system that stores:
|
|
59
50
|
|
|
60
|
-
|
|
61
|
-
|
|
51
|
+
- **Patterns** - Proven solutions that worked
|
|
52
|
+
- **Conversations** - Past discussions and problem-solving sessions
|
|
53
|
+
- **Directives** - Rules your AI must follow (MUST/NEVER/PREFER/AVOID)
|
|
54
|
+
- **Codebase** - Semantic search across your project
|
|
55
|
+
- **And more** - Episodic memory, procedural workflows, collective knowledge
|
|
62
56
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
57
|
+
When you ask a question, your AI searches this memory first, finds relevant solutions, and applies them automatically.
|
|
58
|
+
|
|
59
|
+
## Core Tools
|
|
60
|
+
|
|
61
|
+
### `search_memory` 🔍
|
|
62
|
+
|
|
63
|
+
**What it does:** Searches all your memory layers to find relevant patterns, solutions, and past conversations.
|
|
64
|
+
|
|
65
|
+
**When to use:** Your AI calls this automatically before answering technical questions. It's the primary way your AI remembers.
|
|
68
66
|
|
|
69
|
-
**
|
|
67
|
+
**Example:**
|
|
70
68
|
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
```
|
|
70
|
+
You: "How did we fix the auth timeout issue?"
|
|
73
71
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
hours: 24,
|
|
78
|
-
limit: 20
|
|
79
|
-
})
|
|
72
|
+
AI: [Searches memory automatically]
|
|
73
|
+
"Found it! We used the auth-timeout-mitigation pattern
|
|
74
|
+
from last week. Here's the solution..."
|
|
80
75
|
```
|
|
81
76
|
|
|
82
|
-
**
|
|
77
|
+
**What you get back:**
|
|
78
|
+
|
|
79
|
+
- Relevant patterns with success rates
|
|
80
|
+
- Past conversations about similar problems
|
|
81
|
+
- Code examples that worked
|
|
82
|
+
- Solutions sorted by how well they worked
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### `forge_pattern` 🔥
|
|
83
87
|
|
|
84
|
-
|
|
85
|
-
Search Graphiti knowledge graph directly.
|
|
88
|
+
**What it does:** Saves a solution that worked as a reusable pattern. Future AI agents (including yourself) will find it automatically.
|
|
86
89
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
**When to use:** After you solve a problem, fix a bug, or discover a better approach. Your AI should call this automatically, but you can also trigger it.
|
|
91
|
+
|
|
92
|
+
**Example:**
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
AI: [After fixing a bug]
|
|
96
|
+
"I've saved this solution as a pattern. Next time we
|
|
97
|
+
encounter this issue, I'll remember the fix instantly."
|
|
93
98
|
```
|
|
94
99
|
|
|
95
|
-
**
|
|
100
|
+
**What happens:**
|
|
96
101
|
|
|
97
|
-
|
|
102
|
+
- Pattern is stored in memory
|
|
103
|
+
- Becomes searchable immediately
|
|
104
|
+
- Success rate tracked over time
|
|
105
|
+
- Automatically suggested for similar problems
|
|
98
106
|
|
|
99
|
-
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
### `forge_directive` 📜
|
|
110
|
+
|
|
111
|
+
**What it does:** Creates a rule your AI must follow. These are MUST/NEVER/PREFER/AVOID rules that guide behavior.
|
|
112
|
+
|
|
113
|
+
**When to use:** When you want to establish permanent rules for how your AI should behave.
|
|
114
|
+
|
|
115
|
+
**Example:**
|
|
100
116
|
|
|
101
|
-
```bash
|
|
102
|
-
cd mcp-servers/echo-memory
|
|
103
|
-
npm install
|
|
104
|
-
npm run build
|
|
105
117
|
```
|
|
118
|
+
You: "Always use TypeScript strict mode"
|
|
106
119
|
|
|
107
|
-
|
|
120
|
+
AI: [Creates directive]
|
|
121
|
+
"Rule saved. I'll always use strict mode going forward."
|
|
122
|
+
```
|
|
108
123
|
|
|
109
|
-
|
|
124
|
+
**Types of rules:**
|
|
110
125
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
+
- **MUST** - Always do this (highest priority)
|
|
127
|
+
- **NEVER** - Never do this (high priority)
|
|
128
|
+
- **PREFER** - Prefer this approach (medium priority)
|
|
129
|
+
- **AVOID** - Try to avoid this (lower priority)
|
|
130
|
+
|
|
131
|
+
**What happens:**
|
|
132
|
+
|
|
133
|
+
- Rule is enforced in all future interactions
|
|
134
|
+
- AI checks against rules before taking actions
|
|
135
|
+
- Rules can be project-specific or global
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
### `recall_conversation` 💬
|
|
140
|
+
|
|
141
|
+
**What it does:** Finds past conversations about a topic, even from days or weeks ago.
|
|
142
|
+
|
|
143
|
+
**When to use:** When you want to remember what you discussed before, or check if you've already solved a problem.
|
|
144
|
+
|
|
145
|
+
**Example:**
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
You: "What did we decide about the database schema?"
|
|
149
|
+
|
|
150
|
+
AI: [Searches past conversations]
|
|
151
|
+
"We discussed this 2 weeks ago. You decided to use
|
|
152
|
+
PostgreSQL with JSONB for flexible fields..."
|
|
126
153
|
```
|
|
127
154
|
|
|
128
|
-
|
|
155
|
+
**What you get back:**
|
|
129
156
|
|
|
130
|
-
|
|
157
|
+
- Relevant excerpts from past conversations
|
|
158
|
+
- Context about decisions made
|
|
159
|
+
- Solutions you've tried before
|
|
160
|
+
- Semantic matches (finds related topics, not just keywords)
|
|
131
161
|
|
|
132
|
-
|
|
162
|
+
---
|
|
133
163
|
|
|
134
|
-
|
|
164
|
+
### `check_conflict` ⚖️
|
|
165
|
+
|
|
166
|
+
**What it does:** Validates an action against your rules and patterns before executing it. Prevents your AI from doing something that violates your preferences.
|
|
167
|
+
|
|
168
|
+
**When to use:** Before executing destructive operations, deploying changes, or modifying critical configs.
|
|
169
|
+
|
|
170
|
+
**Example:**
|
|
135
171
|
|
|
136
172
|
```
|
|
137
|
-
|
|
173
|
+
AI: [Before deleting files]
|
|
174
|
+
"I want to delete /tmp files. Let me check if this
|
|
175
|
+
violates any rules..."
|
|
138
176
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
177
|
+
[Checks conflicts]
|
|
178
|
+
"⚠️ CONFLICT: This violates NEVER rule: 'Never delete
|
|
179
|
+
files without user confirmation'. I'll ask first."
|
|
142
180
|
```
|
|
143
181
|
|
|
144
|
-
**
|
|
182
|
+
**What you get back:**
|
|
145
183
|
|
|
146
|
-
|
|
184
|
+
- List of violated rules (if any)
|
|
185
|
+
- Conflicting patterns
|
|
186
|
+
- Recommendations to proceed safely
|
|
187
|
+
- Clear explanation of why it conflicts
|
|
147
188
|
|
|
148
|
-
|
|
189
|
+
---
|
|
149
190
|
|
|
150
|
-
|
|
151
|
-
- `ECHO_API_KEY`: API key for authentication (optional, for production)
|
|
191
|
+
## How to Use It Day-to-Day
|
|
152
192
|
|
|
153
|
-
###
|
|
193
|
+
### When Starting Work
|
|
154
194
|
|
|
155
|
-
|
|
156
|
-
# Watch mode (rebuilds on changes)
|
|
157
|
-
npm run watch
|
|
195
|
+
Your AI automatically searches memory when you ask questions. You don't need to do anything special - just ask:
|
|
158
196
|
|
|
159
|
-
|
|
160
|
-
|
|
197
|
+
```
|
|
198
|
+
You: "Fix the authentication bug"
|
|
199
|
+
AI: [Searches memory] "Found 3 solutions from past work..."
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### When Solving Problems
|
|
203
|
+
|
|
204
|
+
After your AI solves something, it should automatically save it as a pattern:
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
AI: [After fixing bug]
|
|
208
|
+
"Solution saved. Future agents will find this automatically."
|
|
161
209
|
```
|
|
162
210
|
|
|
163
|
-
|
|
211
|
+
If it doesn't, you can remind it:
|
|
164
212
|
|
|
165
213
|
```
|
|
166
|
-
|
|
167
|
-
│ Claude in Cursor │
|
|
168
|
-
└───────────────────┬─────────────────────────────────────┘
|
|
169
|
-
↓
|
|
170
|
-
┌─────────────────────────────────────────────────────────┐
|
|
171
|
-
│ Echo Memory MCP Server │
|
|
172
|
-
│ • search_memory │
|
|
173
|
-
│ • get_directives │
|
|
174
|
-
│ • recall_pattern │
|
|
175
|
-
│ • query_signals │
|
|
176
|
-
│ • search_knowledge_graph │
|
|
177
|
-
└───────────────────┬─────────────────────────────────────┘
|
|
178
|
-
↓
|
|
179
|
-
┌─────────────────────────────────────────────────────────┐
|
|
180
|
-
│ Echo API (localhost:3000) │
|
|
181
|
-
│ ├─ /api/asi/semantic-search (REFLEX_LOG) │
|
|
182
|
-
│ ├─ /api/asi/scan (Auto-Scan) │
|
|
183
|
-
│ ├─ /api/graphiti (Knowledge Graph) │
|
|
184
|
-
│ └─ /api/asi/log-signal (Signals) │
|
|
185
|
-
└───────────────────┬─────────────────────────────────────┘
|
|
186
|
-
↓
|
|
187
|
-
┌─────────────────────────────────────────────────────────┐
|
|
188
|
-
│ Memory Stores │
|
|
189
|
-
│ ├─ REFLEX_LOG.md (Patterns) │
|
|
190
|
-
│ ├─ Supabase asi_signals (Short-term, 72h) │
|
|
191
|
-
│ └─ Graphiti/Neo4j (Long-term, forever) │
|
|
192
|
-
└─────────────────────────────────────────────────────────┘
|
|
214
|
+
You: "Save this solution as a pattern"
|
|
193
215
|
```
|
|
194
216
|
|
|
195
|
-
|
|
217
|
+
### When Setting Rules
|
|
196
218
|
|
|
197
|
-
|
|
219
|
+
Tell your AI what you want it to always/never do:
|
|
198
220
|
|
|
199
221
|
```
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
[Might repeat past mistakes]
|
|
203
|
-
[Might not use proven patterns]
|
|
222
|
+
You: "Never use `any` type in TypeScript"
|
|
223
|
+
AI: [Creates directive] "Rule saved. I'll avoid `any` going forward."
|
|
204
224
|
```
|
|
205
225
|
|
|
206
|
-
###
|
|
226
|
+
### When Checking Past Work
|
|
227
|
+
|
|
228
|
+
Ask about past conversations:
|
|
207
229
|
|
|
208
230
|
```
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
"Found 3 proven solutions from past work!
|
|
212
|
-
Applying the highest-success pattern..."
|
|
213
|
-
[Uses established solution instantly] ✅
|
|
231
|
+
You: "What did we decide about the API structure?"
|
|
232
|
+
AI: [Searches conversations] "We discussed this last week..."
|
|
214
233
|
```
|
|
215
234
|
|
|
216
|
-
|
|
235
|
+
## The Golden Loop
|
|
236
|
+
|
|
237
|
+
ekkOS uses a continuous learning cycle that makes your AI smarter:
|
|
238
|
+
|
|
239
|
+
1. **Retrieve** - `search_memory` finds relevant patterns
|
|
240
|
+
2. **Apply** - AI uses patterns to solve problems
|
|
241
|
+
3. **Measure** - System tracks if solutions worked
|
|
242
|
+
4. **Learn** - `forge_pattern` saves new solutions
|
|
243
|
+
|
|
244
|
+
This creates a self-improving system. Every problem solved makes future problems easier.
|
|
217
245
|
|
|
218
|
-
##
|
|
246
|
+
## Troubleshooting
|
|
219
247
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
248
|
+
### MCP Server Not Appearing
|
|
249
|
+
|
|
250
|
+
- Make sure Node.js 18+ is installed
|
|
251
|
+
- Check your API key is correct in the config file
|
|
252
|
+
- Restart your IDE after adding the config
|
|
253
|
+
- Check IDE logs for connection errors
|
|
254
|
+
|
|
255
|
+
### No Patterns Found
|
|
256
|
+
|
|
257
|
+
- You need to forge some patterns first (solve problems and save them)
|
|
258
|
+
- Check your API key has access to your memory
|
|
259
|
+
- Make sure `EKKOS_USER_ID` is set for user-scoped patterns
|
|
260
|
+
|
|
261
|
+
### Authentication Errors
|
|
262
|
+
|
|
263
|
+
- Verify your API key at https://platform.ekkos.dev
|
|
264
|
+
- Check the key hasn't expired
|
|
265
|
+
- Make sure the key has correct permissions
|
|
266
|
+
|
|
267
|
+
## What Gets Stored
|
|
268
|
+
|
|
269
|
+
Your memory includes:
|
|
270
|
+
|
|
271
|
+
- **Patterns** - Solutions that worked, with success rates
|
|
272
|
+
- **Conversations** - Past discussions, searchable semantically
|
|
273
|
+
- **Directives** - Rules your AI follows (MUST/NEVER/PREFER/AVOID)
|
|
274
|
+
- **Codebase** - Semantic search across your project files
|
|
275
|
+
- **Episodic** - Problem-solving sessions and workflows
|
|
276
|
+
- **Procedural** - Step-by-step processes that worked
|
|
277
|
+
- **Collective** - Knowledge shared across AI agents
|
|
278
|
+
- **Code** - Code embeddings for finding similar code
|
|
279
|
+
|
|
280
|
+
All of this is searchable instantly when your AI needs it.
|
|
281
|
+
|
|
282
|
+
## Example Workflow
|
|
283
|
+
|
|
284
|
+
```
|
|
285
|
+
1. You: "Fix the login bug"
|
|
286
|
+
|
|
287
|
+
2. AI: [Calls search_memory("login bug fix")]
|
|
288
|
+
"Found 2 patterns from past work. Applying the
|
|
289
|
+
highest-success solution..."
|
|
290
|
+
|
|
291
|
+
3. AI: [Fixes bug using pattern]
|
|
292
|
+
"Fixed! This solution has worked 8 times before."
|
|
293
|
+
|
|
294
|
+
4. AI: [Calls forge_pattern automatically]
|
|
295
|
+
"Saved this fix as a pattern for next time."
|
|
296
|
+
|
|
297
|
+
5. Next time: AI remembers instantly and applies the fix
|
|
298
|
+
```
|
|
225
299
|
|
|
226
300
|
## Related
|
|
227
301
|
|
|
228
|
-
-
|
|
229
|
-
-
|
|
230
|
-
-
|
|
302
|
+
- **Platform Dashboard**: https://platform.ekkos.dev
|
|
303
|
+
- **Documentation**: https://docs.ekkos.dev
|
|
304
|
+
- **GitHub**: https://github.com/ekkos-ai/ekkos
|
|
305
|
+
|
|
306
|
+
## License
|
|
307
|
+
|
|
308
|
+
MIT
|
|
309
|
+
|
|
310
|
+
---
|
|
231
311
|
|
|
312
|
+
**ekkOS™** - The memory substrate for AI agents. Making AI smarter, one pattern at a time. 🧠♾️
|
package/build/index.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* ekkOS™ Memory MCP Server
|
|
4
4
|
*
|
|
5
|
-
* Provides Claude
|
|
6
|
-
*
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
5
|
+
* Provides AI agents (Claude, GPT-4, etc.) in Cursor, Windsurf, VS Code, and Claude Code
|
|
6
|
+
* with direct access to ekkOS's 10-layer memory architecture:
|
|
7
|
+
* - Layer 1-10 memory systems (working, episodic, semantic, patterns, procedural, collective, meta, codebase, directives, conflicts)
|
|
8
|
+
* - Unified context retrieval via Memory Orchestrator
|
|
9
|
+
* - Pattern search and forging (Golden Loop)
|
|
10
|
+
* - Knowledge graph queries (Graphiti/Neo4j)
|
|
11
|
+
* - Behavioral directives (MUST/NEVER/PREFER/AVOID)
|
|
10
12
|
*
|
|
11
|
-
* This bridges the gap between built infrastructure and AI access.
|
|
13
|
+
* This bridges the gap between ekkOS's built memory infrastructure and AI agent access.
|
|
12
14
|
*/
|
|
13
15
|
export {};
|
package/build/index.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* ekkOS™ Memory MCP Server
|
|
4
4
|
*
|
|
5
|
-
* Provides Claude
|
|
6
|
-
*
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
5
|
+
* Provides AI agents (Claude, GPT-4, etc.) in Cursor, Windsurf, VS Code, and Claude Code
|
|
6
|
+
* with direct access to ekkOS's 10-layer memory architecture:
|
|
7
|
+
* - Layer 1-10 memory systems (working, episodic, semantic, patterns, procedural, collective, meta, codebase, directives, conflicts)
|
|
8
|
+
* - Unified context retrieval via Memory Orchestrator
|
|
9
|
+
* - Pattern search and forging (Golden Loop)
|
|
10
|
+
* - Knowledge graph queries (Graphiti/Neo4j)
|
|
11
|
+
* - Behavioral directives (MUST/NEVER/PREFER/AVOID)
|
|
10
12
|
*
|
|
11
|
-
* This bridges the gap between built infrastructure and AI access.
|
|
13
|
+
* This bridges the gap between ekkOS's built memory infrastructure and AI agent access.
|
|
12
14
|
*/
|
|
13
15
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
14
16
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
@@ -34,11 +36,11 @@ const ECHO_API_KEY = process.env.ECHO_API_KEY; // For authentication
|
|
|
34
36
|
const EKKOS_USER_ID = process.env.EKKOS_USER_ID; // User ID for tracking retrievals
|
|
35
37
|
const EKKOS_API_KEY = process.env.EKKOS_API_KEY; // User's API key
|
|
36
38
|
// Debug: Log configuration on startup (to stderr so it doesn't interfere with MCP protocol)
|
|
37
|
-
console.error(`[MCP:
|
|
38
|
-
console.error(`[MCP:
|
|
39
|
-
console.error(`[MCP:
|
|
40
|
-
console.error(`[MCP:
|
|
41
|
-
console.error(`[MCP:
|
|
39
|
+
console.error(`[MCP:ekkos-memory] Using DIRECT Supabase connection`);
|
|
40
|
+
console.error(`[MCP:ekkos-memory] SUPABASE_URL: ${SUPABASE_URL}`);
|
|
41
|
+
console.error(`[MCP:ekkos-memory] SUPABASE_KEY: ${SUPABASE_KEY ? 'set (' + SUPABASE_KEY.length + ' chars)' : 'NOT SET'}`);
|
|
42
|
+
console.error(`[MCP:ekkos-memory] EKKOS_USER_ID: ${EKKOS_USER_ID || 'NOT SET (Golden Loop tracking disabled)'}`);
|
|
43
|
+
console.error(`[MCP:ekkos-memory] EKKOS_API_KEY: ${EKKOS_API_KEY ? 'set' : 'NOT SET'}`);
|
|
42
44
|
// In-memory store for tracking pattern applications (maps application_id -> pattern_ids)
|
|
43
45
|
// This bridges track_memory_application and record_memory_outcome
|
|
44
46
|
const applicationStore = new Map();
|
|
@@ -1774,7 +1776,7 @@ Future agents will find it when facing similar problems.
|
|
|
1774
1776
|
case 'get_memory_layer_info': {
|
|
1775
1777
|
try {
|
|
1776
1778
|
const stats = await fetchMemory('/api/v1/memory/metrics');
|
|
1777
|
-
const formatted = `**
|
|
1779
|
+
const formatted = `**ekkOS Memory Layer Statistics** (10-Layer Architecture)
|
|
1778
1780
|
|
|
1779
1781
|
**Core Memory Layers:**
|
|
1780
1782
|
- 🧠 Layer 2 (Episodic): ${stats.episodic || 0} episodes
|
|
@@ -1831,7 +1833,7 @@ The memory metrics endpoint may not be available. Check that:
|
|
|
1831
1833
|
This is ekkOS, the memory substrate for AI agents.
|
|
1832
1834
|
|
|
1833
1835
|
**Connection Status:** ✅ MCP server is running and responding
|
|
1834
|
-
**Server:**
|
|
1836
|
+
**Server:** ekkOS Memory MCP Server v1.2.1
|
|
1835
1837
|
**Time:** ${new Date().toISOString()}
|
|
1836
1838
|
|
|
1837
1839
|
You've successfully connected to ekkOS via the Model Context Protocol. This proves that:
|
package/index.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* ekkOS™ Memory MCP Server
|
|
4
4
|
*
|
|
5
|
-
* Provides Claude
|
|
6
|
-
*
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
5
|
+
* Provides AI agents (Claude, GPT-4, etc.) in Cursor, Windsurf, VS Code, and Claude Code
|
|
6
|
+
* with direct access to ekkOS's 10-layer memory architecture:
|
|
7
|
+
* - Layer 1-10 memory systems (working, episodic, semantic, patterns, procedural, collective, meta, codebase, directives, conflicts)
|
|
8
|
+
* - Unified context retrieval via Memory Orchestrator
|
|
9
|
+
* - Pattern search and forging (Golden Loop)
|
|
10
|
+
* - Knowledge graph queries (Graphiti/Neo4j)
|
|
11
|
+
* - Behavioral directives (MUST/NEVER/PREFER/AVOID)
|
|
10
12
|
*
|
|
11
|
-
* This bridges the gap between built infrastructure and AI access.
|
|
13
|
+
* This bridges the gap between ekkOS's built memory infrastructure and AI agent access.
|
|
12
14
|
*/
|
|
13
15
|
|
|
14
16
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
@@ -44,11 +46,11 @@ const EKKOS_USER_ID = process.env.EKKOS_USER_ID; // User ID for tracking retriev
|
|
|
44
46
|
const EKKOS_API_KEY = process.env.EKKOS_API_KEY; // User's API key
|
|
45
47
|
|
|
46
48
|
// Debug: Log configuration on startup (to stderr so it doesn't interfere with MCP protocol)
|
|
47
|
-
console.error(`[MCP:
|
|
48
|
-
console.error(`[MCP:
|
|
49
|
-
console.error(`[MCP:
|
|
50
|
-
console.error(`[MCP:
|
|
51
|
-
console.error(`[MCP:
|
|
49
|
+
console.error(`[MCP:ekkos-memory] Using DIRECT Supabase connection`);
|
|
50
|
+
console.error(`[MCP:ekkos-memory] SUPABASE_URL: ${SUPABASE_URL}`);
|
|
51
|
+
console.error(`[MCP:ekkos-memory] SUPABASE_KEY: ${SUPABASE_KEY ? 'set (' + SUPABASE_KEY.length + ' chars)' : 'NOT SET'}`);
|
|
52
|
+
console.error(`[MCP:ekkos-memory] EKKOS_USER_ID: ${EKKOS_USER_ID || 'NOT SET (Golden Loop tracking disabled)'}`);
|
|
53
|
+
console.error(`[MCP:ekkos-memory] EKKOS_API_KEY: ${EKKOS_API_KEY ? 'set' : 'NOT SET'}`);
|
|
52
54
|
|
|
53
55
|
// In-memory store for tracking pattern applications (maps application_id -> pattern_ids)
|
|
54
56
|
// This bridges track_memory_application and record_memory_outcome
|
|
@@ -1897,7 +1899,7 @@ Future agents will find it when facing similar problems.
|
|
|
1897
1899
|
try {
|
|
1898
1900
|
const stats = await fetchMemory('/api/v1/memory/metrics');
|
|
1899
1901
|
|
|
1900
|
-
const formatted = `**
|
|
1902
|
+
const formatted = `**ekkOS Memory Layer Statistics** (10-Layer Architecture)
|
|
1901
1903
|
|
|
1902
1904
|
**Core Memory Layers:**
|
|
1903
1905
|
- 🧠 Layer 2 (Episodic): ${stats.episodic || 0} episodes
|
|
@@ -1955,7 +1957,7 @@ The memory metrics endpoint may not be available. Check that:
|
|
|
1955
1957
|
This is ekkOS, the memory substrate for AI agents.
|
|
1956
1958
|
|
|
1957
1959
|
**Connection Status:** ✅ MCP server is running and responding
|
|
1958
|
-
**Server:**
|
|
1960
|
+
**Server:** ekkOS Memory MCP Server v1.2.1
|
|
1959
1961
|
**Time:** ${new Date().toISOString()}
|
|
1960
1962
|
|
|
1961
1963
|
You've successfully connected to ekkOS via the Model Context Protocol. This proves that:
|
package/package.json
CHANGED