# Braintrust MCP connector

The Braintrust connector lets Claude, ChatGPT, Cursor and other MCP clients work with experiments, traces and monitoring views in Braintrust as the signed-in person, with every action recorded in an audit log.

Source: https://elaichi.ai/connectors/braintrust/

## Facts

| | |
| --- | --- |
| Application | Braintrust |
| Category | Artificial Intelligence |
| AI tools | 43 |
| Authentication | Connects over OAuth |
| Bring your own OAuth app | No |
| Native MCP | Yes. Braintrust builds and runs this MCP server. Elaichi adds sign-in, access controls and an audit log on top |
| Support for its tools | www.braintrust.dev/contact |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once Braintrust is connected

- Summarize the latest experiment in the checkout project
- Which topics grew the most in support bot logs this week?
- Create a pattern for the hallucinated refund policy failure

## Connect Braintrust in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Braintrust.
2. Optionally set Share with, then press Connect.
3. Approve it in Braintrust. Braintrust's own window opens. Whoever approves it decides what this connection can reach.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Braintrust tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Braintrust MCP connector for Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Braintrust MCP connector for ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Braintrust MCP connector for Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Braintrust to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Braintrust tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Braintrust through Elaichi

### Summarize an experiment after an eval run

AI Engineering. Ask for the headline scores and the biggest regressions in the latest Braintrust experiment, then get a permalink to share with the team.

### Find out what users are asking about

Product. Turn on topics automation for a project and ask which topics grew this week in Braintrust logs, without opening a dashboard.

### Catch a recurring failure before it spreads

Quality. Search the existing patterns in Braintrust, add a new one for the failure you just saw, and test a facet against a real trace.

### Answer a question with a SQL query

Data. Ask how many traces scored below threshold last week and let the agent infer the schema and run the query in Braintrust.

### Keep an eye on production monitors

Platform. List the monitoring views in Braintrust, pull a chart for latency or cost, and create a new view when a project needs its own.

### Work through flagged traces as a queue

Support. Pull the trace work items assigned to you, review each one, and update the work report in Braintrust as you go.

## Elaichi vs Zapier MCP vs Composio for Braintrust

All three can connect Braintrust to an AI assistant, and all three have admin controls. They differ in where access lives and how you pay.

| What to check | Elaichi | Zapier MCP | Composio |
| --- | --- | --- | --- |
| Where the AI connects | One address for the whole organization. Endpoint: https://api.elaichi.ai/mcp | A server per member, created at sign-in. | An MCP endpoint per team, or an SDK. |
| Control over Braintrust tools | Allow or restrict single Braintrust tools, per role or user. | App and action restrictions on the account. | Role permissions, down to the action. |
| Record of calls | One audit entry per Braintrust call. | A History tab of tool calls. | A log of every tool call. |
| Single sign-on | SAML or OIDC, plus SCIM, on Gold. | SAML on Enterprise. | SAML and OIDC on Enterprise. |
| Price | $15 per user per month. | 2 tasks per successful call. | Billed per tool call. |

Sources: Zapier MCP [docs](https://docs.zapier.com/mcp/get-started/quickstart), [security](https://docs.zapier.com/mcp/manage/security), [usage](https://docs.zapier.com/mcp/features/usage); Composio [docs](https://docs.composio.dev/docs/composio-connect), [gateway](https://composio.dev/mcp-gateway), [enterprise](https://composio.dev/enterprise), [pricing](https://composio.dev/pricing). Checked September 2026.

Longer take: [Zapier MCP alternative](/blog/zapier-mcp-alternative/) and [when you don't need an MCP gateway](/blog/when-you-dont-need-an-mcp-gateway/).

## Frequently asked questions

### How do I connect Braintrust to Claude?

Connect Braintrust in Elaichi first: you sign in to Braintrust over OAuth with your own account, and there is no OAuth application to register and no client ID or secret to generate. Then open Claude, go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Claude asks you to sign in to Elaichi, and from then on it can work with your Braintrust experiments, traces and monitoring views.

### Does Braintrust work with ChatGPT and Cursor as well as Claude?

Yes. Once Braintrust is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Braintrust once and every client picks it up, and you still sign in as yourself in each one.

### What can an AI agent actually do with my Braintrust data?

It can summarize an experiment, run a SQL query over your logs and traces, list recent objects in a project, and generate a permalink to whatever it found. It can also search and create patterns, test a facet or preprocessor on a trace, turn on topics automation, and pull or create monitoring views and charts in Braintrust. Short, concrete asks such as summarize yesterday's experiment in the checkout project work better than long paragraphs.

### Does connecting Braintrust give the AI access to every project and organization?

No. The agent works inside the Braintrust access of the person who signed in, so it sees the organizations and projects that person can already open and nothing more. Elaichi can narrow that further with roles and restrictions, and it never widens it beyond what Braintrust itself allows.

### Can my team share one Braintrust connection?

Yes. One person connects Braintrust in Elaichi and shares the connection with a team, and nobody else ever handles a credential or an API key. Each teammate still signs in to Elaichi as themselves, so the audit log names the person who ran each query or created each pattern in Braintrust.

### Can I stop an agent from changing patterns or monitoring views in Braintrust?

Yes. Restrictions in Elaichi work per action, so you can allow reading experiments and traces in Braintrust while blocking the creation of patterns, facets, preprocessors or monitoring views. A restricted action is never advertised to the AI client, so no prompt, however it is worded, can reach it.

### What happens to a Braintrust connection when someone leaves?

Offboarding that person in Elaichi ends their access to Braintrust through every client at once. A shared Braintrust connection keeps working for everyone else on the team. If you disconnect Braintrust in Elaichi, it disappears from Claude, ChatGPT, Cursor and every other client in one step.

### Does the Braintrust MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. Braintrust is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

### Is Elaichi an alternative to Zapier MCP for Braintrust?

Yes. Both let Claude, ChatGPT or Cursor use Braintrust. Zapier MCP fits a team that already automates in Zapier, since each person signs in and acts as themselves in that account. Elaichi fits when IT wants one address for the whole company, per-tool rules by role, and a record of every Braintrust call.

### How is Elaichi different from Composio for Braintrust?

Composio gives AI agents tools and sign-in handling across 1,000+ apps, for developers building agents or people using an assistant, billed per tool call. Elaichi gives a company's own people governed access to Braintrust: one address, restrictions per role or user, and $15 per user per month. Both have role permissions and a log of every call.

## All 43 Braintrust tools

Every tool below is callable through https://api.elaichi.ai/mcp once Braintrust is connected, subject to the toolbox it is in and the restrictions on the caller.

- **SQL query** (Search). Query experiments, datasets, and logs using SQL. Supports SELECT, FROM, WHERE, GROUP BY, ORDER BY, and LIMIT.
- **Infer schema** (Action). Discover the available fields, data types, and most common values in experiments, datasets, or logs.
- **Summarize experiment** (Action). Get aggregated performance metrics for an experiment, optionally compared to a baseline.
- **List recent objects** (List). List recently created projects, experiments, datasets, prompts, or functions you have access to.
- **Resolve object** (Action). Convert names to IDs or vice versa, and parse Braintrust URLs. For pattern, prompt, and scorer URLs, returns the containing project as object_id and the resource as row_id. App URLs retain their organization scope. Supply org_name to disambiguate name lookups. Ambiguous names…
- **Generate permalink** (Generate). Generate a direct web link to a Braintrust object for sharing or bookmarking. For project_logs, project_patterns, project_prompts, and project_functions, supply project_name or the project UUID as object_id. Pass root_span_id as row_id for log entries, or the resource ID as…
- **Lookup users** (Action). Resolve Braintrust organization member IDs to names and emails. Pass a batch of user IDs, search by partial name or email, or list every member.
- **Lookup API keys** (Action). Resolve API key and service token IDs to their names. Pass a batch of IDs, match an exact name, or list every key visible to you. Results follow existing API key and service token visibility rules.
- **Get trace work items** (Get). Return a chronological list of the meaningful LLM and tool spans in a trace, as input for the work sections that Analyze trace produces.
- **Update trace work report** (Update). Save those work sections and per-span annotations back to the trace.
- **Search patterns** (Search). Search existing project patterns by text, semantic similarity, ID, status, or quality. Pass similar_to with one or more pattern IDs or unreported pattern drafts to catch duplicates that use different wording. For listings and text searches, continue while has_more is true by…
- **New pattern** (Action). Record a pattern the agent has identified, with the evidence behind it. The agent decides what counts as a pattern, so asking for one doesn’t guarantee a record is written.
- **Update pattern** (Update). Update an existing project pattern, or attach evidence to matching traces.
- **Create preprocessor** (Create). Create a versioned preprocessor from inline JavaScript that converts raw trace data into text.
- **Test preprocessor on trace** (Test). Run a saved, global, or inline preprocessor on up to 50 span, trace, or group references without writing to the source trace.
- **Create facet** (Create). Create a versioned facet that extracts a short summary from spans or traces. Facet extraction always uses Braintrust’s built-in facet model.
- **Test facet on trace** (Test). Run an inline facet definition on up to ten span, trace, or group references without writing the result to the source trace.
- **Enable topics automation** (Enable). Enable Topics for a project. This seeds processing for new traffic and doesn’t rewind historical data.
- **Set topics automation** (Set). Update an existing Topics automation’s facets, scope, filters, sampling, or timing.
- **Rewind topics automation** (Action). Rewind an existing Topics automation to process historical data from a start time or a recent window.
- **Generate monitor chart** (Generate). Preview a monitor chart for project logs without modifying a saved view.
- **List monitoring views** (List). List a project’s saved monitor views and chart IDs.
- **Get monitoring view** (Get). Inspect a saved monitor view, including its options and ordered chart definitions.
- **Create monitoring view** (Create). Create a project-scoped monitor view, optionally containing charts you already previewed.
- **Update monitoring view** (Update). Insert, update, or remove charts in an existing monitor view, one edit at a time or several in bulk.
- **List automations** (List). List a project’s automations, including online scoring rules, alerts, exports, retention policies, and Topics automations. Filter by automation_id, name, or kind. Returns complete configurations, so you can inspect an automation before updating it.
- **Set automation status** (Set). Pause or activate an alert, scheduled job, or online scoring rule.
- **Create log alert** (Create). Create an alert for individual matching project logs. Use config.interval_seconds to throttle repeated notifications.
- **Create environment update alert** (Create). Create an alert for environment updates. Use config.environment_filter to limit notifications to specific environment slugs.
- **Create threshold alert** (Create). Create an alert for an aggregate over a recent window of project data, evaluated on a schedule. Use it for averages, counts, rates, percentages, percentiles, and distributions.
- **Create scheduled loop job** (Create). Create a Loop job that runs on an interval or cron schedule over a recent window of project data.
- **List slack channels** (List). List connected Slack workspaces and public channels for a project to resolve workspace and channel IDs before configuring Slack delivery.
- **Create prompt** (Create). Create a versioned prompt from a completion-style prompt or chat messages. Set if_exists to replace to save a new version, or ignore to leave an existing prompt unchanged.
- **Create evaluator** (Create). Create a versioned LLM or inline code evaluator. Set output_type to score for numeric scores or classification for categorical labels.
- **Create human review score** (Create). Create a categorical, slider, or free-form human review score for a project. Fails if the name already exists.
- **Test evaluator** (Test). Run a saved, global, or inline evaluator against span, trace, or group references without writing results to the source trace.
- **Update online scoring rule** (Update). Save or rewind an online scoring rule that runs saved evaluator functions. New rules default to paused.
- **Run eval** (Run). Run an experiment with a hosted dataset, inline rows, or a prior experiment as input data, any saved or inline task, and zero or more saved or inline scorers. When a prior experiment supplies the data, its outputs become expected values unless an expected value was already…
- **Edit dataset rows** (Action). Insert, update, or delete up to 100 dataset rows. Target a dataset by ID or name, and set create_if_missing to create a new named dataset.
- **Get project settings** (Get). Return a project’s typed settings, including the effective default preprocessor. An unset default resolves to the built-in thread preprocessor.
- **Set project default preprocessor** (Set). Set or clear a project’s default preprocessor. Pass null to restore the built-in default. This changes the default used by facets and other project functions that don’t select a preprocessor explicitly. Expects the braintrust/topics-workflow skill to be loaded first.
- **Search docs** (Search). Search Braintrust documentation to find relevant guides, API references, and code examples.
- **Load Braintrust skill** (Action). Load a Braintrust workflow guide before using the tools it covers. Available skills are braintrust/automations-workflow, braintrust/evaluator-workflow, and braintrust/topics-workflow.
