Skip to main content

TrueFoundry

The TrueFoundry AI Gateway gives your agents one access point to models and MCP servers. Oodle works with it in two ways. Each works on its own:

The TrueFoundry tile on the ap1, us1 page has a tab for each, with the values for your deployment filled in.

Connect the Oodle MCP server​

Prerequisites​

  • A TrueFoundry tenant with access to the MCP Gateway
  • An active Oodle instance

With OAuth, each user signs in with their own Oodle account, so each agent sees only the data that its user can see. No API key is stored in the gateway.

Get your values​

Open Integrations in Oodle, select the TrueFoundry tile, and open the Connect Oodle MCP Server tab. Its OAuth tab gives the exact values for your deployment, each with a copy button:

FieldValue
URLhttps://YOUR_DEPLOYMENT.oodle.ai/mcp/v1
Authorization URLhttps://YOUR_AUTH_DOMAIN/authorize
Token URLhttps://YOUR_AUTH_DOMAIN/oauth/token
Client IDThe Oodle OAuth client ID of your deployment

You can add the server in the TrueFoundry UI or with a YAML spec.

In the TrueFoundry UI​

Step 1: Select the server type​

In TrueFoundry, open MCP Gateway, click Add MCP Server, and select Connect any Remote MCP Server.

Add new MCP Server in TrueFoundry, with Connect any Remote MCP Server selected
Step 2: Fill in the form​

The numbers match the numbers in the screenshot.

  1. Set Name to oodle-ai.
  2. Set Description to Oodle MCP server.
  3. Set URL to the Oodle MCP URL of your deployment.
  4. Turn on Auth Data.
  5. Select OAuth2, and set OAuth Provider to Custom.
  6. Set Grant Type to Authorization Code.
  7. Set Authorization URL to the value from the tile.
  8. Set Token URL to the value from the tile.
  9. Set Client ID to the value from the tile. Leave Client Secret and Registration URL empty, and keep JWT Source as Access Token.
  10. Click Add MCP Server.
The TrueFoundry form filled in for the Oodle MCP server

The first time a user calls an Oodle tool, the gateway asks them to sign in to Oodle and select their organization.

Apply using YAML​

Use this method to keep the server definition in version control.

Step 1: Set up the TrueFoundry CLI​
pip install -U "truefoundry"
tfy login --host https://YOUR_TENANT.truefoundry.cloud
Step 2: Save the spec​

Save this as oodle-ai.yaml. The tile in Oodle gives this spec with your values filled in.

type: mcp-server/remote
name: oodle-ai
description: Oodle MCP server
url: https://YOUR_DEPLOYMENT.oodle.ai/mcp/v1
auth_data:
type: oauth2
provider: custom
grant_type: authorization_code
authorization_url: https://YOUR_AUTH_DOMAIN/authorize
token_url: https://YOUR_AUTH_DOMAIN/oauth/token
client_id: YOUR_CLIENT_ID
jwt_source: access_token
Step 3: Create or update the server​
tfy apply -f oodle-ai.yaml

Configuration with API Key​

The gateway can also send an Oodle API key with each request.

Step 1: Select the server type​

In TrueFoundry, open MCP Gateway, click Add MCP Server, and select Connect any Remote MCP Server.

Step 2: Fill in the form​

The numbers match the numbers in the screenshot.

  1. Set Name to oodle-ai.
  2. Set Description to Oodle MCP server.
  3. Set URL to the Oodle MCP URL of your deployment.
  4. Turn on Auth Data.
  5. Select API Key, and choose how the gateway gets the key:
    • Shared Credentials: every user of the gateway shares one Oodle API key.
    • Individual Credentials: each user adds their own Oodle API key under Auth Overrides on the server page, so each agent sees only the data of its user.
  6. Set the header name to X-API-KEY.
  7. Set the header value. For Shared Credentials, enter the Oodle API key. For Individual Credentials, enter {{API_KEY}}.
The TrueFoundry form filled in with an Oodle API key

Click Add MCP Server.

The API Key tab of the tile in Oodle gives the URL and your API key, each with a copy button.

Available Tools​

The Oodle MCP server provides comprehensive observability tools across the following categories:

Logs​

Query and filter logs with flexible time ranges and field-based filtering. Discover available fields and run aggregations to analyze log patterns.

Metrics​

Execute PromQL queries to access your metrics data. Search for metrics, explore labels, and validate queries.

Traces​

Search distributed traces by service, operation, or custom tags. Retrieve specific trace details and explore available trace attributes.

Alerts​

Access active alerts, view monitor configurations, and check historical trigger data to understand your alerting landscape.

Grafana​

Interact with Grafana dashboards programmatically. Search, retrieve, update dashboards, and query panel data directly. Dashboard write operations (save/update) require an Editor or Admin API key.

RUM (Real User Monitoring)​

Query user sessions, browse session events, and investigate frontend issues and errors reported by the RUM SDK.

Integrations​

Discover available integrations and retrieve setup specifications for onboarding new data sources.

Push AI Gateway telemetry to Oodle​

The AI Gateway exports OpenTelemetry traces and metrics to any OTLP endpoint. Point it at Oodle, and you see each request through the gateway next to the rest of your telemetry. TrueFoundry keeps its own copy, so nothing changes in the TrueFoundry UI.

How you export depends on your deployment:

DeploymentExport fromSignals
SaaSThe control planeTraces and metrics
HybridThe gateway plane, and the control plane for metricsTraces and metrics
On-premEither of the twoTraces and metrics

Prerequisites​

You will need:

  • OODLE_INSTANCE: your Oodle instance ID (ap1, us1)
  • OODLE_API_KEY: an Oodle API key (ap1, us1)
  • OTLP_ENDPOINT: your Oodle OTLP endpoint, <OODLE_INSTANCE>-otlp.collector.oodle.ai

The Push AI Gateway Telemetry to Oodle tab of the TrueFoundry tile gives these values filled in for you.

From the control plane​

An admin sets this up once in the TrueFoundry UI.

Step 1: Open the OTEL Config​

Go to AI Gateway > Controls > Settings in TrueFoundry. In the OTEL Config section, click the edit button.

Step 2: Export traces​

Turn on OTEL Traces Exporter Configuration and select HTTP Configuration. Then fill in:

FieldValue
Traces endpointhttps://<OTLP_ENDPOINT>/v1/traces
Encodingproto

Click + Add Headers and add these two headers:

HeaderValue
X-OODLE-INSTANCE<OODLE_INSTANCE>
X-API-KEY<OODLE_API_KEY>

Step 3: Export metrics​

To send the gateway metrics too, turn on OTEL Metrics Exporter Configuration and select HTTP Configuration. Then fill in:

FieldValue
Metrics endpointhttps://<OTLP_ENDPOINT>/v1/metrics
Encodingproto

Add the same two headers as in step 2. Keep Export Delta Metrics off: Oodle reads cumulative counters and histograms.

Step 4: Save​

Click Save. Send a request through the gateway, then look for its trace in the Oodle trace explorer (ap1, us1).

From the gateway plane​

The OTEL buffer runs next to the AI Gateway in your gateway plane. It keeps the gateway traces on disk and sends them to the TrueFoundry control plane and to each additional sink. Add Oodle as a sink, and the traces go to Oodle directly from your cluster, also when the control plane is briefly not reachable. The buffer sends traces. Send the gateway metrics with the control plane export.

Step 1: Store the Oodle API key in a Secret​

The buffer reads sink credentials from the tfy-otel-buffer-sink-credentials Secret, so the key is not in your values file:

kubectl create secret generic tfy-otel-buffer-sink-credentials -n truefoundry \
--from-literal=OODLE_API_KEY='<OODLE_API_KEY>'

If the Secret exists already, add the OODLE_API_KEY key to it instead.

Step 2: Add the Oodle sink​

Add this to your truefoundry-values.yaml:

tfy-llm-gateway:
tfy-otel-buffer:
additionalSinks:
oodle:
type: opentelemetry
protocol:
type: http
uri: https://<OTLP_ENDPOINT>/v1/traces
method: post
compression: gzip
encoding:
codec: otlp
request:
headers:
X-OODLE-INSTANCE: "<OODLE_INSTANCE>"
X-API-KEY: "SECRET[additional_sink_credentials.OODLE_API_KEY]"

Keep compression: gzip. An AI Gateway span holds the full prompt and response, so a batch of spans without compression can be larger than Oodle accepts in one request.

Step 3: Apply the values​

Apply the values with your usual helm upgrade. Then restart the buffer, so it reads the new Secret:

kubectl rollout restart statefulset tfy-otel-buffer -n truefoundry

Send a request through the gateway, then look for its trace in the Oodle trace explorer (ap1, us1). The traces are now in TrueFoundry and in Oodle.

Troubleshooting​

MCP server​

"Callback URL mismatch" at sign-in​

Oodle accepts the gateway callback of every TrueFoundry tenant on truefoundry.cloud. If your control plane runs on its own domain, contact Oodle support with your callback URL. TrueFoundry shows it as Redirect URL at the top of the OAuth2 form.

Sign-in fails after the login page​

Make sure that Grant Type is Authorization Code and that Client Secret is empty. The Oodle OAuth client accepts only the authorization code grant.

Tools fail with an API key​

Make sure that the header name is exactly X-API-KEY. With Individual Credentials, each user must add their own key under Auth Overrides before the tools work for them.

Telemetry export​

No traces in Oodle​

  • Make sure that the endpoint is the full signal URL: it ends in /v1/traces for traces and in /v1/metrics for metrics.
  • Make sure that both headers are set. Oodle refuses a request without X-API-KEY or X-OODLE-INSTANCE.
  • In the gateway plane, the buffer reads the Secret only when it starts. After you add or change a key, restart the buffer: kubectl rollout restart statefulset tfy-otel-buffer -n truefoundry.
  • The gateway plane sends OTLP over HTTP, so keep protocol.type: http.

Support

If you need assistance or have any questions, please reach out to us through: