mcpobsRequest access

See which tool failed.
Not just that one did.

Purpose-built tracing for MCP servers: classified failures, live progress on long-running tools, and every downstream call in context.

trace_id 7f3a1c…e92b1 failing span
tools/call search_docs
db.query postgres
tools/call fetch_ticket
http.request api.internal
tools/call update_status
error.typetool_error

Built on the same pipeline you already trust

OpenTelemetryKafkaClickHousePythonTypeScriptDocker

Failures, classified. Not counted.

A generic error rate collapses five different problems into one number. Each of these has a different owner and a different fix.

tool_error

Everything your tool code raised or returned as isError.

unknown_tool

The SDK rejected the call before your handler ran.

invalid_arguments

Schema validation failed against the tool's input.

protocol_error

An MCP-level failure below any single tool.

401 / 403

Auth flow states from the spec, never counted as failures.

Watch it while it runs.

A span exports when it ends, so a ten-minute tool stays silent for ten minutes unless progress reports its own.

tools/call reindex_workspace - running02:41
1,842 / 2,875 documents64%

Your database calls, in context.

One opt-in call finds whatever OpenTelemetry instrumentors you already installed and reports what it touched.

db

Redis, Postgres, MySQL, Mongo, SQLite

System, operation, table, and statement (redacted before storage).

http

httpx, requests, aiohttp

Method, status, host, and body/headers with instrument_httpx().

llm

OpenAI, Anthropic, Bedrock

System, model, and input/output token counts.

messaging

Kafka, RabbitMQ, SQS

Stored and rendered generically, same as everything else.

One line. That's the whole integration.

No middleware to wire, no config file to write first.

  • Failure text is read once, reduced to an enum, then discarded.
  • Tool arguments and results stay off by default.
  • Works the same whether your server runs over stdio or HTTP.
# pip install mcpobs

from mcpobs import instrument

instrument(mcp)  # that is the whole integration

Managed control plane

The parts you don't want to run yourself.

Orgs, self-serve alerts, and the pipeline behind them — managed, so the only thing you operate is your MCP server.

alerts / rulesfiring

checkout_payment error rate

> 5% · 15m window · 2 consecutive breaches

8.2%
#incidents-checkout0.4s
Delivered on the second consecutive breach — before anyone opened the dashboard.
  • Orgs, projects, and scoped API keys

    Every team's traces are isolated at the query layer, not by convention.

  • Self-serve alerts, no operator in the loop

    Error rate, p95 latency, or call volume — set a threshold, wire a webhook or Slack, done from the console.

  • The same open-source stack, run for you

    No cluster to operate, no upgrades to schedule. You get a key and a URL; we run the pipeline behind it.

Currently invite-only, while we work directly with early teams.

Tell us about your org and we'll set up your first organisation.