# Braintrust — MCP server on mcp.ai > Connect your Braintrust account and use 17 tools for artificial intelligence straight from your AI agent. Connect with your own API key. Braintrust is an AI engineering platform for managing prompts, datasets, experiments, evaluations, observability, and production AI applications. By: mcp.ai · official Page: https://mcp.ai/braintrust ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_braintrust?ms=1787293560000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/braintrust/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/braintrust/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/braintrust/skill.md Postman collection (v2.1): https://mcp.ai/braintrust/postman.json ## Tools - braintrust_create_dataset(name: string, tags?: string[], metadata?: object, project_id: string, description?: string) — Create a named dataset under a Braintrust project, or return the existing dataset unchanged when its name already exists in that project. - braintrust_create_experiment(name?: string, tags?: string[], public?: boolean, metadata?: object, dataset_id?: string, ensure_new?: boolean, project_id: string, description?: string, dataset_version?: string, base_experiment_id?: string) — Create an experiment under a Braintrust project. When its name already exists, Braintrust returns the existing experiment unchanged unless ensure_new is true, which creates an experiment with a unique - braintrust_create_project(name: string, org_name?: string, description?: string) — Create a Braintrust project, or return the existing project unchanged when its name already exists. - braintrust_create_prompt(name: string, slug: string, tags?: string[], project_id: string, description?: string, prompt_data?: object, function_type?: string, template_format?: string) — Upsert a versioned prompt configuration under a Braintrust project without invoking it. The same project and slug reuse the prompt ID but create a new version that replaces the stored prompt configura - braintrust_delete_project(project_id: string) — Soft-delete a Braintrust project and return its deletion state. - braintrust_delete_resource(resource_id: string, resource_type: string) — Delete one Braintrust experiment, dataset, or prompt by UUID for explicit lifecycle cleanup. - braintrust_fetch_events(limit?: integer, version?: string, next_cursor?: string, resource_id: string, resource_type: string) — Fetch one newest-to-oldest page of project log, experiment, or dataset events. - braintrust_get_resource(resource_id: string, resource_type: string) — Get one project, experiment, dataset, prompt, or function by UUID. - braintrust_insert_dataset_events(events: object[], dataset_id: string) — Upsert a batch of examples into an existing Braintrust dataset. New or omitted IDs insert events; an existing supplied ID replaces that event's current values. - braintrust_insert_experiment_events(events: object[], experiment_id: string) — Upsert a batch of result events into an existing Braintrust experiment. New or omitted IDs insert events; an existing supplied ID replaces that event's current values. - braintrust_list_resources(ids?: string[], name?: string, slug?: string, limit?: integer, version?: string, org_name?: string, project_id?: string, environment?: string, next_cursor?: string, project_name?: string, resource_type: string) — List and filter one page of projects, experiments, datasets, prompts, or functions visible to the connected Braintrust API key. - braintrust_query_data(query?: string, version?: string, lint_mode?: string, tz_offset?: number, next_cursor?: string) — Run one bounded synchronous read-only BTQL query over Braintrust project logs, an experiment, or a dataset. The first-page query must end with a positive LIMIT; continue later pages by passing the ret - braintrust_summarize_resource(resource_id: string, resource_type: string, include_aggregates?: boolean, comparison_experiment_id?: string) — Return metadata and optional aggregate summaries for one Braintrust experiment or dataset. - braintrust_update_dataset(name?: string, tags?: string[], metadata?: object, dataset_id: string, description?: string) — Update the name, description, tags, or metadata of a Braintrust dataset. At least one non-null mutable field is required. - braintrust_update_experiment(name?: string, tags?: string[], public?: boolean, metadata?: object, dataset_id?: string, description?: string, experiment_id: string, dataset_version?: string, base_experiment_id?: string) — Update selected metadata and linkage fields on a Braintrust experiment. At least one non-null mutable field is required. - braintrust_update_project(name?: string, settings?: object, project_id: string, description?: string) — Update selected fields of a Braintrust project. At least one non-null mutable field is required: name, description, or settings. - braintrust_update_prompt(name?: string, slug?: string, tags?: string[], prompt_id: string, description?: string, prompt_data?: object, template_format?: string) — Update a Braintrust prompt's metadata or configuration without invoking it. At least one non-null mutable field is required. ## Example prompts - "What can I do in Braintrust?" - "Show me a summary of my Braintrust account" ## Links Docs: https://mcp.ai/docs/mcps/braintrust Website: https://mcp.ai/mcps/braintrust