hive-intelligence 0.4.0 → 0.4.1
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
CHANGED
|
@@ -15,6 +15,20 @@ This gives you two commands:
|
|
|
15
15
|
| `hive-intelligence` | MCP stdio server for AI clients (Claude Desktop, Cursor, VS Code, etc.) |
|
|
16
16
|
| `hive` | CLI tool for terminal usage |
|
|
17
17
|
|
|
18
|
+
## API Key
|
|
19
|
+
|
|
20
|
+
An API key is required. Get one at [hiveintelligence.xyz](https://hiveintelligence.xyz) and set it as an environment variable:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
export HIVE_API_KEY="hive_live_..."
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Or use the CLI login:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
hive auth login
|
|
30
|
+
```
|
|
31
|
+
|
|
18
32
|
## MCP Server Setup
|
|
19
33
|
|
|
20
34
|
### Claude Desktop
|
|
@@ -29,7 +43,10 @@ Add to your config file:
|
|
|
29
43
|
"mcpServers": {
|
|
30
44
|
"hive": {
|
|
31
45
|
"command": "npx",
|
|
32
|
-
"args": ["-y", "hive-intelligence"]
|
|
46
|
+
"args": ["-y", "hive-intelligence"],
|
|
47
|
+
"env": {
|
|
48
|
+
"HIVE_API_KEY": "hive_live_..."
|
|
49
|
+
}
|
|
33
50
|
}
|
|
34
51
|
}
|
|
35
52
|
}
|
|
@@ -44,7 +61,10 @@ Add to `.cursor/mcp.json`:
|
|
|
44
61
|
"mcpServers": {
|
|
45
62
|
"hive": {
|
|
46
63
|
"command": "npx",
|
|
47
|
-
"args": ["-y", "hive-intelligence"]
|
|
64
|
+
"args": ["-y", "hive-intelligence"],
|
|
65
|
+
"env": {
|
|
66
|
+
"HIVE_API_KEY": "hive_live_..."
|
|
67
|
+
}
|
|
48
68
|
}
|
|
49
69
|
}
|
|
50
70
|
}
|
|
@@ -60,7 +80,10 @@ Add to `.vscode/mcp.json`:
|
|
|
60
80
|
"hive": {
|
|
61
81
|
"type": "stdio",
|
|
62
82
|
"command": "npx",
|
|
63
|
-
"args": ["-y", "hive-intelligence"]
|
|
83
|
+
"args": ["-y", "hive-intelligence"],
|
|
84
|
+
"env": {
|
|
85
|
+
"HIVE_API_KEY": "hive_live_..."
|
|
86
|
+
}
|
|
64
87
|
}
|
|
65
88
|
}
|
|
66
89
|
}
|
|
@@ -69,7 +92,7 @@ Add to `.vscode/mcp.json`:
|
|
|
69
92
|
### Claude Code
|
|
70
93
|
|
|
71
94
|
```bash
|
|
72
|
-
claude mcp add hive-intelligence -- npx -y hive-intelligence
|
|
95
|
+
claude mcp add hive-intelligence -e HIVE_API_KEY=hive_live_... -- npx -y hive-intelligence
|
|
73
96
|
```
|
|
74
97
|
|
|
75
98
|
### Remote MCP Server
|
|
@@ -77,7 +100,8 @@ claude mcp add hive-intelligence -- npx -y hive-intelligence
|
|
|
77
100
|
For clients that support HTTP transport:
|
|
78
101
|
|
|
79
102
|
```
|
|
80
|
-
https://mcp.hiveintelligence.xyz/mcp
|
|
103
|
+
URL: https://mcp.hiveintelligence.xyz/mcp
|
|
104
|
+
Headers: { "Authorization": "Bearer hive_live_..." }
|
|
81
105
|
```
|
|
82
106
|
|
|
83
107
|
More details: https://hiveintelligence.xyz/crypto-mcp
|
|
@@ -206,7 +230,7 @@ CoinGecko, DefiLlama, GeckoTerminal, Codex (Defined.fi), Moralis, GoPlus, GoldRu
|
|
|
206
230
|
|
|
207
231
|
| Variable | Description |
|
|
208
232
|
|----------|-------------|
|
|
209
|
-
| `HIVE_API_KEY` | API key (or use `hive auth login`) |
|
|
233
|
+
| `HIVE_API_KEY` | **Required.** API key (or use `hive auth login`) |
|
|
210
234
|
| `HIVE_API_URL` | Custom server URL (default: `https://mcp.hiveintelligence.xyz`) |
|
|
211
235
|
| `API_EXECUTE_ENDPOINT` | Override MCP server backend URL |
|
|
212
236
|
|
package/build/cli.js
CHANGED
|
@@ -3713,7 +3713,7 @@ program2.command("init").description("Interactive setup wizard for Hive API key"
|
|
|
3713
3713
|
await runInit(opts);
|
|
3714
3714
|
});
|
|
3715
3715
|
program2.command("doctor").description("Diagnose environment and server connectivity").option("--probe", "Run live API probes (slower)").action(async (opts) => {
|
|
3716
|
-
const { runDoctor } = await import("./doctor-
|
|
3716
|
+
const { runDoctor } = await import("./doctor-A76Q4U4K.js");
|
|
3717
3717
|
await runDoctor(opts);
|
|
3718
3718
|
});
|
|
3719
3719
|
program2.command("completion <shell>").description("Generate shell completion script (bash, zsh, fish, powershell)").option("--install", "Auto-install to shell rc file").action(async (shell, opts) => {
|
|
@@ -3747,7 +3747,7 @@ authCmd.command("switch <name>").description("Switch active profile").action(asy
|
|
|
3747
3747
|
await runSwitch(name);
|
|
3748
3748
|
});
|
|
3749
3749
|
program2.command("status").description("Quick health and version check").action(async () => {
|
|
3750
|
-
const { runStatus } = await import("./doctor-
|
|
3750
|
+
const { runStatus } = await import("./doctor-A76Q4U4K.js");
|
|
3751
3751
|
await runStatus();
|
|
3752
3752
|
});
|
|
3753
3753
|
program2.command("open [target]").description("Open Hive dashboard, docs, status, or GitHub in browser").action(async (target) => {
|
|
@@ -22,8 +22,8 @@ async function runDoctor(opts) {
|
|
|
22
22
|
const apiKey = process.env.HIVE_API_KEY;
|
|
23
23
|
checks.push({
|
|
24
24
|
check: "HIVE_API_KEY",
|
|
25
|
-
status: apiKey ? "PASS" : "
|
|
26
|
-
detail: apiKey ? `Set (${apiKey.slice(0, 4)}...)` : "Not set
|
|
25
|
+
status: apiKey ? "PASS" : "FAIL",
|
|
26
|
+
detail: apiKey ? `Set (${apiKey.slice(0, 4)}...)` : "Not set \u2014 required. Get a key at https://hiveintelligence.xyz"
|
|
27
27
|
});
|
|
28
28
|
const apiUrl = process.env.HIVE_API_URL;
|
|
29
29
|
checks.push({
|
|
@@ -228,4 +228,4 @@ export {
|
|
|
228
228
|
runDoctor,
|
|
229
229
|
runStatus
|
|
230
230
|
};
|
|
231
|
-
//# sourceMappingURL=doctor-
|
|
231
|
+
//# sourceMappingURL=doctor-A76Q4U4K.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/doctor.ts"],"sourcesContent":["import {\n shouldOutputJson,\n writeOutput,\n successEnvelope,\n info,\n debug,\n} from \"./output.js\";\nimport { fetchToolCatalog } from \"./api-client.js\";\n\nconst DEFAULT_API_URL =\n \"https://mcp.hiveintelligence.xyz\";\n\nfunction getApiUrl(): string {\n return process.env.HIVE_API_URL || DEFAULT_API_URL;\n}\n\nexport async function runDoctor(opts: { probe?: boolean }): Promise<void> {\n const checks: { check: string; status: string; detail: string }[] = [];\n\n // Check HIVE_API_KEY (required)\n const apiKey = process.env.HIVE_API_KEY;\n checks.push({\n check: \"HIVE_API_KEY\",\n status: apiKey ? \"PASS\" : \"FAIL\",\n detail: apiKey\n ? `Set (${apiKey.slice(0, 4)}...)`\n : \"Not set — required. Get a key at https://hiveintelligence.xyz\",\n });\n\n // Check HIVE_API_URL\n const apiUrl = process.env.HIVE_API_URL;\n checks.push({\n check: \"HIVE_API_URL\",\n status: \"PASS\",\n detail: apiUrl ? `Custom: ${apiUrl}` : `Default: ${DEFAULT_API_URL}`,\n });\n\n // Check server connectivity via /ping\n const healthUrl = `${getApiUrl()}/ping`;\n debug(`GET ${healthUrl}`);\n try {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), 10000);\n const resp = await fetch(healthUrl, {\n headers: apiKey ? { Authorization: `Bearer ${apiKey}` } : {},\n signal: controller.signal,\n });\n clearTimeout(timer);\n\n if (resp.ok) {\n const body = await resp.json().catch(() => null);\n const serverStatus =\n body && typeof body === \"object\" && \"status\" in body\n ? String((body as Record<string, unknown>).status)\n : \"ok\";\n checks.push({\n check: \"Server health\",\n status: \"PASS\",\n detail: `${resp.status} — ${serverStatus}`,\n });\n } else {\n checks.push({\n check: \"Server health\",\n status: \"FAIL\",\n detail: `HTTP ${resp.status} ${resp.statusText}`,\n });\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n const isTimeout = err instanceof Error && err.name === \"AbortError\";\n checks.push({\n check: \"Server health\",\n status: \"FAIL\",\n detail: isTimeout\n ? `Timeout connecting to ${getApiUrl()}`\n : `Connection failed: ${msg}`,\n });\n }\n\n // Check tool catalog availability\n {\n debug(\"Fetching tool catalog...\");\n try {\n const catalog = await fetchToolCatalog();\n const toolsData = catalog.data as\n | { totalCount?: number; tools?: unknown[] }\n | unknown[];\n const toolCount = Array.isArray(toolsData)\n ? toolsData.length\n : typeof toolsData === \"object\" &&\n toolsData !== null &&\n \"totalCount\" in toolsData\n ? (toolsData as { totalCount: number }).totalCount\n : 0;\n if (catalog.ok) {\n checks.push({\n check: \"Tool catalog\",\n status: toolCount > 0 ? \"PASS\" : \"WARN\",\n detail: `${toolCount} tools available`,\n });\n } else {\n const errMsg =\n catalog.error &&\n typeof catalog.error === \"object\" &&\n \"message\" in catalog.error\n ? String(catalog.error.message)\n : \"Unknown error\";\n checks.push({\n check: \"Tool catalog\",\n status: \"FAIL\",\n detail: errMsg,\n });\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n checks.push({\n check: \"Tool catalog\",\n status: \"FAIL\",\n detail: `Failed to fetch: ${msg}`,\n });\n }\n }\n\n // Probe: call server health endpoint with extended check\n if (opts.probe) {\n const probeUrl = `${getApiUrl()}/health?run=true`;\n debug(`Probe: GET ${probeUrl}`);\n try {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), 30000);\n const resp = await fetch(probeUrl, {\n headers: {\n ...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}),\n },\n signal: controller.signal,\n });\n clearTimeout(timer);\n\n if (resp.ok) {\n const body = await resp.json().catch(() => null);\n if (body && typeof body === \"object\" && \"providers\" in body) {\n const providers = (body as Record<string, unknown>).providers;\n if (Array.isArray(providers)) {\n for (const p of providers) {\n const pObj = p as Record<string, unknown>;\n const name = String(pObj.name ?? pObj.provider ?? \"unknown\");\n const status = String(pObj.status ?? \"unknown\");\n const pass =\n status === \"healthy\" ||\n status === \"passed\" ||\n status === \"partial\";\n checks.push({\n check: `Probe: ${name}`,\n status: pass ? \"PASS\" : status === \"inactive\" ? \"SKIP\" : \"FAIL\",\n detail: status,\n });\n }\n }\n } else {\n checks.push({\n check: \"Probe\",\n status: \"PASS\",\n detail: `Server responded ${resp.status}`,\n });\n }\n } else {\n checks.push({\n check: \"Probe\",\n status: \"FAIL\",\n detail: `HTTP ${resp.status} ${resp.statusText}`,\n });\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n checks.push({\n check: \"Probe\",\n status: \"FAIL\",\n detail: `Failed: ${msg}`,\n });\n }\n }\n\n const fails = checks.filter((c) => c.status === \"FAIL\").length;\n const warns = checks.filter((c) => c.status === \"WARN\").length;\n const data = {\n checks,\n summary: {\n total: checks.length,\n pass: checks.filter((c) => c.status === \"PASS\").length,\n fail: fails,\n warn: warns,\n },\n };\n\n if (shouldOutputJson()) {\n await writeOutput(successEnvelope(data, {}));\n if (fails > 0) process.exit(1);\n return;\n }\n\n const { table } = await import(\"./format.js\");\n info(\"\\nHive MCP Doctor\\n\");\n info(\n table(\n [\"Check\", \"Status\", \"Detail\"],\n checks.map((c) => [c.check, c.status, c.detail]),\n ),\n );\n info(\n `\\n${fails === 0 ? \"All checks passed\" : `${fails} issues found`}${warns ? ` (${warns} warnings)` : \"\"}\\n`,\n );\n\n if (fails > 0) process.exit(1);\n}\n\nexport async function runStatus(): Promise<void> {\n const { CLI_VERSION: SERVER_VERSION } = await import(\"../version.js\");\n const { resolveApiKey, resolveApiUrl } = await import(\"./config-dir.js\");\n const { getActiveProfile, maskKey } = await import(\"./auth.js\");\n\n const apiUrl = resolveApiUrl();\n const apiKey = resolveApiKey();\n const profile = getActiveProfile();\n\n let apiStatus = \"unknown\";\n try {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), 5000);\n const resp = await fetch(`${apiUrl}/ping`, {\n headers: apiKey ? { Authorization: `Bearer ${apiKey}` } : {},\n signal: controller.signal,\n });\n clearTimeout(timer);\n apiStatus = resp.ok ? \"healthy\" : `HTTP ${resp.status}`;\n } catch {\n apiStatus = \"unreachable\";\n }\n\n if (shouldOutputJson()) {\n await writeOutput(\n successEnvelope(\n {\n version: SERVER_VERSION,\n profile: profile?.name ?? \"(none)\",\n apiUrl,\n apiStatus,\n hasKey: !!apiKey,\n },\n {},\n ),\n );\n return;\n }\n\n process.stderr.write(`\\nHive CLI v${SERVER_VERSION}\\n`);\n process.stderr.write(\n `Profile: ${profile ? `${profile.name} (${maskKey(profile.apiKey)})` : \"(not logged in)\"}\\n`,\n );\n process.stderr.write(`API: ${apiUrl} (${apiStatus})\\n\\n`);\n}\n"],"mappings":"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","names":[]}
|
package/build/server.js
CHANGED
|
@@ -14380,6 +14380,16 @@ function dynamicTools(endpoints) {
|
|
|
14380
14380
|
// src/server.ts
|
|
14381
14381
|
dotenv.config();
|
|
14382
14382
|
var API_EXECUTE_ENDPOINT = process.env.API_EXECUTE_ENDPOINT || "https://mcp.hiveintelligence.xyz/api/execute";
|
|
14383
|
+
var HIVE_API_KEY = process.env.HIVE_API_KEY || "";
|
|
14384
|
+
function getApiHeaders() {
|
|
14385
|
+
const headers = {
|
|
14386
|
+
"Content-Type": "application/json"
|
|
14387
|
+
};
|
|
14388
|
+
if (HIVE_API_KEY) {
|
|
14389
|
+
headers["Authorization"] = `Bearer ${HIVE_API_KEY}`;
|
|
14390
|
+
}
|
|
14391
|
+
return headers;
|
|
14392
|
+
}
|
|
14383
14393
|
function getDynamicTools() {
|
|
14384
14394
|
const allToolEndpoints = supportedTools;
|
|
14385
14395
|
const allTools = dynamicTools(allToolEndpoints);
|
|
@@ -14457,9 +14467,7 @@ var HiveMCPServer = class {
|
|
|
14457
14467
|
try {
|
|
14458
14468
|
const response = await fetch(API_EXECUTE_ENDPOINT, {
|
|
14459
14469
|
method: "POST",
|
|
14460
|
-
headers:
|
|
14461
|
-
"Content-Type": "application/json"
|
|
14462
|
-
},
|
|
14470
|
+
headers: getApiHeaders(),
|
|
14463
14471
|
body: JSON.stringify({
|
|
14464
14472
|
toolName,
|
|
14465
14473
|
arguments: request.params.arguments?.args
|
|
@@ -14525,9 +14533,7 @@ var HiveMCPServer = class {
|
|
|
14525
14533
|
try {
|
|
14526
14534
|
const response = await fetch(API_EXECUTE_ENDPOINT, {
|
|
14527
14535
|
method: "POST",
|
|
14528
|
-
headers:
|
|
14529
|
-
"Content-Type": "application/json"
|
|
14530
|
-
},
|
|
14536
|
+
headers: getApiHeaders(),
|
|
14531
14537
|
body: JSON.stringify({
|
|
14532
14538
|
toolName,
|
|
14533
14539
|
arguments: request.params.arguments
|