# Connect any MCP client (/docs/mcp/manual)



Connect any MCP client [#connect-any-mcp-client]

SageOx speaks the standard MCP protocol with OAuth 2.1 + Dynamic Client Registration (RFC 7591). If your tool supports MCP, this is everything it needs.

Server URL [#server-url]

```text
https://sageox.ai/mcp
```

mcpServers config [#mcpservers-config]

For tools that use a JSON config file:

```json
{
  "mcpServers": {
    "sageox": {
      "url": "https://sageox.ai/mcp"
    }
  }
}
```

How auth works [#how-auth-works]

On the first call to the SageOx MCP server, your tool will:

1. Discover OAuth metadata at `/.well-known/oauth-authorization-server`
2. Register itself via DCR at `/api/auth/oauth2/register` (PKCE required)
3. Open a browser tab to the OAuth consent screen
4. Exchange the auth code for an access token at `/oauth2/token`
5. Use the bearer token for all subsequent MCP calls

This is standard MCP — no SageOx-specific extensions. Any MCP-compliant client should Just Work.

Tools available [#tools-available]

| Tool          | What it does                                                                         |
| ------------- | ------------------------------------------------------------------------------------ |
| `ListTeams`   | Lists the teams the authorized user belongs to                                       |
| `ListBubbles` | Lists Knowledge Bubbles the user can see (personal / profile / team / repo / custom) |
| `SaveSession` | Saves a chat session into a chosen bubble                                            |
| `Search`      | Searches the team knowledge index                                                    |

Tool definitions come from `tools/list`. Scopes are surfaced on the OAuth consent screen.

Managing connections [#managing-connections]

[`/settings/security`](/settings/security) lists all active grants. Revoke per-client or all at once — revocation invalidates the access token, so the next MCP call returns 401 and the client cleans up its local state.
