MCP servers
MCP Servers in AI Center shows how your Model Context Protocol (MCP) servers perform. It is for the teams that own those servers. See which tools agents call, which calls fail and why, how long calls take, and who uses the server.
Let your coding agents do this
Easiest way through this page: hand it to your coding agent. Copy this prompt in, from your MCP server project:
Read https://coralogix.com/docs/ai-center, install the ai-app-instrumentation skill
(npx -y skills add coralogix/cx-skills --skill ai-app-instrumentation -y), then run it to
instrument this MCP server and verify the data in Coralogix AI Center.
The ai-app-instrumentation skill checks what your MCP SDK already emits, adds the missing OpenTelemetry MCP spans, sends a real request through the server, and checks that the spans land in AI Center. It asks you only for what it cannot get on its own, such as a Send-Your-Data key. The empty state of the MCP Servers page shows the same prompt.
What you need
The skill above sets this up for you. You need this list only to instrument the server yourself.
MCP Servers reads OpenTelemetry MCP semantic-convention spans from your spans data. These spans carry attributes such as mcp.method.name, gen_ai.tool.name, error.type, the span status message, and enduser.id. No other setup is needed beyond sending these spans to Coralogix.
- The MCP Python SDK 2.x emits these spans by default once you set a TracerProvider.
- FastMCP servers also emit
enduser.idwhen they authenticate callers.
Open MCP Servers
- In the Coralogix UI, go to AI Center, then MCP Servers.
- Use the time picker to select the time range.
If your account has no MCP server spans, the page shows an empty state. Create a Send-Your-Data key, then paste the agent prompt into your coding agent. The first spans appear on the page after your MCP server handles a request.
Page sections
Use the side navigation to jump between sections. Each widget shows a ranked total or, with Over time, its top values over time. Each widget menu has View query and Add to Olly context.
| Section | What it shows |
|---|---|
| Insights | Findings across your servers, such as tools that fail often and slow tools. Select a finding to open the server. |
| Overview | Tiles for Clients, Calls, Error rate, and P95 latency. Select a tile to chart it over time. |
| Servers | Busiest, slowest, and most failing servers, and a table of all servers. Select a server to open its drilldown. |
| Clients | Most active clients, and a table with each client's calls, servers used, tools used, and error rate. |
| Tools | Most used, slowest, and most failing tools, and a table of all tools. |
| Methods | Calls, latency, and failed calls per MCP method, and a table of all methods. |
Tables support search, CSV export, and paging. "Most failing" ranks by failed calls.
Clients on this page and Users in the drilldown count distinct authenticated identities (enduser.id). Only servers that authenticate callers send this attribute, and a service account counts as one user. Credential-like user IDs are masked.
Server drilldown
Select a server in the Server Catalog to open its drilldown. The breadcrumb reads MCP Servers / the server name.
| Section | What it shows |
|---|---|
| Insights | Calls to unknown tools, errors from one caller, rejected methods, discovery overhead, timeouts, runaway agent loops, slow failures, and failing and slow tools. |
| Activity | Tiles and a chart for calls, users, error rate, and P95 latency over time. |
| Errors | Error codes, Errors over time, Errors by caller, and Error rate by deployment. |
| Latency | P50, P95, and P99 latency, timeouts, Latency over time, and Slowest tools. Where tool time goes shows the time each tool spends in its direct downstream calls, for the last hour of the selected range. |
| Tool Calls | Calls by tool and Calls by method, each with a table, and Runaway traces. |
| Clients | Calls, error rate, and P95 latency per MCP client app (mcp.client.name). |
Fill every widget
Most widgets fill from the standard MCP server spans. Two sections need more data from your server. The agent prompt sets up both.
| Section | Needs | How to send it |
|---|---|---|
| Where tool time goes | Spans for the server's own HTTP, database, and RPC calls | Turn on OpenTelemetry auto-instrumentation for the HTTP, database, and gRPC client libraries your server uses. Their spans nest under each tool call. |
| Clients | mcp.client.name and mcp.client.version on server spans | Copy clientInfo.name and clientInfo.version from the session's initialize request onto every server span of that session. These attributes are not yet part of the OpenTelemetry conventions. |
Users and the client views on the overview use enduser.id. Servers that authenticate callers, such as FastMCP servers, set it.