@plur-ai/mcp 0.2.1 → 0.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.
Files changed (3) hide show
  1. package/README.md +72 -42
  2. package/dist/index.js +1 -1
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -1,18 +1,10 @@
1
1
  # @plur-ai/mcp
2
2
 
3
- MCP server for PLURgives any AI agent persistent memory via the Model Context Protocol.
3
+ Give your AI agent persistent memory. One line in your MCP config corrections, preferences, and conventions persist across sessions. No workflow changes, no cloud, no API costs for search.
4
4
 
5
- ```bash
6
- npx @plur-ai/mcp
7
- ```
8
-
9
- Or install globally:
5
+ Part of [PLUR](https://plur.ai) — where **Haiku with memory outperforms Opus without it** at 10x less cost.
10
6
 
11
- ```bash
12
- npm install -g @plur-ai/mcp
13
- ```
14
-
15
- ## Setup
7
+ ## Setup (30 seconds)
16
8
 
17
9
  ### Claude Code
18
10
 
@@ -38,55 +30,93 @@ Add to `.cursor/mcp.json`:
38
30
  }
39
31
  ```
40
32
 
41
- ### Custom storage path
33
+ ### Windsurf / any MCP client
42
34
 
43
- ```json
44
- {
45
- "mcpServers": {
46
- "plur": {
47
- "command": "npx",
48
- "args": ["-y", "@plur-ai/mcp"],
49
- "env": { "PLUR_PATH": "/path/to/storage" }
50
- }
51
- }
52
- }
35
+ Same pattern — point it at `npx -y @plur-ai/mcp`.
36
+
37
+ That's it. Your agent now has memory. Use your tools as usual — corrections accumulate automatically.
38
+
39
+ ## What happens
40
+
41
+ ```
42
+ You correct your agent → engram created → YAML on your disk
43
+ Next session starts → relevant ones injected → agent remembers
44
+ You rate the result → engram strengthens → quality improves
53
45
  ```
54
46
 
47
+ Knowledge is stored as **engrams** — small assertions that strengthen with use and decay when irrelevant. Search is fully local (BM25 + embeddings), so memory recall costs nothing and works offline. **86.7% on LongMemEval** — on par with cloud memory services.
48
+
55
49
  ## Tools
56
50
 
57
- | Tool | Description |
51
+ Your agent gets these tools automatically:
52
+
53
+ | Tool | What it does |
58
54
  |------|-------------|
59
55
  | `plur.learn` | Store a memory — correction, preference, convention, or decision |
60
56
  | `plur.recall` | Keyword search (BM25, instant) |
61
- | `plur.recall.hybrid` | **Best default** — BM25 + embeddings merged via RRF. No API calls. |
62
- | `plur.inject` | Select engrams for current task within token budget |
63
- | `plur.feedback` | Rate an engram — trains injection relevance over time |
57
+ | `plur.recall.hybrid` | **Best default** — BM25 + embeddings merged via RRF. Zero cost. |
58
+ | `plur.inject` | Load relevant memories for the current task |
59
+ | `plur.feedback` | Rate a memory — trains relevance over time |
64
60
  | `plur.forget` | Retire a memory (history preserved) |
65
- | `plur.capture` | Record a session event to the episodic timeline |
66
- | `plur.timeline` | Query past episodes by time, agent, or search |
67
- | `plur.ingest` | Extract engram candidates from text |
68
- | `plur.sync` | Git-based sync across machines |
69
- | `plur.sync.status` | Check sync state (initialized, remote, dirty, ahead/behind) |
70
- | `plur.packs.install` | Install an engram pack |
61
+ | `plur.sync` | Sync memory across machines via git |
62
+ | `plur.sync.status` | Check sync state |
63
+ | `plur.capture` | Record a session event |
64
+ | `plur.timeline` | Query session history |
65
+ | `plur.ingest` | Extract learnings from text |
66
+ | `plur.packs.install` | Install a shareable memory pack |
71
67
  | `plur.packs.list` | List installed packs |
72
- | `plur.status` | System health — engram count, episodes, packs, storage root |
68
+ | `plur.status` | System health |
73
69
 
74
- ## How agents use it
70
+ ## Sync across machines
75
71
 
76
- **Session start:** Call `plur.inject` with the task description to load relevant memory.
72
+ Your agent can sync memory to any git remote:
73
+
74
+ ```
75
+ Agent: plur.sync({ remote: "git@github.com:you/plur-memory.git" })
76
+ → "Initialized and pushed."
77
+
78
+ # On another machine, same remote:
79
+ Agent: plur.sync()
80
+ → "Synced. Pulled 12 remote commits."
81
+ ```
82
+
83
+ Works with GitHub, GitLab, Gitea, any git host. Your data, your repo.
84
+
85
+ ## Configuration
86
+
87
+ Custom storage path:
88
+
89
+ ```json
90
+ {
91
+ "mcpServers": {
92
+ "plur": {
93
+ "command": "npx",
94
+ "args": ["-y", "@plur-ai/mcp"],
95
+ "env": { "PLUR_PATH": "/path/to/storage" }
96
+ }
97
+ }
98
+ }
99
+ ```
77
100
 
78
- **When corrected:** Call `plur.learn` to store the correction.
101
+ Default: `~/.plur/`. Everything is plain YAML open it, read it, edit it.
79
102
 
80
- **Session end:** Call `plur.capture` to record what happened.
103
+ ## Benchmark
81
104
 
82
- **Rate results:** Call `plur.feedback` on injected engrams to improve future quality.
105
+ | Metric | Score |
106
+ |--------|-------|
107
+ | LongMemEval overall | **86.7%** |
108
+ | A/B win rate vs no memory | 89% |
109
+ | House rules accuracy | 100% |
83
110
 
84
- **Cross-device:** Call `plur.sync` with a git remote URL to sync memory across machines.
111
+ [Full methodology →](https://plur.ai/benchmark.html)
85
112
 
86
- ## Update notifications
113
+ ## Related packages
87
114
 
88
- The server checks npm on startup and logs a warning if a newer version is available. No overhead during operation — the check runs once, asynchronously.
115
+ | Package | For |
116
+ |---------|-----|
117
+ | [`@plur-ai/core`](https://www.npmjs.com/package/@plur-ai/core) | Engine — use directly in custom agent frameworks |
118
+ | [`@plur-ai/claw`](https://www.npmjs.com/package/@plur-ai/claw) | OpenClaw — automatic memory without MCP |
89
119
 
90
120
  ## License
91
121
 
92
- Apache-2.0
122
+ Apache-2.0 · [GitHub](https://github.com/plur-ai/plur) · [plur.ai](https://plur.ai)
package/dist/index.js CHANGED
@@ -348,7 +348,7 @@ function getToolDefinitions() {
348
348
  }
349
349
 
350
350
  // src/server.ts
351
- var VERSION = "0.2.1";
351
+ var VERSION = "0.2.2";
352
352
  async function createServer(plur) {
353
353
  const instance = plur ?? new Plur();
354
354
  const tools = getToolDefinitions();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plur-ai/mcp",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "plur-mcp": "dist/index.js"
@@ -12,7 +12,7 @@
12
12
  "dependencies": {
13
13
  "@modelcontextprotocol/sdk": "^1.12.0",
14
14
  "zod": "^3.23.0",
15
- "@plur-ai/core": "0.2.1"
15
+ "@plur-ai/core": "0.2.2"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@types/node": "^25.5.0"