Skip to main content
Glama

call-grokbot

Ask your existing Grok Bots from Codex and Claude Code. A local stdio MCP server sends one self-contained task, reads incremental replies, and can interrupt a contacted bot. Your bot keeps its existing conversation, memory, and connected tools.

Unofficial. Not affiliated with, endorsed by, or supported by Cursor / Anysphere, xAI / Grok, OpenAI, or Anthropic. The Grok Bot RPC is undocumented and may change. No public model-inference endpoint is provided.

简体中文 · Authentication details

Before you start

  • Install Node.js 22.13+, npm, and Git.

  • Install and sign in to the client you want to use: Codex or Claude Code. Your coding client's account is separate from the Cursor login below.

  • Install the official Cursor CLI.

  • Have a Grok Bot account and at least one existing bot. Use the exact bot name shown in your app; this package does not create bots.

Choose the plugin guide for Codex or Claude Code. Both plugins include the consult skill and start the MCP server with a pinned npx package. You do not need a global call-grokbot install, a source checkout, an npm account, or a personal API key.

macOS browser authentication uses the official CLI's login Keychain entries. Linux and Windows use the official CLI's auth file. Do not copy tokens into MCP configuration. Real-account plugin tests passed on macOS; Linux and Windows have CI coverage, but their real-account login flows have not been verified.

Related MCP server: codex-claude-bridge

Codex plugin quickstart

1. Install the plugin in your terminal

codex plugin marketplace add ZensHQ/call-grokbot --ref v0.1.1
codex plugin add call-grokbot@call-grokbot
codex plugin list

Confirm that call-grokbot@call-grokbot is installed and enabled. These are terminal commands. If your Codex installation does not recognize plugin, update to a version that supports plugin commands. See the official Codex plugin documentation.

2. Sign in to the bot account in your terminal

npx --yes call-grokbot@0.1.1 login
npx --yes call-grokbot@0.1.1 doctor

login runs the official Cursor CLI's agent login. In the browser, select the account that owns your bot and complete any security check. doctor should report "authenticated": true, "authMode": "browser", and "cursorCliFound": true, without printing credentials.

3. Open a new Codex session and call the skill

Start Codex from the project you want to work in:

codex

Type this in the Codex conversation, not in your terminal:

$call-grokbot:consult List my existing bots. Do not send any message.

Choose an exact name from the result. In the example below, replace Research Bot with your bot's actual name:

$call-grokbot:consult Ask my existing bot "Research Bot" to reply exactly PONG.
Send the task once. If it is running, use check until it finishes; do not resend.

This sends a real message to that bot's existing conversation. A successful check means you received PONG and the task reached finished; an initial acknowledgement is not enough. For a real task, replace the PONG request with one self-contained brief containing the relevant facts, constraints, allowed actions, and desired output.

Claude Code plugin quickstart

1. Install the plugin in your terminal

claude plugin marketplace add ZensHQ/call-grokbot
claude plugin install call-grokbot@call-grokbot --scope user
claude plugin list

Confirm that call-grokbot@call-grokbot is enabled. User scope makes it available to your Claude Code projects on this machine. If you are already inside Claude Code, the interactive equivalents are:

/plugin marketplace add ZensHQ/call-grokbot
/plugin install call-grokbot@call-grokbot

In the interactive install panel, choose Install for you (user scope). See the official Claude Code plugin documentation for other installation scopes.

2. Sign in to the bot account in your terminal

npx --yes call-grokbot@0.1.1 login
npx --yes call-grokbot@0.1.1 doctor

Complete the official Cursor CLI browser sign-in with the account that owns your bot. Confirm "authenticated": true, "authMode": "browser", and "cursorCliFound": true in the doctor result. If you already signed in for the Codex plugin on this machine, both plugins share that official CLI session; run npx --yes call-grokbot@0.1.1 doctor to check it instead of signing in again.

3. Check the connection, then open a new Claude Code session

In your terminal:

claude mcp list
claude

The health check should show plugin:call-grokbot:call-grokbot as connected. Allow the server to finish connecting before your first request. If a session was open before installation, start a new one so it loads the plugin and skill.

Type this in the Claude Code conversation:

/call-grokbot:consult List my existing bots. Do not send any message.

Replace Research Bot below with an exact existing name from the result:

/call-grokbot:consult Ask my existing bot "Research Bot" to reply exactly PONG.
Send the task once. If it is running, use check until it finishes; do not resend.

This is a real message in your bot's conversation. Verify both PONG and finished. For normal work, provide the relevant content in the brief: the bot cannot automatically see your Claude Code session or project files.

Setup troubleshooting

Symptom

What to do

call-grokbot: command not found

Plugin installs do not add a global executable. Use npx --yes call-grokbot@0.1.1 login or npx --yes call-grokbot@0.1.1 doctor in your terminal.

CLI_MISSING

Install the official Cursor CLI linked above. For a nonstandard location, set CALL_GROKBOT_CURSOR_CLI to its absolute executable path.

AUTH_REQUIRED or AUTH_EXPIRED

Run the pinned npx login command again, finish browser sign-in, and run npx --yes call-grokbot@0.1.1 doctor. MCP startup does not open a browser for you.

The skill or MCP tools are missing

Confirm the plugin is installed and enabled with codex plugin list or claude plugin list, then start a new client session. An MCP-only install does not include the skill.

Claude Code says the tools are unavailable or the server is still connecting

Wait for MCP startup and check claude mcp list. If the session still has no tools, open a new session after the health check reports connected. Do not resend a task that may already have been sent.

A bot is missing or a request returns 403

Confirm the exact bot name and the browser account you signed in to. A valid login does not guarantee access to the undocumented bot RPC; see Recovery and boundaries.

Optional: direct MCP configuration

Use this instead of the plugin when you only need the four MCP tools. Do not install both paths in the same client, or you will get duplicate tools. This path does not include consult; ask the coding assistant to use the call-grokbot tools in an ordinary prompt.

First complete the same terminal login and doctor check:

npx --yes call-grokbot@0.1.1 login
npx --yes call-grokbot@0.1.1 doctor

For Codex, register the server from your terminal:

codex mcp add call-grokbot -- npx --yes call-grokbot@0.1.1

For a bot allowlist and longer tasks, configure the same entry in ~/.codex/config.toml:

[mcp_servers.call-grokbot]
command = "npx"
args = ["--yes", "call-grokbot@0.1.1"]
startup_timeout_sec = 30
tool_timeout_sec = 660
env = { CALL_GROKBOT_AGENTS = "Research Bot" }

For Claude Code, register the server from your terminal:

claude mcp add --transport stdio --scope user call-grokbot -- npx --yes call-grokbot@0.1.1

Or use this .mcp.json in a trusted project instead of the user-scope entry:

{
  "mcpServers": {
    "call-grokbot": {
      "command": "npx",
      "args": ["--yes", "call-grokbot@0.1.1"],
      "env": {
        "CALL_GROKBOT_AUTH_MODE": "browser",
        "CALL_GROKBOT_AGENTS": "Research Bot"
      }
    }
  }
}

Replace Research Bot with an exact existing name. Open a new client session after changing MCP configuration.

Optional: global or source installation

For a global command, install npm install --global call-grokbot@0.1.1. You can then use call-grokbot login, doctor, and the other subcommands directly instead of the pinned npx form.

To run from source:

git clone https://github.com/ZensHQ/call-grokbot.git
cd call-grokbot
npm ci
npm run build
node dist/cli.js login
node dist/cli.js doctor

Use node /absolute/path/to/call-grokbot/dist/cli.js for source commands. For JSON/TOML MCP configuration, set command to node and args to ["/absolute/path/to/call-grokbot/dist/cli.js"].

Four tools

Tool

Purpose

list()

List existing bots visible to the account, the optional allowlist, and local contacts. Sends no message.

ask({agent, message, wait_seconds})

Send once to an exact existing bot. A nonexistent or ambiguous name is refused; no bot is created.

check({agent, wait_seconds})

Read unread replies and wait for an existing task. Never resends a message.

interrupt({agent})

Stop a contacted bot's current turn. It may include work started in the app; completed actions are not undone.

agent may be omitted only when the allowlist contains one bot. wait_seconds defaults to 45, accepts 0–600, and returns an initial snapshot at zero. A result contains status: "running" | "finished" and an optional reply. running means call check; do not repeat ask. finished requires the live bot state and turn completion evidence, not just the first acknowledgement. An interrupted turn may finish without a reply.

An ask result may include earlierReplies from prior unread messages; keep them separate from the answer to the new task. check advances the local cursor, so a second check does not repeat already consumed replies. Cursor values remain decimal strings, including values beyond JavaScript's safe integer range. Internal tool steps are not returned as replies.

Example prompt:

Ask Research Bot to compare the two attached deployment approaches. Include the latency measurements and budget constraints from this conversation. Request three tradeoffs and one recommendation. Research only; make no changes.

Authentication expiry and logout

npx --yes call-grokbot@0.1.1 auth status
npx --yes call-grokbot@0.1.1 auth refresh
npx --yes call-grokbot@0.1.1 logout

Default authentication is browser, even when CURSOR_API_KEY is set. If the browser is on another computer, run login with NO_OPEN_BROWSER=1 to have the official CLI print its login URL.

auth refresh opens another official browser sign-in. The installed official CLI's browser session has a fixed lifetime (the session observed in testing was about 60 days); its refreshToken field is not a verified silent-refresh mechanism. This project does not invent an OAuth refresh endpoint or promise endless unattended browser authentication.

Each authenticated request reads the latest official credentials. A successful re-login is picked up without restarting the MCP server. Expired, revoked or missing credentials stop the tool and tell you to sign in again. doctor reports expiry without displaying tokens; ask/check also warn within five minutes of browser-session expiry. Logout signs out the shared official Cursor CLI session; other programs using that login must also sign in again. Local contacts remain, so account-specific read cursors can resume. Logout does not stop cloud bot work or undo completed actions.

An optional explicit CALL_GROKBOT_AUTH_MODE=api-key mode supports unattended short-token renewal. It reads CALL_GROKBOT_API_KEY, CURSOR_API_KEY, an explicit CURSOR_API_KEY_FILE, then CURSOR_SERVICE_ACCOUNT_KEY. It exchanges the key for a short-lived session, shares concurrent exchanges, renews before expiry, and retries an authenticated read once when a new token is obtained. The tested personal key had both Sign in to the Cursor CLI and SDK and Run agents enabled; the minimal grant set is not established. Service-account access to personal bots is not verified. No key is stored by this package.

Configuration

Variable

Default

Meaning

CALL_GROKBOT_AUTH_MODE

browser

browser or explicit api-key

CALL_GROKBOT_CURSOR_CLI

auto-detect

Absolute path to the official agent executable

CALL_GROKBOT_AGENTS

all existing bots

Comma-separated names, or a JSON array of names / {name,description} objects

CALL_GROKBOT_DEFAULT_WAIT_SECONDS

45

Default tool wait, capped by the maximum

CALL_GROKBOT_MAX_WAIT_SECONDS

600

Maximum allowed tool wait

CALL_GROKBOT_REQUEST_TIMEOUT_MS

20000

Timeout per unary HTTP request

CALL_GROKBOT_SETTLE_MS

1500

Quiet interval after confirmed completion

CALL_GROKBOT_DISABLED_TOOLS

empty

Comma-separated tool names to omit

CALL_GROKBOT_STATE_DIR

OS state directory

Local contacts and cross-process locks

CALL_GROKBOT_API_BASE_URL

https://api2.cursor.sh

Official origin or a loopback test server; other hosts are refused

Default state is $XDG_STATE_HOME/call-grokbot or ~/.local/state/call-grokbot, and %LOCALAPPDATA%/call-grokbot on Windows. State contains only bot identifiers, cursors, timestamps, and pending message receipts. It is partitioned by the authenticated subject and origin. POSIX files use 0600 and directories 0700; Windows access follows the user profile ACL. Raw tokens, keys, conversation text, and browser cookies are never saved here.

Recovery and boundaries

  • Unconfirmed send: the message ID is saved before dispatch. Use check to inspect delivery and replies. Messages and interrupts are never retried automatically, even after timeouts or HTTP 5xx. Do not resend blindly.

  • Cancellation / stream error: the unread cursor is preserved. If a message was sent, its pending receipt survives and check can resume it.

  • Pending task: a second ask is refused until check observes completion. Per-bot file locks also prevent two local clients interleaving sends.

  • Corrupt state or transcript reset: fail closed. Back up state.json and resolve the affected contact only after checking the real conversation.

  • Permission 403: a valid login does not guarantee access to this undocumented RPC. No alternate account, bot creation or permission expansion is attempted.

These tools operate on the account's real bot conversations. A bot cannot see your IDE context unless you include it; included code and text leave your machine for the service. Bot replies may contain untrusted external material. An allowlist limits this client, not the account permissions of the login. No browser debugging port, saved browser-cookie extraction, HTTP/SSE listener, approval bypass, or Grok model subscription proxy is used.

Development and tests

npm ci
npm run check
npm test
npm run typecheck
npm pack --dry-run

Tests cover credential rotation, expiry/logout, API-key renewal concurrency, account isolation, large cursors, fragmented Connect frames, read retries, non-retried writes, pending-send recovery, cancellation, cross-process state writes, interrupts during a waiting ask, and MCP discovery / schemas / calls.

For an opt-in real test against a dedicated existing bot:

CALL_GROKBOT_LIVE_AGENT="Your Test Bot" npm run test:live

It sends a real PONG message, verifies incremental read and confirmed completion, and invokes interrupt after completion. It never modifies a bot profile. Live artifacts are gitignored and contain no credentials. See verification notes for the exact tested boundaries.

By Zens AI. MIT. See NOTICE.md for independent implementation and references.

Available Tools

4 tools
askA

Send one self-contained task to an existing Grok Bot. Never creates or renames bots. running means use check, not another ask. Messages enter the account's real conversation.

NameRequiredDescriptionDefault
agentNoExact existing Grok Bot name. May be omitted for a single configured bot.
messageYes
wait_secondsNoMaximum seconds to wait for a confirmed turn completion. 0 returns an initial snapshot.

Output Schema

NameRequiredDescription
noteNo
agentYes
replyNo
statusYes
messageIdNo
sessionIdYes
messageSentNo
earlierRepliesNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare openWorldHint=true and idempotentHint=false; the description adds the substantive consequence behind those flags — 'Messages enter the account's real conversation' — which tells the agent that every ask leaves a visible turn in real state. 'Never creates or renames bots' further constrains blast radius. It does not describe what happens to the turn if wait_seconds expires, leaving that to the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, zero filler, with the core action and the two behavioral constraints front-loaded before the routing hint. Nothing is repeated from the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return shape needn't be explained, and annotations carry the safety profile; what remains genuinely useful — scope, real-conversation side effect, and the check routing — is all present. A brief note on interrupt as the abort path would close the last gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% and already documents agent (exact existing name, omissible) and wait_seconds (max wait, 0 returns a snapshot). The description adds meaning the schema lacks for the undocumented message parameter: 'self-contained' signals no conversational carry-over and 'one task' signals no batching in a single call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource ('Send one self-contained task to an existing Grok Bot') and immediately bounds scope with 'Never creates or renames bots,' which separates it from the listing/creation sibling. The 'one ... task' phrasing also signals a single dispatch per call, so the agent can tell it apart from check without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the polling case away: 'running means use check, not another ask' names both the alternative and the condition that selects it. It does not cover when to prefer interrupt, or when to omit the agent versus specifying one, so it stops short of full when/when-not coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

checkA

Read new replies and wait for the previous task. Advances this machine's cursor. Never resends messages; use after running or an unconfirmed send.

NameRequiredDescriptionDefault
agentNoExact existing Grok Bot name. May be omitted for a single configured bot.
wait_secondsNoMaximum seconds to wait for a confirmed turn completion. 0 returns an initial snapshot.

Output Schema

NameRequiredDescription
noteNo
agentYes
replyNo
statusYes
messageIdNo
sessionIdYes
messageSentNo
earlierRepliesNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnlyHint=false, openWorldHint=true, and non-idempotency, and the description is consistent with that state-mutating profile by explicitly stating that it advances this machine's cursor. 'Never resends messages' adds a valuable non-obvious guarantee about repeat behavior. What is missing is what happens when the wait times out or returns nothing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact clauses with the core action and the cursor side-effect front-loaded, and no filler. The terseness of 'wait for the previous task' is slightly ambiguous, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and with all parameters optional and fully documented, the remaining burden is behavioral. Cursor advancement and non-resend semantics cover the important risks for a polling tool; the gap is only timeout/empty-result behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the agent and wait_seconds parameters are already fully documented in the schema, including the 0-means-snapshot case. The description adds only the notion of waiting for a task, which does not extend parameter meaning beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description supplies the meaning the vague name 'check' lacks: it reads new replies, waits on the previous task, and advances this machine's cursor. The non-resend guarantee further pins down that only unseen messages come back. It stops short of distinguishing itself from the siblings ask, interrupt, and list, so an agent still has to infer which one to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'use after running or an unconfirmed send' is a concrete triggering condition, which is more than most tools offer. However, no exclusion or alternative is named, so the boundary against 'ask' or 'list' is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

interruptA
DestructiveIdempotent

Stop the contacted bot's current turn, including work started in its app. Conversation and memory remain. Cannot undo completed actions.

NameRequiredDescriptionDefault
agentNoExact existing Grok Bot name. May be omitted for a single configured bot.

Output Schema

NameRequiredDescription
agentYes
sessionIdYes
interruptedYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true and idempotentHint=true, but the description adds genuinely non-obvious effects: conversation and memory are preserved, and work started inside the bot's app is also halted. Only the absence of error conditions (e.g., no active turn) keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three terse sentences, each carrying distinct information (what stops, what persists, irreversibility), with the core action front-loaded and zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the description covers the key state consequences of interrupting. It is close to complete, though it omits what happens when no turn is active.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage, including the note that it may be omitted for a single configured bot. The description adds nothing about the agent parameter, so the schema-supplied baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Stop') and resource ('the contacted bot's current turn'), plus scope ('including work started in its app'). It is clearly distinguishable from siblings ask, check, and list, which are read/query oriented.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the nature of an interrupt operation, and 'Cannot undo completed actions' hints at caution, but the description never states when to choose this over simply asking the bot something else or checking status first. No alternatives are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listA
Read-only

List existing available bots (filtered by the optional allowlist), configured names and contacts on this machine. Sends no message.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
availableYes
contactedYes
configuredYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the bar is lower. The description usefully adds that no message is sent and that the data is local to this machine, but says nothing about the allowlist's effect on results or what happens when the allowlist is empty.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the resource named up front and the reassurance ('sends no message') placed last where it does the most routing work. Slight awkwardness in 'existing available bots ... configured names and contacts' costs a point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero parameters and an output schema that already defines return shape, the description needs only purpose and scope, both of which are present. Only the unexplained allowlist mechanism and the lack of sibling differentiation keep it from full marks.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero parameters (baseline 4), yet the description references 'the optional allowlist' as a filter with no corresponding input — likely ambient configuration. That mention is meaningful context but risks confusing an agent looking for a parameter that does not exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (list) and concrete resources (bots, configured names and contacts on this machine), which repairs the generic tool name 'list'. It does not, however, contrast itself with the siblings (check, ask, interrupt), so an agent must infer the routing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Sends no message' implicitly steers the agent away from ask, the sibling that presumably does dispatch messages, and 'on this machine' scopes it locally. But there is no explicit when-to-use or when-not statement, and the distinction from check is left entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.1.1
    • First observedask
    • First observedcheck
    • First observedinterrupt
    • First observedlist

TDQS

A4.1/5.0

Scored across 4 tools

Disambiguation5/5

Each tool maps to a distinct action: list discovers bots, ask sends work, check reads results, and interrupt stops work. The descriptions explicitly clarify the ask/check boundary, so an agent can select the right tool reliably.

Naming Consistency5/5

All four names are single lowercase imperative verbs in a consistent style: list, ask, check, interrupt. There is no mixing of camelCase, snake_case, or verb/noun patterns.

Tool Count5/5

Four tools is a well-scoped set for a focused bot interaction client, with each tool covering a distinct part of the loop: discovery, sending, polling, and interruption. No tool feels redundant or missing from the core count.

Completeness4/5

The surface covers the essential lifecycle: list bots, send a task, check replies, and interrupt running work. A minor gap is the lack of explicit bot detail or historical conversation retrieval beyond new replies, but the core workflow is complete.

Maintenance

ActivityNo data
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers