prism-mcp-server 1.5.0 → 1.5.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 +150 -7
- package/index.ts +4 -1
- package/package.json +8 -2
- package/src/server.ts +15 -4
package/README.md
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
# Prism MCP —
|
|
1
|
+
# Prism MCP — Persistent Memory for Claude Desktop, Cursor & AI Agents
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/prism-mcp-server)
|
|
4
|
+
[](https://registry.modelcontextprotocol.io)
|
|
5
|
+
[](https://glama.ai/mcp/servers/@dcostenco/prism-mcp)
|
|
6
|
+
[](https://smithery.ai/server/prism-mcp-server)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
[](https://www.typescriptlang.org/)
|
|
9
|
+
[](https://nodejs.org/)
|
|
10
|
+
|
|
11
|
+
> **Give your AI agent memory that survives between sessions.** Prism MCP is a Model Context Protocol server that adds **persistent session memory**, **progressive context loading**, and **multi-engine search** to Claude Desktop, Cursor, Windsurf, and any MCP-compatible client. No more re-explaining your project every time you start a new chat.
|
|
12
|
+
>
|
|
13
|
+
> Built with **semantic search (pgvector)**, **optimistic concurrency control**, **MCP Prompts & Resources**, **auto-compaction**, and **multi-tenant RLS** on Supabase free tier.
|
|
4
14
|
|
|
5
15
|
---
|
|
6
16
|
|
|
@@ -62,7 +72,25 @@ Prism MCP is a unified AI agent platform with two core pillars:
|
|
|
62
72
|
|
|
63
73
|
Get the MCP server running with Claude Desktop in under 2 minutes:
|
|
64
74
|
|
|
65
|
-
###
|
|
75
|
+
### Option A: npx (Fastest — No Clone Needed)
|
|
76
|
+
|
|
77
|
+
```json
|
|
78
|
+
{
|
|
79
|
+
"mcpServers": {
|
|
80
|
+
"prism-mcp": {
|
|
81
|
+
"command": "npx",
|
|
82
|
+
"args": ["-y", "prism-mcp-server"],
|
|
83
|
+
"env": {
|
|
84
|
+
"BRAVE_API_KEY": "your-brave-api-key"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Paste into your Claude Desktop config and restart. That's it.
|
|
92
|
+
|
|
93
|
+
### Option B: Clone & Build (Full Control)
|
|
66
94
|
|
|
67
95
|
```bash
|
|
68
96
|
git clone https://github.com/dcostenco/prism-mcp.git
|
|
@@ -71,16 +99,14 @@ npm install
|
|
|
71
99
|
npm run build
|
|
72
100
|
```
|
|
73
101
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
Copy this into your `claude_desktop_config.json` (replace the paths and API keys):
|
|
102
|
+
Then add to your `claude_desktop_config.json`:
|
|
77
103
|
|
|
78
104
|
```json
|
|
79
105
|
{
|
|
80
106
|
"mcpServers": {
|
|
81
107
|
"prism-mcp": {
|
|
82
108
|
"command": "node",
|
|
83
|
-
"args": ["/absolute/path/to/
|
|
109
|
+
"args": ["/absolute/path/to/prism-mcp/build/server.js"],
|
|
84
110
|
"env": {
|
|
85
111
|
"BRAVE_API_KEY": "your-brave-api-key",
|
|
86
112
|
"GOOGLE_API_KEY": "your-google-gemini-key",
|
|
@@ -113,6 +139,119 @@ Then set `SUPABASE_URL=http://localhost:3000` in your MCP config.
|
|
|
113
139
|
|
|
114
140
|
---
|
|
115
141
|
|
|
142
|
+
## Integration Examples
|
|
143
|
+
|
|
144
|
+
Copy-paste configs for popular MCP clients. All configs use the `npx` method — replace with the `node` path if you cloned the repo.
|
|
145
|
+
|
|
146
|
+
<details>
|
|
147
|
+
<summary><strong>Cursor</strong></summary>
|
|
148
|
+
|
|
149
|
+
Add to `.cursor/mcp.json` in your project root (or `~/.cursor/mcp.json` for global):
|
|
150
|
+
|
|
151
|
+
```json
|
|
152
|
+
{
|
|
153
|
+
"mcpServers": {
|
|
154
|
+
"prism-mcp": {
|
|
155
|
+
"command": "npx",
|
|
156
|
+
"args": ["-y", "prism-mcp-server"],
|
|
157
|
+
"env": {
|
|
158
|
+
"BRAVE_API_KEY": "your-brave-api-key",
|
|
159
|
+
"SUPABASE_URL": "https://your-project.supabase.co",
|
|
160
|
+
"SUPABASE_KEY": "your-supabase-anon-key"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
</details>
|
|
168
|
+
|
|
169
|
+
<details>
|
|
170
|
+
<summary><strong>Windsurf</strong></summary>
|
|
171
|
+
|
|
172
|
+
Add to `~/.codeium/windsurf/mcp_config.json`:
|
|
173
|
+
|
|
174
|
+
```json
|
|
175
|
+
{
|
|
176
|
+
"mcpServers": {
|
|
177
|
+
"prism-mcp": {
|
|
178
|
+
"command": "npx",
|
|
179
|
+
"args": ["-y", "prism-mcp-server"],
|
|
180
|
+
"env": {
|
|
181
|
+
"BRAVE_API_KEY": "your-brave-api-key",
|
|
182
|
+
"SUPABASE_URL": "https://your-project.supabase.co",
|
|
183
|
+
"SUPABASE_KEY": "your-supabase-anon-key"
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
</details>
|
|
191
|
+
|
|
192
|
+
<details>
|
|
193
|
+
<summary><strong>VS Code + Continue</strong></summary>
|
|
194
|
+
|
|
195
|
+
Add to your Continue `config.json` (usually `~/.continue/config.json`):
|
|
196
|
+
|
|
197
|
+
```json
|
|
198
|
+
{
|
|
199
|
+
"mcpServers": [
|
|
200
|
+
{
|
|
201
|
+
"name": "prism-mcp",
|
|
202
|
+
"command": "npx",
|
|
203
|
+
"args": ["-y", "prism-mcp-server"],
|
|
204
|
+
"env": {
|
|
205
|
+
"BRAVE_API_KEY": "your-brave-api-key",
|
|
206
|
+
"SUPABASE_URL": "https://your-project.supabase.co",
|
|
207
|
+
"SUPABASE_KEY": "your-supabase-anon-key"
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
]
|
|
211
|
+
}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
</details>
|
|
215
|
+
|
|
216
|
+
<details>
|
|
217
|
+
<summary><strong>Cline (VS Code)</strong></summary>
|
|
218
|
+
|
|
219
|
+
In VS Code, open Cline settings → MCP Servers → Add Server:
|
|
220
|
+
|
|
221
|
+
```json
|
|
222
|
+
{
|
|
223
|
+
"mcpServers": {
|
|
224
|
+
"prism-mcp": {
|
|
225
|
+
"command": "npx",
|
|
226
|
+
"args": ["-y", "prism-mcp-server"],
|
|
227
|
+
"env": {
|
|
228
|
+
"BRAVE_API_KEY": "your-brave-api-key",
|
|
229
|
+
"SUPABASE_URL": "https://your-project.supabase.co",
|
|
230
|
+
"SUPABASE_KEY": "your-supabase-anon-key"
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
</details>
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Use Cases
|
|
242
|
+
|
|
243
|
+
| Scenario | How Prism MCP Helps |
|
|
244
|
+
|----------|-------------------|
|
|
245
|
+
| **Long-running feature development** | Save session state at end of day, restore full context the next morning — no re-explaining |
|
|
246
|
+
| **Multi-agent workflows** | Shared Supabase backend with RLS lets multiple agents collaborate on the same project |
|
|
247
|
+
| **Consulting / multi-project work** | Switch between client projects with progressive context loading (quick / standard / deep) |
|
|
248
|
+
| **Research & analysis** | Multi-engine search (Brave + Vertex AI) with 94% context reduction via sandboxed code transforms |
|
|
249
|
+
| **Team onboarding** | New team member's agent loads full project history via `session_load_context("deep")` |
|
|
250
|
+
| **Claude Desktop memory** | The `/resume_session` MCP Prompt injects context *before* Claude starts thinking — zero tool calls |
|
|
251
|
+
| **Knowledge management** | Auto-extracted keywords + categories turn session logs into a searchable knowledge base |
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
116
255
|
## Architecture
|
|
117
256
|
|
|
118
257
|
```mermaid
|
|
@@ -968,3 +1107,7 @@ CREATE POLICY "User-scoped access" ON session_ledger
|
|
|
968
1107
|
## License
|
|
969
1108
|
|
|
970
1109
|
MIT
|
|
1110
|
+
|
|
1111
|
+
---
|
|
1112
|
+
|
|
1113
|
+
<sub>**Keywords:** MCP server, Model Context Protocol, Claude Desktop memory, persistent session memory, AI agent memory, Claude context window, MCP session persistence, Cursor MCP server, Windsurf MCP server, Cline MCP server, pgvector semantic search, Supabase MCP, progressive context loading, MCP Prompts, MCP Resources, knowledge management AI, multi-engine search, Brave Search MCP, Gemini analysis, optimistic concurrency control, session handoff, AI agent state management</sub>
|
package/index.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { startServer } from "./src/server.js";
|
|
2
|
+
import { startServer, createSandboxServer } from "./src/server.js";
|
|
3
|
+
|
|
4
|
+
// Re-export for Smithery capability scanning
|
|
5
|
+
export { createSandboxServer };
|
|
3
6
|
|
|
4
7
|
console.error("Starting Brave-Gemini Research MCP Server...");
|
|
5
8
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prism-mcp-server",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"mcpName": "io.github.dcostenco/prism-mcp",
|
|
5
5
|
"description": "Enterprise-grade MCP server with session memory, semantic search (pgvector), optimistic concurrency control, ledger compaction, MCP Prompts & Resources, knowledge accumulation, Brave Search, and Google Gemini — progressive context loading, brain-inspired knowledge search/forget, and multi-model orchestration for AI agents",
|
|
6
6
|
"module": "index.ts",
|
|
@@ -38,7 +38,13 @@
|
|
|
38
38
|
"ai-tools",
|
|
39
39
|
"typescript",
|
|
40
40
|
"rag",
|
|
41
|
-
"embeddings"
|
|
41
|
+
"embeddings",
|
|
42
|
+
"cursor",
|
|
43
|
+
"windsurf",
|
|
44
|
+
"cline",
|
|
45
|
+
"persistent-memory",
|
|
46
|
+
"session-management",
|
|
47
|
+
"context-window"
|
|
42
48
|
],
|
|
43
49
|
"homepage": "https://github.com/dcostenco/prism-mcp",
|
|
44
50
|
"repository": {
|
package/src/server.ts
CHANGED
|
@@ -592,6 +592,13 @@ export function createServer() {
|
|
|
592
592
|
return server;
|
|
593
593
|
}
|
|
594
594
|
|
|
595
|
+
// ─── Smithery Sandbox Export ─────────────────────────────────────
|
|
596
|
+
// Smithery uses this to scan capabilities (tools, prompts, resources)
|
|
597
|
+
// without requiring real credentials or starting a transport.
|
|
598
|
+
export function createSandboxServer() {
|
|
599
|
+
return createServer();
|
|
600
|
+
}
|
|
601
|
+
|
|
595
602
|
// ─── Server Startup ─────────────────────────────────────────────
|
|
596
603
|
|
|
597
604
|
/**
|
|
@@ -621,7 +628,11 @@ export async function startServer() {
|
|
|
621
628
|
}, 10000);
|
|
622
629
|
}
|
|
623
630
|
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
631
|
+
// Only auto-start when this module is executed directly (not imported by Smithery scanner)
|
|
632
|
+
const isDirectExecution = process.argv[1]?.endsWith('server.js') || process.argv[1]?.endsWith('server.ts');
|
|
633
|
+
if (isDirectExecution) {
|
|
634
|
+
startServer().catch((error) => {
|
|
635
|
+
console.error('Fatal error running server:', error);
|
|
636
|
+
process.exit(1);
|
|
637
|
+
});
|
|
638
|
+
}
|