@martinloop/mcp 0.3.7 → 0.3.9
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 +196 -137
- package/dist/resources.js +148 -148
- package/dist/server.js +0 -0
- package/dist/tools/tool-support.js +11 -1
- package/dist/vendor/adapters/claude-cli.d.ts +2 -2
- package/dist/vendor/adapters/claude-cli.js +127 -51
- package/dist/vendor/adapters/codex-launcher.js +10 -1
- package/dist/vendor/adapters/openai-compatible.js +6 -6
- package/package.json +86 -76
- package/server.json +21 -21
- package/dist/vendor/adapters/adapters/src/claude-cli.d.ts +0 -146
- package/dist/vendor/adapters/adapters/src/claude-cli.js +0 -1100
- package/dist/vendor/adapters/adapters/src/cli-bridge.d.ts +0 -103
- package/dist/vendor/adapters/adapters/src/cli-bridge.js +0 -569
- package/dist/vendor/adapters/adapters/src/codex-launcher.d.ts +0 -78
- package/dist/vendor/adapters/adapters/src/codex-launcher.js +0 -663
- package/dist/vendor/adapters/adapters/src/direct-provider.d.ts +0 -10
- package/dist/vendor/adapters/adapters/src/direct-provider.js +0 -40
- package/dist/vendor/adapters/adapters/src/index.d.ts +0 -8
- package/dist/vendor/adapters/adapters/src/index.js +0 -8
- package/dist/vendor/adapters/adapters/src/openai-compatible.d.ts +0 -62
- package/dist/vendor/adapters/adapters/src/openai-compatible.js +0 -306
- package/dist/vendor/adapters/adapters/src/runtime-support.d.ts +0 -17
- package/dist/vendor/adapters/adapters/src/runtime-support.js +0 -59
- package/dist/vendor/adapters/adapters/src/stub-agent-cli.d.ts +0 -8
- package/dist/vendor/adapters/adapters/src/stub-agent-cli.js +0 -40
- package/dist/vendor/adapters/adapters/src/stub-direct-provider.d.ts +0 -8
- package/dist/vendor/adapters/adapters/src/stub-direct-provider.js +0 -12
- package/dist/vendor/adapters/adapters/src/verifier-only.d.ts +0 -9
- package/dist/vendor/adapters/adapters/src/verifier-only.js +0 -63
- package/dist/vendor/adapters/contracts/src/context-graph.d.ts +0 -48
- package/dist/vendor/adapters/contracts/src/context-graph.js +0 -26
- package/dist/vendor/adapters/contracts/src/execution-policy.d.ts +0 -78
- package/dist/vendor/adapters/contracts/src/execution-policy.js +0 -43
- package/dist/vendor/adapters/contracts/src/governance.d.ts +0 -24
- package/dist/vendor/adapters/contracts/src/governance.js +0 -11
- package/dist/vendor/adapters/contracts/src/identity.d.ts +0 -29
- package/dist/vendor/adapters/contracts/src/identity.js +0 -30
- package/dist/vendor/adapters/contracts/src/index.d.ts +0 -412
- package/dist/vendor/adapters/contracts/src/index.js +0 -225
- package/dist/vendor/adapters/contracts/src/operator.d.ts +0 -19
- package/dist/vendor/adapters/contracts/src/operator.js +0 -11
- package/dist/vendor/adapters/contracts/src/trajectory.d.ts +0 -26
- package/dist/vendor/adapters/contracts/src/trajectory.js +0 -27
- package/dist/vendor/adapters/core/src/compiler.d.ts +0 -52
- package/dist/vendor/adapters/core/src/compiler.js +0 -52
- package/dist/vendor/adapters/core/src/context-graph.d.ts +0 -3
- package/dist/vendor/adapters/core/src/context-graph.js +0 -371
- package/dist/vendor/adapters/core/src/context-integrity.d.ts +0 -26
- package/dist/vendor/adapters/core/src/context-integrity.js +0 -80
- package/dist/vendor/adapters/core/src/grounding.d.ts +0 -38
- package/dist/vendor/adapters/core/src/grounding.js +0 -273
- package/dist/vendor/adapters/core/src/identity.d.ts +0 -20
- package/dist/vendor/adapters/core/src/identity.js +0 -86
- package/dist/vendor/adapters/core/src/index.d.ts +0 -186
- package/dist/vendor/adapters/core/src/index.js +0 -1495
- package/dist/vendor/adapters/core/src/leash.d.ts +0 -48
- package/dist/vendor/adapters/core/src/leash.js +0 -497
- package/dist/vendor/adapters/core/src/persistence/compiler.d.ts +0 -18
- package/dist/vendor/adapters/core/src/persistence/compiler.js +0 -34
- package/dist/vendor/adapters/core/src/persistence/index.d.ts +0 -10
- package/dist/vendor/adapters/core/src/persistence/index.js +0 -5
- package/dist/vendor/adapters/core/src/persistence/integrity.d.ts +0 -39
- package/dist/vendor/adapters/core/src/persistence/integrity.js +0 -252
- package/dist/vendor/adapters/core/src/persistence/ledger.d.ts +0 -23
- package/dist/vendor/adapters/core/src/persistence/ledger.js +0 -9
- package/dist/vendor/adapters/core/src/persistence/memory-store.d.ts +0 -63
- package/dist/vendor/adapters/core/src/persistence/memory-store.js +0 -115
- package/dist/vendor/adapters/core/src/persistence/runs-reader.d.ts +0 -66
- package/dist/vendor/adapters/core/src/persistence/runs-reader.js +0 -140
- package/dist/vendor/adapters/core/src/persistence/store.d.ts +0 -89
- package/dist/vendor/adapters/core/src/persistence/store.js +0 -125
- package/dist/vendor/adapters/core/src/persistence/trace-store.d.ts +0 -85
- package/dist/vendor/adapters/core/src/persistence/trace-store.js +0 -125
- package/dist/vendor/adapters/core/src/policy-compiler.d.ts +0 -2
- package/dist/vendor/adapters/core/src/policy-compiler.js +0 -195
- package/dist/vendor/adapters/core/src/policy.d.ts +0 -156
- package/dist/vendor/adapters/core/src/policy.js +0 -704
- package/dist/vendor/adapters/core/src/repo-analyzer.d.ts +0 -53
- package/dist/vendor/adapters/core/src/repo-analyzer.js +0 -263
- package/dist/vendor/adapters/core/src/rollback.d.ts +0 -15
- package/dist/vendor/adapters/core/src/rollback.js +0 -253
- package/dist/vendor/adapters/core/src/routing.d.ts +0 -82
- package/dist/vendor/adapters/core/src/routing.js +0 -336
- package/dist/vendor/adapters/core/src/test-integrity.d.ts +0 -64
- package/dist/vendor/adapters/core/src/test-integrity.js +0 -197
- package/dist/vendor/adapters/core/src/trajectory.d.ts +0 -18
- package/dist/vendor/adapters/core/src/trajectory.js +0 -295
package/README.md
CHANGED
|
@@ -1,137 +1,196 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
```sh
|
|
40
|
-
claude mcp add martin-loop -- npx -y @martinloop/mcp
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
`
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
-
|
|
132
|
-
-
|
|
133
|
-
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
1
|
+
# MartinLoop MCP
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
<img src="https://raw.githubusercontent.com/Keesan12/martin-loop/main/docs/assets/martinloop-logo.png" alt="MartinLoop" width="240">
|
|
5
|
+
|
|
6
|
+
**Stop runaway loops, bad code, and token waste.**
|
|
7
|
+
|
|
8
|
+
The governed MCP runtime for Claude Code, Codex, Gemini CLI, Cursor, and autonomous coding agents.
|
|
9
|
+
|
|
10
|
+
[](https://www.npmjs.com/package/@martinloop/mcp)
|
|
11
|
+
[](https://www.npmjs.com/package/@martinloop/mcp)
|
|
12
|
+
[](https://github.com/Keesan12/martin-loop/blob/main/LICENSE)
|
|
13
|
+
[](#requirements)
|
|
14
|
+
[](https://glama.ai/mcp/servers/Keesan12/martin-loop)
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
AI coding agents can write code. MartinLoop decides whether they are allowed to keep spending, whether the result is actually verified, and what evidence must remain for review.
|
|
18
|
+
|
|
19
|
+
It wraps agent execution with:
|
|
20
|
+
|
|
21
|
+
- hard USD, token, iteration, time, command, and file-change limits
|
|
22
|
+
- verifier gates that must pass before completion
|
|
23
|
+
- allowed and denied path contracts
|
|
24
|
+
- preflight checks before any execution or spend
|
|
25
|
+
- durable pause, continue, and cancel receipts
|
|
26
|
+
- failure triage, run dossiers, evaluations, and PR-review evidence
|
|
27
|
+
|
|
28
|
+
## Connect in one command
|
|
29
|
+
|
|
30
|
+
| Host | Command |
|
|
31
|
+
| --- | --- |
|
|
32
|
+
| Claude Code | `claude mcp add martin-loop -- npx -y @martinloop/mcp` |
|
|
33
|
+
| Codex | `codex mcp add martin-loop -- npx -y @martinloop/mcp` |
|
|
34
|
+
| Gemini CLI | `gemini mcp add martin-loop -- npx -y @martinloop/mcp` |
|
|
35
|
+
| Any stdio MCP host | `npx -y @martinloop/mcp` |
|
|
36
|
+
|
|
37
|
+
Windows Claude Code:
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
claude mcp add --transport stdio --scope user martin-loop -- cmd /c npx -y @martinloop/mcp
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
No API key is required to start and inspect the server. Live execution requires a supported coding-agent CLI and its normal authentication.
|
|
44
|
+
|
|
45
|
+
## Why agents use MartinLoop
|
|
46
|
+
|
|
47
|
+
| Uncontrolled agent run | Governed MartinLoop run |
|
|
48
|
+
| --- | --- |
|
|
49
|
+
| The agent decides when it is done | Your verifier decides whether completion is valid |
|
|
50
|
+
| Retries continue until the user notices | Hard budgets and stop conditions prevent open-ended spend |
|
|
51
|
+
| Scope drifts across the repository | Allowed and denied paths constrain writes |
|
|
52
|
+
| The final answer hides failed attempts | The dossier preserves attempts, costs, verification, and artifacts |
|
|
53
|
+
| Process control is ephemeral | Pause, continue, and cancel actions leave durable receipts |
|
|
54
|
+
| “Probably fixed” becomes accepted | Missing, failed, contradicted, or unknown verification stays incomplete |
|
|
55
|
+
|
|
56
|
+
MartinLoop is not another coding agent. It is the enforcement and evidence layer around the agents you already use.
|
|
57
|
+
|
|
58
|
+
## Agent operating contract
|
|
59
|
+
|
|
60
|
+
Use this sequence for governed coding work:
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
martin_doctor
|
|
64
|
+
→ martin_estimate
|
|
65
|
+
→ martin_plan
|
|
66
|
+
→ martin_preflight
|
|
67
|
+
→ martin_run
|
|
68
|
+
→ martin_dossier
|
|
69
|
+
→ martin_eval
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Rules for agents
|
|
73
|
+
|
|
74
|
+
1. Start with `martin_doctor` to inspect the environment and run store.
|
|
75
|
+
2. Call `martin_estimate` before spending.
|
|
76
|
+
3. Keep the same objective and compatible scope through estimate, plan, preflight, and run.
|
|
77
|
+
4. Prefer read-only tools until execution is explicitly authorized.
|
|
78
|
+
5. Treat failed, contradicted, missing, or unknown verification as incomplete.
|
|
79
|
+
6. Use `martin://agent/next-step` or `martin://guides/agent-start` when the next action is unclear.
|
|
80
|
+
7. Do not use `martin_create_pr` with `execute: true` unless the user has explicitly authorized a GitHub write.
|
|
81
|
+
|
|
82
|
+
`martin_run` intentionally hard-blocks until the required doctor, estimate, plan, and preflight receipts exist for the same task.
|
|
83
|
+
|
|
84
|
+
## What a governed run looks like
|
|
85
|
+
|
|
86
|
+
```text
|
|
87
|
+
User objective:
|
|
88
|
+
"Fix the auth regression. Budget: $3. Verify: npm test."
|
|
89
|
+
|
|
90
|
+
doctor checks environment, CLI availability, and run storage
|
|
91
|
+
estimate predicts route, spend, and pre-work burn without spending
|
|
92
|
+
plan defines scope, verifier proposal, policy pack, and risk
|
|
93
|
+
preflight validates the contract before execution
|
|
94
|
+
run executes inside budget, scope, policy, and verifier gates
|
|
95
|
+
dossier returns attempts, cost, verification, artifacts, and evidence paths
|
|
96
|
+
eval grades completion, verifier health, risk, and reviewability
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Every attempt is bounded by the run contract. A confident model answer does not override a failed verifier.
|
|
100
|
+
|
|
101
|
+
## Proof, not promises
|
|
102
|
+
|
|
103
|
+
This real governed run spent `$0.51` against a `$3.00` budget. The verifier passed and the receipt integrity was signed. MartinLoop still kept the result at `EVIDENCE_BOUNDARY` because rollback evidence had not been recorded.
|
|
104
|
+
|
|
105
|
+
<div align="center">
|
|
106
|
+
<img src="https://raw.githubusercontent.com/Keesan12/martin-loop/main/docs/assets/proof-receipt-live-governed.png" alt="MartinLoop governed run receipt showing spend, budget, verifier result, integrity, and evidence boundary" width="720">
|
|
107
|
+
</div>
|
|
108
|
+
|
|
109
|
+
Inspect the example receipt:
|
|
110
|
+
|
|
111
|
+
- [Markdown receipt](https://github.com/Keesan12/martin-loop/blob/main/docs/examples/proof-receipts/live-governed-run-receipt.md)
|
|
112
|
+
- [JSON receipt](https://github.com/Keesan12/martin-loop/blob/main/docs/examples/proof-receipts/live-governed-run-receipt.json)
|
|
113
|
+
|
|
114
|
+
## Tool surface
|
|
115
|
+
|
|
116
|
+
### Governed workflow
|
|
117
|
+
|
|
118
|
+
- `martin_doctor` — inspect environment readiness; expected first call
|
|
119
|
+
- `martin_estimate` — estimate cost and route without spending
|
|
120
|
+
- `martin_plan` — produce scoped plan, verifier proposal, policy pack, and risk
|
|
121
|
+
- `martin_preflight` — validate readiness before execution
|
|
122
|
+
- `martin_run` — execute a governed coding task
|
|
123
|
+
- `martin_pause` — record a durable pause request
|
|
124
|
+
- `martin_continue` — record a durable resume request
|
|
125
|
+
- `martin_cancel` — record a durable cancellation request
|
|
126
|
+
|
|
127
|
+
### Inspection and review
|
|
128
|
+
|
|
129
|
+
- `martin_status`, `martin_logs`, `martin_inspect`
|
|
130
|
+
- `martin_list_runs`, `martin_triage_runs`
|
|
131
|
+
- `martin_get_run`, `martin_get_attempt`, `martin_get_verification_results`
|
|
132
|
+
- `martin_run_dossier`, `martin_dossier`, `martin_eval`
|
|
133
|
+
- `martin_pr_summary`, `martin_create_pr`, `martin_review_pr`
|
|
134
|
+
|
|
135
|
+
### Read-only resources
|
|
136
|
+
|
|
137
|
+
The server exposes run summaries, receipts, budget status, verifier evidence, policies, health, agent guidance, and repository-risk context through `martin://` resources, including:
|
|
138
|
+
|
|
139
|
+
```text
|
|
140
|
+
martin://runs/latest
|
|
141
|
+
martin://runs/latest/summary
|
|
142
|
+
martin://runs/latest/receipt
|
|
143
|
+
martin://runs/latest/budget-status
|
|
144
|
+
martin://runs/latest/verifier-evidence
|
|
145
|
+
martin://runs/recent
|
|
146
|
+
martin://server/health
|
|
147
|
+
martin://policies/current
|
|
148
|
+
martin://agent/next-step
|
|
149
|
+
martin://guides/agent-start
|
|
150
|
+
martin://repo/risk-map
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Use resources when the agent needs context without side effects.
|
|
154
|
+
|
|
155
|
+
## Configuration profiles
|
|
156
|
+
|
|
157
|
+
Generate host config tuned to the minimum surface needed:
|
|
158
|
+
|
|
159
|
+
```sh
|
|
160
|
+
npx martin-loop mcp print-config --host claude --profile minimal
|
|
161
|
+
npx martin-loop mcp print-config --host claude --profile diagnostic
|
|
162
|
+
npx martin-loop mcp print-config --host claude --profile full-local
|
|
163
|
+
npx martin-loop mcp print-config --host claude --profile github-review
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
- `minimal` — core run and inspection path
|
|
167
|
+
- `diagnostic` — adds doctor and triage surfaces
|
|
168
|
+
- `full-local` — all local tools
|
|
169
|
+
- `github-review` — adds PR evidence and review workflow
|
|
170
|
+
|
|
171
|
+
## Trust boundaries
|
|
172
|
+
|
|
173
|
+
- Cost and token values include provenance: actual, estimated, or unavailable.
|
|
174
|
+
- A verifier proves only the commands you configured, not every product requirement.
|
|
175
|
+
- Receipt integrity must be verified before evidence is trusted externally.
|
|
176
|
+
- Unknown or missing evidence never passes silently.
|
|
177
|
+
- MartinLoop does not guarantee that an agent will produce correct code; it makes execution bounded, verification explicit, and failure reviewable.
|
|
178
|
+
|
|
179
|
+
## Requirements
|
|
180
|
+
|
|
181
|
+
- Node.js 20+
|
|
182
|
+
- One supported coding-agent CLI for live execution: Claude Code, Codex, Gemini CLI, or an OpenAI-compatible route
|
|
183
|
+
- Git repository for rollback-aware and changed-file workflows
|
|
184
|
+
|
|
185
|
+
## Links
|
|
186
|
+
|
|
187
|
+
- [Glama server page](https://glama.ai/mcp/servers/Keesan12/martin-loop)
|
|
188
|
+
- [npm: @martinloop/mcp](https://www.npmjs.com/package/@martinloop/mcp)
|
|
189
|
+
- [GitHub source and issues](https://github.com/Keesan12/martin-loop)
|
|
190
|
+
- [MCP setup guide](https://github.com/Keesan12/martin-loop/blob/main/docs/getting-started/mcp.md)
|
|
191
|
+
- [MCP tool reference](https://github.com/Keesan12/martin-loop/blob/main/docs/reference/mcp-tools.md)
|
|
192
|
+
- [martinloop.com](https://martinloop.com)
|
|
193
|
+
|
|
194
|
+
## License
|
|
195
|
+
|
|
196
|
+
Apache-2.0.
|