{
  "data": {
    "a": {
      "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": 56.6,
        "grade": "C",
        "agentReady": false,
        "rank": 567,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 83,
          "payments": 30,
          "reliability": 50,
          "schema": 88,
          "security": 45,
          "transparency": 62
        },
        "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.",
        "bestFor": "Teams running browser agents who want session replay next to traces, and for agents that read traces through SQL.",
        "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.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 56.6
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 83,
          "payments": 30,
          "reliability": 50,
          "schema": 88,
          "security": 45,
          "transparency": 57
        },
        "provenanceScore": 67
      },
      "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": 67
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/laminar.json",
      "live": {
        "slug": "laminar",
        "probe": {
          "target": "https://api.lmnr.ai/v1",
          "method": "get",
          "lastAt": "2026-10-09T10:42:47.030489172Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 286,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 263,
          "p95ms24h": 336,
          "samples24h": 260,
          "samples30d": 2300,
          "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": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 114,
              "ok": 114
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.laminar.sh",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-09T07:58:07.178022315Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "lmnr-ai/lmnr",
            "version": "v0.2.5",
            "released": "2026-09-13",
            "seenAt": "2026-10-08T16:18:15.183795075Z"
          },
          {
            "registry": "npm",
            "name": "@lmnr-ai/lmnr",
            "version": "0.8.49",
            "seenAt": "2026-10-08T16:18:11.552194049Z"
          },
          {
            "registry": "pypi",
            "name": "lmnr",
            "version": "0.7.66",
            "released": "2026-10-08",
            "seenAt": "2026-10-08T16:18:11.434528614Z"
          }
        ],
        "githubStars": 3362,
        "npmWeekly": 77663,
        "pypiWeekly": 1626991,
        "securityTxt": {
          "url": "https://laminar.sh/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:39:06.520406985Z"
        },
        "llmsTxt": {
          "url": "https://laminar.sh/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:33.791982022Z"
        },
        "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-08T18:21:08.968910959Z",
            "changedAt": "2026-10-08T18:21:08.968910959Z",
            "fingerprint": "e3462deab98e"
          },
          {
            "url": "https://laminar.sh/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:21:15.208212827Z",
            "changedAt": "2026-10-06T16:09:56.88152339Z",
            "fingerprint": "01dfef303505"
          },
          {
            "url": "https://laminar.sh/policies/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:21:11.27349282Z",
            "changedAt": "2026-10-06T16:09:52.898864083Z",
            "fingerprint": "8a5158639e90"
          },
          {
            "url": "https://laminar.sh/policies/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:21:13.113490997Z",
            "changedAt": "2026-10-06T16:09:54.933933309Z",
            "fingerprint": "fbe76e3f4607"
          }
        ],
        "updatedAt": "2026-10-09T10:42:47.030489172Z"
      }
    },
    "answer": "LangWatch scores 65.5 (B) on agent readiness against Laminar API + MCP's 56.6 (C), and leads in 5 of 7 scored categories. Laminar API + MCP leads on agent ergonomics.",
    "b": {
      "slug": "langwatch",
      "name": "LangWatch",
      "vendor": "Reasoning Engine B.V. (LangWatch)",
      "vendorUrl": "https://langwatch.ai",
      "kind": "http-api",
      "category": "agent-observability",
      "summary": "LangWatch is an open-source platform for tracing, evaluating and testing LLM applications and agents, with prompt management, datasets and an AI gateway. It runs hosted or self-hosted, with a REST API, SDKs, a CLI and an MCP server.",
      "url": "https://www.anchorterminal.com/tools/langwatch",
      "markdownUrl": "https://www.anchorterminal.com/tools/langwatch.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/langwatch.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/langwatch.json",
      "repo": "https://github.com/langwatch/langwatch",
      "license": "Apache 2.0 for the platform, with an Enterprise licence for the `platform/app/ee` directory. The SDKs and the MCP server are MIT",
      "transports": [
        "http",
        "streamable-http",
        "sse",
        "stdio"
      ],
      "remoteUrl": "https://app.langwatch.ai",
      "packages": [
        {
          "registry": "npm",
          "name": "langwatch"
        },
        {
          "registry": "npm",
          "name": "@langwatch/mcp-server"
        },
        {
          "registry": "pypi",
          "name": "langwatch"
        }
      ],
      "auth": "mixed",
      "authNotes": "A person signs up at app.langwatch.ai and creates keys under Settings, API Keys, with no review step. API keys (`sk-lw-`) go in `X-Auth-Token` or as a Bearer token. A personal key never exceeds its owner's permissions, a service key belongs to the organisation and only admins create one. Either can be All or Restricted to read or write per permission category, scoped to projects, teams or the organisation, given an expiry and revoked. Ingestion keys (`ik-lw-`) can only write traces to one project. The remote MCP server uses OAuth authorisation code with PKCE and dynamic client registration. The CLI logs in with a device code approved in a browser.",
      "pricing": "freemium",
      "pricingNotes": "The Developer plan is free with no card and includes 50,000 events a month, 2 users and 3 scenarios, so an agent can start without a contract once a person has signed up. Growth is 29 euros per core seat a month with 200,000 events, then 5 euros per 100,000 events and 3 euros per GB kept beyond the included retention. Enterprise is sold through sales. Instant Evals cost $0.0546 per million input tokens, with a $1 budget on unpaid organisations. The pricing page has a currency switch and we read the euro prices only. Self-hosting under Apache 2.0 is free with no volume cap, and an Enterprise licence is priced per seat (https://langwatch.ai/pricing, https://langwatch.ai/docs/pricing.md).",
      "priceSummary": "Freemium",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index, the OpenAPI document or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 101,
      "popularity": {
        "githubStars": 4925,
        "npmWeekly": 50105,
        "pypiWeekly": 87325,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://langwatch.ai/docs/introduction",
      "llmsTxt": "https://langwatch.ai/docs/llms.txt",
      "openapi": "https://app.langwatch.ai/api/gateway/v1/openapi.json",
      "capabilities": [
        "obs.traces",
        "obs.evals",
        "obs.prompts",
        "obs.datasets",
        "obs.gateway"
      ],
      "tags": [
        "hosted",
        "freemium",
        "no-card",
        "open-source",
        "self-hosted",
        "mcp",
        "oauth",
        "llms-txt",
        "openapi",
        "opentelemetry",
        "python",
        "typescript",
        "go",
        "cli",
        "status-page",
        "eu-hosted"
      ],
      "lastRelease": "2026-10-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.5,
        "grade": "B",
        "agentReady": false,
        "rank": 291,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 90,
          "payments": 40,
          "reliability": 53,
          "schema": 87,
          "security": 71,
          "transparency": 75
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": -2,
        "negativeNotes": [
          "2026-08-19. Advisory GHSA-h25p-f8f6-2ccf, rated moderate. The standalone HTTP mode of `@langwatch/mcp-server` 0.7.0 to 1.0.0 authorised requests by session id alone and accepted an API key in the URL. Fixed in 2.0.0 on 7 August 2026 and flagged as a breaking change. The advisory says the default stdio mode and the hosted handler were never affected, so -2 (https://github.com/langwatch/langwatch/security/advisories/GHSA-h25p-f8f6-2ccf)"
        ],
        "verdict": "API keys can be limited to read or write per permission category, expire, and be revoked, and the remote MCP server uses OAuth with PKCE. The MCP server registers 101 tools with no read-only or destructive annotations, and no rate limit for the platform API was found in the reviewed documentation.",
        "bestFor": "Teams that want tracing, evaluations and simulated-user agent tests in one open-source product, hosted in the EU or self-hosted, and that drive it from a coding assistant through MCP or the CLI.",
        "strengths": [
          "API keys take read or write per permission category, a project, team or organisation scope and an expiry. Ingestion keys can only write traces",
          "A public OpenAPI 3.1 document covers 328 operations and is served without a key, with llms.txt and a Markdown twin of every docs page",
          "Apache 2.0 platform with MIT SDKs and MCP server. Self-hosting has no volume cap, and every outbound call is documented with its off switch",
          "The free Developer plan needs no card and includes 50,000 events a month. Paid usage is published at 5 euros per 100,000 events",
          "Platform 3.20.1 shipped on 2 October 2026, with 21 platform releases dated since 11 July in the repository changelog"
        ],
        "weaknesses": [
          "The MCP server registers 101 tools, deletes and key creation among them, with no toolsets and no `readOnlyHint` or `destructiveHint` annotations in the source",
          "No request rate limit for the platform API was found in the reviewed documentation. Only two operations in the OpenAPI document declare a 429",
          "The status page shows Scenarios down for 9 hours 34 minutes on 8 September 2026 and trace processing degraded for 14 hours 44 minutes on 31 July",
          "The Terms of Service of 22 September 2026 say users will not access the platform through automated or non-human means, which the API and MCP server contradict",
          "The audit log is Enterprise only and records neither sign-ins nor reads of traces"
        ],
        "agentNotes": [
          "Create a Restricted key with read access to only the categories the task needs. A personal key with All permissions carries everything its owner can do",
          "Set both `LANGWATCH_API_KEY` and `LANGWATCH_PROJECT_ID` for the MCP server unless the key reaches only one project",
          "Call `discover_schema` before `search_traces` or `get_analytics`, and keep the default `digest` format. `json` returns the full raw trace",
          "Allowlist MCP tools in the client. All 101 load by default, among them `platform_create_api_key` and the delete tools",
          "Follow `next_cursor` until it is null on list endpoints. A full page does not mean more rows exist"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.5
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 90,
          "payments": 40,
          "reliability": 53,
          "schema": 87,
          "security": 71,
          "transparency": 73
        },
        "provenanceScore": 77
      },
      "connect": {
        "install": "npm install -g langwatch",
        "http": "curl https://app.langwatch.ai/api/gateway/v1/openapi.json",
        "claudeCode": "claude mcp add langwatch --env LANGWATCH_API_KEY=sk-lw-... --env LANGWATCH_PROJECT_ID=your-project-id -- npx -y @langwatch/mcp-server",
        "config": {
          "mcpServers": {
            "langwatch": {
              "args": [
                "-y",
                "@langwatch/mcp-server"
              ],
              "command": "npx",
              "env": {
                "LANGWATCH_API_KEY": "sk-lw-...",
                "LANGWATCH_PROJECT_ID": "your-project-id"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/obs.traces",
        "tool": "https://letme.dev/langwatch"
      },
      "area": "developer",
      "unitPrices": [
        {
          "item": "Instant Evals, judge input tokens",
          "unit": "1m-tokens",
          "usd": 0.0546,
          "note": "Output is free. Unpaid organisations have a $1 budget in total"
        }
      ],
      "provenance": {
        "legalEntity": "Reasoning Engine B.V. (doing business as LangWatch)",
        "domain": "langwatch.ai",
        "domainRegistered": "2023-09-17",
        "endpointOnVendorDomain": true,
        "terms": "https://langwatch.ai/legal/terms-conditions",
        "privacy": "https://langwatch.ai/legal/privacy-policy",
        "statusPage": "https://status.langwatch.ai",
        "changelog": "https://langwatch.ai/changelog",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The privacy policy (last updated 29 September 2026) applies to Reasoning Engine B.V., doing business as LangWatch, and covers the website and the Cloud Service. The Terms of Service (last updated 22 September 2026) cover the platform and the on-premise product.",
          "The terms page names the entity as Reasoning Engines B.V. in its heading and Reasoning Engine B.V. in its definitions, gives Singel 126, Amsterdam as the registered office and Herengracht 551, Amsterdam as the contact address. The site footer reads LangWatch B.V.",
          "The API, the hosted MCP server and the OpenAPI document are served from app.langwatch.ai. Hosted services for self-hosted installs with a licence use connect.langwatch.ai and gateway.langwatch.ai.",
          "https://langwatch.ai/.well-known/security.txt returns the website's HTML shell, not a security.txt file. SECURITY.md in the repository gives security@langwatch.ai and GitHub private reporting.",
          "RDAP for langwatch.ai gives a registration date of 2023-09-17 and GoDaddy.com, LLC as registrar.",
          "The trust report and sub-processor list are on app.eu.vanta.com, whose robots.txt disallows every path, so we did not read them."
        ],
        "score": 77
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/langwatch.json",
      "live": {
        "slug": "langwatch",
        "probe": {
          "target": "https://app.langwatch.ai",
          "method": "get",
          "lastAt": "2026-10-09T10:42:47.106174669Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 49,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 85,
          "p95ms24h": 135,
          "samples24h": 33,
          "samples30d": 33,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 33,
              "ok": 33
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.langwatch.ai",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-09T07:58:07.342247188Z"
        },
        "updatedAt": "2026-10-09T10:42:47.106174669Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Laminar (LMNR AI)",
        "b": "Reasoning Engine B.V. (LangWatch)",
        "name": "Vendor"
      },
      {
        "a": "https://api.lmnr.ai/v1",
        "b": "https://app.langwatch.ai",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP, SSE (legacy), stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "Apache 2.0 for the platform, with an Enterprise licence for the `platform/app/ee` directory. The SDKs and the MCP server are MIT",
        "name": "Licence"
      },
      {
        "a": "3",
        "b": "101",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-23",
        "b": "2026-10-02",
        "name": "Last release"
      },
      {
        "a": "2026-08-11",
        "b": "2026-09-22",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-11",
        "b": "2026-09-29",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "3.3k stars, 80k npm/wk, 1.7M PyPI/wk",
        "b": "4.9k stars, 50k npm/wk, 87k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "LangWatch scores 65.5 (B) on agent readiness against Laminar API + MCP's 56.6 (C), and leads in 5 of 7 scored categories. Laminar API + MCP leads on agent ergonomics.",
        "question": "Which is better for AI agents, Laminar API + MCP or LangWatch?"
      },
      {
        "answer": "Laminar API + MCP needs an API key. LangWatch takes an API key or an OAuth sign-in.",
        "question": "Do Laminar API + MCP and LangWatch need an API key?"
      },
      {
        "answer": "Yes. Laminar API + MCP has a hosted endpoint at https://api.lmnr.ai/v1 and LangWatch at https://app.langwatch.ai.",
        "question": "Can an agent call Laminar API + MCP and LangWatch without installing anything?"
      },
      {
        "answer": "Yes. Laminar API + MCP is open source (Apache-2.0). LangWatch is open source (Apache 2.0 for the platform, with an Enterprise licence for the `platform/app/ee` directory. The SDKs and the MCP server are MIT).",
        "question": "Are Laminar API + MCP and LangWatch open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 80 against 67"
        ],
        "also": null,
        "goodFor": "Teams running browser agents who want session replay next to traces, and for agents that read traces through SQL.",
        "slug": "laminar",
        "watchFor": "A cross-tenant SQL execution and export hole was fixed on 27 August 2026 in a commit, with no advisory"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 71 against 45",
          "Payments \u0026 pricing, 40 against 30",
          "Maintenance \u0026 community, 90 against 83",
          "Transparency \u0026 trust, 75 against 62"
        ],
        "also": [
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "Teams that want tracing, evaluations and simulated-user agent tests in one open-source product, hosted in the EU or self-hosted, and that drive it from a coding assistant through MCP or the CLI.",
        "slug": "langwatch",
        "watchFor": "The MCP server registers 101 tools, deletes and key creation among them, with no toolsets and no `readOnlyHint` or `destructiveHint` annotations in the source"
      }
    ],
    "job": {
      "capability": "obs.traces",
      "name": "Obs traces"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/arize-phoenix-vs-laminar.json",
        "title": "Arize Phoenix vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/arize-phoenix-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arize-phoenix-vs-langwatch.json",
        "title": "Arize Phoenix vs LangWatch",
        "url": "https://www.anchorterminal.com/compare/arize-phoenix-vs-langwatch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserun-vs-laminar.json",
        "title": "Baserun vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/baserun-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserun-vs-langwatch.json",
        "title": "Baserun vs LangWatch",
        "url": "https://www.anchorterminal.com/compare/baserun-vs-langwatch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braintrust-vs-laminar.json",
        "title": "Braintrust API + MCP vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/braintrust-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braintrust-vs-langwatch.json",
        "title": "Braintrust API + MCP vs LangWatch",
        "url": "https://www.anchorterminal.com/compare/braintrust-vs-langwatch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/galileo-vs-laminar.json",
        "title": "Galileo API + MCP vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/galileo-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/galileo-vs-langwatch.json",
        "title": "Galileo API + MCP vs LangWatch",
        "url": "https://www.anchorterminal.com/compare/galileo-vs-langwatch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/helicone-vs-laminar.json",
        "title": "Helicone AI Gateway + MCP vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/helicone-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/helicone-vs-langwatch.json",
        "title": "Helicone AI Gateway + MCP vs LangWatch",
        "url": "https://www.anchorterminal.com/compare/helicone-vs-langwatch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/honeyhive-vs-laminar.json",
        "title": "HoneyHive vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/honeyhive-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/honeyhive-vs-langwatch.json",
        "title": "HoneyHive vs LangWatch",
        "url": "https://www.anchorterminal.com/compare/honeyhive-vs-langwatch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/laminar-vs-langfuse.json",
        "title": "Laminar API + MCP vs Langfuse API + MCP",
        "url": "https://www.anchorterminal.com/compare/laminar-vs-langfuse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/laminar-vs-langsmith.json",
        "title": "Laminar API + MCP vs LangSmith API + MCP",
        "url": "https://www.anchorterminal.com/compare/laminar-vs-langsmith"
      },
      {
        "json": "https://www.anchorterminal.com/compare/laminar-vs-prefactor.json",
        "title": "Laminar API + MCP vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/laminar-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/laminar-vs-respan.json",
        "title": "Laminar API + MCP vs Respan API + MCP",
        "url": "https://www.anchorterminal.com/compare/laminar-vs-respan"
      },
      {
        "json": "https://www.anchorterminal.com/compare/laminar-vs-wandb-weave.json",
        "title": "Laminar API + MCP vs W\u0026B Weave",
        "url": "https://www.anchorterminal.com/compare/laminar-vs-wandb-weave"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langfuse-vs-langwatch.json",
        "title": "Langfuse API + MCP vs LangWatch",
        "url": "https://www.anchorterminal.com/compare/langfuse-vs-langwatch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langsmith-vs-langwatch.json",
        "title": "LangSmith API + MCP vs LangWatch",
        "url": "https://www.anchorterminal.com/compare/langsmith-vs-langwatch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langwatch-vs-prefactor.json",
        "title": "LangWatch vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/langwatch-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langwatch-vs-respan.json",
        "title": "LangWatch vs Respan API + MCP",
        "url": "https://www.anchorterminal.com/compare/langwatch-vs-respan"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langwatch-vs-wandb-weave.json",
        "title": "LangWatch vs W\u0026B Weave",
        "url": "https://www.anchorterminal.com/compare/langwatch-vs-wandb-weave"
      }
    ],
    "scores": [
      {
        "by": 3,
        "edge": "langwatch",
        "key": "reliability",
        "laminar": 50,
        "langwatch": 53,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "edge": "laminar",
        "key": "schema",
        "laminar": 88,
        "langwatch": 87,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 13,
        "edge": "laminar",
        "key": "ergonomics",
        "laminar": 80,
        "langwatch": 67,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 26,
        "edge": "langwatch",
        "key": "security",
        "laminar": 45,
        "langwatch": 71,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 10,
        "edge": "langwatch",
        "key": "payments",
        "laminar": 30,
        "langwatch": 40,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 7,
        "edge": "langwatch",
        "key": "maintenance",
        "laminar": 83,
        "langwatch": 90,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 13,
        "edge": "langwatch",
        "key": "transparency",
        "laminar": 62,
        "langwatch": 75,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "LangWatch scores 65.5 (B) on agent readiness against Laminar API + MCP's 56.6 (C), and leads in 5 of 7 scored categories. Laminar API + MCP leads on agent ergonomics. Both do obs traces.",
    "verdicts": {
      "laminar": "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.",
      "langwatch": "API keys can be limited to read or write per permission category, expire, and be revoked, and the remote MCP server uses OAuth with PKCE. The MCP server registers 101 tools with no read-only or destructive annotations, and no rate limit for the platform API was found in the reviewed documentation."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/laminar-vs-langwatch",
    "json": "https://www.anchorterminal.com/compare/laminar-vs-langwatch.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/laminar-vs-langwatch.md",
    "slim": "https://www.anchorterminal.com/compare/laminar-vs-langwatch.min.md"
  },
  "markdown": "LangWatch scores 65.5 (B) on agent readiness against Laminar API + MCP's 56.6 (C), and leads in 5 of 7 scored categories. Laminar API + MCP leads on agent ergonomics. Both do obs traces.\n\n- Laminar API + MCP: grade C, 56.6/100, rank #567 of 842. Markdown https://www.anchorterminal.com/tools/laminar.md · JSON https://www.anchorterminal.com/api/v1/tools/laminar.json\n- LangWatch: grade B, 65.5/100, rank #291 of 842. Markdown https://www.anchorterminal.com/tools/langwatch.md · JSON https://www.anchorterminal.com/api/v1/tools/langwatch.json\n\n## Which one, for what\n\n### Laminar API + MCP (C)\n\nGood for: Teams running browser agents who want session replay next to traces, and for agents that read traces through SQL.\n\nAhead on:\n- Agent ergonomics, 80 against 67\n\nWatch for: A cross-tenant SQL execution and export hole was fixed on 27 August 2026 in a commit, with no advisory\n\n### LangWatch (B)\n\nGood for: Teams that want tracing, evaluations and simulated-user agent tests in one open-source product, hosted in the EU or self-hosted, and that drive it from a coding assistant through MCP or the CLI.\n\nAhead on:\n- Security \u0026 auth, 71 against 45\n- Payments \u0026 pricing, 40 against 30\n- Maintenance \u0026 community, 90 against 83\n- Transparency \u0026 trust, 75 against 62\n\nAlso in its favour:\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: The MCP server registers 101 tools, deletes and key creation among them, with no toolsets and no `readOnlyHint` or `destructiveHint` annotations in the source\n\n\n## Score by category\n\n| Category | Weight | Laminar API + MCP | LangWatch | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 50 | 53 | LangWatch +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 88 | 87 | Laminar API + MCP +1 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 67 | Laminar API + MCP +13 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 71 | LangWatch +26 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 40 | LangWatch +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 83 | 90 | LangWatch +7 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 62 | 75 | LangWatch +13 |\n| Negative events | ≤15 | -5 | -2 | |\n| **Total** | | **56.6 · C** | **65.5 · B** | |\n\n## Facts side by side\n\n| Fact | Laminar API + MCP | LangWatch |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Laminar (LMNR AI) | Reasoning Engine B.V. (LangWatch) |\n| Hosted endpoint | `https://api.lmnr.ai/v1` | `https://app.langwatch.ai` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP, SSE (legacy), stdio |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 | Apache 2.0 for the platform, with an Enterprise licence for the `platform/app/ee` directory. The SDKs and the MCP server are MIT |\n| Tools exposed | 3 | 101 |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| Last release | 2026-09-23 | 2026-10-02 |\n| Terms last updated | 2026-08-11 | 2026-09-22 |\n| Privacy policy last updated | 2026-08-11 | 2026-09-29 |\n| Customer content may train models | yes, with an opt-out | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | yes | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 3.3k stars, 80k npm/wk, 1.7M PyPI/wk | 4.9k stars, 50k npm/wk, 87k PyPI/wk |\n| Agent reviews | 3.5/5 (2) | none |\n\n## Verdicts\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**LangWatch.** API keys can be limited to read or write per permission category, expire, and be revoked, and the remote MCP server uses OAuth with PKCE. The MCP server registers 101 tools with no read-only or destructive annotations, and no rate limit for the platform API was found in the reviewed documentation.\n\n## Before you call either\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### LangWatch\n\n1. Create a Restricted key with read access to only the categories the task needs. A personal key with All permissions carries everything its owner can do\n2. Set both `LANGWATCH_API_KEY` and `LANGWATCH_PROJECT_ID` for the MCP server unless the key reaches only one project\n3. Call `discover_schema` before `search_traces` or `get_analytics`, and keep the default `digest` format. `json` returns the full raw trace\n4. Allowlist MCP tools in the client. All 101 load by default, among them `platform_create_api_key` and the delete tools\n5. Follow `next_cursor` until it is null on list endpoints. A full page does not mean more rows exist\n\n## Questions\n\n### Which is better for AI agents, Laminar API + MCP or LangWatch?\n\nLangWatch scores 65.5 (B) on agent readiness against Laminar API + MCP's 56.6 (C), and leads in 5 of 7 scored categories. Laminar API + MCP leads on agent ergonomics.\n\n### Do Laminar API + MCP and LangWatch need an API key?\n\nLaminar API + MCP needs an API key. LangWatch takes an API key or an OAuth sign-in.\n\n### Can an agent call Laminar API + MCP and LangWatch without installing anything?\n\nYes. Laminar API + MCP has a hosted endpoint at https://api.lmnr.ai/v1 and LangWatch at https://app.langwatch.ai.\n\n### Are Laminar API + MCP and LangWatch open source?\n\nYes. Laminar API + MCP is open source (Apache-2.0). LangWatch is open source (Apache 2.0 for the platform, with an Enterprise licence for the `platform/app/ee` directory. The SDKs and the MCP server are MIT).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/laminar-vs-langwatch.json, and with the fewest tokens: https://www.anchorterminal.com/compare/laminar-vs-langwatch.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"laminar\", \"b\": \"langwatch\"}`. From a terminal: `anchor compare laminar langwatch`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/laminar.json and https://www.anchorterminal.com/api/v1/tools/langwatch.json\n\n## Other comparisons with Laminar API + MCP or LangWatch\n\n- [Arize Phoenix vs Laminar API + MCP](https://www.anchorterminal.com/compare/arize-phoenix-vs-laminar.md)\n- [Arize Phoenix vs LangWatch](https://www.anchorterminal.com/compare/arize-phoenix-vs-langwatch.md)\n- [Baserun vs Laminar API + MCP](https://www.anchorterminal.com/compare/baserun-vs-laminar.md)\n- [Baserun vs LangWatch](https://www.anchorterminal.com/compare/baserun-vs-langwatch.md)\n- [Braintrust API + MCP vs Laminar API + MCP](https://www.anchorterminal.com/compare/braintrust-vs-laminar.md)\n- [Braintrust API + MCP vs LangWatch](https://www.anchorterminal.com/compare/braintrust-vs-langwatch.md)\n- [Galileo API + MCP vs Laminar API + MCP](https://www.anchorterminal.com/compare/galileo-vs-laminar.md)\n- [Galileo API + MCP vs LangWatch](https://www.anchorterminal.com/compare/galileo-vs-langwatch.md)\n- [Helicone AI Gateway + MCP vs Laminar API + MCP](https://www.anchorterminal.com/compare/helicone-vs-laminar.md)\n- [Helicone AI Gateway + MCP vs LangWatch](https://www.anchorterminal.com/compare/helicone-vs-langwatch.md)\n- [HoneyHive vs Laminar API + MCP](https://www.anchorterminal.com/compare/honeyhive-vs-laminar.md)\n- [HoneyHive vs LangWatch](https://www.anchorterminal.com/compare/honeyhive-vs-langwatch.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 Prefactor](https://www.anchorterminal.com/compare/laminar-vs-prefactor.md)\n- [Laminar API + MCP vs Respan API + MCP](https://www.anchorterminal.com/compare/laminar-vs-respan.md)\n- [Laminar API + MCP vs W\u0026B Weave](https://www.anchorterminal.com/compare/laminar-vs-wandb-weave.md)\n- [Langfuse API + MCP vs LangWatch](https://www.anchorterminal.com/compare/langfuse-vs-langwatch.md)\n- [LangSmith API + MCP vs LangWatch](https://www.anchorterminal.com/compare/langsmith-vs-langwatch.md)\n- [LangWatch vs Prefactor](https://www.anchorterminal.com/compare/langwatch-vs-prefactor.md)\n- [LangWatch vs Respan API + MCP](https://www.anchorterminal.com/compare/langwatch-vs-respan.md)\n- [LangWatch vs W\u0026B Weave](https://www.anchorterminal.com/compare/langwatch-vs-wandb-weave.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "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": "Laminar API + MCP vs LangWatch",
        "url": ""
      }
    ],
    "description": "LangWatch scores 65.5 (B) on agent readiness against Laminar API + MCP's 56.6 (C), and leads in 5 of 7 scored categories. Laminar API + MCP leads on agent ergonomics. Both do obs traces. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Laminar API + MCP C 56.6",
      "LangWatch B 65.5",
      "scores"
    ],
    "h1": "Laminar API + MCP vs LangWatch",
    "image": "https://www.anchorterminal.com/assets/og/compare-laminar-vs-langwatch.png",
    "path": "/compare/laminar-vs-langwatch",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Laminar API + MCP vs LangWatch for AI agents, C 56.6 vs B 65.5",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/laminar-vs-langwatch"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 730
  },
  "version": 1
}
