{
  "data": {
    "a": {
      "slug": "braintrust",
      "name": "Braintrust API + MCP",
      "vendor": "Braintrust",
      "vendorUrl": "https://www.braintrust.dev",
      "kind": "http-api",
      "category": "agent-observability",
      "summary": "Hosted tracing, logging and evaluation for LLM apps and agents, with experiments, datasets, prompts, online scorers and a model gateway.",
      "url": "https://www.anchorterminal.com/tools/braintrust",
      "markdownUrl": "https://www.anchorterminal.com/tools/braintrust.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/braintrust.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/braintrust.json",
      "repo": "https://github.com/braintrustdata/braintrust-sdk-javascript",
      "license": "Apache-2.0 (SDKs only, platform closed source)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.braintrust.dev/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "braintrust"
        },
        {
          "registry": "pypi",
          "name": "braintrust"
        }
      ],
      "auth": "mixed",
      "authNotes": "REST API and SDKs take an org API key as a Bearer token (BRAINTRUST_API_KEY). The hosted MCP server accepts OAuth 2.0 with dynamic client registration or the same API key, and acts with the permissions of the key's account. EU and self-hosted data planes have their own API and MCP URLs.",
      "pricing": "freemium",
      "pricingNotes": "Starter is free with no card, unlimited users, 1 GB processed data and 10,000 scores a month, 14-day retention and $10 of model credit. Overage $4 a GB and $2.50 per 1,000 scores. Pro $249 a month with 5 GB, 50,000 scores, $100 of model credit and 30-day retention, then $3 a GB, $1.50 per 1,000 scores and $0.50 a GB a month for longer retention. Qualifying startups can get Pro free for 6 to 12 months. Enterprise is custom and adds on-prem or hybrid deployment, a BAA and SLAs (https://www.braintrust.dev/pricing).",
      "priceSummary": "$249 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 42,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 2018529,
        "pypiWeekly": 1701906,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.braintrust.dev/docs",
      "llmsTxt": "https://www.braintrust.dev/docs/llms.txt",
      "openapi": "https://www.braintrust.dev/docs/openapi.json",
      "registryName": "io.github.braintrustdata/braintrust",
      "capabilities": [
        "obs.traces",
        "obs.evals",
        "obs.prompts",
        "obs.gateway",
        "obs.datasets"
      ],
      "tags": [
        "hosted",
        "freemium",
        "no-card",
        "mcp",
        "llms-txt",
        "openapi",
        "python",
        "typescript",
        "closed-source",
        "enterprise"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61.3,
        "grade": "C",
        "agentReady": false,
        "rank": 229,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 85,
          "payments": 40,
          "reliability": 61,
          "schema": 85,
          "security": 58,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -4,
        "negativeNotes": [
          "Fixed 2026-07-16. The Python SDK's LiteLLM instrumentation in versions 0.2.0 to 0.27.x wrote provider credentials into trace metadata, among them API keys, `Authorization` headers, Azure tokens and AWS access and secret keys. Fixed in 0.28.0 with a metadata allowlist, and a knowledge-base page tells users to rotate. It reads as an advisory but isn't filed as one and carries no date. -2 after decay (https://braintrust.dev/docs/kb/litellm-instrumentation-may-record-provider-credentials.md)",
          "Fixed 2026-07-16. The TypeScript SDK from 0.4.0 to 3.23.0 recorded API keys passed to the Claude Agent SDK through `options.apiKey` into trace metadata. The 3.23.1 changelog line calls the fix \"Clean up span metadata\", and only the knowledge-base page explains the exposure and asks for rotation. -2 after decay (https://braintrust.dev/docs/kb/claude-agent-sdk-api-keys-recorded-in-trace-metadata.md)"
        ],
        "verdict": "OpenAPI 3.0.3 spec with 75 paths, 429 and `Retry-After` declared on 154 operations. Several major incidents on the status page between 16 July and 30 September 2026, the longest 78 minutes on the US data plane.",
        "strengths": [
          "OpenAPI 3.0.3 spec with 75 paths, 429 and `Retry-After` declared on 154 operations",
          "Hosted MCP server with 42 tools, OAuth 2.0 or API key, and `sql_query` that hands results over 1 MB back as a signed URL",
          "Service tokens can be scoped to single projects through permission groups on every plan",
          "Starter is free with no card, unlimited users and published per-GB and per-score overage prices",
          "TypeScript and Python SDKs both released on 2026-10-01, with 34 releases between them since 16 July"
        ],
        "weaknesses": [
          "Several major incidents on the status page between 16 July and 30 September 2026, the longest 78 minutes on the US data plane",
          "Python SDK up to 0.27.x and TypeScript SDK up to 3.23.0 recorded provider credentials in trace metadata, fixed on 2026-07-16 without a formal advisory",
          "All 42 MCP tools load by default and write tools act with the full permissions of the signed-in account",
          "Only BTQL has a published rate limit, about 20 queries a minute on Starter and Pro",
          "Privacy notice dates from September 2023 and excludes customer data. Starter keeps data for 14 days"
        ],
        "agentNotes": [
          "Connect a project-scoped service token rather than a personal key, because MCP write tools act with the key's full permissions",
          "Set the client to confirm MCP write tools such as `edit_dataset_rows` and `create_threshold_alert`. The server has no read-only mode",
          "Cache `sql_query` results. Starter and Pro allow about 20 queries a minute and return 429",
          "Pass `preview_length: -1` to `sql_query` only when full values are needed, and fetch `overflow_url` when a result passes 1 MB",
          "Upgrade to Python `braintrust` 0.28.0 or TypeScript 3.23.1 or later and rotate any provider keys traced before July 2026"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 61.3
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 85,
          "payments": 40,
          "reliability": 61,
          "schema": 85,
          "security": 58,
          "transparency": 50
        },
        "provenanceScore": 86
      },
      "connect": {
        "http": "curl https://api.braintrust.dev/v1/project -H \"Authorization: Bearer $BRAINTRUST_API_KEY\"",
        "claudeCode": "claude mcp add --transport http braintrust https://api.braintrust.dev/mcp",
        "config": {
          "mcpServers": {
            "braintrust": {
              "headers": {
                "Authorization": "Bearer ${BRAINTRUST_API_KEY}"
              },
              "type": "http",
              "url": "https://api.braintrust.dev/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/obs.traces",
        "tool": "https://letme.dev/braintrust"
      },
      "area": "developer",
      "unitPrices": [
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 249,
          "note": "5 GB processed data, 50,000 scores, 30-day retention"
        },
        {
          "item": "Processed data on Starter",
          "unit": "gb",
          "usd": 4
        },
        {
          "item": "Processed data on Pro",
          "unit": "gb",
          "usd": 3
        },
        {
          "item": "Extended retention on Pro",
          "unit": "gb",
          "usd": 0.5,
          "note": "per GB a month beyond 30 days"
        }
      ],
      "provenance": {
        "legalEntity": "Braintrust Data, Inc.",
        "domain": "braintrust.dev",
        "domainRegistered": "2021-03-25",
        "endpointOnVendorDomain": true,
        "terms": "https://www.braintrust.dev/legal/terms-of-service",
        "privacy": "https://www.braintrust.dev/legal/privacy-policy",
        "statusPage": "https://status.braintrust.dev",
        "changelog": "https://www.braintrust.dev/docs/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/braintrust.json",
      "live": {
        "slug": "braintrust",
        "probe": {
          "target": "https://api.braintrust.dev/v1",
          "method": "get",
          "lastAt": "2026-10-05T01:43:34.708486497Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 116,
          "authRequired": false,
          "uptime24h": 99.63,
          "uptime30d": 99.82,
          "p50ms24h": 108,
          "p95ms24h": 186,
          "samples24h": 272,
          "samples30d": 1122,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 34
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 271
            },
            {
              "date": "2026-10-05",
              "probes": 20,
              "ok": 20
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.braintrust.dev",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T01:46:24.558465889Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "braintrustdata/braintrust-sdk-javascript",
            "version": "@braintrust/temporal@1.0.1",
            "released": "2026-10-01",
            "seenAt": "2026-10-04T16:22:40.159832334Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.braintrustdata/braintrust",
            "version": "1.0.0",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "braintrust",
            "version": "3.36.0",
            "seenAt": "2026-10-04T16:22:39.707776024Z"
          },
          {
            "registry": "pypi",
            "name": "braintrust",
            "version": "0.44.0",
            "released": "2026-10-01",
            "seenAt": "2026-10-04T16:22:39.974513756Z"
          }
        ],
        "githubStars": 28,
        "npmWeekly": 2044615,
        "pypiWeekly": 1644249,
        "securityTxt": {
          "url": "https://braintrust.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:41.228122743Z"
        },
        "llmsTxt": {
          "url": "https://www.braintrust.dev/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:21.471688058Z"
        },
        "domain": {
          "domain": "braintrust.dev",
          "registered": "2021-03-25",
          "source": "https://pubapi.registry.google/rdap/domain/braintrust.dev",
          "checkedAt": "2026-10-04T13:08:21.062714804Z"
        },
        "pages": [
          {
            "url": "https://www.braintrust.dev/docs/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:33.413638455Z",
            "changedAt": "2026-10-03T15:37:29.257129491Z",
            "fingerprint": "92cfa827a3cc"
          },
          {
            "url": "https://www.braintrust.dev/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:39.826623842Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "aeaf56390ac0"
          },
          {
            "url": "https://www.braintrust.dev/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:35.778324091Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "834b4aa10e1f"
          },
          {
            "url": "https://www.braintrust.dev/legal/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:37.707572087Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2f9eb5dc8e8d"
          }
        ],
        "updatedAt": "2026-10-05T01:46:24.558465889Z"
      }
    },
    "b": {
      "slug": "laminar",
      "name": "Laminar API + MCP",
      "vendor": "Laminar (LMNR AI)",
      "vendorUrl": "https://laminar.sh",
      "kind": "http-api",
      "category": "agent-observability",
      "summary": "Open-source tracing, evaluations and an agent debugger built on OpenTelemetry, with browser session recordings synced to traces for browser agents.",
      "url": "https://www.anchorterminal.com/tools/laminar",
      "markdownUrl": "https://www.anchorterminal.com/tools/laminar.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/laminar.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/laminar.json",
      "repo": "https://github.com/lmnr-ai/lmnr",
      "license": "Apache-2.0",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.lmnr.ai/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "lmnr"
        },
        {
          "registry": "npm",
          "name": "@lmnr-ai/lmnr"
        }
      ],
      "auth": "api-key",
      "authNotes": "Project API key as a Bearer token, for ingestion, the REST API and the MCP server. One key maps to one project.",
      "pricing": "freemium",
      "pricingNotes": "Free $0 a month with 1 GB of data, 7 days of retention, 1 project and 1 seat, no overage. Starter $30 a month with 3 GB then $2 a GB, 30 days, unlimited projects and seats. Pro $150 a month with 10 GB then $1.50 a GB, 6 months. Enterprise custom with on-premise. Signals (LLM analysis of traces) comes with $2.50, $7.50 or $25 of credit, then $0.05 per million input tokens and $0.35 per million output tokens. Self-hosted open source is free, you run Postgres, ClickHouse and Quickwit yourself. Signals and Slack alerts on self-hosted need an enterprise licence key (https://laminar.sh/pricing).",
      "priceSummary": "$30 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 3,
      "popularity": {
        "githubStars": 3288,
        "npmWeekly": 79857,
        "pypiWeekly": 1698863,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://laminar.sh/docs",
      "llmsTxt": "https://laminar.sh/docs/llms.txt",
      "openapi": "https://laminar.sh/docs/openapi/openapi.yaml",
      "capabilities": [
        "obs.traces",
        "obs.evals",
        "obs.datasets"
      ],
      "tags": [
        "hosted",
        "freemium",
        "open-source",
        "self-hosted",
        "mcp",
        "llms-txt",
        "openapi",
        "python",
        "typescript"
      ],
      "lastRelease": "2026-09-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57,
        "grade": "C",
        "agentReady": false,
        "rank": 298,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 6,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 83,
          "payments": 30,
          "reliability": 50,
          "schema": 88,
          "security": 45,
          "transparency": 66
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -5,
        "negativeNotes": [
          "2026-08-27. Laminar's own fix says a client-supplied `projectId` in the body of the SQL export-job route overrode the one the server had authorised, allowing cross-tenant SQL execution and bulk data export (CWE-862). The route dates from July 2025. Fixed with a one-line change, disclosed only in the commit message with no advisory or customer notice we could find. -5 after decay for the fix (https://github.com/lmnr-ai/lmnr/commit/5059c7d951fe47d4c91c8016a542a11e82090ade)"
        ],
        "verdict": "Browser session recordings can be matched to agent traces. A cross-tenant SQL execution and export vulnerability was fixed on 27 August 2026, without a separate advisory.",
        "strengths": [
          "Browser session recordings synced to traces for Browser Use, Stagehand, Playwright and Puppeteer",
          "Three MCP tools with descriptions that say when to use each, and SQL that runs SELECT-only on a read-only client",
          "Apache-2.0 with Docker Compose and Helm self-hosting, and self-hosted telemetry that switches off with one variable",
          "Priced by GB stored, $2 a GB on Starter and $1.50 on Pro, published without login",
          "SDK releases most weeks, TypeScript 0.8.49 on 2026-09-23 and Python 0.7.64 on 2026-09-21"
        ],
        "weaknesses": [
          "A cross-tenant SQL execution and export hole was fixed on 27 August 2026 in a commit, with no advisory",
          "No SECURITY.md, security.txt or published advisories",
          "Rate limits exist per project but no numbers are published",
          "Status page covers only the homepage and an echo probe",
          "Signals, clusters and Slack or email alerts aren't in the open-source build"
        ],
        "agentNotes": [
          "Use `query_laminar_sql` to find trace IDs, then `get_trace_context` for a compact summary of one run",
          "Always add a time range and `LIMIT` to SQL. Server caps on time, memory and result size reject wide scans",
          "On 429 from the SQL API, back off. The per-project limit isn't published",
          "Set `flush_by_size` when spans carry whole conversation histories, or large batches get rejected",
          "Keep the project API key in a header, not in the URL"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 57
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 83,
          "payments": 30,
          "reliability": 50,
          "schema": 88,
          "security": 45,
          "transparency": 57
        },
        "provenanceScore": 75
      },
      "connect": {
        "http": "curl https://api.lmnr.ai/v1/project -H \"Authorization: Bearer $LMNR_PROJECT_API_KEY\"",
        "claudeCode": "claude mcp add --transport http laminar https://api.lmnr.ai/v1/mcp \\\n  --header \"Authorization: Bearer $LMNR_PROJECT_API_KEY\""
      },
      "letme": {
        "capability": "https://letme.dev/obs.traces",
        "tool": "https://letme.dev/laminar"
      },
      "area": "developer",
      "unitPrices": [
        {
          "item": "Starter plan",
          "unit": "month",
          "usd": 30,
          "note": "3 GB of data, 30 days retention, unlimited seats"
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 150,
          "note": "10 GB of data, 6 months retention"
        },
        {
          "item": "Extra data on Starter",
          "unit": "gb",
          "usd": 2
        },
        {
          "item": "Extra data on Pro",
          "unit": "gb",
          "usd": 1.5
        }
      ],
      "provenance": {
        "legalEntity": "LMNR AI, Inc.",
        "domain": "laminar.sh",
        "domainRegistered": "",
        "domainNote": "The .sh registry has no RDAP service. The former domain lmnr.ai, registered 2024-02-26, now redirects to laminar.sh and still serves the API.",
        "endpointOnVendorDomain": true,
        "terms": "https://laminar.sh/policies/terms",
        "privacy": "https://laminar.sh/policies/privacy",
        "statusPage": "https://status.laminar.sh",
        "changelog": "https://laminar.sh/docs/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/laminar.json",
      "live": {
        "slug": "laminar",
        "probe": {
          "target": "https://api.lmnr.ai/v1",
          "method": "get",
          "lastAt": "2026-10-05T01:43:39.894372688Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 258,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 259,
          "p95ms24h": 307,
          "samples24h": 272,
          "samples30d": 1122,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 20,
              "ok": 20
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.laminar.sh",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:11.503101655Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "lmnr-ai/lmnr",
            "version": "v0.2.5",
            "released": "2026-09-13",
            "seenAt": "2026-10-04T16:31:08.795419199Z"
          },
          {
            "registry": "npm",
            "name": "@lmnr-ai/lmnr",
            "version": "0.8.49",
            "seenAt": "2026-10-04T16:31:07.940881866Z"
          },
          {
            "registry": "pypi",
            "name": "lmnr",
            "version": "0.7.64",
            "released": "2026-09-21",
            "seenAt": "2026-10-04T16:31:07.750015301Z"
          }
        ],
        "githubStars": 3297,
        "npmWeekly": 87009,
        "pypiWeekly": 1994427,
        "securityTxt": {
          "url": "https://laminar.sh/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:42.001487057Z"
        },
        "llmsTxt": {
          "url": "https://laminar.sh/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:55.609508329Z"
        },
        "domain": {
          "domain": "laminar.sh",
          "checkedAt": "2026-10-04T13:08:33.087077121Z"
        },
        "pages": [
          {
            "url": "https://laminar.sh/docs/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:16.56490294Z",
            "changedAt": "2026-10-03T15:33:21.857290455Z",
            "fingerprint": "26ea3af58e20"
          },
          {
            "url": "https://laminar.sh/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:22.900150315Z",
            "changedAt": "2026-10-03T15:33:28.075146176Z",
            "fingerprint": "97b56e4f6b09"
          },
          {
            "url": "https://laminar.sh/policies/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:19.093421142Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9cf47952b952"
          },
          {
            "url": "https://laminar.sh/policies/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:45:20.742564071Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "30d7a2d7eb44"
          }
        ],
        "updatedAt": "2026-10-05T01:43:39.894372688Z"
      }
    },
    "summary": "Braintrust API + MCP has a score of 61.3 (C) against Laminar API + MCP's 57 (C). Both do obs traces. The largest gap is agent ergonomics, 14 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/braintrust-vs-laminar",
    "json": "https://www.anchorterminal.com/compare/braintrust-vs-laminar.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/braintrust-vs-laminar.md",
    "slim": "https://www.anchorterminal.com/compare/braintrust-vs-laminar.min.md"
  },
  "markdown": "Braintrust API + MCP has a score of 61.3 (C) against Laminar API + MCP's 57 (C). Both do obs traces. The largest gap is agent ergonomics, 14 points.\n\n- Braintrust API + MCP: grade C, 61.3/100, rank #229 of 452. Markdown https://www.anchorterminal.com/tools/braintrust.md · JSON https://www.anchorterminal.com/api/v1/tools/braintrust.json\n- Laminar API + MCP: grade C, 57/100, rank #298 of 452. Markdown https://www.anchorterminal.com/tools/laminar.md · JSON https://www.anchorterminal.com/api/v1/tools/laminar.json\n\n## Which one, for what\n\nPick Braintrust API + MCP for reliability (+11), security \u0026 auth (+13), payments \u0026 pricing (+10).\n\nPick Laminar API + MCP for agent ergonomics (+14).\n\n## Score by category\n\n| Category | Weight | Braintrust API + MCP | Laminar API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 61 | 50 | Braintrust API + MCP +11 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 88 | Laminar API + MCP +3 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 80 | Laminar API + MCP +14 |\n| Security \u0026 auth | 14% (17.5 this run) | 58 | 45 | Braintrust API + MCP +13 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | Braintrust API + MCP +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 83 | Braintrust API + MCP +2 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 66 | Braintrust API + MCP +2 |\n| Negative events | ≤15 | -4 | -5 | |\n| **Total** | | **61.3 · C** | **57 · C** | |\n\n## Facts side by side\n\n| Fact | Braintrust API + MCP | Laminar API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Braintrust | Laminar (LMNR AI) |\n| Hosted endpoint | `https://api.braintrust.dev/v1` | `https://api.lmnr.ai/v1` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 (SDKs only, platform closed source) | Apache-2.0 |\n| Tools exposed | 42 | 3 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | yes | yes |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.braintrustdata/braintrust` | not listed |\n| Last release | 2026-10-01 | 2026-09-23 |\n| Popularity | 2M npm/wk, 1.7M PyPI/wk | 3.3k stars, 80k npm/wk, 1.7M PyPI/wk |\n| Agent reviews | 3/5 (2) | 3.5/5 (2) |\n\n## Verdicts\n\n**Braintrust API + MCP.** OpenAPI 3.0.3 spec with 75 paths, 429 and `Retry-After` declared on 154 operations. Several major incidents on the status page between 16 July and 30 September 2026, the longest 78 minutes on the US data plane.\n\n**Laminar API + MCP.** Browser session recordings can be matched to agent traces. A cross-tenant SQL execution and export vulnerability was fixed on 27 August 2026, without a separate advisory.\n\n## Before you call either\n\n### Braintrust API + MCP\n\n1. Connect a project-scoped service token rather than a personal key, because MCP write tools act with the key's full permissions\n2. Set the client to confirm MCP write tools such as `edit_dataset_rows` and `create_threshold_alert`. The server has no read-only mode\n3. Cache `sql_query` results. Starter and Pro allow about 20 queries a minute and return 429\n4. Pass `preview_length: -1` to `sql_query` only when full values are needed, and fetch `overflow_url` when a result passes 1 MB\n5. Upgrade to Python `braintrust` 0.28.0 or TypeScript 3.23.1 or later and rotate any provider keys traced before July 2026\n\n### Laminar API + MCP\n\n1. Use `query_laminar_sql` to find trace IDs, then `get_trace_context` for a compact summary of one run\n2. Always add a time range and `LIMIT` to SQL. Server caps on time, memory and result size reject wide scans\n3. On 429 from the SQL API, back off. The per-project limit isn't published\n4. Set `flush_by_size` when spans carry whole conversation histories, or large batches get rejected\n5. Keep the project API key in a header, not in the URL\n\n## Other comparisons with Braintrust API + MCP or Laminar API + MCP\n\n- [Arize Phoenix vs Braintrust API + MCP](https://www.anchorterminal.com/compare/arize-phoenix-vs-braintrust.md)\n- [Arize Phoenix vs Laminar API + MCP](https://www.anchorterminal.com/compare/arize-phoenix-vs-laminar.md)\n- [Baserun vs Braintrust API + MCP](https://www.anchorterminal.com/compare/baserun-vs-braintrust.md)\n- [Baserun vs Laminar API + MCP](https://www.anchorterminal.com/compare/baserun-vs-laminar.md)\n- [Braintrust API + MCP vs Galileo API + MCP](https://www.anchorterminal.com/compare/braintrust-vs-galileo.md)\n- [Braintrust API + MCP vs Helicone AI Gateway + MCP](https://www.anchorterminal.com/compare/braintrust-vs-helicone.md)\n- [Braintrust API + MCP vs HoneyHive](https://www.anchorterminal.com/compare/braintrust-vs-honeyhive.md)\n- [Braintrust API + MCP vs Langfuse API + MCP](https://www.anchorterminal.com/compare/braintrust-vs-langfuse.md)\n- [Braintrust API + MCP vs LangSmith API + MCP](https://www.anchorterminal.com/compare/braintrust-vs-langsmith.md)\n- [Braintrust API + MCP vs Respan API + MCP](https://www.anchorterminal.com/compare/braintrust-vs-respan.md)\n- [Galileo API + MCP vs Laminar API + MCP](https://www.anchorterminal.com/compare/galileo-vs-laminar.md)\n- [Helicone AI Gateway + MCP vs Laminar API + MCP](https://www.anchorterminal.com/compare/helicone-vs-laminar.md)\n- [HoneyHive vs Laminar API + MCP](https://www.anchorterminal.com/compare/honeyhive-vs-laminar.md)\n- [Laminar API + MCP vs Langfuse API + MCP](https://www.anchorterminal.com/compare/laminar-vs-langfuse.md)\n- [Laminar API + MCP vs LangSmith API + MCP](https://www.anchorterminal.com/compare/laminar-vs-langsmith.md)\n- [Laminar API + MCP vs Respan API + MCP](https://www.anchorterminal.com/compare/laminar-vs-respan.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Braintrust API + MCP vs Laminar API + MCP",
        "url": ""
      }
    ],
    "description": "Braintrust API + MCP has a score of 61.3 (C) against Laminar API + MCP's 57 (C). Both do obs traces. The largest gap is agent ergonomics, 14 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Braintrust API + MCP C 61.3",
      "Laminar API + MCP C 57",
      "scores"
    ],
    "h1": "Braintrust API + MCP vs Laminar API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-braintrust-vs-laminar.png",
    "path": "/compare/braintrust-vs-laminar",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Braintrust API + MCP vs Laminar API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/braintrust-vs-laminar"
  },
  "tokens": {
    "markdown": 1650,
    "slim": 330
  },
  "version": 1
}
