openkrak-mcp 1.0.9 → 1.0.11
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 +41 -106
- package/package.json +4 -2
- package/server.json +23 -0
package/README.md
CHANGED
|
@@ -1,26 +1,14 @@
|
|
|
1
1
|
# openkrak-mcp
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
MCP server for developer tooling. Performs static analysis on a software repository via the Dorchester engine and delivers a structured context brief to the language model before any file is accessed.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## The Problem
|
|
10
|
-
|
|
11
|
-
Every time you ask your coding agent to modify code, the LLM starts blind — reading raw files, burning tokens, guessing dependencies.
|
|
12
|
-
|
|
13
|
-
**Without OpenKrak:** LLM reads 50,000+ tokens of raw files. Slow. Expensive. Blind.
|
|
14
|
-
**With OpenKrak:** LLM reads a pre-computed Mahadata brief. Precise. Cheap. Aware.
|
|
15
|
-
|
|
16
|
-
For simple tasks, OpenKrak replaces 50+ file reads with a single tool call.
|
|
17
|
-
For complex refactors, it cuts token usage 20-30% and eliminates blind exploration — the LLM knows exactly which files matter before it reads a single line.
|
|
5
|
+
**Current integration:** OpenCode. Claude Code, Codex, and Cursor support in development.
|
|
18
6
|
|
|
19
7
|
---
|
|
20
8
|
|
|
21
9
|
## How It Works
|
|
22
10
|
|
|
23
|
-
OpenKrak runs the **Dorchester engine** — a
|
|
11
|
+
OpenKrak runs the **Dorchester engine** — a six-step static analysis pipeline — on your repository before the language model executes any task.
|
|
24
12
|
|
|
25
13
|
```
|
|
26
14
|
Repository
|
|
@@ -41,21 +29,10 @@ Blast Radius — Ripple effects of any change mapped before commit
|
|
|
41
29
|
Execution Gate — Analysis validated and normalized
|
|
42
30
|
│
|
|
43
31
|
▼
|
|
44
|
-
Mahadata — Structured
|
|
32
|
+
Mahadata — Structured brief delivered to the language model
|
|
45
33
|
```
|
|
46
34
|
|
|
47
|
-
Your codebase
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## Supported Agents
|
|
52
|
-
|
|
53
|
-
| Agent | Status |
|
|
54
|
-
|-------|--------|
|
|
55
|
-
| **OpenCode** | ✅ Supported |
|
|
56
|
-
| Claude Code | 🔜 Coming soon |
|
|
57
|
-
| Codex | 🔜 Coming soon |
|
|
58
|
-
| Cursor | 🔜 Coming soon |
|
|
35
|
+
All analysis runs locally. Your codebase does not leave your machine.
|
|
59
36
|
|
|
60
37
|
---
|
|
61
38
|
|
|
@@ -65,13 +42,13 @@ Your codebase never leaves your machine. All analysis runs locally.
|
|
|
65
42
|
npm install -g openkrak-mcp
|
|
66
43
|
```
|
|
67
44
|
|
|
45
|
+
Requires Node.js ≥ 18.
|
|
46
|
+
|
|
68
47
|
---
|
|
69
48
|
|
|
70
49
|
## Setup — OpenCode
|
|
71
50
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
Open `~/.config/opencode/opencode.jsonc` and add the `mcp` block:
|
|
51
|
+
**Step 1.** Open `~/.config/opencode/opencode.jsonc` and add the `mcp` block:
|
|
75
52
|
|
|
76
53
|
```jsonc
|
|
77
54
|
{
|
|
@@ -80,91 +57,59 @@ Open `~/.config/opencode/opencode.jsonc` and add the `mcp` block:
|
|
|
80
57
|
"openkrak": {
|
|
81
58
|
"type": "local",
|
|
82
59
|
"enabled": true,
|
|
83
|
-
"command": ["openkrak-mcp"]
|
|
60
|
+
"command": ["npx", "openkrak-mcp"]
|
|
84
61
|
}
|
|
85
62
|
}
|
|
86
63
|
}
|
|
87
64
|
```
|
|
88
65
|
|
|
89
|
-
>
|
|
90
|
-
>
|
|
91
|
-
|
|
92
|
-
### Step 2 — Restart OpenCode
|
|
93
|
-
|
|
94
|
-
Close and reopen OpenCode. You should see **openkrak Connected** in the top-right MCP panel.
|
|
66
|
+
> Windows: `C:\Users\<username>\.config\opencode\opencode.jsonc`
|
|
67
|
+
> macOS / Linux: `~/.config/opencode/opencode.jsonc`
|
|
95
68
|
|
|
96
|
-
|
|
69
|
+
**Step 2.** Restart OpenCode. Confirm **openkrak Connected** appears in the MCP panel.
|
|
97
70
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
Or call it explicitly:
|
|
71
|
+
**Step 3.** Open any repository and run a coding task. OpenKrak runs automatically before the language model accesses any file.
|
|
101
72
|
|
|
73
|
+
To invoke explicitly:
|
|
102
74
|
```
|
|
103
75
|
Use analyze_repo on /path/to/your/repo with objective "refactor the auth module"
|
|
104
76
|
```
|
|
105
77
|
|
|
106
78
|
---
|
|
107
79
|
|
|
108
|
-
##
|
|
80
|
+
## Enabling and Disabling
|
|
109
81
|
|
|
110
|
-
|
|
82
|
+
Set `"enabled"` in your config and restart OpenCode:
|
|
111
83
|
|
|
112
84
|
```jsonc
|
|
113
|
-
//
|
|
114
|
-
"enabled":
|
|
115
|
-
|
|
116
|
-
// OFF
|
|
117
|
-
"enabled": false
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
Then restart OpenCode. That's it.
|
|
121
|
-
|
|
122
|
-
**Quick toggle scripts (optional):**
|
|
123
|
-
|
|
124
|
-
Save these two files anywhere on your machine.
|
|
125
|
-
|
|
126
|
-
`mcp-on.ps1` (Windows PowerShell):
|
|
127
|
-
```powershell
|
|
128
|
-
$config = Get-Content "$env:USERPROFILE\.config\opencode\opencode.jsonc" | ConvertFrom-Json -AsHashtable
|
|
129
|
-
$config.mcp.openkrak.enabled = $true
|
|
130
|
-
$config | ConvertTo-Json -Depth 10 | Set-Content "$env:USERPROFILE\.config\opencode\opencode.jsonc"
|
|
131
|
-
Write-Host "OpenKrak: ON"
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
`mcp-off.ps1` (Windows PowerShell):
|
|
135
|
-
```powershell
|
|
136
|
-
$config = Get-Content "$env:USERPROFILE\.config\opencode\opencode.jsonc" | ConvertFrom-Json -AsHashtable
|
|
137
|
-
$config.mcp.openkrak.enabled = $false
|
|
138
|
-
$config | ConvertTo-Json -Depth 10 | Set-Content "$env:USERPROFILE\.config\opencode\opencode.jsonc"
|
|
139
|
-
Write-Host "OpenKrak: OFF"
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
Run with:
|
|
143
|
-
```powershell
|
|
144
|
-
powershell -File mcp-on.ps1
|
|
145
|
-
powershell -File mcp-off.ps1
|
|
85
|
+
"enabled": true // on
|
|
86
|
+
"enabled": false // off
|
|
146
87
|
```
|
|
147
88
|
|
|
148
89
|
---
|
|
149
90
|
|
|
150
91
|
## Tools
|
|
151
92
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
| Tool | When to use |
|
|
93
|
+
| Tool | Description |
|
|
155
94
|
|------|-------------|
|
|
156
|
-
| `analyze_repo` |
|
|
157
|
-
| `get_mahadata` |
|
|
158
|
-
| `get_hotspots` |
|
|
159
|
-
| `blast_radius` |
|
|
95
|
+
| `analyze_repo` | Full Dorchester pipeline. Returns dependency graph, hotspot rankings, blast radius, and threat matrix. Call before any coding task. |
|
|
96
|
+
| `get_mahadata` | Compact repository intelligence brief. Structure, entry points, constraints, risk score. |
|
|
97
|
+
| `get_hotspots` | Ranked list of high-risk files by complexity, coupling, and change frequency. |
|
|
98
|
+
| `blast_radius` | Impact map for a specific file change. Which files, modules, and APIs are affected. |
|
|
160
99
|
|
|
161
100
|
---
|
|
162
101
|
|
|
163
|
-
##
|
|
102
|
+
## License Tiers
|
|
103
|
+
|
|
104
|
+
Free tier is active by default — no account or configuration required.
|
|
164
105
|
|
|
165
|
-
|
|
106
|
+
| Plan | Price | Queries |
|
|
107
|
+
|------|-------|---------|
|
|
108
|
+
| Free | $0 | 15 per 24-hour rolling window |
|
|
109
|
+
| Pro Monthly | $8 / month | Unlimited |
|
|
110
|
+
| Pro Annual | $67.20 / year | Unlimited |
|
|
166
111
|
|
|
167
|
-
|
|
112
|
+
To activate a Pro license, add your key to the MCP config:
|
|
168
113
|
|
|
169
114
|
```jsonc
|
|
170
115
|
{
|
|
@@ -173,7 +118,7 @@ For unlimited calls, get a Pro key at **[openkrak.dev](https://openkrak.dev)**:
|
|
|
173
118
|
"openkrak": {
|
|
174
119
|
"type": "local",
|
|
175
120
|
"enabled": true,
|
|
176
|
-
"command": ["openkrak-mcp"],
|
|
121
|
+
"command": ["npx", "openkrak-mcp"],
|
|
177
122
|
"env": {
|
|
178
123
|
"OPENKRAK_KEY": "your-license-key"
|
|
179
124
|
}
|
|
@@ -182,32 +127,22 @@ For unlimited calls, get a Pro key at **[openkrak.dev](https://openkrak.dev)**:
|
|
|
182
127
|
}
|
|
183
128
|
```
|
|
184
129
|
|
|
185
|
-
|
|
186
|
-
|------|-------|-------|
|
|
187
|
-
| Free | $0 | 15 calls / 24h rolling |
|
|
188
|
-
| Pro Monthly | $8/month | Unlimited |
|
|
189
|
-
| Pro Annual | $67.20/year | Unlimited |
|
|
130
|
+
License keys are available at [openkrak-web.vercel.app](https://openkrak-web.vercel.app). Delivered instantly via email after purchase. No subscription, no auto-renewal.
|
|
190
131
|
|
|
191
132
|
---
|
|
192
133
|
|
|
193
|
-
##
|
|
134
|
+
## Notes
|
|
194
135
|
|
|
195
|
-
-
|
|
196
|
-
-
|
|
197
|
-
-
|
|
198
|
-
- No telemetry, no file uploads
|
|
136
|
+
- Static analysis only. No AI inference in the pipeline.
|
|
137
|
+
- Anonymous usage telemetry is collected (query count, tool name, error events). No source code or file contents are transmitted.
|
|
138
|
+
- License validation requires a network call to verify your key against the license server.
|
|
199
139
|
|
|
200
140
|
---
|
|
201
141
|
|
|
202
|
-
##
|
|
142
|
+
## Repository
|
|
203
143
|
|
|
204
|
-
|
|
205
|
-
- **Analysis:** Static, deterministic — not AI/probabilistic
|
|
206
|
-
- **Runtime:** Node.js ≥ 18
|
|
207
|
-
- **License:** MIT
|
|
144
|
+
[github.com/FrnzJulianBergmann/openkrak](https://github.com/FrnzJulianBergmann/openkrak)
|
|
208
145
|
|
|
209
146
|
---
|
|
210
147
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
MIT — © 2026 Faiz Hamizan
|
|
148
|
+
MIT License — © 2026 Faiz Hamizan / Challanger Absolute Advance
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openkrak-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.11",
|
|
4
4
|
"description": "OpenKrak MCP Server - AI coding intelligence via Dorchester engine",
|
|
5
|
+
"mcpName": "io.github.FrnzJulianBergmann/openkrak",
|
|
5
6
|
"type": "commonjs",
|
|
6
7
|
"bin": {
|
|
7
8
|
"openkrak-mcp": "dist/index.js"
|
|
@@ -9,7 +10,8 @@
|
|
|
9
10
|
"main": "./dist/index.js",
|
|
10
11
|
"files": [
|
|
11
12
|
"dist",
|
|
12
|
-
"README.md"
|
|
13
|
+
"README.md",
|
|
14
|
+
"server.json"
|
|
13
15
|
],
|
|
14
16
|
"scripts": {
|
|
15
17
|
"build": "tsup",
|
package/server.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.github.FrnzJulianBergmann/openkrak",
|
|
4
|
+
"title": "OpenKrak",
|
|
5
|
+
"description": "MCP server that performs static analysis on a repository via the Dorchester engine — dependency graph construction, complexity scoring, blast radius mapping — and delivers a structured context brief to the language model before any file is read.",
|
|
6
|
+
"version": "1.0.10",
|
|
7
|
+
"repository": {
|
|
8
|
+
"url": "https://github.com/FrnzJulianBergmann/openkrak",
|
|
9
|
+
"source": "github"
|
|
10
|
+
},
|
|
11
|
+
"websiteUrl": "https://openkrak-web.vercel.app",
|
|
12
|
+
"packages": [
|
|
13
|
+
{
|
|
14
|
+
"registryType": "npm",
|
|
15
|
+
"registryBaseUrl": "https://registry.npmjs.org",
|
|
16
|
+
"identifier": "openkrak-mcp",
|
|
17
|
+
"version": "1.0.10",
|
|
18
|
+
"transport": {
|
|
19
|
+
"type": "stdio"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|