Skip to content
mcpd
no daemon

The unopinionated agent observatory.

See every run of every agent you ship: each model call, tool call and retrieval, with its prompt, its answer and its cost. Any framework, any language, any model provider. Nothing to adopt.

Hosted free with every feature, or one open-source binary on your own machine.

Live trace 8 spans 3.18 s $0.0098
Source Span
01s2s3s
  1. TS Vercel AI SDK POST /api/chat Vercel AI SDK · TS
  2. TS Vercel AI SDK gpt-4.1-mini Vercel AI SDK · TS
  3. TS Vercel AI SDK search_orders Vercel AI SDK · TS
  4. Go OpenTelemetry GET /orders/{id} OpenTelemetry · Go
  5. Py LlamaIndex vector.query LlamaIndex · Py
  6. Py LangChain refund_agent LangChain · Py
  7. Py Anthropic SDK claude-sonnet-4 Anthropic SDK · Py
  8. Py LangChain issue_refund LangChain · Py
Five frameworks in three languages, one trace. TypeScript · Go · Python

Works with what you already run.

mcpd receives OpenTelemetry and reads both the OpenTelemetry and the OpenInference conventions for model calls, so the instrumentation that already exists for your stack works as it is. Your agent keeps its framework, and you keep your code.

Point any OpenTelemetry exporter at mcpd

export OTEL_EXPORTER_OTLP_ENDPOINT=https://api.mcpd.sh export OTEL_EXPORTER_OTLP_PROTOCOL=http/json

Or add an SDK: TypeScript · Python · Rust · Go · Kotlin · Elixir

Agent frameworks

  • LangChain
  • LangGraph
  • LlamaIndex
  • CrewAI
  • Vercel AI SDK
  • OpenAI Agents SDK
  • Pydantic AI
  • AutoGen
  • Semantic Kernel
  • Haystack
  • DSPy
  • Your own loop

Model providers

  • OpenAI
  • Anthropic
  • Google Gemini
  • Mistral
  • Azure OpenAI
  • Groq
  • Ollama
  • vLLM

Every step, with the evidence.

A run is a tree of model calls, tool calls and retrievals. Open any step to read the exact prompt and answer, the tokens it used and what it cost. Search finds a run by what the model said, and every log line links back to the step that wrote it.

  • A waterfall of every run, on one clock
  • The full conversation, tool calls included
  • Cost per run, per model and per project
  • Logs, metrics and traces joined by trace id

Open the interface

  1. support_agent 2.86s
  2. gpt-4.1-mini 910ms
  3. lookup_order 420ms
  4. orders.get 300ms
  5. gpt-4.1-mini 1.38s
Tokens2,184 → 96 Cost$0.00071 Duration2.86 s

Workflows that survive a crash.

Write the steps in your own code, in any of six languages. mcpd holds the run between them: retries, timers, and waits for an event that may take a week. If a worker dies mid-step, another one picks the step up.

Durable run completed
  1. classify task completed
  2. draft agent attempt 2
  3. approval wait_event completed
  4. send task completed
worker-a exited
worker-b idle
mcpd holds the run

Journal

  1. 00:00 Run started
  2. 00:03 classify completed
  3. 00:04 draft claimed by worker-a
  4. 00:07 worker-a stopped mid-step
  5. 00:10 Lease on draft expired
  6. 00:10 draft claimed by worker-b, attempt 2
  7. 00:14 draft completed
  8. 00:15 Waiting for approval, no process alive
  9. 00:21 Event approval arrived
  10. 00:24 send completed
  11. 00:24 Run completed

Your code runs every step

The daemon never sees a model, a prompt or a credential. Workers claim one step at a time.

Waits hold no process

A sleep or a wait for approval holds the run with no process alive, through a deploy or a week.

Every run is a trace

Each step is a span with its input, output and cost, so search and scoring work on runs too.

Read about workflows

Monitors evaluated every 60 s
0% 5% 10% too few runs threshold 5%
  • error_rate > 5% resolved
  • latency_p95 > 4 s ok
  • cost > $5 / h ok
  • score_mean no_tool_loop < 0.9 ok
It fires when the error rate crosses the line, stays firing while there are too few runs to judge, and resolves only on a real reading under the line.

Know when quality slips.

Score every run with thirteen built-in scorers or with a model as the judge. Turn production runs into datasets and compare experiments. Monitors watch error rate, latency, cost and scores, and call your webhook when one of them moves.

Run it anywhere.

One binary with the storage and the interface built in. SQLite on a laptop, Postgres or ClickHouse for a team, Docker or Kubernetes in production. No telemetry and no licence server.

Deployment guide

Hosted

Free at mcpd.sh with every feature included. Sign up and send your first trace.

Your laptop

One process and one SQLite file. Nothing else to install.

Docker

One container, one volume, one port.

Kubernetes

A Helm chart, with Postgres or ClickHouse behind it and keys per project.

Run your own

git clone https://github.com/mcpd/mcpd && cd mcpd && make build && ./target/release/mcpd demo

Your first trace in five minutes.

Sign up free, or run it on your own machine. The same product either way.