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:
- Connect the Oodle MCP server: add Oodle to the MCP Gateway, so every agent behind the gateway can query all your telemetry in Oodle.
- Push AI Gateway telemetry to Oodle: send the traces and metrics of every request through the gateway to Oodle over OpenTelemetry.
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
Configuration with OAuth (Recommended)
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:
| Field | Value |
|---|---|
| URL | https://YOUR_DEPLOYMENT.oodle.ai/mcp/v1 |
| Authorization URL | https://YOUR_AUTH_DOMAIN/authorize |
| Token URL | https://YOUR_AUTH_DOMAIN/oauth/token |
| Client ID | The 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.
Step 2: Fill in the form
The numbers match the numbers in the screenshot.
- Set Name to
oodle-ai. - Set Description to
Oodle MCP server. - Set URL to the Oodle MCP URL of your deployment.
- Turn on Auth Data.
- Select OAuth2, and set OAuth Provider to Custom.
- Set Grant Type to Authorization Code.
- Set Authorization URL to the value from the tile.
- Set Token URL to the value from the tile.
- Set Client ID to the value from the tile. Leave Client Secret and Registration URL empty, and keep JWT Source as Access Token.
- Click Add 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.
- Set Name to
oodle-ai. - Set Description to
Oodle MCP server. - Set URL to the Oodle MCP URL of your deployment.
- Turn on Auth Data.
- 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.
- Set the header name to
X-API-KEY. - Set the header value. For Shared Credentials, enter the Oodle API key.
For Individual Credentials, enter
{{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:
| Deployment | Export from | Signals |
|---|---|---|
| SaaS | The control plane | Traces and metrics |
| Hybrid | The gateway plane, and the control plane for metrics | Traces and metrics |
| On-prem | Either of the two | Traces 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:
| Field | Value |
|---|---|
| Traces endpoint | https://<OTLP_ENDPOINT>/v1/traces |
| Encoding | proto |
Click + Add Headers and add these two headers:
| Header | Value |
|---|---|
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:
| Field | Value |
|---|---|
| Metrics endpoint | https://<OTLP_ENDPOINT>/v1/metrics |
| Encoding | proto |
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/tracesfor traces and in/v1/metricsfor metrics. - Make sure that both headers are set. Oodle refuses a request without
X-API-KEYorX-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:
- Email at [email protected]