# MCP

The **MCP** tab shows Model Context Protocol traffic through Zuplo: OAuth and
auth decisions, virtual-server routing, capability and tool invocations,
JSON-RPC method usage, and upstream MCP server health. It covers both traffic
that flows _to_ an MCP fleet through Zuplo's gateway and activity _inside_ MCP
servers you host on Zuplo. It's visible when the project type is **standard**
and MCP is in use.

## When to use this

- See which virtual servers, capabilities, and tools clients call most, and
  who's calling them.
- Track auth and policy decision outcomes across OAuth flows.
- Identify whether failures originate in the gateway, the upstream, or the
  client.
- Investigate the JSON-RPC error codes clients receive.

## Summary KPIs

| Name                    | What it measures                                                                             |
| ----------------------- | -------------------------------------------------------------------------------------------- |
| **Events**              | Total MCP events in the window.                                                              |
| **Success Rate**        | Share of events with outcome = success. Secondary: success / error split.                    |
| **Client Errors (4xx)** | Count of client-side errors. Secondary: share of all errors.                                 |
| **Server Errors (5xx)** | Count of server-side errors. Secondary: share of all errors.                                 |
| **Failure Origins**     | Combined gateway + upstream + client failures. Secondary: per-origin split (`gw · up · cl`). |

See [Metrics glossary](../reference/metrics-glossary.md) for the failure-origin
and outcome-class definitions.

## Charts

**MCP Events Over Time.** Stacked area showing the top event types over the
window.

**Event Families.** A donut distributing events across families: **Requests**,
**Capabilities**, and **Auth**.

**Latency — Gateway vs Upstream.** Total, gateway, and upstream P95 over time,
with P50 total, P95 total, P95 gateway, and P95 upstream summary cards. _What to
look for:_ a P95 that the upstream slice dominates points to a slow MCP backend;
a gateway-heavy P95 points to policy or auth overhead.

## Breakdown tables

| Table                | Columns                                                                                                                |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Capabilities         | Server, Capability, Type, Calls, Client (4xx), Server (5xx), Error Rate, P95.                                          |
| Consumers            | Consumer, Events, Client (4xx), Server (5xx).                                                                          |
| Virtual Servers      | Virtual Server, Events, Client (4xx), Server (5xx).                                                                    |
| Upstream Servers     | Upstream, Events, Client (4xx), Server (5xx), P95.                                                                     |
| MCP Methods          | Method (for example `tools/call`, `tools/list`, `resources/list`, `prompts/list`, `resources/templates/list`), Events. |
| Clients              | Client, Kind (from the `initialize` handshake), Events.                                                                |
| JSON-RPC Error Codes | Code, Errors — the JSON-RPC error codes clients receive.                                                               |
| Failure Origins      | Origin (gateway / upstream / client), Errors, Client (4xx), Server (5xx).                                              |
| Reason Codes         | Class, Code, Events, Errors, Client (4xx), Server (5xx).                                                               |

Most tables sort on any column and show the top values by volume. Click **Show
more** to load the next page.

## Filters

The filter bar applies. See [Shared controls](../shared-controls.md#filters).

## Troubleshooting

**The MCP tab is empty.** No MCP events arrived in the selected window. Once a
client connects and invokes a capability or tool, the dashboard populates.

**The tab isn't visible.** Visibility requires project type **standard** with
MCP in use — either an MCP gateway that routes to upstream servers, or an MCP
server you host on Zuplo.

**Errors show but Failure Origins is empty.** Zuplo classifies failure origins
server-side from event metadata. Events without a clear origin classification
land in Errors but in none of the gateway / upstream / client buckets.
