NewAgent Observability is live.
Back to directory
Braintrust logo

Braintrust MCP server: 34 tools, led by SQL

An evaluation platform that hands an agent SQL over its own logs, what happens when a result is too large to return, and which tools write.

Connector
Official, hosted, US and EU
Coverage
Logs, experiments, datasets, prompts, evaluators, monitors
Tools
34 documented
Biggest risk for an agent
Write tools act with your account's own permissions

Last verified 27 August 2026 · from Braintrust's own MCP documentation and the official MCP registry

This page is one of 90 in a directory of monitoring and developer tools. Each page checks what an AI coding agent can get out of the tool through its MCP server, the connector that lets the agent query the tool directly.

Summary

Braintrust runs a hosted MCP server for its evaluation and observability platform. Its documentation lists 34 tools across nine categories, from exploring data to authoring evaluators and running evals.

The entry point is SQL. sql_query runs SELECT, FROM, WHERE, GROUP BY, ORDER BY and LIMIT over experiments, datasets and logs, and infer_schema discovers the fields to query.

Large results have a documented escape. When a result exceeds 1 MB, sql_query uploads it to object storage and returns an overflow envelope with a signed URL instead of inline rows.

What is the Braintrust MCP server?

It is Braintrust's server for the Model Context Protocol. Braintrust evaluates model output, so a connected agent reaches experiments, datasets, logs and the scorers that grade them.

The design is unusually query-first. Rather than a tool per report, three tools carry most of the weight: sql_query for arbitrary questions, infer_schema to find the fields, and summarize_experiment for aggregated metrics against a baseline.

The rest of the surface is authoring. An agent can create a prompt, create an evaluator, test it on a trace and then run an eval, which is a full loop rather than a read-only view.

It is strongest in agent observability, touches code and tests through evaluators, and reaches nothing in CI or production observability.

Part of the workWhat Braintrust has hereCan an agent reach it
Code, tests & reviewEvaluators and scorersPartial. Evaluators are tests for model output rather than for code, and they can be authored here
CI & releaseNoneNo pipeline or deployment tools
Production observabilityLogs from model callsPartial, and only for model traffic. There are no service metrics, no request logs and no traces
Agent observability & evalsExperiments, logs, monitors, automations, topicsYes. Core strength. Querying, monitoring and alerting on model behavior are all reachable
AI cost managementCost fields on logged requestsPartial. Cost is queryable through SQL where Braintrust recorded it; there is no billing surface

For an agent, Braintrust answers what your model did and how well it scored, and lets the agent write the next scorer. It has no view of the service around the model, so it pairs with a telemetry connector rather than replacing one.

What can an AI agent do with Braintrust?

TaskToolsWorksWatch out for
Ask an open question about logssql_query infer_schemaYesResults over 1 MB come back as an overflow envelope with a URL
Compare an experiment to a baselinesummarize_experimentYesAggregated metrics, optionally against a baseline you name
Find and share an objectlist_recent_objects resolve_object generate_permalinkYesgenerate_permalink produces a link rather than data
Build a monitor viewcreate_monitoring_view list_monitoring_views generate_monitor_chartYesCreating and updating views both write
Set up an alertcreate_log_alert create_threshold_alert create_environment_update_alertYesThese create live alerting that will notify people
Author and test a scorercreate_evaluator test_evaluator update_online_scoring_ruleYesupdate_online_scoring_rule changes scoring on live traffic
Run an eval and edit datarun_eval edit_dataset_rowsYesedit_dataset_rows changes the dataset an eval measures against

The documented order is infer_schema first, then sql_query. infer_schema returns the available fields, their data types and the most common values. The agent composes the SQL from that schema, so the first query names fields that exist.

34 tools documented across 9 categories

Explore your data3
sql_queryinfer_schemasummarize_experiment
Find and share objects3
list_recent_objectsresolve_objectgenerate_permalink
Configure Topics7Write
create_preprocessortest_preprocessor_on_tracecreate_facettest_facet_on_traceenable_topics_automationset_topics_automationrewind_topics_automation
Build monitor views5Write
generate_monitor_chartlist_monitoring_viewsget_monitoring_viewcreate_monitoring_viewupdate_monitoring_view
Automations and alerts6Write
list_automationsset_automation_statuscreate_log_alertcreate_threshold_alertcreate_environment_update_alertcreate_scheduled_loop_job
Prompts and evaluators4Write
create_promptcreate_evaluatortest_evaluatorupdate_online_scoring_rule
Evals and datasets2Write
run_evaledit_dataset_rows
Project settings2Write
get_project_settingsset_project_default_preprocessor
Docs and skills2
search_docsload_braintrust_skill

Groups are Braintrust's own category headings. Counts come from its documentation, read 24 August 2026; the hosted endpoint answers tools/list only after authenticating.

What connecting costs before the first question

A context window is the amount of text a model can hold at once. Thirty-four tools across nine categories arrive at connection, whether or not the agent calls one. On Claude that is 2,568 to 3,133 tokens; on the GPT encodings, 1,129 to 1,440.

Grouping does not reduce the bill. Braintrust sends all nine categories at connection, so the model reads nine sets of definitions before the first question.

Tool setToolsTokens (GPT-5.6, GPT-5.5)Tokens (GPT-4, GPT-3.5)Tokens (Claude Haiku 4.5 to Opus 5)Share of a 200,000-token window
Every tool documented341,129 to 1,4401,135 to 1,4462,568 to 3,1330.6% to 1.6%

Encodings: GPT-5.6, GPT-5.5 o200k_base; GPT-4, GPT-3.5 cl100k_base; Claude Haiku 4.5 to Opus 5 count_tokens. Counted from the 34 tool entries in the vendor's own documentation. That documentation is the only public inventory.

The server could not be run for a live tools/list. No input schemas are available, so these figures cover each tool's name and description only. They are a floor, not the figure.

The Claude columns are measured through the API's count_tokens endpoint with an empty schema per tool. So they cover the same content as the GPT columns. The range there is two tokenizer generations. Haiku 4.5 and Opus 4.6 are at the low end. Opus 5 and Sonnet 5 are at the high end. The gap between them is about a quarter.

Can Braintrust watch your own AI agents?

Partly. Braintrust covers scoring and offline experiments, and covers tracing, prompt versions and cost only in part. It is an evaluation product first, and the table below shows that. Read from Braintrust's own documentation on 24 August 2026.

SignalCoveredNotes
Trace and session trackingPartialTraces are reachable through sql_query, and test_preprocessor_on_trace and test_facet_on_trace act on one. There is no trace tree tool
Eval scores on recorded trafficYescreate_evaluator, test_evaluator and run_eval cover scoring, and update_online_scoring_rule reaches live traffic
Prompt version trackingPartialcreate_prompt exists. There is no version listing or tagging tool
Offline experimentsYessummarize_experiment, run_eval and edit_dataset_rows cover dataset-backed runs
Token and cost trackingPartialCost is queryable with sql_query where the platform recorded it. There is no cost tool

Braintrust MCP server limits: where answers come back incomplete

Both limits below are about a result that is smaller than it looks.

The agent says: The output field says this. It is truncated at 1024 characters.

Field values in a sql_query result are truncated to preview_length characters, which defaults to 1024. Setting it to -1 returns untruncated values.

A long model completion is therefore cut in the middle by default, and nothing in the value marks where.

Guard: Require the agent to say whether it raised preview_length before quoting a long field.

The agent says: The query returned nothing useful. It may have overflowed to a URL.

Above 1 MB, sql_query uploads the result to object storage and returns an envelope with an overflow_url rather than inline rows.

Guard: Have the agent report that the result overflowed, and name the byte_length before it fetches the overflow_url. The data leaves the MCP channel to object storage at that point.

The agent says: I have improved the scoring. That may affect live traffic.

update_online_scoring_rule changes how production requests are scored, and edit_dataset_rows changes the data an eval measures against. Both are documented write tools.

Guard: Configure the client to require confirmation before write tools run, which is Braintrust's own recommendation.

How to configure Braintrust MCP for agents

  1. 1

    Turn on confirmation for writes

    Braintrust's own documentation asks you to configure the client to require confirmation before a write tool runs.

  2. 2

    Understand the permission model

    Write tools act on your organization using the permissions of the authenticated account, so the account is the boundary.

  3. 3

    Plan for large results

    sql_query returns a signed URL rather than rows above 1 MB, and return_url: true requests that behavior deliberately.

  4. 4

    Pick the region

    The US endpoint is api.braintrust.dev/mcp and the EU endpoint is api-eu.braintrust.dev/mcp.

Paste this into your agent’s instructions

Field values are truncated by default and large results are replaced by a link, so an answer can rest on partial data without saying so.

Terminal
When you answer using Braintrust MCP tools, state:
- The SQL you ran, if the answer came from sql_query.
- Whether the result overflowed to a URL, or whether field
  values were truncated at the default preview length.
- Whether you created or updated anything: alerts, monitor
  views, evaluators, prompts or dataset rows.
Never state that data does not exist. State that the query
above returned no rows.
Write your answer in ASD-STE100 Simplified Technical
English. Use short sentences with one idea in each.

Do you need the MCP server at all?

Yes, when the questions are open ended. For a fixed report, Braintrust's API or SDK avoids the connector entirely.

The connector earns its place because it hands the agent SQL. An open query language over logs and experiments is not something a fixed set of endpoints reproduces.

For tracing model calls rather than evaluating them, Langfuse and Arize Phoenix cover that ground with their own connectors.

Connect it for open questions over evaluation data. Use the API for a report you already know how to shape.

Braintrust MCP server setup

The server is hosted, so there is nothing to install. Braintrust documents OAuth and an API key.

The registry entry carries a region variable, which is why the US and EU endpoints differ only by a hostname segment.

Claude Code

No credentials appear here when using OAuth: the client opens a browser to authorize on first connection.

Terminal
claude mcp add --transport http braintrust \
  https://api.braintrust.dev/mcp

Cursor

In ~/.cursor/mcp.json. Authorization runs in the browser; nothing is stored in the file.

Terminal
{"mcpServers":{"braintrust":{
  "url":"https://api.braintrust.dev/mcp"}}}

Codex CLI

Codex reads TOML, so the JSON blocks above will not transfer. OAuth still runs in a browser.

Terminal
[mcp_servers.braintrust]
url = "https://api.braintrust.dev/mcp"

Every other client

Each block below is the configuration for one client, with the file path and the key that client expects.

Claude Desktop

macOS ~/Library/Application Support/Claude/claude_desktop_config.json. Windows %APPDATA%\Claude\claude_desktop_config.json. There is no CLI. Edit through Settings, Developer, Edit Config.

Quit and restart fully for changes to load. Paths in args must be absolute. Logs at ~/Library/Logs/Claude/mcp.log.

No credentials appear in the file. The client opens a browser to authorize with OAuth on first connection.

Terminal
{"mcpServers":{"braintrust":{"url":"https://api.braintrust.dev/mcp"}}}
Gemini CLI

~/.gemini/settings.json globally, or .gemini/settings.json per project. Key mcpServers. CLI: gemini mcp add.

No credentials appear in the file. The client opens a browser to authorize with OAuth on first connection.

Terminal
{"mcpServers":{"braintrust":{"url":"https://api.braintrust.dev/mcp"}}}
VS Code Copilot

.vscode/mcp.json per workspace, or your user profile. CLI: code --add-mcp.

No credentials appear in the file. The client opens a browser to authorize with OAuth on first connection.

Terminal
{"servers":{"braintrust":{"url":"https://api.braintrust.dev/mcp"}}}

The key is `servers`, not `mcpServers`. VS Code is the only client that uses that name, and copying a config from anywhere else fails silently.

Windsurf

~/.codeium/windsurf/mcp_config.json, which is the path Windsurf documents. Key mcpServers, the same JSON shape as Cursor, carrying the same credential.

Zed

~/.config/zed/settings.json, carrying the same credential as the blocks above.

The key is `context_servers`. Zed does not call them MCP servers in config, so searching its settings for mcp finds nothing.

Google Antigravity

~/.gemini/config/mcp_config.json globally, or .agents/mcp_config.json per project. Key mcpServers. There is no CLI. Use the /mcp overlay in the editor. Supports stdio, streamable HTTP, SSE and websocket.

No credentials appear in the file. The client opens a browser to authorize with OAuth on first connection.

Terminal
{"mcpServers":{"braintrust":{"url":"https://api.braintrust.dev/mcp"}}}
Amp (Sourcegraph)

~/.config/amp/settings.json or .amp/settings.json, carrying the same credential. The amp mcp CLI covers approve, doctor and oauth.

The key is `amp.mcpServers`, namespaced. A bare mcpServers block is ignored.

Cline

~/.cline/mcp.json per the docs. The source also reads ~/.cline/data/settings/cline_mcp_settings.json. Key mcpServers, standard JSON shape, carrying the same credential. Supports stdio, streamable HTTP and SSE.

Goose (Block)

~/.config/goose/config.yaml, carrying the same credential.

YAML, and servers are called `extensions`. Goose does not use the MCP vocabulary in config at all. Add one interactively with goose configure, or per session with goose session --with-extension.

Kiro (AWS)

.kiro/settings/mcp.json per workspace, or ~/.kiro/settings/mcp.json globally. Key mcpServers, standard JSON shape, carrying the same credential.

Warp

~/.warp/.mcp.json or .warp/.mcp.json. Key mcpServers, standard shape, carrying the same credential. Also addable through the /agent-add-mcp skill.

JetBrains Junie

.junie/mcp/mcp.json per project, or ~/.junie/mcp/mcp.json. Key mcpServers, carrying the same credential. Use /mcp in the CLI to manage.

Roo Code

.roo/mcp.json per project. The global file is mcp_settings.json, opened from the Roo Code MCP settings view with Edit Global MCP. Key mcpServers, carrying the same credential.

Continue

.continue/mcpServers/*.yaml, one file per server, carrying the same credential.

YAML, and `mcpServers` is a list, not an object. Every JSON client keys servers by name. Continue takes an array, so a converted config will not parse.

Trae

.trae/mcp.json per project, or paste into the UI under Raw Config (JSON). Key mcpServers, standard shape, carrying the same credential.

Devin

Devin has no config file to edit. Servers are added through a web form in the settings UI, and Devin's documentation states you do not need to write or paste JSON. The block below is the shape those fields describe, shown for reference. Either route uses the same credential.

API key

For clients that cannot complete a browser flow, the key travels as a bearer token.

Terminal
{"mcpServers":{"braintrust":{
  "url":"https://api.braintrust.dev/mcp",
  "headers":{"Authorization":"Bearer <your-key>"}}}}
EU region

A separate deployment. The same OAuth or API key flow authorizes it.

Terminal
{"mcpServers":{"braintrust":{
  "url":"https://api-eu.braintrust.dev/mcp"}}}

Read-only access, permissions and security

  • Most of the surface writes

    Alerts, monitor views, evaluators, prompts, preprocessors, project settings and dataset rows are all creatable or editable from this connector.

  • Braintrust asks for confirmation explicitly

    Its documentation warns that write tools act with the authenticated account's permissions and recommends client confirmation before any write runs.

  • update_online_scoring_rule touches live traffic

    Changing an online scoring rule changes how production requests are graded.

  • Query results can leave through a URL

    Above 1 MB, sql_query uploads the result to object storage and returns a signed link.

Troubleshooting

A query returns a URL instead of rows
The result exceeded 1 MB. The envelope carries an overflow_url, a byte_length, a row_count where available and instructions for retrieving the full result.
Field values look cut off
Values are truncated to preview_length characters, 1024 by default. Set preview_length: -1 to include untruncated values.
A first query fails on unknown fields
Call infer_schema first. It returns available fields, data types and the most common values for experiments, datasets or logs.
A write tool is refused
Write tools use the permissions of the authenticated account. Check what that account can do in the Braintrust organization.

Braintrust MCP server: Reference

ItemValue
Endpointsapi.braintrust.dev/mcp (US) · api-eu.braintrust.dev/mcp (EU)
Registryio.github.braintrustdata/braintrust in the official MCP registry
AuthOAuth, or an API key as a bearer token
Tools34 documented, across 9 categories
Query toolsql_query, with SELECT, FROM, WHERE, GROUP BY, ORDER BY and LIMIT
Overflow threshold1 MB, returning a signed URL
Default truncationpreview_length of 1024 characters
Inventory sourceBraintrust's own documentation, read 24 August 2026

What engineers report

The documentation is specific about limits, so the figures below are its own.

What was checkedWhat it shows
Documented tools34
Documented categories9
Overflow threshold1 MB
Default preview length1024 characters
Regions2: US and EU

Tool inventory and limits read from Braintrust's own MCP documentation on 24 August 2026. An unauthenticated tools/list against api.braintrust.dev/mcp returned 401 on 27 August 2026, which is why this page is sourced from documentation rather than from the wire. The registry entry was read from the official MCP registry.

Should you connect an agent to Braintrust?

Yes. Best for OAuth with write confirmation on, and infer_schema called before the first query.

Strongest fit
Braintrust users who want an agent to ask open questions of their evaluation data rather than open a dashboard.
Main advantage
SQL over experiments, datasets and logs, with a documented path for results too large to return inline.
Main weakness
Most of the surface writes, so the connector needs client confirmation configured to be safe.
Operational risk
Alerts, online scoring rules and dataset rows are all editable with the authenticated account's permissions.

From Oodle

One platform for agent traces and infrastructure

Agent traces usually sit in a different product from the rest of your telemetry, so when a slow database makes an agent slow the symptom is in one tool and the cause is in another. Oodle keeps both in one query surface, from $10 per million spans.

See agent observability

Frequently asked questions

How many tools does the Braintrust MCP server have?

34 documented across 9 categories, read from Braintrust's own documentation on 24 August 2026, because the hosted endpoint answers tools/list only after authenticating.

Can an agent run SQL?

Yes. sql_query supports SELECT, FROM, WHERE, GROUP BY, ORDER BY and LIMIT over experiments, datasets and logs.

What happens to a very large result?

Above 1 MB it is uploaded to object storage and returned as an overflow envelope with a signed URL, a byte length and retrieval instructions.

Which tools change things?

Most of them. Alerts, monitor views, evaluators, prompts, preprocessors, project settings and dataset rows are all writable, using your account's permissions.

Is there an EU endpoint?

Yes, api-eu.braintrust.dev/mcp, alongside the US endpoint at api.braintrust.dev/mcp.

Changelog

  • 30 April 2026. io.github.braintrustdata/braintrust version 1.0.0 published to the MCP registry.

Sources

Every number on this page traces to one of these

  1. Braintrust MCP documentation, read 24 August 2026
  2. Official MCP registry entry io.github.braintrustdata/braintrust
  3. The hosted endpoint's own 401 response to an unauthenticated tools/list, observed 27 August 2026

Braintrust’s own MCP documentation

Also agent observability:

For the service around the model: