Braintrust MCP server
Lets your AI assistant query Braintrust logs and experiments, write scorers and prompts, and run evals for you.
This is Braintrust's own server, hosted by Braintrust, so there is nothing to install. Your assistant can search logs, compare experiments, build regression datasets and run evals in your Braintrust organization. It can also change and delete data, with the same permissions as the account you sign in with, so set your client to ask before it runs a write action.
Good for
- AI engineers who want Claude Code or Cursor to dig through production traces when a model misbehaves
- Teams writing scorers and LLM judges who want to test them on real traces before saving
- Anyone running evals who wants to compare prompts from a chat instead of the dashboard
- Teams setting up alerts and dashboards on cost, latency and error rate
Works in
6 supported · 8 should work
Tap an app to see how to set it up and any known problems.
Braintrust's guide covers it: add the hosted address, then sign in. Remove the old Braintrust MCP plugin first if you have it. docs.braintrust.dev
Braintrust's guide has one-click install links for US and EU, or a Braintrust plugin that uses an API key. docs.braintrust.dev
Braintrust's guide covers it: add the hosted address as a remote server, then sign in. docs.braintrust.dev
Braintrust's guide covers adding the hosted address in Codex. Remove the old Braintrust MCP plugin first. docs.braintrust.dev
Braintrust's docs cover it. Put the address in httpUrl, not url, in Gemini CLI's settings file. docs.braintrust.dev
Braintrust's guide covers adding the hosted address as a remote server in OpenCode. docs.braintrust.dev
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Supports hosted MCP servers.
Install Braintrust MCP
Claude Code
- 1
Copy this prompt.
Add the Braintrust MCP server to Claude Code. Run this command: claude mcp add --transport http braintrust https://api.braintrust.dev/mcp Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Sign-in with the vendor account (OAuth).
Run /mcp in Claude Code to sign in after adding it. If you installed Braintrust's old MCP plugin, remove it first; the separate tracing plugin can stay. EU organizations use https://api-eu.braintrust.dev/mcp instead. Self-hosted teams copy the MCP URL from Settings > Data plane in Braintrust.
From the vendor's docs. Source.
Tools
Queries your logs, experiments and datasets with SQL
Runs a SQL query over your Braintrust logs, experiments or datasets and returns the rows, or a download link when the result is large.
Try: “Show me the last 10 logged requests with errors, with the error message and model used.”
Read ·
sql_querySummarizes an experiment's scores and compares it to a baseline
Pulls the aggregated scores and metrics for one experiment, optionally side by side with a baseline experiment so regressions stand out.
Try: “Summarize my latest experiment and call out any score that regressed against the baseline.”
Read ·
summarize_experimentLists your recent projects, experiments, datasets and prompts
Lists projects, experiments, datasets, prompts or functions that were created recently and that you can access.
Try: “What experiments have I run recently in the chatbot project?”
Read ·
list_recent_objectsBreaks a long trace into its steps in time order
Returns the meaningful model, tool and task steps of one trace in the order they happened, so the assistant can explain what a run did.
Try: “Break down what this trace did, step by step.”
Read ·
get_trace_work_itemsFinds recurring problems already reported in a project
Searches a project's saved patterns by text, meaning, status or quality, including near-duplicates worded differently.
Try: “What patterns are active in this project that I can fix right now?”
Read ·
search_patternsShows which fields your logs or datasets have and common values
Discovers the fields, data types and most common values in your experiments, datasets or logs before a query is written.
Try: “What fields are in my production logs, and which are filled in most often?”
Read ·
infer_schemaLists a project's saved dashboards
Lists the saved monitor dashboards in a project and the charts on each.
Try: “Which dashboards does this project have?”
Read ·
list_monitoring_viewsShows what a saved dashboard contains
Reads one saved dashboard, including its settings and every chart definition in order.
Try: “What charts are on my error monitoring dashboard?”
Read ·
get_monitoring_viewPreviews a chart on your logs without saving it
Draws a preview chart over project logs, such as daily cost or p95 latency, without changing any saved dashboard.
Try: “Chart daily cost for this project over the last two weeks, but don't save it yet.”
Read ·
generate_monitor_chartLists a project's alerts, scoring rules, exports and other automations
Lists every automation in a project, such as online scoring rules, alerts, exports, retention policies and Topics, with full settings.
Try: “What automations are set up in this project, and which ones are paused?”
Read ·
list_automationsLists saved review views for a project's datasets
Lists up to 100 saved custom views for labelling dataset rows, with each view's code and a link to open it.
Try: “Show me the custom review views saved on my datasets.”
Read ·
list_dataset_custom_viewsShows a project's settings and default preprocessor
Reads a project's settings, including which preprocessor facets and other functions use by default.
Try: “What preprocessor is my project using by default?”
Read ·
get_project_settingsTries a scorer on real traces without saving results
Runs a saved, built-in or draft scorer against chosen spans or traces and shows the scores, without writing anything back.
Try: “Test this helpfulness scorer on ten recent traces.”
Runs code ·
test_evaluatorTries a preprocessor on real traces without changing them
Runs a preprocessor on up to 50 spans or traces to preview the text it produces, without writing to the traces.
Try: “Test the preprocessor you wrote on a few of my traces.”
Runs code ·
test_preprocessor_on_traceTries a facet on up to ten traces without saving the result
Runs a draft facet definition on up to ten spans or traces to preview what it extracts, without writing to them.
Try: “Try this facet on a few traces and show me what it pulls out.”
Runs code ·
test_facet_on_traceMakes a shareable link to a Braintrust object
Creates a direct web link to an experiment, log entry, dataset, prompt or other object so you can share it.
Try: “Give me a link to those experiment results so I can post it for my team.”
Read ·
generate_permalinkFinds teammates by name or email and matches IDs to people
Turns organization member IDs into names and emails, or searches members by partial name or email.
Try: “Who logged the traces in this project this week?”
Read ·
lookup_usersMatches API key IDs to their names
Turns API key and service token IDs into their names, so you can see which key produced which traces.
Try: “Which API keys produced the traces in this project?”
Read ·
lookup_api_keysGets short-lived download links for files attached to logs
Exchanges up to 100 attachment references from query results for download links that expire after five minutes.
Try: “Get me download links for the images attached to these log rows.”
Read ·
resolve_attachmentsRuns an eval comparing prompts or tasks on a dataset
Runs an experiment with a dataset, inline rows or a past experiment as input, any task and any scorers. It can run your code and call AI providers, which uses compute and model credits.
Try: “Run an eval comparing these two prompts on my regression dataset and tell me which wins.”
Runs code ·
run_evalCopies log rows into a dataset
Copies chosen project log rows into a dataset in the same project, keeping their input, metadata, tags and a link back to the log.
Try: “Add the traces that failed the helpfulness scorer to my regression dataset.”
Write ·
add_to_datasetAdds, edits or deletes rows in a dataset
Inserts, updates or permanently deletes dataset rows, and can create a new dataset by name. Review deletes before approving them.
Try: “Set the expected output on these dataset rows to the corrected answers.”
Delete ·
edit_dataset_rowsSaves a prompt as a new or updated version
Creates a versioned prompt from a completion-style prompt or chat messages, or saves a new version of an existing one.
Try: “Save this prompt to my project as a new version of the summarizer prompt.”
Write ·
create_promptSaves a new scorer or LLM judge
Creates a versioned scorer, either an LLM judge or inline code, that returns a score or a category label.
Try: “Create an LLM-as-a-judge scorer for helpfulness.”
Write ·
create_evaluatorSets up a rule that scores production logs automatically
Saves or replays an online scoring rule that runs saved scorers on production logs. New rules start paused.
Try: “Set up online scoring with the scorer you just created, and leave it paused.”
Write ·
update_online_scoring_ruleRecords a recurring problem with the evidence behind it
Saves a new pattern, a recurring behavior found in traces, with supporting evidence and first and last seen times.
Try: “I think we're overspending on web searches. Dig in and report a pattern if you find one.”
Write ·
new_patternUpdates a reported pattern or marks it as a duplicate
Edits a saved pattern's severity, category, quality or feedback, attaches more trace evidence, or closes it as a duplicate.
Try: “Mark this pattern as a duplicate of the one we already have.”
Write ·
update_patternSaves step-by-step notes back onto a trace
Saves the work sections and per-step annotations for a trace, so the breakdown stays with it.
Try: “Save your step-by-step breakdown on this trace.”
Write ·
update_trace_work_reportCreates a new dashboard
Creates a project dashboard, optionally with charts you already previewed.
Try: “Create a cost dashboard with total cost, cost per trace and cost by model.”
Write ·
create_monitoring_viewAdds, changes or removes charts on a dashboard
Inserts, edits or removes charts on an existing dashboard, one at a time or several at once.
Try: “Add a p95 latency chart to my error monitoring dashboard.”
Delete ·
update_monitoring_viewAlerts you when a log matches a condition
Creates an alert that fires on individual matching project logs, with an optional limit on how often it notifies.
Try: “Alert me whenever a log has a refusal from the support bot.”
Write ·
create_log_alertAlerts you when a metric crosses a threshold
Creates an alert on an average, count, rate or percentile over a recent window, checked on a schedule.
Try: “Alert me when the error rate goes above 2% over the last hour.”
Write ·
create_threshold_alertAlerts you when an environment is updated
Creates an alert for environment updates, optionally limited to certain environments.
Try: “Alert me whenever the production environment changes.”
Write ·
create_environment_update_alertSchedules a recurring analysis of recent traffic
Creates a Loop job that analyzes a recent window of project data on an interval or cron schedule.
Try: “Every Monday morning, analyze last week's traces and summarize the top failure modes.”
Write ·
create_scheduled_loop_jobPauses or turns on an alert, job or scoring rule
Pauses or resumes an alert, scheduled job or online scoring rule.
Try: “Pause the online scoring rule you just created.”
Write ·
set_automation_statusAdds a new score type for human reviewers
Creates a category, slider or free-text score that human reviewers fill in for a project.
Try: “Add a 1 to 5 accuracy slider for human reviewers.”
Write ·
create_human_review_scoreSends traces or dataset rows to human review
Adds up to 100 log traces, experiment traces or dataset rows to the human review queue, optionally assigning reviewers.
Try: “Send these 20 failing traces to human review and assign them to Dana.”
Write ·
add_to_human_review_queueSaves a custom view for labelling a dataset
Saves a custom React view on a dataset for reviewers to label rows, and returns a link that opens it.
Try: “Save a review view on this dataset that shows the question and answer side by side.”
Write ·
save_dataset_custom_viewSaves code that turns raw traces into readable text
Creates a versioned preprocessor from JavaScript that converts raw trace data into text for Topics and facets.
Try: “Write a preprocessor that works with my trace shape.”
Write ·
create_preprocessorSaves a facet that pulls a short summary from each trace
Creates a versioned facet that extracts a short summary from spans or traces using Braintrust's facet model.
Try: “Create a facet that extracts what the user was trying to do.”
Write ·
create_facetTurns on Topics for a project
Enables Topics for a project so new traffic is grouped into topics. It does not process past traces.
Try: “Set up Topics for my project.”
Write ·
enable_topics_automationChanges a project's Topics settings
Updates a Topics automation's facets, topic maps, filters, sampling or timing, and can remove facets and their topic maps.
Try: “Add a sentiment facet to my Topics setup.”
Delete ·
set_topics_automationReprocesses past traces for Topics
Runs a Topics automation over historical traces from a start time or recent window. This draws from your monthly model credits.
Try: “Rewind my Topics automation to cover the last 30 days.”
Runs code ·
rewind_topics_automationLets Topics use the latest version of each topic map
Removes version pins from a Topics automation's topic maps so new traffic uses the latest version of each.
Try: “Unpin my topic maps so new traffic uses the latest versions.”
Write ·
unpin_topic_mapsChanges a project's default preprocessor
Sets or clears the preprocessor that facets and other project functions use by default.
Try: “Make the preprocessor you just created the project default.”
Write ·
set_project_default_preprocessorSearches Braintrust's documentation
Searches Braintrust's docs for guides, API references and code examples so answers come from the docs.
Try: “How do I create a custom scorer in Braintrust?”
Network ·
search_docsSends a problem report about the server to Braintrust
Reports a problem with the MCP server, such as a tool error or missing feature, to the Braintrust team. It changes no data.
Try: “Tell Braintrust that the dashboard tool keeps failing on my project.”
Network ·
send_feedbackUsed by the assistant behind the scenes
Looks up connected Slack channels for alert delivery
Lists the Slack workspaces and public channels connected to a project, so alerts can be sent to the right channel.
Read ·
list_slack_channelsConverts names to IDs and reads Braintrust links
Translates between object names and IDs and works out what a Braintrust URL points to. The assistant uses it before other tools.
Read ·
resolve_objectLoads a step-by-step guide for a Braintrust workflow
Loads a Braintrust workflow guide that tells the assistant what order to do things in and what to check at each step.
Read ·
load_braintrust_skill
From the official docs
Pros and cons
Good
- Made and hosted by Braintrust, so there is nothing to install or update.
- Sign in with your Braintrust account in the browser, with no API key to manage.
- Covers logs, experiments, datasets, prompts, scorers, alerts, dashboards and Topics in one server.
- Tests scorers and preprocessors on real traces before saving anything.
- Separate addresses for US, EU and self-hosted data planes.
- Large query results come back as a download link instead of flooding the chat.
Watch out
- No read-only mode, so you rely on your client's approval prompts.
- It can permanently delete dataset rows.
- Running evals and reprocessing traces uses compute and model credits.
- Clients that only support the older SSE connection cannot connect.
- The Cursor plugin works only for organizations on the US data plane.
Permissions
medium risk · 3 things to watch
Medium risk
The assistant can edit and delete data in your Braintrust organization with your account's permissions. Set your AI client to ask for approval before it runs any write action.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It can change and delete your Braintrust data
The assistant can create prompts, scorers, alerts and datasets, and can permanently delete dataset rows. Set your client to ask before each write action, and review deletes before you approve them. docs.braintrust.dev
Running evals uses compute and model credits
Evals can run your code and call AI providers, and reprocessing old traces for Topics draws from your monthly model credits. Ask for a preview before large runs. docs.braintrust.dev
An API key acts as its owner
With an API key, every action runs with the key owner's permissions. Prefer signing in with your own account so each person acts as themselves. docs.braintrust.dev
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Sign-in and keys | Sign-in is handled by your AI client, or an API key you put in its config as a Bearer header. |
|---|
Alternatives
Use this server if your traces and evals live in Braintrust. If you use Opik, Langfuse or Arize Phoenix instead, each vendor has its own server for the same job.
Questions
What is the Braintrust MCP server URL?
Use https://api.braintrust.dev/mcp if your organization is on the US data plane and https://api-eu.braintrust.dev/mcp for the EU. Self-hosted teams copy the MCP URL from Settings > Data plane in Braintrust.
Do I need a Braintrust API key?
No, if your AI client supports signing in through the browser. You sign in with your Braintrust account and approve access. An API key is the fallback for clients that cannot sign in that way.
Can it change or delete my Braintrust data?
Yes. It can create prompts, scorers, alerts and datasets, and it can permanently delete dataset rows. There is no read-only mode, so set your client to ask before each write action.
Does running evals through it cost money?
It can. An eval can run your code and call AI providers, which uses compute and model usage. Reprocessing old traces for Topics draws from your monthly model credits.
Do I still need the Braintrust plugin for Claude Code or Codex?
No. Braintrust retired those MCP plugins, so remove them and add the server directly with the steps above. The separate tracing plugin is unrelated and can stay.
Should I use the MCP server or the bt CLI?
Use the bt CLI for scripts and CI, where you want the same commands every time. Use the MCP server in chat apps with no terminal, or when you want the assistant to investigate across several steps.
Why can't my client connect?
Your client may only support the older SSE connection, which this server does not accept. Also check that the address ends in /mcp with no trailing slash, and that your company network allows *.braintrust.dev.
Is the npm package @braintrust/mcp-server the same thing?
It is an old, deprecated bridge to the same hosted server. Connect to the hosted address directly instead.
Information
updated Nov 2, 2026
- Publisher
- Braintrust (official)
- Endpoint
https://api.braintrust.dev/mcp- Transport
- Streamable HTTP
- Auth
- OAuth
- Version
- 1.0.0
- Listed in
- Official MCP registry
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 12Hide
- Braintrust MCP · docs.braintrust.dev
- Claude Code · docs.braintrust.dev
- Braintrust: claude-desktop · docs.braintrust.dev
- Codex · docs.braintrust.dev
- Cursor · docs.braintrust.dev
- OpenCode · docs.braintrust.dev
- VS Code · docs.braintrust.dev
- Braintrust MCP · braintrust.dev
- @braintrust/mcp-server · npmjs.com
- Opik MCP README · github.com
- Langfuse MCP Server · langfuse.com
- @arizeai/phoenix-mcp · npmjs.com