Skip to main content
The Braintrust MCP server is a hosted Model Context Protocol (MCP) server that lets AI tools read and write your Braintrust data directly. Query production logs, author prompts and scorers, configure monitoring, and run evals from Claude Code, Cowork, Cursor, Codex, VS Code, and any other MCP-compatible client.
Which one you want depends on what your tool can access and where the work needs to run.
  • MCP: Best when your AI tool can connect to Braintrust but has no authenticated shell, which is common in chat applications. It also fits when you want an assistant to reason over your Braintrust data and take several connected actions in one conversation, without installing and maintaining a CLI in its execution environment.
  • bt CLI: Best for repeatable work in scripts, CI, local files, and shell pipelines, where you want deterministic commands instead of an assistant’s judgment. Coding agents with shell access can call those commands too.
If your tool supports both, either one works. Pick whichever is more reliable for the task at hand.

Connect your client

The server is remote, so there is nothing to install or deploy. Point your client at your MCP endpoint and authenticate with OAuth or an API key.
1

Install Claude Code

If you haven’t already, install the Claude Code CLI or the Claude Code desktop app.
2

Add the Braintrust MCP server

To connect Claude Code to the Braintrust MCP server, Braintrust previously published a braintrust plugin. However, the plugin has been retired in favor of Claude Code’s native MCP configuration. If you installed the plugin, remove it before configuring the direct connection below.Check whether the plugin is still installed:
If braintrust@braintrust-claude-plugin appears in the list, use its scope value to remove it:
If it appears at more than one scope, repeat the command for each scope. Keep the marketplace if you use the trace-claude-code tracing plugin.
From the terminal, configure Claude Code’s connection to the Braintrust MCP server. Choose whether to make it available only in the current project or across all of your projects:
Claude stores this local-scope configuration in ~/.claude.json under the current project’s path.
Both scopes work in the Claude Code CLI and in local Code-tab sessions of the desktop app. They do not apply to standard Chat or Cowork, which use connectors.These commands add the server but do not authenticate it. See Authentication for API-key setup and Endpoints for EU and self-hosted URLs.
3

Authenticate

Start the OAuth flow:
MCP authentication is separate from bt login, which authenticates the CLI and tracing integration.
4

Verify the connection

Open or restart Claude Code in the interface you use:
  • CLI: Start Claude Code and run /mcp to confirm that the Braintrust server is connected.
  • Code tab: Start a local session. For local scope, open the project where you ran claude mcp add. For user scope, open any project.
Ask Claude Code to list your recent Braintrust projects and confirm that it uses the Braintrust MCP server.
Follow Anthropic’s remote custom connector instructions using the Braintrust connection details below.
Team and Enterprise organizations require an Owner or Primary Owner to add the connector before members connect their individual accounts.
1

Choose the Braintrust endpoint

Use the MCP endpoint for your Braintrust organization. The default US endpoint is:
For EU and self-hosted organizations, find the appropriate URL under MCP endpoints.
2

Add the remote connector

Add a remote custom connector using Anthropic’s instructions. Provide these values when prompted:
  • Name: Braintrust
  • Remote MCP server URL: The endpoint from the previous step.
  • Authentication: OAuth. Braintrust supports dynamic client registration, so you do not need to provide an OAuth client ID or client secret.
3

Authenticate and verify the connection

Follow Anthropic’s instructions to connect your Braintrust account and make the connector available to Cowork. Complete the Braintrust OAuth flow when prompted.Ask Cowork to list your recent Braintrust projects. Confirm that Cowork uses the Braintrust connector and returns projects your account can access.
These instructions cover standard Chat in the Claude desktop app. For the Code tab, follow Claude Code setup. For Cowork, follow Cowork setup.
Team and Enterprise organizations require an Owner or Primary Owner to add the connector before members connect their individual accounts.
1

Install Claude Desktop

If you haven’t already, download and install Claude Desktop.
2

Add the Braintrust MCP server

Follow the Claude Desktop documentation to create a custom connector with the following details:
  • Name: Braintrust.
  • Remote MCP server URL: https://api.braintrust.dev/mcp. For EU and self-hosted organizations, use your MCP endpoint.
  • Authentication: OAuth. Braintrust supports dynamic client registration, so you do not need to provide an OAuth client ID or client secret.
3

Authenticate and verify the connection

Follow Anthropic’s instructions to connect your Braintrust account and make the connector available to Chat. Complete the Braintrust OAuth flow when prompted.Ask Claude to list your recent Braintrust projects. Confirm that it uses the Braintrust connector and returns projects your account can access.
1

Install Codex

If you haven’t already, install the Codex CLI.
2

Add the Braintrust MCP server

To connect Codex to the Braintrust MCP server, Braintrust previously published a braintrust plugin. However, the plugin has been retired in favor of Codex’s native MCP configuration. If you installed the plugin, remove it before configuring the direct connection below.Check whether the plugin is still installed:
If braintrust@braintrust-codex-plugins appears in the installed plugins, remove it:
Keep the marketplace if you use the trace-codex tracing plugin.
From the terminal, configure Codex’s connection to the Braintrust MCP server:
See Authentication for API-key setup and Endpoints for EU and self-hosted URLs.
3

Authenticate

Complete the browser sign-in if Codex starts an OAuth flow when you add the server. Otherwise, start it with:
MCP authentication is separate from bt login, which authenticates the CLI and tracing integration.
4

Verify the connection

Open or restart Codex and run /mcp to confirm that the Braintrust server is connected. Ask Codex to list your recent Braintrust projects and confirm that it uses the Braintrust MCP server.
The Braintrust extension for Cursor automatically configures the MCP server for you. If you’ve installed that extension, you don’t need to configure MCP separately. For EU or self-hosted deployments, follow the extension’s API URL setup instructions.
1

Install Cursor

If you haven’t already, download and install Cursor.
2

Add the Braintrust MCP server

For the US data plane, click to automatically add the Braintrust MCP server: Add to CursorFor EU or self-hosted deployments, use the manual configuration below and replace the URL as described after the example. You can also use this configuration for the US data plane. Add it to .cursor/mcp.json:
Replace YOUR_BRAINTRUST_API_KEY with your actual API key.For EU data-plane organizations, replace https://api.braintrust.dev/mcp with https://api-eu.braintrust.dev/mcp. For self-hosted Braintrust, use the MCP URL shown in Settings > Data plane.Cursor also supports OAuth authentication. If you omit the headers field, Cursor will prompt you to authenticate via OAuth when you first use the server.
1

Install VS Code

If you haven’t already, download and install Visual Studio Code.
2

Install an AI assistant extension

VS Code requires an AI assistant extension that supports the Model Context Protocol (MCP). Popular options include:Install one of these extensions from the VS Code marketplace.
3

Add the Braintrust MCP server

Add the Braintrust MCP server to your VS Code settings, either in workspace settings or user settings:
  • Workspace settings - Create or edit .vscode/mcp.json in your project:
  • User settings - Add to your VS Code user settings (Cmd+, / Ctrl+, → Search for “mcp”):
Replace YOUR_BRAINTRUST_API_KEY with your actual API key.VSCode also supports OAuth authentication. If you omit the headers field, VSCode will prompt you to authenticate via OAuth when you first use the server.
4

Restart VS Code

Reload the VS Code window (Cmd+R / Ctrl+R) or restart VS Code to apply the configuration.
1

Install Devin Desktop

If you haven’t already, install Devin Desktop.
2

Add the Braintrust MCP server

Edit ~/.codeium/windsurf/mcp_config.json and add the Braintrust server:
Replace YOUR_BRAINTRUST_API_KEY with your actual API key.
3

Restart Devin Desktop

Close and reopen Devin Desktop to load the new MCP server configuration.
1

Install Gemini CLI

If you haven’t already, install Gemini CLI.
2

Set your API key

Set the BRAINTRUST_API_KEY environment variable with your API key:
3

Add the Braintrust MCP server

Edit ~/.gemini/settings.json and add the Braintrust MCP server configuration:
Replace YOUR_BRAINTRUST_API_KEY with your actual API key.
4

Verify the setup

Launch Gemini CLI and run the /mcp command to confirm the Braintrust server is connected.
1

Install Antigravity

If you haven’t already, install the Antigravity CLI.
2

Add the Braintrust MCP server

From the terminal, configure Antigravity’s connection to the Braintrust MCP server:
See Endpoints for EU and self-hosted URLs.
3

Authenticate

In an agy session, enter /mcp, select the Braintrust MCP server, and press Enter. Choose Authenticate and complete the sign-in in your browser.MCP authentication is separate from bt login, which authenticates the CLI and tracing integration.
4

Verify the connection

In Antigravity, ask it to list your recent Braintrust projects and confirm that it uses the Braintrust MCP server.
1

Install Grok

If you haven’t already, install the Grok CLI.
2

Add the Braintrust MCP server

From the terminal, configure Grok’s connection to the Braintrust MCP server:
Grok stores this configuration in ~/.grok/config.toml. To configure only the current project, add --scope project to write .grok/config.toml instead. See Grok’s MCP documentation for scope and configuration details.See Authentication for API-key setup and Endpoints for EU and self-hosted URLs.
3

Authenticate

In Grok, enter /mcps, select the Braintrust MCP server, and press i to start OAuth authentication. Complete the sign-in in your browser.MCP authentication is separate from bt login, which authenticates the CLI and tracing integration.
4

Verify the connection

Run grok mcp doctor braintrust to check the connection. In Grok, ask it to list your recent Braintrust projects and confirm that it uses the Braintrust MCP server.
1

Install Zed

If you haven’t already, install Zed.
2

Add the Braintrust MCP server

Open your Zed settings (Cmd+, on macOS / Ctrl+, on Windows/Linux) and add the Braintrust server under context_servers:
Replace YOUR_BRAINTRUST_API_KEY with your actual API key.If you omit the headers field, Zed prompts you to authenticate via OAuth when you first use the server.
3

Verify the setup

Open the Agent Panel settings and confirm the Braintrust server appears in the context servers list with a green indicator.
1

Install Amp

If you haven’t already, install Amp.
2

Add the Braintrust MCP server

Edit ~/.config/amp/settings.json and add the Braintrust server under amp.mcpServers:
Replace YOUR_BRAINTRUST_API_KEY with your actual API key.
3

Verify the setup

Restart Amp, then run amp mcp list to confirm the Braintrust server is connected.
For automatic tracing of OpenCode sessions, consider the Braintrust plugin for OpenCode.
1

Install OpenCode

If you haven’t already, install OpenCode.
2

Add the Braintrust MCP server

Add the Braintrust MCP server to your OpenCode configuration file, preserving any existing settings and servers:
See Endpoints for EU and self-hosted URLs.
3

Authenticate

Start OAuth authentication from the terminal:
Complete the sign-in in your browser. See OpenCode’s MCP authentication documentation for details.MCP authentication is separate from bt login, which authenticates the CLI and tracing integration.
4

Verify the connection

Run opencode mcp list to check the connection. Restart OpenCode, then ask it to list your recent Braintrust projects and confirm that it uses the Braintrust MCP server.
pi does not include built-in MCP support. If you add MCP through a third-party adapter, follow its configuration instructions using your Braintrust MCP endpoint and a supported authentication method.
1

Install Warp

If you haven’t already, download and install Warp.
2

Add the Braintrust MCP server

Open Warp and navigate to Settings > AI > MCP Servers. Add a new server with the following details:
  • Name: Braintrust
  • URL: https://api.braintrust.dev/mcp
  • Header: Authorization: Bearer YOUR_BRAINTRUST_API_KEY
Replace YOUR_BRAINTRUST_API_KEY with your actual API key.
3

Verify the setup

Once added, the Braintrust MCP server will be available in Warp’s AI agent. You can verify the connection from the MCP Servers settings page.
Any MCP-compatible client can connect to the Braintrust MCP server. Most clients that support remote MCP servers accept a URL and optional headers. Point the client at your MCP endpoint and authenticate with OAuth or an API key. Refer to your client’s documentation for where to configure these.

What the MCP can do

Your assistant works with the data and objects in your Braintrust organization, and it chains several tools in one turn. Suppose a support chatbot starts making claims about your product that aren’t true. In a single conversation, your assistant can:
  1. Query recent logs to find examples of the behavior.
  2. Write an evaluator that detects the unsupported claims, and test it against those traces before saving it.
  3. Add the failing cases to a regression dataset, with the corrected responses as the expected output.
  4. Run an eval comparing the current prompt against a proposed fix.
Each step produces a real Braintrust object, and your assistant returns a permalink so you can inspect or share it. Each capability below lists the tools behind it, and Tools describes every tool in one place.
Write tools act on your Braintrust organization using the permissions of your authenticated account. Configure your MCP client to require confirmation before it runs a write tool.

Install the Braintrust SDK

Before you can query anything, your application has to send traces to Braintrust. Your assistant handles that setup: it detects your programming language and frameworks, installs the appropriate SDK, and configures auto-instrumentation. Once complete, it runs your app, verifies traces are being logged, and provides a permalink to view them in Braintrust. Example prompts:
See Trace LLM calls for what auto-instrumentation covers. Resource: docs://sdk-install.

Explore your data

Your assistant can answer questions about what your application actually did. It queries logs, experiments, and datasets with SQL, discovers the fields and value distributions in a data source before writing a query, and pulls aggregated metrics for an experiment with or without a baseline to compare against. Because it reads the same data the UI shows, you can investigate a production issue without switching to a browser. When a query returns more than 1 MB, sql_query returns a signed URL to the full result instead of inline rows, so your assistant can work with production-scale results without filling its context window. See Tools for how to control that behavior. Example prompts:
See SQL for query syntax, and View logs for the equivalent in the UI. Tools: sql_query, infer_schema, summarize_experiment.

Find and share objects

Most Braintrust tools take an object ID, so your assistant finds the right project, experiment, or dataset by name and translates between names and IDs on its own. It usually does this as a step inside a larger request rather than as something you ask for. When you want to hand a result to someone else, it produces a direct link to the object. It can also reverse the lookup, finding a person’s traces from their name or email. Example prompts:
Tools: list_recent_objects, resolve_object, generate_permalink, lookup_users, lookup_api_keys.

Analyze traces

A long agent trace is hard to follow span by span. Your assistant partitions a single trace into chronological work sections and annotates each one, so you can see what a run actually did and where it spent its time. Example prompts:
Tools: get_trace_work_items, update_trace_work_report.

Manage patterns

Patterns record the recurring behaviors your traces reveal, so an investigation doesn’t have to start over each time. Your assistant checks what has already been reported, catching duplicates that use different wording, adds a new pattern with supporting evidence, and attaches further evidence as it turns up. Example prompts:
Tools: search_patterns, new_pattern, update_pattern.

Configure Topics

Topics preprocesses traces into text, extracts facets from that text, and clusters the results to show what your users actually do. Your assistant builds that pipeline for you: it writes a preprocessor that matches your trace shape, tests it against real traces before saving, defines the facets to extract, and enables the automation that keeps it running. It can also rewind an automation over historical traffic.
Rewinding a Topics automation processes historical traces and draws from your monthly model credits.
Example prompts:
These tools expect your assistant to load the braintrust/topics-workflow skill first, so it validates each stage before saving. Tools: create_preprocessor, test_preprocessor_on_trace, create_facet, test_facet_on_trace, enable_topics_automation, set_topics_automation, rewind_topics_automation.

Build dashboards

Dashboards collect the charts you check regularly. Your assistant previews a chart against real project logs so you can see it before anything is saved, then puts it into a new or existing dashboard. It can also read back what a dashboard already contains and edit charts in place, one at a time or in bulk. Example prompts:
See Dashboards for the equivalent in the UI. Tools: generate_monitor_chart, list_monitoring_views, get_monitoring_view, create_monitoring_view, update_monitoring_view.

Manage automations and alerts

Automations watch your data so you don’t have to. Your assistant inspects what a project already runs, including online scoring rules, exports, and retention policies, then creates what’s missing: an alert on individual matching logs, an alert on an aggregate threshold over a recent window, an alert on environment updates, or a Loop job that analyzes recent traffic on a schedule. It can also pause and resume any of them. Example prompts:
See Alerts for delivery channels and tuning. Tools: list_automations, set_automation_status, create_log_alert, create_environment_update_alert, create_threshold_alert, create_scheduled_loop_job, list_slack_channels.

Author prompts and evaluators

Prompts and evaluators are versioned objects that your application, experiments, and online scoring all share. Your assistant drafts one from what it found in your logs, runs it against real traces to see how it behaves before anything is saved, and saves it as a new version when you’re satisfied. It can then attach an evaluator to an online scoring rule so it scores production logs continuously. Example prompts:
See Write prompts and Write scorers for details. Tools: create_prompt, create_evaluator, test_evaluator, update_online_scoring_rule.

Run evals and edit datasets

Evals, and the datasets that feed them, are how you measure whether a change helps. Your assistant curates dataset rows from the failures it finds in your logs, then runs an experiment against them using a saved or inline task and whichever scorers you want. A prior experiment can supply the input data, in which case its outputs become the expected values. Example prompts:
See Run evaluations and Datasets for details. Tools: run_eval, edit_dataset_rows.
run_eval creates an experiment and can execute your code or call AI providers, so it incurs compute and model usage.
edit_dataset_rows can permanently delete dataset rows. Review the operations your assistant proposes before approving them.

Manage project settings

Project settings hold the defaults that other functions inherit. Your assistant reads a project’s typed settings, including which preprocessor facets and other project functions fall back to, and changes that default when you want a new one to apply everywhere. Example prompts:
See Projects for the equivalent in the UI. Tools: get_project_settings, set_project_default_preprocessor.

Search docs and load skills

Your assistant grounds its answers in Braintrust documentation rather than guesswork, so it can explain a concept or find the right guide without leaving your editor. For multi-step work, it loads a skill first: a workflow guide that tells it the order to do things in and what to validate at each stage. Example prompts:
See Skills for what each skill covers and which tools expect one. Tools: search_docs, load_braintrust_skill.

Reference

Endpoints

The MCP endpoint is your Braintrust API URL with /mcp appended, which depends on your organization’s data plane region: If you self-host, use the value shown in the MCP URL card in Settings > Data plane. The server uses the streamable HTTP transport. SSE-only MCP clients cannot connect.

Authentication

The Braintrust MCP server supports two authentication methods:
  • OAuth Clients that support OAuth-based MCP authentication connect without an API key. The server implements OAuth 2.0 with dynamic client registration and publishes its metadata at /.well-known/oauth-authorization-server on the same host, so a client can register itself. The first time you use the server, your client opens a Braintrust authorization page where you approve access.
  • API key Clients that don’t support OAuth, along with programmatic clients, send a Braintrust API key as a bearer token on every request:
Create a key in Settings > API keys. The server acts with the permissions of the account the key belongs to.

Tools

Every tool the server exposes, in the order of the capabilities above. When a result exceeds 1 MB, sql_query uploads it to object storage and returns an overflow envelope instead of inline rows. The envelope includes an overflow_url (a signed URL to the JSON result), a byte_length, a row_count (when available), and an instructions field describing how to retrieve the full result. Set return_url: true to request a URL even when the result is below the threshold, which is useful when you want to download or save results without putting them in model context. Field values in the result are truncated to preview_length characters (1024 by default). Set preview_length: -1 to include untruncated field values.

Skills

Skills are workflow guides your assistant loads with load_braintrust_skill and then follows. Where a tool reference tells your assistant what a tool does, a skill tells it the order to do things in, what to validate at each stage, and when to ask you for input.
  • braintrust/topics-workflow - Configure, evaluate, and improve the Topics pipeline, covering preprocessors, facets, scope, and Topics automations.
  • braintrust/evaluator-workflow - Create, test, refine, deploy, and rewind evaluators, and apply them to production logs with an online scoring rule.
  • braintrust/automations-workflow - Set up, validate, and manage alerts and scheduled Loop jobs, including threshold-triggered work, Slack and webhook delivery, and refining existing automations.
The Topics tools expect braintrust/topics-workflow to be loaded first, so your assistant validates the preprocessor and facets against real traces before it saves anything or enables an automation. Loading a skill is read-only and costs one tool call.

Resources

MCP resources provide contextual documentation that AI assistants can read to perform tasks more effectively.
  • docs://sdk-install - Step-by-step guidance for installing the Braintrust SDK into a project, setting up tracing, configuring auto-instrumentation, and running your first eval.
  • docs://sql - Documentation for the sql_query tool, including syntax, available fields, and examples.
  • docs://url-formats - Reference for Braintrust URL patterns, used by the resolve_object tool.
  • docs://experiments - Background on Braintrust experiments and how to create them.
docs://sdk-install has companion resources for Python, TypeScript, Go, Java, Ruby, and C#. Your assistant reads the one matching your project automatically.

Troubleshooting

Invalid client errors: Verify the URL is exactly https://api.braintrust.dev/mcp (no trailing slash). Connection timeouts: Check internet connection. Corporate networks may need to allowlist api.braintrust.dev and *.braintrust.dev. MCP server not appearing: Restart your AI tool and verify JSON configuration syntax. Request body too large (HTTP 413): The MCP server accepts request bodies up to 100 MiB. A tool call whose payload exceeds that limit returns an HTTP 413 error. Split the input into smaller requests, or fetch the data incrementally. Server URL errors on a self-hosted deployment: The MCP server derives its own address from the forwarding headers your ingress sets. If it reports that it could not determine the server URL, set the MCP_SERVER_URL environment variable on your data plane to your API URL.