Skip to main content

for grok custom connectors

Connect Grok to your uptime monitoring

Grok's custom connector does not register itself the way Claude, Cursor and VS Code do. Its form asks for a client id, two endpoint URLs and a scope list. Paste the values below, save, sign in with your Uptimepage login, approve the consent screen, and Grok can read your monitors, incidents and status pages in the chat.

Fill in the connector form

On grok.com open Connectors, then New Connector, then Custom. Give it the MCP server URL, and in the OAuth section paste the client id, the authorization endpoint and the token endpoint from the table above. Token auth method is none, with PKCE. For scopes, targets:read status_page:read incidents:read answers every question; add channels:read for the notification channel inventory and variables:read for variable keys. Grant a write scope only once you have seen Grok show a confirmation prompt, since without one the write tools are not offered at all: incidents:write to acknowledge, resolve or publish, status_page:write to build a page, and targets:write together with targets:execute to create a monitor, because creating one runs its check first. The consent screen shows exactly what is being granted. Save, and Grok sends you to sign in.

Why a published client id is safe

The id belongs to a public client with no secret, so it grants nothing by itself. The only redirect registered for it is grok.com, which means an authorization code can go nowhere else. PKCE lets only the Grok session that started the flow redeem the code. And the consent screen is still yours: it names your organization, lists the abilities, says you will return to grok.com, and mints nothing until you click Approve. Approve only a connection you started yourself.

What Grok can do

Ask what is down and Grok calls get_org_health, then get_monitor_history for the monitor that matters, with response time split into DNS, connect, TLS and first byte. Ask about an incident and it reads the timeline and the operator updates. Ask for the month's numbers and get_incident_metrics returns MTTA, MTTR and the noisiest monitors. The 15 tools that act are offered only to a client that can show a confirmation prompt; a client that cannot is given the 16 read tools, which is where most of the value is anyway.

Three prompts to start with

"What is broken right now and for how long?" "Compare this week's incidents with last week's and tell me which monitor caused the most." "Is the checkout flow slower than it was a month ago, and which step?" The last one reads get_flow_step_trend, which reports per step how the mean duration moved and how many runs passed or failed it, so a login that still passes but takes twice as long shows up before it fails.

Grok Build and other clients that take a header

A client that sends a static Authorization header instead of running OAuth, Grok Build among them, works with a scoped API token: mint an org-bound, read-only, expiring token in the app under Settings, then API tokens, and set the header to Bearer followed by the token. Self-hosters register their own client once with the command below and paste the returned client_id into the same form, with their own hosts for the two endpoints. Approve it once right after: a client nobody has approved within a week of registering is dropped.

Self-hosted: register your own Grok client

curl -X POST https://app.example.com/oauth/register \
  -H 'Content-Type: application/json' \
  -d '{"client_name":"Grok","redirect_uris":["https://grok.com/connectors-oauth-exchange-code/"]}'

FAQ

Why does Grok ask for a client id?
Grok's custom connector does not do dynamic client registration, so it cannot register itself the way other clients do. The shared client id on this page is registered for Grok's callback; paste it with the two endpoints and the scopes.
Is it safe that the client id is public?
Yes. It is a public client with no secret, the only redirect on record is grok.com, and PKCE lets only the Grok session that started the flow redeem the code. Nothing is granted until you sign in and approve the consent screen yourself.
Which scopes should I paste?
targets:read status_page:read incidents:read answers every question; channels:read and variables:read add the channel inventory and variable keys. Grant a write scope only once Grok has shown you a confirmation prompt, and note that creating a monitor needs targets:execute next to targets:write. The consent screen lists exactly what is being granted.
Can I use it with Grok Build instead?
Yes. Grok Build sends a static Authorization header, so mint an org-bound, read-only, expiring API token in the app and set the header to Bearer followed by the token. No OAuth form involved.

At a glance

  • MCP server URL https://mcp.uptimepage.dev/mcp
  • Client ID ump_DWhz9cACC1T6Tr-5oEw2qw
  • Authorization endpoint https://app.uptimepage.dev/oauth/authorize
  • Token endpoint https://app.uptimepage.dev/oauth/token
  • Token auth method none (PKCE)
  • Scopes targets:read status_page:read incidents:read
  • Callback on record grok.com only
  • Price to start free, no card

Links

Start in under 5 minutes.

Start free

features · pricing · notes