Grok Bot MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Grok Bot MCPWhat did my Bots get done today? One line each."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Grok Bot MCP
Let Claude Code, Codex, Cursor — or any MCP client — drive the Grok Bot desktop app on your Mac.
List your Bots, read their chats, send them messages and answer their questions without leaving your coding agent. Every click happens live in the real app, right in front of you.
Install · Try it · Tools · How it works · Troubleshooting · FAQ
Why
Grok Bot gives you Bots: AI teammates with names, jobs and their own cloud computers. Your coding agent lives in your terminal or editor. Grok Bot MCP connects the two.
Delegate. "Ask my Researcher bot to dig into this, then summarize what it finds."
Catch up. "What did my Bots get done today? One line each."
Unblock. Bots ask multiple-choice questions. Answer them from Claude Code or Codex.
Watch it work. Your agent drives the real Grok Bot app on your screen, so nothing happens out of sight.
No API keys. No cloud relay. No dependencies. It drives the app you already use.
Related MCP server: macos-control-mcp
Install in one line
You need: a Mac · Node.js 18+ · the Grok Bot desktop app, open and signed in.
Claude Code
Plugin (recommended): the MCP server plus a skill that teaches Claude how to work with your Bots.
claude plugin marketplace add rthomas24/grok-bot-mcp && claude plugin install grok-bot@grok-bot-mcpOr just the MCP server:
claude mcp add grok-bot --scope user -- npx -y github:rthomas24/grok-bot-mcpCodex
codex mcp add grok-bot -- npx -y github:rthomas24/grok-bot-mcpCodex gives a tool call 60 seconds by default, and a Bot can take longer than that to answer. Give it more time in ~/.codex/config.toml:
[mcp_servers.grok-bot]
command = "npx"
args = ["-y", "github:rthomas24/grok-bot-mcp"]
startup_timeout_sec = 60
tool_timeout_sec = 900Cursor and VS Code
Claude Desktop, Windsurf, Zed, Cline or any other MCP client
{
"mcpServers": {
"grok-bot": {
"command": "npx",
"args": ["-y", "github:rthomas24/grok-bot-mcp"]
}
}
}If your app says it can't findnpx, put the full path from which npx in "command".
Add the skill to any agent (optional)
The grok-bot skill teaches your agent the workflow: check the app first, read a chat before writing in it, summarize replies, and ask you before committing you to anything. The Claude Code plugin already includes it. For Codex, Cursor, Gemini CLI and other agents that support Agent Skills:
npx skills add rthomas24/grok-bot-mcpOr let your agent install it
Paste this into Claude Code, Codex or Cursor:
Install the Grok Bot MCP server for me from https://github.com/rthomas24/grok-bot-mcp (follow llms-install.md).First run: allow macOS access
Grok Bot MCP reads and clicks the Grok Bot app through the macOS Accessibility API, the same way VoiceOver does. macOS asks for permission once:
Run the doctor in the app your agent runs in (Terminal, iTerm2, Cursor, VS Code…):
npx -y github:rthomas24/grok-bot-mcp doctorAutomation: when macOS asks whether that app may control "System Events" or "Grok Bot", click Allow.
Accessibility: open System Settings → Privacy & Security → Accessibility, turn on that app, then restart it.
When everything is green you're set:
✓ macOS 26.0
✓ Node.js v22.20.0
✓ Grok Bot 0.70.2 installed at /Applications/Grok Bot.app
✓ Grok Bot is running (pid 4242)
✓ Accessibility and Automation access work. Found 4 agents: Grok Bot, Researcher, Coder, Marketer (open: Researcher)
All good! Ask your agent: "List my Grok Bot agents".Try it
Talk to your agent like you'd talk to a teammate who can see your Grok Bot window:
"List my Grok Bot agents and tell me what each one is working on."
"Ask my Researcher bot for three recent sources on solid-state batteries, then summarize its answer."
"Check whether the Coder bot finished the landing page. Show me what it said."
"The Marketer bot asked me a multiple-choice question. Show me the options and recommend one."
"Tell the Coder bot 'ship it'. Don't wait for a reply."
Tools
Tool | What it does | Parameters |
| Lists the Bots in the sidebar and which chat is open. | none |
| Reads a chat's recent messages, including a multiple-choice question the Bot is waiting on. |
|
| Opens the chat, types your message, presses Enter and waits for the reply. |
|
| Clicks an option on a multiple-choice question, by letter or by text. |
|
Agent names are case-insensitive, and a unique prefix works ("res" → Researcher). A reply looks like this:
{
"agent": "Researcher",
"timedOut": false,
"replies": [
{
"sender": "Researcher",
"time": "9:41:14 AM",
"text": "I found two directions. Which one should I take?",
"question": "Which one should I take?",
"choices": ["Go deep on one paper", "Survey ten papers", "Something else"]
}
]
}How it works
flowchart LR
A["Claude Code · Codex · Cursor<br/>(any MCP client)"] <-->|"MCP over stdio"| B["grok-bot-mcp<br/>Node.js, zero dependencies"]
B <-->|"osascript (JXA)"| C["macOS Accessibility API"]
C <-->|"reads · clicks · keystrokes"| D["Grok Bot desktop app"]Reads the app's accessibility tree: sidebar, chat transcript, choice buttons. Grok Bot is an Electron app, so when Chromium's tree is switched off the server switches it back on (
AXManualAccessibility).Types by pasting. It saves everything on your clipboard (text, images, files), pastes your message, presses Enter, then puts your clipboard back. The temporary text is marked so clipboard managers skip it.
Waits by watching for new messages after the one it sent, until the chat goes quiet for
quiet_secondsor the Bot asks a question. It sends MCP progress updates while it waits and stops if your client cancels.Takes turns. All calls run one at a time, because they share one window.
Stays local. No network calls, no telemetry, no API keys. Only the Grok Bot app talks to the internet.
Set these environment variables in your MCP client's server config if you need them:
Variable | Default | Use |
|
| The app's name, if yours differs. |
|
| The app's bundle ID, used to switch on its accessibility tree. |
|
| How often to check for a reply, in milliseconds. |
Troubleshooting
Run npx -y github:rthomas24/grok-bot-mcp doctor first. It checks every requirement and says how to fix what's missing.
Problem | Fix |
"macOS blocked Accessibility access" | System Settings → Privacy & Security → Accessibility: turn on the app your agent runs in, then restart it. |
"macOS blocked Automation access" | System Settings → Privacy & Security → Automation: let that app control "System Events" and "Grok Bot". |
"Grok Bot is not running" | Open Grok Bot and sign in. |
"No agent named …" | Use a name from |
| The Bot is still working. Ask your agent to check again with |
Codex says the tool call timed out | Raise |
The tools don't show up | Restart your agent after installing. In Claude Code, run |
FAQ
No. Grok Bot MCP is an independent open-source project and isn't affiliated with or endorsed by SpaceXAI, xAI, Anysphere (Cursor), Anthropic or OpenAI.
No. It drives the Grok Bot desktop app you're already signed in to, so there's nothing to configure and no extra cost beyond your Grok Bot plan.
Not yet. Grok Bot runs on Windows and Linux too, but this server uses the macOS Accessibility API. Pull requests for Windows (UI Automation) or Linux (AT-SPI) are welcome.
To type, it has to focus the message box. Reading doesn't need focus, though opening a different chat clicks it in the sidebar.
No. It saves every item and format on the clipboard before pasting and restores them right after.
Only by asking a Bot to, the same as you typing it. The server's instructions and the skill tell agents to get your OK before sending anything that commits you to something: emails, applications, payments, account changes. Your agent's own permission prompts still apply to every tool call.
The server finds things by their accessibility labels, which an app update can change. Please open an issue with your doctor output and Grok Bot version.
Development
git clone https://github.com/rthomas24/grok-bot-mcp && cd grok-bot-mcp
npm test # protocol and tool tests against a fake Grok Bot, no app needed
node src/index.js doctor # check the real app
npx @modelcontextprotocol/inspector node src/index.js # poke at the tools in a browsersrc/index.js CLI entry: MCP server, `doctor`, `--version`
src/server.js MCP over stdio (JSON-RPC 2.0), no SDK needed
src/tools.js Tool definitions, argument checks, waiting for replies
src/grok.js Runs the JXA script and explains macOS permission errors
src/jxa/grok-bot.js The part that reads and clicks the Grok Bot window
skills/grok-bot/ Agent Skill for Claude Code, Codex and others
.claude-plugin/ Claude Code plugin and marketplace manifests
test/ Tests and the fake osascript they run againstContributions are welcome. See CONTRIBUTING.md, and report security issues privately as described in SECURITY.md.
License
MIT © Ryan Thomas
Grok and Grok Bot are trademarks of their respective owners. This project is not affiliated with, endorsed by or sponsored by SpaceXAI, xAI, Anysphere, Anthropic or OpenAI.
If Grok Bot MCP saves you time, star the repo so others can find it.
Related MCP Connectors
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
Shared memory and actions for Claude, Kiro, OpenAI, Cursor, and other MCP-compatible AI clients.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceStandalone MCP server that gives AI agents full GUI control over macOS — screenshots, mouse, keyboard, apps, clipboard, and multi-display — with zero private dependencies.20MIT
- AlicenseBqualityDmaintenanceMCP server that enables AI to fully control macOS — mouse, keyboard, terminal, screenshots, window management, UI element detection, and provides AI-optimized information reporting.3626 npmMIT
- AlicenseAqualityBmaintenanceMCP server for local Mac desktop control, enabling mouse, keyboard, and screenshot actions for AI agents like Grok and Cursor.9MIT
- AlicenseNot gradedqualityAmaintenanceEnables driving macOS apps from Claude Code — screenshots, accessibility trees, clicks, typing and keys — by borrowing the Computer Use eyes and hands from OpenAI's ChatGPT/Codex desktop app, with persistent JavaScript scripting, text-targeted batching, diff output and macros that collapse many actions into one call without consuming Codex quota or calling a model.MIT