# Connect an MCP client (/docs/getting-started/connect-mcp)



The GridRouter MCP server is at:

```text
https://mcp.gridrouter.io/mcp
```

It speaks Streamable HTTP (there is no SSE transport). Add it to your client:

```json title="mcp.json"
{
  "mcpServers": {
    "gridrouter": { "url": "https://mcp.gridrouter.io/mcp" }
  }
}
```

## Sign in with OAuth [#sign-in-with-oauth]

Clients that support MCP authorization send you to GridRouter on first use. Sign in and approve,
and the client is granted access to your active workspace. The grant can never exceed your role:
developers cannot grant key or agent management, and billing and viewer members grant read scopes
only. Each grant appears as a key named `mcp: <client name>` in Settings → **API keys**, where you can
revoke it.

Access tokens last an hour and refresh for 30 days. A reused refresh token revokes the grant.

## Headless clients: use an API key [#headless-clients-use-an-api-key]

Scripts, CI and clients without OAuth send a GridRouter [API key](/docs/getting-started/api-keys)
instead. The **Agent / MCP** key preset has the scopes most agents need.

```json title="mcp.json"
{
  "mcpServers": {
    "gridrouter": {
      "url": "https://mcp.gridrouter.io/mcp",
      "headers": { "Authorization": "Bearer ${GRID_API_KEY}" }
    }
  }
}
```

## Try it [#try-it]

Ask the client to find a work email. It should call `catalog_search` to find an endpoint, then
`run` with `people.email.find`. The built-in `find_verified_email` prompt does exactly that and
verifies the result.

The [MCP reference](/docs/mcp) lists every tool, its REST equivalent and the scope it needs.

