@getmarrow/mcp 3.9.1 → 3.9.3
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 +477 -84
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,30 +4,454 @@
|
|
|
4
4
|
|
|
5
5
|

|
|
6
6
|

|
|
7
|
+

|
|
8
|
+

|
|
9
|
+

|
|
10
|
+

|
|
7
11
|
|
|
8
|
-
|
|
12
|
+
Marrow gives your agent a memory that compounds.
|
|
13
|
+
|
|
14
|
+
With `@getmarrow/mcp`, any MCP-compatible client can log intent before acting, inspect live loop state during work, and commit outcomes back to the hive when the work is done. That means your agent stops operating like an amnesiac and starts carrying forward real decision history.
|
|
15
|
+
|
|
16
|
+
**Your agent stops repeating the same mistakes. It learns from prior sessions — and from the wider Marrow hive — through a clean MCP tool surface.**
|
|
9
17
|
|
|
10
18
|
---
|
|
11
19
|
|
|
12
|
-
##
|
|
20
|
+
## Auto-Logging
|
|
21
|
+
|
|
22
|
+
Marrow auto-logs at three layers — transparent to your agent, invisible to you:
|
|
23
|
+
|
|
24
|
+
| Layer | How | Agent effort |
|
|
25
|
+
|-------|-----|-------------|
|
|
26
|
+
| Server-side | Every authenticated API call auto-logged as a decision | Zero |
|
|
27
|
+
| SDK | `marrow.think()` / `marrow.commit()` — explicit control | Minimal |
|
|
28
|
+
| MCP hooks | `npx @getmarrow/mcp setup` — PostToolUse + UserPromptSubmit hooks | Zero |
|
|
29
|
+
|
|
30
|
+
**Passive mode in action:** Run `npx @getmarrow/mcp setup` once. Every tool call your agent makes (Bash, file edits, MCP calls) is auto-logged in the background. Marrow intelligence is auto-injected into your agent's context. Fail-silent, 2-second timeout, never blocks your prompt.
|
|
31
|
+
|
|
32
|
+
Disable: `MARROW_AUTO_HOOK=false`. Debug: `MARROW_HOOK_DEBUG=true`.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Improvement Since Onboarding
|
|
37
|
+
|
|
38
|
+
`marrow_dashboard` and `marrow_digest` now return an `improvement` block comparing your agents' current performance against their day-1 baseline — a frozen snapshot of the first week of activity. Baseline captures automatically once an account reaches 7 days OR 20 decisions (whichever first).
|
|
39
|
+
|
|
40
|
+
Four measured deltas, all from real decision data:
|
|
41
|
+
|
|
42
|
+
- `attempts_per_success` — baseline week vs current week
|
|
43
|
+
- `time_to_success_seconds` — median think → successful commit
|
|
44
|
+
- `drift_rate` — % of decisions without a matching prior pattern
|
|
45
|
+
- `success_rate` — baseline vs current outcome fraction
|
|
46
|
+
|
|
47
|
+
Sample response:
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"improvement": {
|
|
52
|
+
"status": "active",
|
|
53
|
+
"days_since_baseline": 20,
|
|
54
|
+
"decisions_since_baseline": 2124,
|
|
55
|
+
"baseline_captured_at": "2026-04-23T15:07:41.919Z",
|
|
56
|
+
"trigger_reason": "time_7d",
|
|
57
|
+
"time_to_success_seconds": { "baseline": 244, "current": 24, "delta_pct": -90.16 }
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Accounts with <7 days of activity AND <20 decisions get an onboarding payload showing days/decisions until baseline fires. No heuristics, no estimates — every number comes from the agent's own decision history. Token-usage savings remain on the enterprise roadmap.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## What's New in v3.8.0
|
|
67
|
+
|
|
68
|
+
### Multi-API-Key Management Tools
|
|
69
|
+
|
|
70
|
+
Five new MCP tools for managing API keys across your agent fleet — no dashboard required:
|
|
71
|
+
|
|
72
|
+
- `marrow_create_key` — Create named, scoped API keys (`live`/`test` type, optional scopes and agent bindings)
|
|
73
|
+
- `marrow_list_keys` — List all API keys with masked display and tier limits
|
|
74
|
+
- `marrow_get_key` — Get key details, usage stats, and expiry info
|
|
75
|
+
- `marrow_revoke_key` — Permanently revoke a key
|
|
76
|
+
- `marrow_rotate_key` — Atomically rotate (revoke old + create new, returns new key once)
|
|
77
|
+
|
|
78
|
+
Create/rotate return the full key exactly once with a warning. All other tools return masked keys only.
|
|
13
79
|
|
|
14
80
|
```bash
|
|
15
|
-
|
|
81
|
+
npx @getmarrow/mcp --key mrw_...
|
|
82
|
+
# Now available: marrow_create_key, marrow_list_keys, marrow_get_key,
|
|
83
|
+
# marrow_revoke_key, marrow_rotate_key
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### Previous: v3.7.0 — Passive Context Injection
|
|
89
|
+
|
|
90
|
+
Marrow's passive loop is now complete. v3.2.0 shipped the **write side** — every tool call your agent makes is auto-logged via a PostToolUse hook. v3.7.0 ships the **read side** — Marrow's intelligence is auto-injected into your agent's prompt window via a UserPromptSubmit hook. No agent discipline required for either side.
|
|
91
|
+
|
|
92
|
+
When you run `npx @getmarrow/mcp setup`, both hooks install automatically. From the next user prompt forward:
|
|
93
|
+
|
|
94
|
+
1. You type a message to your agent
|
|
95
|
+
2. Hook fires, takes your prompt, queries Marrow for relevant warnings + hive patterns + similar past decisions
|
|
96
|
+
3. Marrow context (if any) is injected into your agent's view as `additionalContext`
|
|
97
|
+
4. Agent responds knowing what failed last time, what worked, and what patterns to leverage
|
|
98
|
+
|
|
99
|
+
The hook is fail-silent: 2-second timeout on the Marrow API call, errors swallowed, never blocks your prompt. No signal → no injection. `MARROW_AUTO_HOOK=false` disables both hooks. `MARROW_CONTEXT_HOOK_DEBUG=true` enables stderr diagnostics.
|
|
100
|
+
|
|
101
|
+
This closes the loop Buu identified: Marrow now *just works* — your agent reads from the hive without you ever telling it to.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Agent-Narrated Marrow Contribution
|
|
106
|
+
|
|
107
|
+
Marrow now tells the agent exactly what it contributed to each decision, so the agent can surface that contribution to the user in plain English — no dashboard required.
|
|
108
|
+
|
|
109
|
+
Three new fields:
|
|
110
|
+
|
|
111
|
+
- `marrow_think` returns `marrow_contributed` describing what intelligence Marrow surfaced for this decision (warnings consulted, hive patterns, similar decisions, workflow templates, loop detection, collective insight).
|
|
112
|
+
- `marrow_commit` returns `marrow_contributed` describing concrete signals on the commit itself (pattern reused, warning avoided, workflow step).
|
|
113
|
+
- `marrow_session_end` returns `session_summary` aggregating Marrow's contribution across the session, plus a one-line `narrative` for the agent to surface as it wraps up.
|
|
114
|
+
|
|
115
|
+
Each object includes `has_signal: boolean` — when true, the agent narrates Marrow's role in 1 sentence; when false, it stays quiet. The built-in `marrow-always-on` system prompt now instructs agents on tone and timing for these narrations.
|
|
116
|
+
|
|
117
|
+
Sample think response:
|
|
118
|
+
|
|
119
|
+
```json
|
|
120
|
+
{
|
|
121
|
+
"decision_id": "...",
|
|
122
|
+
"intelligence": { "...": "..." },
|
|
123
|
+
"marrow_contributed": {
|
|
124
|
+
"warnings_consulted": 2,
|
|
125
|
+
"hive_patterns_surfaced": 12,
|
|
126
|
+
"similar_decisions_found": 8,
|
|
127
|
+
"workflow_templates_available": 1,
|
|
128
|
+
"loop_detected": false,
|
|
129
|
+
"collective_intelligence": true,
|
|
130
|
+
"team_context_present": false,
|
|
131
|
+
"has_signal": true
|
|
132
|
+
}
|
|
133
|
+
}
|
|
16
134
|
```
|
|
17
135
|
|
|
18
|
-
|
|
136
|
+
The user installed Marrow to make their agent better. They should hear, in plain English, what Marrow actually did. Their agent's reply IS the dashboard.
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Agent-Narrated Milestones
|
|
141
|
+
|
|
142
|
+
`marrow_commit` returns a `narrative` field. When a milestone fires (first commit, baseline capture, decision 100/500/1000/5000, weekly recap), the backend returns a human-readable string the agent relays to the user. Otherwise it returns `null`.
|
|
143
|
+
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"committed": true,
|
|
147
|
+
"narrative": "Baseline captured. Your first-week averages: 42s per task, 1.3 attempts per success."
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Narratives are aggregated metrics only — no user data, no decision content, no heuristics.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Velocity Metrics
|
|
156
|
+
|
|
157
|
+
`marrow_dashboard` and `marrow_digest` include three measured velocity metrics:
|
|
158
|
+
|
|
159
|
+
- `attempts_per_success` — avg decisions before an agent lands a success
|
|
160
|
+
- `time_to_success_seconds` — median seconds from `marrow_think` to successful `marrow_commit`
|
|
161
|
+
- `drift_rate` — % of decisions that didn't link to a known pattern
|
|
162
|
+
|
|
163
|
+
Each reports `{current, previous, delta_pct, direction}` so operators see whether agents are trending toward or away from improvement.
|
|
164
|
+
|
|
165
|
+
All metrics are computed from real decision data — no estimates, no heuristics.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Passive Mode
|
|
170
|
+
|
|
171
|
+
Running `npx @getmarrow/mcp setup` installs a PostToolUse hook into `.claude/settings.json`. After setup, every tool call your agent makes (Bash, file edits, MCP calls) is auto-logged to Marrow in the background — no agent discipline required.
|
|
172
|
+
|
|
173
|
+
Disable via: `MARROW_AUTO_HOOK=false`
|
|
174
|
+
|
|
175
|
+
For troubleshooting hook behavior, set `MARROW_HOOK_DEBUG=true` to re-enable one-line stderr diagnostics.
|
|
176
|
+
|
|
177
|
+
**Operator visibility + auto-intelligence tools.**
|
|
178
|
+
|
|
179
|
+
## Operator Tools
|
|
180
|
+
|
|
181
|
+
### marrow_dashboard
|
|
182
|
+
|
|
183
|
+
Operator dashboard in one call. Account health, top failures, workflow status, recent activity, Marrow's saves metric. Now includes velocity metrics (see v3.3.0 section above).
|
|
184
|
+
|
|
185
|
+
### marrow_digest
|
|
186
|
+
|
|
187
|
+
Periodic summary with success rate trend vs previous period. Optional `period` parameter (default `7d`). Now includes velocity summary (see v3.3.0 section above).
|
|
188
|
+
|
|
189
|
+
### marrow_session_end
|
|
190
|
+
|
|
191
|
+
Explicitly end a session and optionally auto-commit any open decision. Prevents orphaned decisions.
|
|
192
|
+
|
|
193
|
+
### marrow_accept_detected
|
|
194
|
+
|
|
195
|
+
Convert a detected recurring pattern into an enforced workflow. Pattern ID comes from `orient()` response's `suggested_workflows`.
|
|
196
|
+
|
|
197
|
+
## Intelligence Fields in marrow_think Response
|
|
198
|
+
|
|
199
|
+
`marrow_think` surfaces three additional fields when the backend provides them:
|
|
200
|
+
- `onboarding_hint` — contextual tip for new accounts
|
|
201
|
+
- `intelligence.collective` — anonymized insights aggregated across all Marrow accounts (k-anonymity ≥5 accounts per insight)
|
|
202
|
+
- `intelligence.team_context` — recent decisions from other sessions in the same account, so multi-agent teams stay aware of each other's work
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Available Templates
|
|
207
|
+
|
|
208
|
+
24 pre-built workflow templates across 8 industries. Browse via `marrow_list_templates` and install with `marrow_install_template`.
|
|
209
|
+
|
|
210
|
+
- **Insurance (4):** `claims-triage`, `fraud-review`, `underwriting-decision`, `complaint-escalation`
|
|
211
|
+
- **Healthcare (4):** `patient-triage`, `clinical-documentation`, `prior-authorization`, `coding-audit`
|
|
212
|
+
- **E-commerce (3):** `order-fulfillment`, `refund-approval`, `return-processing`
|
|
213
|
+
- **Legal (3):** `contract-review`, `case-triage`, `document-discovery`
|
|
214
|
+
- **SaaS (6):** `code-review-deploy`, `incident-response`, `feature-rollout`, `ticket-triage`, `escalation-flow`, `lead-qualify`
|
|
215
|
+
- **Fintech (2):** `etl-pipeline`, `approval-flow`
|
|
216
|
+
- **Media (1):** `content-publish`
|
|
217
|
+
- **Enterprise (1):** `change-management`
|
|
218
|
+
|
|
219
|
+
Full catalog with descriptions: [getmarrow.ai/docs#template-marketplace](https://getmarrow.ai/docs/#template-marketplace)
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
marrow_list_templates({ industry: 'insurance' })
|
|
223
|
+
marrow_install_template({ slug: 'claims-triage' })
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## Claude Code Compatibility
|
|
227
|
+
|
|
228
|
+
Marrow MCP works natively with Claude Code. The server runs as a long-running process and handles the full MCP protocol correctly.
|
|
229
|
+
|
|
230
|
+
## One-Command Agent Setup
|
|
231
|
+
|
|
232
|
+
Inject Marrow instructions directly into your project's `CLAUDE.md`:
|
|
19
233
|
|
|
20
234
|
```bash
|
|
21
235
|
npx @getmarrow/mcp setup
|
|
22
236
|
```
|
|
23
237
|
|
|
24
|
-
|
|
238
|
+
After setup, your agent uses Marrow automatically every session, and Claude Code PostToolUse hooks auto-log tool calls in the background — no human prompting required.
|
|
25
239
|
|
|
26
|
-
|
|
240
|
+
## Auto-Enroll by Default
|
|
241
|
+
The `marrow-always-on` prompt is served to all MCP clients automatically. Set `MARROW_AUTO_ENROLL=false` to opt out.
|
|
27
242
|
|
|
28
|
-
##
|
|
243
|
+
## Security Hardening
|
|
244
|
+
- **Input validation** — all URL path parameters are sanitized to prevent path traversal
|
|
245
|
+
- **SSRF protection** — `MARROW_BASE_URL` must use HTTPS
|
|
246
|
+
- **Crash protection** — malformed JSON on stdin no longer kills the server
|
|
247
|
+
- **Error handling** — proper error logging throughout
|
|
248
|
+
- **HTTP status checking** — API errors return clear messages
|
|
29
249
|
|
|
30
|
-
|
|
250
|
+
### Auto-Warn on Orient
|
|
251
|
+
The `marrow_orient` tool now accepts `autoWarn: true` and warns you BEFORE you start a task that recently failed:
|
|
252
|
+
|
|
253
|
+
```json
|
|
254
|
+
{
|
|
255
|
+
"name": "marrow_orient",
|
|
256
|
+
"arguments": {
|
|
257
|
+
"autoWarn": true,
|
|
258
|
+
"task": "Fix authentication error"
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
**Response includes warnings:**
|
|
264
|
+
```
|
|
265
|
+
⚠️ HIGH: This task type failed 4x with approach='retry-without-fix'.
|
|
266
|
+
Try approach='apply-patch-first' (89% success rate)
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### Loop Detection on Think
|
|
270
|
+
The `marrow_think` tool now accepts `checkLoop: true` and detects if you're about to retry a failed approach:
|
|
271
|
+
|
|
272
|
+
```json
|
|
273
|
+
{
|
|
274
|
+
"name": "marrow_think",
|
|
275
|
+
"arguments": {
|
|
276
|
+
"action": "Retry auth with method='internal'",
|
|
277
|
+
"checkLoop": true
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
**Response includes loop warnings:**
|
|
283
|
+
```
|
|
284
|
+
🚨 LOOP DETECTED: You're retrying a failed approach.
|
|
285
|
+
Previous failure: 'retry-without-fix' approach not supported.
|
|
286
|
+
Suggested: Use 'apply-patch-first' approach instead.
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
### Rate Limiting
|
|
290
|
+
- `marrow_orient`: 30 requests/minute per account
|
|
291
|
+
- `marrow_think`: 60 requests/minute per account
|
|
292
|
+
- Automatic 429 responses when limit exceeded
|
|
293
|
+
|
|
294
|
+
### Enhanced PII Protection
|
|
295
|
+
- Automatic stripping of emails, phone numbers, API keys from all responses
|
|
296
|
+
- Applied to `recentLessons`, `warnings`, and `outcome` fields
|
|
297
|
+
- Deep object stripping for complex data structures
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## The Problem
|
|
302
|
+
|
|
303
|
+
Most agents still operate with shallow memory.
|
|
304
|
+
|
|
305
|
+
They might keep a short context window, maybe write a note or two, then lose the important part:
|
|
306
|
+
- what they were trying to do
|
|
307
|
+
- what they actually did
|
|
308
|
+
- whether it worked
|
|
309
|
+
- what pattern that should teach the next run
|
|
310
|
+
|
|
311
|
+
That creates a familiar failure loop:
|
|
312
|
+
- the same mistakes repeat
|
|
313
|
+
- work gets marked done without structured outcome memory
|
|
314
|
+
- agents drift between sessions
|
|
315
|
+
- hosts have no clean way to inspect whether the work loop is actually closed
|
|
316
|
+
|
|
317
|
+
**Marrow fixes this.**
|
|
318
|
+
|
|
319
|
+
Through MCP, your agent can:
|
|
320
|
+
- orient at session start
|
|
321
|
+
- log intent before meaningful action
|
|
322
|
+
- inspect loop state before handoff or completion
|
|
323
|
+
- commit outcomes back to memory cleanly
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## How It Works
|
|
328
|
+
|
|
329
|
+
Marrow exposes a simple operating loop through MCP:
|
|
330
|
+
|
|
331
|
+
```text
|
|
332
|
+
orient -> think -> act -> check -> commit
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
That gives agents an actual memory discipline:
|
|
336
|
+
- **orient** → pick up recent lessons and current loop state
|
|
337
|
+
- **think** → log intent and receive decision intelligence
|
|
338
|
+
- **act** → perform the meaningful work
|
|
339
|
+
- **check** → inspect whether the loop is still open or missing something
|
|
340
|
+
- **commit** → log the outcome and close the loop
|
|
341
|
+
|
|
342
|
+
The value compounds with use. Each decision your agent logs makes the hive smarter — failure rates drop, patterns emerge, and the next session starts with real intelligence instead of a blank slate. Teams running multiple agents see this compound fastest, but even a single agent builds meaningful history within a few sessions.
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## Install
|
|
347
|
+
|
|
348
|
+
### Quick Start (Claude Code)
|
|
349
|
+
|
|
350
|
+
```bash
|
|
351
|
+
# 1. Add the MCP server
|
|
352
|
+
claude mcp add marrow -e MARROW_API_KEY=mrw_your_api_key -- npx @getmarrow/mcp
|
|
353
|
+
|
|
354
|
+
# 2. Set up auto-enrollment (agent uses Marrow automatically)
|
|
355
|
+
npx @getmarrow/mcp setup
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
That's it. Your agent will use Marrow automatically in every session.
|
|
359
|
+
|
|
360
|
+
### Manual Setup
|
|
361
|
+
|
|
362
|
+
Run it directly with `npx`:
|
|
363
|
+
|
|
364
|
+
```bash
|
|
365
|
+
# Option 1: Pass API key via CLI flag
|
|
366
|
+
npx @getmarrow/mcp --key mrw_your_api_key
|
|
367
|
+
|
|
368
|
+
# Option 2: Use environment variable
|
|
369
|
+
MARROW_API_KEY=mrw_your_api_key npx @getmarrow/mcp
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
Or register it in your MCP client config.
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
## MCP Tools
|
|
377
|
+
|
|
378
|
+
### Core Loop Tools
|
|
379
|
+
|
|
380
|
+
#### `marrow_orient`
|
|
381
|
+
**Call this first** at session start. Returns failure warnings from your history so you avoid known mistakes immediately.
|
|
382
|
+
|
|
383
|
+
#### `marrow_think`
|
|
384
|
+
Log intent before meaningful action. Returns pattern insights, similar past decisions, and a recommended next step.
|
|
385
|
+
|
|
386
|
+
#### `marrow_commit`
|
|
387
|
+
Log the outcome after acting. Closes the decision loop.
|
|
388
|
+
|
|
389
|
+
#### `marrow_run`
|
|
390
|
+
Zero-ceremony wrapper. Handles orient → think → commit in a single call.
|
|
391
|
+
|
|
392
|
+
#### `marrow_auto`
|
|
393
|
+
Fire-and-forget logging. Pass what you're about to do (and optionally the outcome). Marrow handles everything in the background.
|
|
394
|
+
|
|
395
|
+
### Memory Management Tools
|
|
396
|
+
|
|
397
|
+
#### `marrow_list_memories`
|
|
398
|
+
List memories with optional filters:
|
|
399
|
+
- `status` — Filter by status (active, outdated, deleted)
|
|
400
|
+
- `query` — Search query
|
|
401
|
+
- `limit` — Max results
|
|
402
|
+
- `agentId` — Include memories shared with this agent
|
|
403
|
+
|
|
404
|
+
#### `marrow_get_memory`
|
|
405
|
+
Get a single memory by ID.
|
|
406
|
+
|
|
407
|
+
#### `marrow_update_memory`
|
|
408
|
+
Update memory text, tags, or metadata.
|
|
409
|
+
|
|
410
|
+
#### `marrow_delete_memory`
|
|
411
|
+
Soft delete a memory.
|
|
412
|
+
|
|
413
|
+
#### `marrow_mark_outdated`
|
|
414
|
+
Mark a memory as outdated.
|
|
415
|
+
|
|
416
|
+
#### `marrow_supersede_memory`
|
|
417
|
+
Atomically replace a memory with a new version.
|
|
418
|
+
|
|
419
|
+
#### `marrow_share_memory`
|
|
420
|
+
Share a memory with specific agents.
|
|
421
|
+
|
|
422
|
+
#### `marrow_export_memories`
|
|
423
|
+
Export memories to JSON or CSV format.
|
|
424
|
+
|
|
425
|
+
#### `marrow_import_memories`
|
|
426
|
+
Import memories with merge (dedup) or replace mode.
|
|
427
|
+
|
|
428
|
+
#### `marrow_retrieve_memories`
|
|
429
|
+
Full-text search with filters:
|
|
430
|
+
- `query` — Search query (required)
|
|
431
|
+
- `limit` — Max results
|
|
432
|
+
- `from` / `to` — Date range (ISO-8601)
|
|
433
|
+
- `tags` — Comma-separated tags
|
|
434
|
+
- `source` — Source filter
|
|
435
|
+
- `status` — Status filter
|
|
436
|
+
- `shared` — Include shared memories
|
|
437
|
+
|
|
438
|
+
### Query Tools
|
|
439
|
+
|
|
440
|
+
#### `marrow_ask`
|
|
441
|
+
Query the collective hive in plain English. Ask about failure patterns, what worked, what broke, or get a recommendation.
|
|
442
|
+
|
|
443
|
+
#### `marrow_status`
|
|
444
|
+
Check Marrow platform health and status.
|
|
445
|
+
|
|
446
|
+
---
|
|
447
|
+
|
|
448
|
+
## Claude Code Config
|
|
449
|
+
|
|
450
|
+
```bash
|
|
451
|
+
claude mcp add marrow -e MARROW_API_KEY=mrw_your_api_key -- npx @getmarrow/mcp
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
## Claude Desktop Config
|
|
31
455
|
|
|
32
456
|
```json
|
|
33
457
|
{
|
|
@@ -40,88 +464,57 @@ Add to your Claude Desktop or MCP client config:
|
|
|
40
464
|
}
|
|
41
465
|
```
|
|
42
466
|
|
|
43
|
-
|
|
467
|
+
---
|
|
44
468
|
|
|
45
|
-
|
|
46
|
-
|------|-------------|
|
|
47
|
-
| `marrow_orient` | Session-start failure warnings |
|
|
48
|
-
| `marrow_think` | Log intent + get hive intelligence |
|
|
49
|
-
| `marrow_commit` | Record outcome — closes decision loop |
|
|
50
|
-
| `marrow_run` | Zero-ceremony: orient → think → commit |
|
|
51
|
-
| `marrow_auto` | Fire-and-forget background logging |
|
|
52
|
-
| `marrow_dashboard` | Account health, failures, velocity |
|
|
53
|
-
| `marrow_digest` | Weekly summary with trends |
|
|
54
|
-
| `marrow_session_end` | Close session with summary |
|
|
469
|
+
## Environment Variables
|
|
55
470
|
|
|
56
|
-
|
|
471
|
+
| Variable | Required | Description |
|
|
472
|
+
|----------|----------|-------------|
|
|
473
|
+
| `MARROW_API_KEY` | Yes | Your API key from getmarrow.ai (or use `--key` flag) |
|
|
474
|
+
| `MARROW_BASE_URL` | No | Custom API URL (default: `https://api.getmarrow.ai`). Must use HTTPS. |
|
|
475
|
+
| `MARROW_SESSION_ID` | No | Session identifier for multi-agent setups |
|
|
476
|
+
| `MARROW_FLEET_AGENT_ID` | No | Agent identifier sent as `X-Marrow-Agent-Id` for fleet attribution |
|
|
477
|
+
| `MARROW_AUTO_ENROLL` | No | Auto-enrollment prompt (default: `true`). Set to `false` to disable. |
|
|
478
|
+
| `MARROW_AUTO_HOOK` | No | PostToolUse auto-logging kill switch. Set to `false` to disable the hook without editing settings. |
|
|
479
|
+
| `MARROW_HOOK_DEBUG` | No | When set to `true`, the hook emits one-line stderr diagnostics for invalid JSON, missing API key, and runtime failures. |
|
|
57
480
|
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
npx @getmarrow/mcp keys create --name "Prod" --type live
|
|
61
|
-
npx @getmarrow/mcp keys list
|
|
62
|
-
npx @getmarrow/mcp keys rotate --id key_abc123
|
|
63
|
-
npx @getmarrow/mcp keys revoke --id key_abc123
|
|
64
|
-
npx @getmarrow/mcp keys audit --limit 20
|
|
65
|
-
```
|
|
481
|
+
---
|
|
66
482
|
|
|
67
|
-
|
|
483
|
+
## The Always-On Prompt
|
|
68
484
|
|
|
69
|
-
|
|
70
|
-
|------|-------------|
|
|
71
|
-
| `marrow_create_key` | Create scoped API keys |
|
|
72
|
-
| `marrow_list_keys` | List all keys (masked) |
|
|
73
|
-
| `marrow_get_key` | Key details + usage stats |
|
|
74
|
-
| `marrow_rotate_key` | Atomically rotate a key |
|
|
75
|
-
| `marrow_revoke_key` | Permanently revoke |
|
|
485
|
+
Marrow includes a built-in prompt called `marrow-always-on` that instructs agents to use Marrow automatically. It's served by default — no configuration needed.
|
|
76
486
|
|
|
77
|
-
|
|
487
|
+
**To use:** In your MCP client, request the `marrow-always-on` prompt and include it in your system instructions. For Claude Code, run `npx @getmarrow/mcp setup` instead — it handles this automatically.
|
|
78
488
|
|
|
79
|
-
|
|
80
|
-
|------|-------------|
|
|
81
|
-
| `marrow_list_memories` | List with filters |
|
|
82
|
-
| `marrow_get_memory` | Single memory by ID |
|
|
83
|
-
| `marrow_update_memory` | Update text or tags |
|
|
84
|
-
| `marrow_delete_memory` | Soft-delete a memory |
|
|
85
|
-
| `marrow_share_memory` | Share with specific agents |
|
|
489
|
+
---
|
|
86
490
|
|
|
87
|
-
##
|
|
491
|
+
## Why This Matters
|
|
492
|
+
|
|
493
|
+
Without Marrow:
|
|
494
|
+
- Agents repeat the same failures session after session
|
|
495
|
+
- Successful patterns get lost when the context window clears
|
|
496
|
+
- There's no structured trail of what was tried and what worked
|
|
497
|
+
- Every new session starts from zero
|
|
498
|
+
|
|
499
|
+
With Marrow:
|
|
500
|
+
- Failure patterns surface before you repeat them
|
|
501
|
+
- Successful outcomes compound across sessions
|
|
502
|
+
- Every decision has a trail: intent → action → outcome
|
|
503
|
+
- The hive gets smarter with every logged decision
|
|
504
|
+
|
|
505
|
+
**Marrow tells you what went wrong last time before you do it again.**
|
|
506
|
+
|
|
507
|
+
---
|
|
508
|
+
|
|
509
|
+
## License
|
|
510
|
+
|
|
511
|
+
MIT
|
|
512
|
+
|
|
513
|
+
---
|
|
514
|
+
|
|
515
|
+
## Related Packages
|
|
516
|
+
|
|
517
|
+
- **[@getmarrow/sdk](https://www.npmjs.com/package/@getmarrow/sdk)** — TypeScript/Node.js SDK for programmatic access to Marrow. Use this for custom agent integrations outside of MCP.
|
|
88
518
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
| Layer | How | Effort |
|
|
92
|
-
|-------|-----|--------|
|
|
93
|
-
| Server-side | Every API call auto-logged | Zero |
|
|
94
|
-
| SDK | `marrow.think()` / `marrow.commit()` | Minimal |
|
|
95
|
-
| MCP hooks | `npx @getmarrow/mcp setup` | Zero |
|
|
96
|
-
|
|
97
|
-
Passive mode: run setup once, auto-logging runs silently forever.
|
|
98
|
-
|
|
99
|
-
## Full Feature Marketplace
|
|
100
|
-
|
|
101
|
-
| Category | Features |
|
|
102
|
-
|----------|----------|
|
|
103
|
-
| 🔁 **Decision Loop** | orient → think → commit with auto-logging |
|
|
104
|
-
| 🔐 **Multi-API-Keys** | Create, list, rotate, revoke scoped keys for fleets |
|
|
105
|
-
| 🧠 **Persistent Memory** | List, search, update, share, export, import (14 tools) |
|
|
106
|
-
| 📊 **Operator Dashboard** | Health, top failures, workflow status, velocity metrics |
|
|
107
|
-
| 📈 **Velocity Tracking** | Attempts/success, time-to-success, drift rate, improvement delta |
|
|
108
|
-
| 🌐 **Collective Intelligence** | Cross-account anonymous patterns, plain-English query |
|
|
109
|
-
| 🔄 **Enforced Workflows** | 24 templates across 8 industries, step-by-step with audit |
|
|
110
|
-
| ⚡ **Passive Mode** | npx @getmarrow/mcp setup — zero code auto-logging + hooks |
|
|
111
|
-
| 🛡️ **PII Protection** | Auto-strip emails, phones, keys from all responses |
|
|
112
|
-
| 🗄️ **Fleet Operations** | Agent registry, multi-user orgs, RBAC, SSE streaming |
|
|
113
|
-
| 📋 **Session Management** | Open/close with summaries, pattern reuse tracking |
|
|
114
|
-
| 🔗 **Causal Graphs** | Decision chaining — "What happened after this deploy?" |
|
|
115
|
-
| 📬 **Auto-Email** | First-decision welcome, 7-day recap, milestone notifications |
|
|
116
|
-
| 🔒 **Rate Limiting** | Per-endpoint, per-key, per-IP with tiered limits |
|
|
117
|
-
| 📜 **Audit Trail** | Immutable key operation logs with IP and timestamp |
|
|
118
|
-
|
|
119
|
-
## Full Documentation
|
|
120
|
-
|
|
121
|
-
📖 **Complete API reference, metrics, features, and examples:**
|
|
122
|
-
**[https://getmarrow.ai/docs](https://getmarrow.ai/docs)**
|
|
123
|
-
|
|
124
|
-
- [Auto-Logging](https://getmarrow.ai/docs/#auto-logging)
|
|
125
|
-
- [Metrics & Intelligence](https://getmarrow.ai/docs/#metrics-intelligence)
|
|
126
|
-
- [API Key Management](https://getmarrow.ai/docs/#api-key-management)
|
|
127
|
-
- [API Reference](https://getmarrow.ai/docs/#api-reference)
|
|
519
|
+
**📖 Full API reference with all endpoints:**
|
|
520
|
+
**[getmarrow.ai/docs/#api-reference](https://getmarrow.ai/docs/#api-reference)**
|