RunAI Coder
Your goal. Delivered. RunAI Coder for Windows, macOS, Linux, Android, with iOS coming soon.
https://run.ceo/coder/Connect straight to this server’s public endpoint.
https://mcp.run.ceo/We add this server to your workspace, walk through sign-in once, then open Studio with tools ready to run.
Last probed Sep 14, 2026 · mcp.run.ceo
19tools discovered
Connector.list Accounts
List the accounts connected for this provider (email, alias label, account_id, default flag, granted scopes, status). Use it BEFORE guessing an `account` selector; returns an empty list (not an error) when nothing is connected.
Gmail.send
Send an email as the connected user (Gmail).
Gmail.list
List/search the connected user's messages (Gmail, read-only).
Gmail.get Thread
Read the FULL content of a Gmail thread (or single message) the connected user received — decoded plain-text body plus key headers (From/To/Subject/Date/Message-ID/In-Reply-To/References). This is the read-reply-body tool the inbound-wake flow (issue #1367) defers to: the dispatcher only surfaces a messageId, and gmail.list returns IDs only, so this tool is how an agent actually reads a clinic/vendor reply before deciding next steps.
Gmail.create Draft
Create a Gmail DRAFT (not sent) in the connected user's Drafts folder so the human can review, edit and press Send in Gmail. Same fields as gmail.send: pass `from` to pick a send-as identity, and inReplyTo + gmailThreadId to make it a reply that threads under the original conversation.
Gmail.link Thread
Link an ALREADY-SENT Gmail thread to a RunAI app thread so that replies wake that conversation (the same reply-wake mapping gmail.send writes automatically). Use this when gmail.send reported `mapped:false` / a WARNING about reply auto-wake, or when the mail was sent outside this tool. Pass the Gmail threadId (or a messageId of any message in the thread); appThreadId defaults to the calling session. The thread must belong to the connected account.
Gmail.modify Labels
Label triage for Gmail messages: add and/or remove labels on up to 100 message ids in one call (Gmail batchModify). ONLY moves labels — fully reversible, NEVER deletes or trashes mail. Allowed labels: SPAM, IMPORTANT, INBOX, STARRED, UNREAD and user labels (Label_*); TRASH or any delete semantics is rejected with `forbidden_label`. Typical use: move a message into Spam (add SPAM, remove INBOX), demote from Important (remove IMPORTANT), or promote back (add IMPORTANT).
Calendar.list Events
List upcoming events on one of the connected user's calendars (default: primary; pass a calendarId from calendar.list_calendars to read a subscribed/sub calendar).
Calendar.list Calendars
List the calendars on the connected user's calendarList (id, summary, accessRole, primary flag) — read-only; use it to find the calendarId of a subscribed/sub calendar for calendar.list_events.
Calendar.list Free Slots
Free/busy lookup on the connected user's primary calendar between two RFC3339 times.
Calendar.create Event
Create an event on one of the connected user's calendars (default: primary; pass a calendarId from calendar.list_calendars to write into a shared/sub calendar). Returns the eventId/start/end for ground-truth reconciliation.
Contacts.search
Search the connected user's Google Contacts by name/email/phone prefix (People API searchContacts) — read-only; returns name + emails + phones, enough to fill in a recipient or billing email.
Contacts.list
List the connected user's Google Contacts (People API connections.list) — read-only; returns name + emails + phones per contact.
Docs.get
Read a Google Doc by documentId: returns title + plain-text body, plus each paragraph's startIndex/endIndex (use them as `index` for docs.insert_text / ranges for docs.batch_update). Pass raw:true to ALSO get the raw Docs API body JSON (large; off by default).
Docs.insert Text
Insert text into a Google Doc at a body index (Docs API batchUpdate insertText). Get indices from docs.get; index 1 = start of body. Returns the new document revisionId.
Docs.replace All Text
Replace every occurrence of a string in a Google Doc (Docs API batchUpdate replaceAllText). Returns occurrencesChanged.
Docs.batch Update
Low-level escape hatch: POST documents/{documentId}:batchUpdate with the given Google Docs API `requests` array passed through verbatim (insertText, deleteContentRange, updateTextStyle, insertTable, ...). Use docs.get first for indices. Returns the API replies array + revisionId.
Places.search
Search nearby places (Google Places by default; 高德/AMap when PLACES_PROVIDER=amap, region=cn). Uses a server API key; requires a valid connected-user token (any scope).
Billing.query
Read-only usage-ledger billing query: token usage, cost, and cache read% aggregated by provider/account/model/hour/day over a bounded time window (max 31 days). Requires a valid connected-user token (any scope).
Get your MCP into directories
A working endpoint is step one. Directory coverage is the coordinated launch across ChatGPT, Claude, Cursor, the MCP Registry, and community indexes.
Directory coverage for brandsYour goal. Delivered. RunAI Coder for Windows, macOS, Linux, Android, with iOS coming soon.
Use the MCP endpoint listed on this page in your MCP client configuration. One-click install pills support Claude, Cursor, VS Code, and other hosts. Copy the remote MCP URL if your client needs a manual entry.
Operate RunAI Coder? Verify ownership to take over this directory entry.
This server appears in the MCPBundles directory. Verify you operate it to take over the listing — name, description, logo, contact email, and skill content. We email a 6-digit code to a maintainer address your server publishes in /.well-known/security.txt or /.well-known/mcpbundles.json. Free, takes about a minute.
MCPBundles probed 19 tools on the live server. The tool list on this page reflects what was discovered at the last refresh — connect your client to see the full set available to your session.
RunAI Coder may require signing in to the provider before tools can run. Connect through MCPBundles or your MCP client and complete any provider login when prompted.
MCPBundles is an independent platform built on the open Model Context Protocol standard. Not affiliated with Anthropic PBC or Claude.