grokbot-mcp 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/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp-client-name.d.ts +4 -0
- package/dist/mcp-client-name.d.ts.map +1 -0
- package/dist/mcp-client-name.js +20 -0
- package/dist/mcp-client-name.js.map +1 -0
- package/dist/mcp-tools-dispatch.d.ts.map +1 -1
- package/dist/mcp-tools-dispatch.js +22 -7
- package/dist/mcp-tools-dispatch.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { createCommandRunner, GROKBOT_VERSION, } from "grokbot-core";
|
|
2
|
+
import { createCommandRunner, detectClient, GROKBOT_VERSION, usageEnabled, withUsageLog, } from "grokbot-core";
|
|
3
|
+
import { mcpClientName } from "./mcp-client-name.js";
|
|
3
4
|
import { serve } from "./server.js";
|
|
4
5
|
// Built on the first tools/call, so initialize and tools/list never read the Keychain.
|
|
5
6
|
let runner;
|
|
6
7
|
const lazyRunner = {
|
|
7
8
|
run: (name, input, options) => {
|
|
8
|
-
runner ??= createCommandRunner({
|
|
9
|
-
|
|
9
|
+
runner ??= withUsageLog(createCommandRunner({ defaultAgent: process.env.GROKBOT_AGENT }), {
|
|
10
|
+
surface: "mcp",
|
|
11
|
+
version: GROKBOT_VERSION,
|
|
12
|
+
client: () => detectClient({
|
|
13
|
+
env: process.env,
|
|
14
|
+
isTTY: false,
|
|
15
|
+
mcpClientName: mcpClientName(),
|
|
16
|
+
}),
|
|
17
|
+
enabled: () => usageEnabled(process.env),
|
|
10
18
|
});
|
|
11
19
|
return runner.run(name, input, options);
|
|
12
20
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAEL,mBAAmB,EACnB,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAEL,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,uFAAuF;AACvF,IAAI,MAAiC,CAAC;AACtC,MAAM,UAAU,GAAkB;IAChC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC5B,MAAM,KAAK,YAAY,CACrB,mBAAmB,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,EAChE;YACE,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,GAAG,EAAE,CACX,YAAY,CAAC;gBACX,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,KAAK,EAAE,KAAK;gBACZ,aAAa,EAAE,aAAa,EAAE;aAC/B,CAAC;YACJ,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;SACzC,CACF,CAAC;QACF,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC;AAEF,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;AAE7E,GAAG,CAAC,IAAI,eAAe,uBAAuB,CAAC,CAAC;AAChD,MAAM,KAAK,CAAC;IACV,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,MAAM,EAAE,OAAO,CAAC,MAAM;IACtB,MAAM,EAAE,UAAU;IAClB,GAAG;CACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function mcpClientName(): string | undefined;
|
|
2
|
+
/** Notes the client's name from initialize params or a request's `_meta`. */
|
|
3
|
+
export declare function noteMcpClient(params: Readonly<Record<string, unknown>>): void;
|
|
4
|
+
//# sourceMappingURL=mcp-client-name.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-client-name.d.ts","sourceRoot":"","sources":["../src/mcp-client-name.ts"],"names":[],"mappings":"AAWA,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CAElD;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAM7E"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { isJsonObject } from "./json-rpc.js";
|
|
2
|
+
/**
|
|
3
|
+
* The name the MCP client gave for itself: `clientInfo.name` from initialize, or the
|
|
4
|
+
* stateless era's `_meta` clientInfo. Kept in memory only, so the usage log can map it to
|
|
5
|
+
* a fixed label (usage-client.ts); the name itself is never written anywhere.
|
|
6
|
+
*/
|
|
7
|
+
let name;
|
|
8
|
+
const CLIENT_INFO = "io.modelcontextprotocol/clientInfo";
|
|
9
|
+
export function mcpClientName() {
|
|
10
|
+
return name;
|
|
11
|
+
}
|
|
12
|
+
/** Notes the client's name from initialize params or a request's `_meta`. */
|
|
13
|
+
export function noteMcpClient(params) {
|
|
14
|
+
const meta = params._meta;
|
|
15
|
+
const info = params.clientInfo ?? (isJsonObject(meta) ? meta[CLIENT_INFO] : undefined);
|
|
16
|
+
const value = isJsonObject(info) ? info.name : undefined;
|
|
17
|
+
if (typeof value === "string" && value.trim() !== "")
|
|
18
|
+
name = value.trim();
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=mcp-client-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-client-name.js","sourceRoot":"","sources":["../src/mcp-client-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;GAIG;AACH,IAAI,IAAwB,CAAC;AAE7B,MAAM,WAAW,GAAG,oCAAoC,CAAC;AAEzD,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,aAAa,CAAC,MAAyC;IACrE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;IAC1B,MAAM,IAAI,GACR,MAAM,CAAC,UAAU,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AAC5E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tools-dispatch.d.ts","sourceRoot":"","sources":["../src/mcp-tools-dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAKzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-tools-dispatch.d.ts","sourceRoot":"","sources":["../src/mcp-tools-dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAKzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAC;AAY7B,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,mBAAmB,CAUhE,CAAC;AA8CF,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,mBAAmB,CA2BjE,CAAC"}
|
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
import { isActive, } from "grokbot-core";
|
|
2
2
|
import { plural, waitHint, } from "./mcp-tool-parts.js";
|
|
3
|
-
/**
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Well under the ~300 s at which MCP hosts kill a tool call (Hermes), so ask and wait
|
|
5
|
+
* return a still-running result with the job id first instead of dying mid-wait.
|
|
6
|
+
*/
|
|
7
|
+
const MCP_WAIT_TIMEOUT_SECONDS = 45;
|
|
8
|
+
/** What a finished result means, shared by every tool that waits on a job. */
|
|
9
|
+
const OUTCOMES = '"done" means the bot\'s run for this message ended, not that the task is verified; "ambiguous" means one run answered this message together with another, and the result holds every reply of that run';
|
|
5
10
|
export const DISPATCH_OVERRIDES = {
|
|
6
11
|
ask: {
|
|
7
|
-
note: `Waits ${
|
|
8
|
-
defaults: { timeout:
|
|
12
|
+
note: `Waits ${MCP_WAIT_TIMEOUT_SECONDS} s unless timeout is set; a still-running result carries a job id, and grokbot_wait resumes it. ${OUTCOMES}`,
|
|
13
|
+
defaults: { timeout: MCP_WAIT_TIMEOUT_SECONDS },
|
|
14
|
+
},
|
|
15
|
+
wait: {
|
|
16
|
+
note: `Waits ${MCP_WAIT_TIMEOUT_SECONDS} s unless timeout is set, to stay under MCP host time limits; a still-running result carries the job id, so call grokbot_wait again with it. ${OUTCOMES}`,
|
|
17
|
+
defaults: { timeout: MCP_WAIT_TIMEOUT_SECONDS },
|
|
9
18
|
},
|
|
10
19
|
interrupt: { destructive: true },
|
|
11
20
|
};
|
|
@@ -13,8 +22,12 @@ function outcomeText(who, jobId, outcome) {
|
|
|
13
22
|
switch (outcome.status) {
|
|
14
23
|
case "done":
|
|
15
24
|
return `${who} replied:\n${outcome.finalReply}`;
|
|
25
|
+
case "ambiguous":
|
|
26
|
+
return `${who} finished, but the reply is ambiguous: ${outcome.reason}. Every reply of that run, in order:\n${outcome.replyText}`;
|
|
16
27
|
case "pending":
|
|
17
|
-
return
|
|
28
|
+
return outcome.queued
|
|
29
|
+
? `${outcome.reason}. Job ${jobId} is saved; ${waitHint(jobId)} to send it and keep waiting.`
|
|
30
|
+
: `${who} is still working (${outcome.reason}). Job ${jobId} is saved; ${waitHint(jobId)} to keep waiting.`;
|
|
18
31
|
case "awaiting-approval":
|
|
19
32
|
return `${who} is waiting for owner approval (${outcome.reason}). Approve it in the Grok Bot app, then ${waitHint(jobId)}.`;
|
|
20
33
|
}
|
|
@@ -57,8 +70,10 @@ export const DISPATCH_SUMMARIES = {
|
|
|
57
70
|
...members.map(memberText),
|
|
58
71
|
].join("\n"),
|
|
59
72
|
ask: ({ jobId, agent, outcome }) => outcomeText(agent.name, jobId, outcome),
|
|
60
|
-
send: ({ jobId, agent }) =>
|
|
61
|
-
|
|
73
|
+
send: ({ jobId, agent, queued }) => queued
|
|
74
|
+
? `Queued for ${agent.name}: it is busy, so the message goes out once it is free. Job ${jobId} is saved; ${waitHint(jobId)} to send it and get the reply.`
|
|
75
|
+
: `Sent to ${agent.name}. Job ${jobId} is saved; ${waitHint(jobId)} for the reply.`,
|
|
76
|
+
wait: ({ jobId, agentId, agentName, outcome }) => outcomeText(agentName ?? `Agent ${agentId}`, jobId, outcome),
|
|
62
77
|
tail: ({ agent, entries }) => [
|
|
63
78
|
`${agent.name}, last ${plural(entries.length, "entry", "entries")}:`,
|
|
64
79
|
...entries.map((e) => `#${e.seq} ${entryText(e)}`),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tools-dispatch.js","sourceRoot":"","sources":["../src/mcp-tools-dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,GAIT,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,MAAM,EAEN,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAE7B
|
|
1
|
+
{"version":3,"file":"mcp-tools-dispatch.js","sourceRoot":"","sources":["../src/mcp-tools-dispatch.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,cAAc,CAAC;AAc9D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;KAAE,CAAC;IAChE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,kDAAkD;IAClD,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED;;;;GAIG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmEhE"}
|
package/dist/server.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createInterface } from "node:readline";
|
|
2
2
|
import { encodeResponse, INTERNAL_ERROR, isRequestId, methodNotFound, parseIncoming, } from "./json-rpc.js";
|
|
3
|
+
import { noteMcpClient } from "./mcp-client-name.js";
|
|
3
4
|
import { eraHandlers } from "./mcp-era-handlers.js";
|
|
4
5
|
import { requestEra } from "./mcp-era-request.js";
|
|
5
6
|
/**
|
|
@@ -17,6 +18,7 @@ export async function serve(options) {
|
|
|
17
18
|
};
|
|
18
19
|
// An aborted request gets no response: the client cancelled it or hung up.
|
|
19
20
|
async function respond(id, method, params) {
|
|
21
|
+
noteMcpClient(params);
|
|
20
22
|
const route = requestEra(params);
|
|
21
23
|
if ("error" in route)
|
|
22
24
|
return send(id, { error: route.error });
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "grokbot-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "MCP server over grokbot-core for driving a GrokBot workforce from any MCP-compatible agent.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"!dist/fixtures"
|
|
19
19
|
],
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"grokbot-core": "^0.1.
|
|
21
|
+
"grokbot-core": "^0.1.3"
|
|
22
22
|
},
|
|
23
23
|
"repository": {
|
|
24
24
|
"type": "git",
|