@arkheia/mcp-server 0.1.1 → 0.1.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 +42 -37
- package/bin/arkheia-mcp.js +41 -8
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
# Arkheia MCP Server — Fabrication Detection for
|
|
1
|
+
# Arkheia MCP Server — Fabrication Detection for AI Agents
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
Free tier included (1,500 detections/month).
|
|
3
|
+
Know when your AI is making things up.
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
Arkheia screens model responses for fabrication using behavioural fingerprinting. Works with Claude, GPT, Gemini, Grok, Llama, Mistral, and 30+ other models. One tool call. Real-time risk scoring.
|
|
6
|
+
|
|
7
|
+
Free tier: 1,500 detections/month. No credit card.
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
## Quick Start
|
|
9
10
|
|
|
10
11
|
```bash
|
|
11
|
-
|
|
12
|
-
cd ~/.arkheia-mcp
|
|
13
|
-
pip install -r requirements.txt
|
|
12
|
+
npx @arkheia/mcp-server
|
|
14
13
|
```
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
Get a free API key:
|
|
17
16
|
|
|
18
17
|
```bash
|
|
19
18
|
curl -X POST https://arkheia-proxy-production.up.railway.app/v1/provision \
|
|
@@ -21,11 +20,7 @@ curl -X POST https://arkheia-proxy-production.up.railway.app/v1/provision \
|
|
|
21
20
|
-d '{"email": "you@example.com"}'
|
|
22
21
|
```
|
|
23
22
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
Edit your config file:
|
|
27
|
-
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
28
|
-
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
23
|
+
Add to your agent config (Claude Code, Claude Desktop, Cursor, or any MCP-compatible tool):
|
|
29
24
|
|
|
30
25
|
```json
|
|
31
26
|
{
|
|
@@ -33,52 +28,62 @@ Edit your config file:
|
|
|
33
28
|
"arkheia": {
|
|
34
29
|
"command": "python",
|
|
35
30
|
"args": ["-m", "mcp_server.server"],
|
|
36
|
-
"cwd": "~/.arkheia
|
|
31
|
+
"cwd": "~/.arkheia/mcp",
|
|
37
32
|
"env": {
|
|
38
|
-
"PYTHONPATH": "~/.arkheia
|
|
39
|
-
"ARKHEIA_API_KEY": "
|
|
33
|
+
"PYTHONPATH": "~/.arkheia/mcp",
|
|
34
|
+
"ARKHEIA_API_KEY": "ak_live_your_key_here"
|
|
40
35
|
}
|
|
41
36
|
}
|
|
42
37
|
}
|
|
43
38
|
}
|
|
44
39
|
```
|
|
45
40
|
|
|
46
|
-
|
|
41
|
+
Restart your agent. Then ask it:
|
|
47
42
|
|
|
48
|
-
|
|
43
|
+
> "Use arkheia_verify to check this response: The Kafka 4.1 ConsumerLease API introduces a lease-based partition ownership model."
|
|
49
44
|
|
|
50
|
-
|
|
45
|
+
It should flag this as **HIGH** risk — because the Kafka 4.1 ConsumerLease API doesn't exist.
|
|
51
46
|
|
|
52
|
-
##
|
|
47
|
+
## What You Get
|
|
53
48
|
|
|
54
49
|
| Tool | Description |
|
|
55
50
|
|------|-------------|
|
|
56
|
-
| `arkheia_verify` | Score any model
|
|
57
|
-
| `arkheia_audit_log` | Review detection history |
|
|
58
|
-
| `run_grok` | Call
|
|
59
|
-
| `run_gemini` | Call
|
|
60
|
-
| `run_together` | Call Together AI (Kimi, DeepSeek) + screen |
|
|
51
|
+
| `arkheia_verify` | Score any model response for fabrication risk (LOW/MEDIUM/HIGH) |
|
|
52
|
+
| `arkheia_audit_log` | Review your detection history |
|
|
53
|
+
| `run_grok` | Call Grok + screen for fabrication |
|
|
54
|
+
| `run_gemini` | Call Gemini + screen for fabrication |
|
|
61
55
|
| `run_ollama` | Call local Ollama model + screen |
|
|
62
|
-
| `
|
|
56
|
+
| `run_together` | Call Together AI (Kimi, DeepSeek) + screen |
|
|
57
|
+
|
|
58
|
+
## 35+ Model Profiles
|
|
59
|
+
|
|
60
|
+
GPT-4o, GPT-5.4, Claude Opus/Sonnet/Haiku, Gemini 2.5/3.0, Grok 4, Llama, Mixtral, CodeLlama, Falcon, Phi4, Kimi K2.5, and more. If your model isn't listed, [let us know](mailto:dmurfet@arkheia.ai).
|
|
63
61
|
|
|
64
62
|
## Pricing
|
|
65
63
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
| Plan | Price | Detections |
|
|
65
|
+
|------|-------|------------|
|
|
66
|
+
| Free | $0 | 1,500/month |
|
|
67
|
+
| Single Contributor | $99/month | Unlimited |
|
|
68
|
+
| Professional | $499/month | Unlimited |
|
|
69
|
+
| Team | $1,999/month | Unlimited |
|
|
70
|
+
|
|
71
|
+
## Full Documentation
|
|
70
72
|
|
|
71
|
-
|
|
73
|
+
See the [GitHub repo](https://github.com/arkheiaai/arkheia-mcp) for:
|
|
74
|
+
- Complete setup guide for all agents
|
|
75
|
+
- CLAUDE.md template for automatic detection across projects
|
|
76
|
+
- Multi-agent quorum pattern
|
|
77
|
+
- Test prompts and examples
|
|
72
78
|
|
|
73
|
-
|
|
74
|
-
- Git
|
|
79
|
+
## Feedback
|
|
75
80
|
|
|
76
|
-
|
|
81
|
+
- **GitHub Issues:** https://github.com/arkheiaai/arkheia-mcp/issues
|
|
82
|
+
- **Email:** dmurfet@arkheia.ai
|
|
77
83
|
|
|
78
|
-
|
|
84
|
+
Every message is read by the founder.
|
|
79
85
|
|
|
80
86
|
## Links
|
|
81
87
|
|
|
82
88
|
- Website: https://arkheia.ai
|
|
83
89
|
- GitHub: https://github.com/arkheiaai/arkheia-mcp
|
|
84
|
-
- Support: support@arkheia.ai
|
package/bin/arkheia-mcp.js
CHANGED
|
@@ -22,13 +22,47 @@ const { spawn, execSync } = require("child_process");
|
|
|
22
22
|
const path = require("path");
|
|
23
23
|
const fs = require("fs");
|
|
24
24
|
|
|
25
|
-
const
|
|
26
|
-
const REQUIREMENTS = path.join(PYTHON_DIR, "requirements.txt");
|
|
27
|
-
const VENV_DIR = path.join(
|
|
25
|
+
const ARKHEIA_HOME = path.join(
|
|
28
26
|
process.env.HOME || process.env.USERPROFILE || "/tmp",
|
|
29
|
-
".arkheia"
|
|
30
|
-
"venv"
|
|
27
|
+
".arkheia"
|
|
31
28
|
);
|
|
29
|
+
const REPO_DIR = path.join(ARKHEIA_HOME, "mcp");
|
|
30
|
+
const BUNDLED_PYTHON_DIR = path.join(__dirname, "..", "python");
|
|
31
|
+
const VENV_DIR = path.join(ARKHEIA_HOME, "venv");
|
|
32
|
+
|
|
33
|
+
// Determine the real Python source: cloned repo > bundled package
|
|
34
|
+
function getServerDir() {
|
|
35
|
+
// If repo already cloned, use it
|
|
36
|
+
if (fs.existsSync(path.join(REPO_DIR, "mcp_server", "server.py"))) {
|
|
37
|
+
return REPO_DIR;
|
|
38
|
+
}
|
|
39
|
+
// If bundled package has the server code, use it
|
|
40
|
+
if (fs.existsSync(path.join(BUNDLED_PYTHON_DIR, "mcp_server", "server.py"))) {
|
|
41
|
+
return BUNDLED_PYTHON_DIR;
|
|
42
|
+
}
|
|
43
|
+
// Neither exists — clone the repo
|
|
44
|
+
process.stderr.write("[arkheia] Server code not found. Cloning from GitHub...\n");
|
|
45
|
+
try {
|
|
46
|
+
if (!fs.existsSync(ARKHEIA_HOME)) fs.mkdirSync(ARKHEIA_HOME, { recursive: true });
|
|
47
|
+
execSync(`git clone --depth 1 https://github.com/arkheiaai/arkheia-mcp.git "${REPO_DIR}"`, {
|
|
48
|
+
stdio: "inherit",
|
|
49
|
+
timeout: 60000,
|
|
50
|
+
});
|
|
51
|
+
process.stderr.write("[arkheia] Repository cloned successfully.\n");
|
|
52
|
+
return REPO_DIR;
|
|
53
|
+
} catch (err) {
|
|
54
|
+
process.stderr.write(
|
|
55
|
+
`[arkheia] Error: Could not clone repository: ${err.message}\n` +
|
|
56
|
+
"Manual install: git clone https://github.com/arkheiaai/arkheia-mcp.git ~/.arkheia/mcp\n"
|
|
57
|
+
);
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const PYTHON_DIR = getServerDir();
|
|
63
|
+
const REQUIREMENTS = fs.existsSync(path.join(PYTHON_DIR, "mcp_server", "requirements.txt"))
|
|
64
|
+
? path.join(PYTHON_DIR, "mcp_server", "requirements.txt")
|
|
65
|
+
: path.join(PYTHON_DIR, "requirements.txt");
|
|
32
66
|
|
|
33
67
|
function findPython() {
|
|
34
68
|
const candidates = ["python3", "python"];
|
|
@@ -139,16 +173,15 @@ function main() {
|
|
|
139
173
|
}
|
|
140
174
|
|
|
141
175
|
// Spawn the MCP server with stdio transport
|
|
142
|
-
const serverDir = PYTHON_DIR;
|
|
143
176
|
const child = spawn(
|
|
144
177
|
venvPython,
|
|
145
178
|
["-m", "mcp_server.server"],
|
|
146
179
|
{
|
|
147
|
-
cwd:
|
|
180
|
+
cwd: PYTHON_DIR,
|
|
148
181
|
stdio: ["pipe", "pipe", "inherit"], // stdin/stdout piped, stderr inherited
|
|
149
182
|
env: {
|
|
150
183
|
...process.env,
|
|
151
|
-
PYTHONPATH:
|
|
184
|
+
PYTHONPATH: PYTHON_DIR,
|
|
152
185
|
},
|
|
153
186
|
}
|
|
154
187
|
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arkheia/mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"mcpName": "io.github.arkheiaai/mcp-server",
|
|
5
5
|
"description": "Arkheia MCP Server — Fabrication detection for LLM outputs. Detect hallucination in any model's output with a single tool call.",
|
|
6
6
|
"bin": {
|