> ## Documentation Index
> Fetch the complete documentation index at: https://www.truefoundry.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Set up Oodle MCP Server

> Connect Oodle's hosted MCP server to TrueFoundry MCP Gateway with OAuth2 or an API key so agents can query logs, metrics, traces and agent traces.

[Oodle](https://oodle.ai) is an observability platform built on OpenTelemetry for metrics, logs, traces and agent traces. Oodle hosts an MCP server for every deployment, so there is nothing to deploy. Add it from the **Connect Official Remote MCP Servers** catalog, and each user signs in with their own Oodle account.

> [!NOTE]
>
> Oodle runs separate deployments: **us1**, **eu1** and **ap1**. Each deployment has its own MCP URL, login domain and OAuth client ID. The catalog has a single **Oodle** entry: you set your deployment in its URL, and TrueFoundry fills in the matching sign-in URLs. Your deployment is the subdomain of the URL you use to open Oodle, for example `ap1` in `https://ap1.oodle.ai`. [Oodle Endpoints](#oodle-endpoints) lists the values for each deployment.

## Using Oodle through the MCP Gateway

When you use the Oodle MCP server through the [TrueFoundry MCP Gateway](https://www.truefoundry.com/docs/ai-gateway/mcp/mcp-overview.md), TrueFoundry provides:

* **Authentication** - Clients [authenticate inbound](https://www.truefoundry.com/docs/ai-gateway/mcp/mcp-gateway-auth-security.md#inbound-authentication) to the AI Gateway with a Personal Access Token, Virtual Account, or IDE OAuth flow. For outbound access, the AI Gateway runs the [OAuth2 Authorization Code flow](https://www.truefoundry.com/docs/ai-gateway/mcp/mcp-gateway-auth-security.md#outbound-authentication) with PKCE (`S256`), so each user signs in to Oodle and agents see only the data that user can see in Oodle.
* **Access control** - [Collaborators and role-based policies](https://www.truefoundry.com/docs/ai-gateway/mcp/mcp-gateway-auth-security.md#access-control) define who can use the server and which tools they can invoke.
* **Observability** - Tool calls are traced with caller identity, tool name, inputs, and latency in [MCP Metrics](https://www.truefoundry.com/docs/ai-gateway/analytics-mcp-metrics.md). You can also [send AI Gateway traces to Oodle](https://www.truefoundry.com/docs/ai-gateway/oodle.md).
* **Guardrails** - Apply [pre-tool and post-tool guardrails](https://www.truefoundry.com/docs/ai-gateway/guardrails-overview.md) on MCP tool calls.

## Prerequisites

* A TrueFoundry account with permission to add MCP servers.
* An active Oodle instance, and the name of its deployment (`us1`, `eu1` or `ap1`).
* To use OAuth2: the client ID of your deployment, from the **OAuth** tab of the **TrueFoundry AI Gateway (MCP)** tile on the **Integrations** page in Oodle.
* To use an API key instead: an Oodle API key, created under **Settings** → **API Keys** in Oodle.

## Oodle Endpoints

| Deployment (replaces `{{YOUR_DEPLOYMENT}}`) | MCP server URL | Login domain |
| - | - | - |
| us1 | `https://us1.oodle.ai/mcp/v1` | `oodle-us1.us.auth0.com` |
| eu1 | `https://eu1.oodle.ai/mcp/v1` | `oodle-eu1.eu.auth0.com` |
| ap1 | `https://ap1.oodle.ai/mcp/v1` | `oodle-ap1.jp.auth0.com` |

The authorization URL is `https://<login-domain>/authorize` and the token URL is `https://<login-domain>/oauth/token`. TrueFoundry fills both in from the MCP server URL, so use this table to check them or to enter them by hand.

Oodle's OAuth client is a public client: it has a client ID and no client secret. Oodle does not support Dynamic Client Registration (DCR), so there is no registration URL, and you enter the client ID yourself. Oodle shows the exact values for your deployment, each with a copy button, on the **OAuth** tab of the **TrueFoundry AI Gateway (MCP)** tile under **Integrations** in Oodle.

## Connect with OAuth2 (Recommended)

With OAuth2, every user signs in with their own Oodle account, and no Oodle credential is stored in the gateway.

**1. Open the MCP Server catalog**

Navigate to **MCP Gateway** in the left sidebar and click **Add Server**. In the **Add new MCP Server** picker, select **Connect Official Remote MCP Servers**.

**2. Select Oodle**

Search for "oodle" and click **Oodle**. TrueFoundry pre-fills the Name, Description and URL, and sets the auth type to OAuth2 with the Custom provider and the Authorization Code grant.

**3. Set your deployment in the URL**

In **URL**, replace `{{YOUR_DEPLOYMENT}}` with your Oodle deployment: `us1`, `eu1` or `ap1`. Your deployment is the subdomain of the URL you use to open Oodle, and [Oodle Endpoints](#oodle-endpoints) lists the full MCP server URL for each one. For example, on ap1 the URL reads `https://ap1.oodle.ai/mcp/v1`. TrueFoundry then reads Oodle's sign-in settings for that deployment and fills in **Authorization URL**, **Token URL**, **Scopes** and **Code Challenge Methods Supported**.

Do this before you enter the client ID. If **Authorization URL** and **Token URL** stay empty, click **Show details** in the **Create & Setup OAuth App** box above the OAuth2 fields, then click **Fetch OAuth2 details**. If TrueFoundry asks to overwrite the existing auth data, click **Overwrite**: this keeps the client ID you entered. You can also enter the URLs by hand from [Oodle Endpoints](#oodle-endpoints).

**4. Enter the client ID**

In Oodle, open **Integrations**, select the **TrueFoundry AI Gateway (MCP)** tile, and open its **OAuth** tab. Copy **Client ID** and paste it into **Client ID** in TrueFoundry.

The OAuth2 settings should now match these values:

| Field | Value |
| - | - |
| **OAuth Provider** | Custom |
| **Grant Type** | Authorization Code |
| **Authorization URL** | `https://<login-domain>/authorize`, with the login domain of your deployment from [Oodle Endpoints](#oodle-endpoints) |
| **Token URL** | `https://<login-domain>/oauth/token` |
| **Client ID** | The client ID from the Oodle tile |
| **Client Secret** | Empty |
| **Registration URL** | Empty |
| **Code Challenge Methods Supported** | `S256` |
| **JWT Source** | Access Token |

> [!WARNING]
>
> Oodle's OAuth client accepts only the Authorization Code grant, and it has no client secret. Sign-in fails if **Client Secret** is set, or if the client ID belongs to a different deployment than the URLs.

**5. Add the server**

Add yourself or your team under **Collaborators** with the `MCP Server Manager` role, then click **Add MCP Server**.

**6. Sign in to Oodle**

The first time a user calls an Oodle tool, the gateway asks them to sign in to Oodle and select their Oodle organization. Each user signs in once with their own Oodle account. To sign in before the first tool call, open the server's **Tools** tab and click **Connect Now**.

**7. Verify tools**

After you sign in, the **Tools** tab lists Oodle's tools. Click **Try** on a tool, for example the one that lists active alerts, to call it through the MCP Gateway and inspect the output.

### Apply using YAML

To keep the server definition in version control, use **Apply using YAML** in the form, or save the manifest to a file and run `tfy apply -f oodle-ai.yaml`. A manifest is applied as written, so it must include the sign-in URLs. This example is for ap1. For another deployment, change the deployment in `url` and the login domain in `authorization_url` and `token_url`, using [Oodle Endpoints](#oodle-endpoints). Replace `<OODLE_CLIENT_ID>` with the client ID from the Oodle tile.

```yaml oodle-ai.yaml theme={"dark"}
type: mcp-server/remote
name: oodle-ai
description: Query logs, metrics, traces, alerts and agent traces in Oodle.
url: https://ap1.oodle.ai/mcp/v1
auth_data:
  type: oauth2
  provider: custom
  grant_type: authorization_code
  authorization_url: https://oodle-ap1.jp.auth0.com/authorize
  token_url: https://oodle-ap1.jp.auth0.com/oauth/token
  client_id: <OODLE_CLIENT_ID>
  code_challenge_methods_supported:
    - S256
  jwt_source: access_token
collaborators:
  - role_id: mcp-server-manager
    subject: user:you@your-company.com
```

## Connect with an API Key

The gateway can also send an Oodle API key with every request. Each key works for one Oodle instance and has the role Admin, Editor or Viewer. Admin and Editor keys can use every tool. Viewer keys can only use read-only tools.

The **Oodle** catalog entry uses OAuth2, and a server added from the catalog keeps the auth type of its entry. To use an API key, add Oodle as a custom remote server instead.

**1. Create an Oodle API key**

In Oodle, open **Settings** → **API Keys** and create a key with the role you need.

**2. Add Oodle as a remote MCP server**

Navigate to **MCP Gateway** in the left sidebar and click **Add Server**. In the **Add new MCP Server** picker, select **Connect any Remote MCP Server**. Set **Name** to `oodle-ai` and **URL** to the MCP server URL of your deployment from [Oodle Endpoints](#oodle-endpoints), for example `https://ap1.oodle.ai/mcp/v1`. Add collaborators.

**3. Choose how the gateway gets the key**

Turn on **Auth Data** and select **API Key**. Add a header named exactly `X-API-KEY`.

* **Shared Credentials**: every user of the server shares one Oodle API key. Set the header value to the key. Store the key in the [TrueFoundry secrets store](https://www.truefoundry.com/docs/manage-secrets.md) and reference its FQN instead of pasting it.
* **Individual Credentials**: each user adds their own Oodle API key, so each agent sees only that user's data. Set the header value to `{{API_KEY}}`. Each user then adds their key on the server's **Auth Overrides** tab.

**4. Save and verify**

Click **Add MCP Server**, then open the **Tools** tab to check that Oodle's tools are listed.

## Choose Which Tools Are Listed

By default, the Oodle MCP server lists its most used tools: logs, metrics, traces, active alerts, monitors and skills. It also lists three tools that reach the rest:

* `search_tools` finds the other tools, such as dashboards, RUM, database monitoring, profiles, GenAI and alert management, and returns their input schemas.
* `list_tools` lists every tool you can use, grouped by toolset.
* `call_tool` runs a tool that `search_tools` or `list_tools` found.

To change what is listed, add a query parameter to the MCP server URL:

| URL | Tools listed |
| - | - |
| `https://<deployment>.oodle.ai/mcp/v1?discovery=full` | Every tool |
| `https://<deployment>.oodle.ai/mcp/v1?toolsets=logs,metrics` | All tools in the toolsets you list |

The toolsets are `logs`, `metrics`, `traces`, `alerts`, `grafana`, `rum`, `dbm`, `profiles`, `audit`, `utils`, `integrations`, `drop_rules`, `genai` and `skills`. To keep skill tools in a filtered connection, include `skills`, for example `?toolsets=genai,skills`.

You can also turn off individual tools on the server's **Tools** tab, or expose a subset of tools to a team through a [Virtual MCP Server](https://www.truefoundry.com/docs/ai-gateway/mcp/virtual-mcp-server.md).

## Connecting to an MCP Client

Open the **How To Use** tab on the Oodle server detail page for your tenant-specific Gateway URL and ready-to-paste snippets for Claude Code, VS Code, Cursor, Codex, and the Python and TypeScript MCP SDKs. Don't build the endpoint by hand.

## Self-hosted Control Planes

Oodle accepts the OAuth callback of every TrueFoundry tenant on `truefoundry.cloud`. If your control plane runs on its own domain, send your callback URL to [Oodle support](https://oodle.ai/contact-us) before users sign in. TrueFoundry shows it as **Redirect URL** under **Show details** in the **Create & Setup OAuth App** box of the OAuth2 form, and it has this format:

```txt theme={"dark"}
https://<tfy-control-plane-base-url>/api/svc/v1/llm-gateway/mcp-servers/oauth2/callback
```

## Troubleshooting

> [accordion] Callback URL mismatch at sign-in
>
> Your control plane is not on `truefoundry.cloud`, so Oodle does not know its callback URL yet. See [Self-hosted Control Planes](#self-hosted-control-planes).

> [accordion] Authorization URL and Token URL stay empty
>
> Check that `{{YOUR_DEPLOYMENT}}` in **URL** is replaced with `us1`, `eu1` or `ap1`. TrueFoundry does not fill in the sign-in URLs on its own if you entered other OAuth2 values, such as the client ID, before you changed the URL. Click **Show details** in the **Create & Setup OAuth App** box, then **Fetch OAuth2 details**, or enter the URLs from [Oodle Endpoints](#oodle-endpoints).

> [accordion] Sign-in fails after the Oodle login page
>
> Check that **Grant Type** is **Authorization Code** and that **Client Secret** is empty. Also check that the URLs and the client ID all belong to the same deployment: a client ID of one deployment does not work with the sign-in URLs of another.

> [accordion] Tools fail with an API key
>
> Check that the header name is exactly `X-API-KEY` and that the key belongs to the Oodle instance you want to query. With **Individual Credentials**, each user must add their own key on the **Auth Overrides** tab before the tools work for them.

> [accordion] Tools that change data fail
>
> Viewer keys and Viewer users can only use read-only tools. Use an Editor or Admin key, or ask an Oodle admin for a role with write access.

> [accordion] A tool I expect is not listed
>
> By default, Oodle lists only its most used tools. Ask the agent to use `search_tools`, or add `?discovery=full` or `?toolsets=...` to the URL. See [Choose Which Tools Are Listed](#choose-which-tools-are-listed).

## Related

* [Oodle's TrueFoundry guide](https://docs.oodle.ai/integrations/mcp/truefoundry): the setup from Oodle's side, including where to find the values for your deployment.
* [Send AI Gateway traces to Oodle](https://www.truefoundry.com/docs/ai-gateway/oodle.md): export AI Gateway traces and metrics to Oodle over OpenTelemetry.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.