MCP Server Analytics: Call Logs, Replay and Usage Insights
MCP server analytics answer a simple question: what did AI clients actually do with your API? GetMCP records every tool call, prompt and resource read made through your servers, then turns that record into charts, a searchable call log and a step-by-step replay of any single call. All of it stays on your own server.
This guide is for anyone running MCP servers others depend on: developers debugging a failing tool, agencies reporting usage to clients, and SaaS teams watching which tools models really use. It covers the Analytics screen, Call Logs, replay, export, integrity checks and retention.
What are MCP server analytics in GetMCP?
Every request that reaches a GetMCP server endpoint runs through a logger. Tool calls, prompts/get and resources/read each produce a log row with the server, tool, method, outcome, response time, upstream status code, client type, client IP and user agent.
Two screens in the sidebar read from that record:
- Analytics: totals and trends for a date range, described in the app as “Monitor your MCP server performance and usage”.
- Logs: the call-by-call record, titled Call Logs, with filters, a detail panel, replay and export.
The client type comes from the name the client sends when it connects, so Claude, Cursor, Windsurf and others are labelled even when their user agent is generic. Without a session, GetMCP falls back to the user agent.
How the Analytics screen works
Choose Last 7 days, Last 30 days (the default), Last 90 days or Custom at the top. The screen then shows:

| Panel | What it shows |
|---|---|
| Total Calls, Success Rate, Avg Response Time, Unique Clients | Headline numbers for the selected range. |
| Interceptor Savings | For the last 30 days: how much data the upstream APIs returned, how much reached the AI client, and the difference, in estimated tokens and bytes. |
| Calls Over Time | Total, successful and failed calls per day. |
| Top Tools | Your most-called tools, ranked by call count. |
| Response Time (ms) | Average and 95th-percentile latency per day. |
| Client Breakdown | Calls by client, as a chart and a table with percentages. |
Interceptor Savings is worth a closer look. When a tool prunes its response with a JMESPath selector, or a server redacts personal data, the model receives less than the API sent. The widget shows that gap as Upstream, Saved and Delivered, with tokens estimated at one per four bytes. If nothing has been shaped yet, it tells you to enable JMESPath pruning or PII redaction to start producing savings.
How Call Logs work
The Call Logs table lists Timestamp, Server, Tool, Method, Status, Response Time and Client, 20 rows per page. You can hide columns you don’t need. Narrow it down with:
- Search logs, for free text.
- Date: All time, Last 24 hours, Last 7 days or Last 30 days.
- Server, Status (Success or Error) and Method (Tools, Prompts or Resources).
Click View on any row to open Call Log Detail. It shows the status, response time, server, tool, method, timestamp, client type, upstream status code, client IP, user agent and any error message. Previous and next arrows let you step through the list without closing the panel.

Session replay
With Log response data switched on in Settings, each tool call also records its full data flow in four stages: Request (what the client sent), Outbound HTTP request (what GetMCP sent to your API), Upstream HTTP response (what the API returned) and Response (what the client received). Headers and bodies are shown for each, with bodies cut at 64 KB.
Log response data is off by default because it uses storage. Turn it on while you debug, then off again.
Replay, copy and export
- Replay in Tool Editor opens the tool with the logged arguments already filled in, so you can re-run the exact call that failed.
- Copy as cURL copies the JSON-RPC request as a cURL command against the server endpoint, with a placeholder where your key goes.
- Export downloads the filtered logs as CSV, JSON or NDJSON. NDJSON suits log tools such as Splunk, Datadog and Elastic.
- Clear filtered deletes every log matching the current filters, and you can select rows to delete in bulk.
Privacy, integrity and retention
Logs are built not to become a second copy of your secrets:
- Argument values under keys such as
password,token,api_key,authorizationandcookieare stored as***REDACTED***, including nested ones. - Strings over 1,000 characters are truncated, and very large objects are summarised.
- In replay data, credential headers, credentials in URL query strings and upstream
Set-Cookieheaders are masked. - With PII redaction set to cover logs, emails, card numbers and other matches are replaced before the row is written. See rate limiting and PII redaction.
Each row is also signed with an HMAC-SHA256 key derived from your site’s secret keys. Verify integrity, under the More actions menu, recomputes the signatures for the rows in the current filter and reports any that were changed after they were written. Rows written before signing existed are reported as legacy.
Under Settings → Data Retention, Log Retention (days) defaults to 30 and Analytics Retention (days) to 90. Set either from 0 to 365; 0 keeps data forever. A daily job removes anything older, and the Logs screen reminds you how long logs are kept.
Use cases for MCP server analytics
Find out why a tool fails for one client
Filter Call Logs to Status: Error and the failing tool. The replay shows the outbound request and the upstream 400 next to each other, and Replay in Tool Editor lets you fix the mapping and re-run the same arguments.
Error filter → Call Log Detail → replay → Tool Editor fix
Report monthly usage to an agency client
Pick Last 30 days on Analytics for Acme’s servers, then export the month’s logs as CSV for the report. Client Breakdown shows how much use came from Claude and how much from Cursor.
Analytics (30 days) → Export CSV → client report
Decide which tools to keep
Top Tools shows what models actually call. A tool that never appears may have a vague description, or may not be needed at all. Fewer, clearer tools help models choose well.
Top Tools → rewrite or retire → compare next month
Prove the value of response shaping
After adding JMESPath selectors to Northwind’s order tools, Interceptor Savings shows how much smaller the delivered responses are, in tokens the model no longer has to read.
JMESPath selector → smaller responses → Interceptor Savings
Feed MCP activity into your log platform
A security team exports logs as NDJSON each week and loads them into its existing log tool, alongside the rest of the company’s audit data.
Export NDJSON → Splunk, Datadog or Elastic
Show an auditor the log was not edited
Before a review, run Verify integrity over the audit period. A clean result shows every signed row still matches what was written at the time of the call.
Date filter → Verify integrity → "Integrity OK"
Tips and gotchas
- Replay needs Log response data. Without it, the detail panel shows arguments but not the full data flow, and tells you where to switch it on.
- Replay in Tool Editor needs the tool to still exist. If the server or tool was deleted, the button reports that it can’t be found.
- Large exports run in your browser. GetMCP warns before exporting a very large set; filter first when you can.
- Tokens are estimates. Interceptor Savings divides bytes by four, a rule of thumb rather than a model’s real tokenizer.
- Verify integrity scans a limited batch. If it reports that the limit was reached, narrow the date or server filter and run it again.
- Playground calls count too. Conversations in the chat playground go through the real endpoint, so they appear in logs and analytics.
Related features
- Tool Editor: where replayed calls open, and where JMESPath selectors are set.
- Rate limiting and PII redaction: control what is called and what is stored.
- Chat playground: generate test traffic with a real model.
FAQ
Can I see which AI client called my MCP server?
Yes. Each log row records the client type, IP address and user agent. The Analytics screen’s Client Breakdown groups calls by client for the selected period.
Are API keys or passwords stored in the logs?
Arguments under credential-style keys are stored as ***REDACTED***, and replay data masks credential headers, URL credentials and cookies. You can also turn on PII redaction for logs to remove personal data before rows are written.
How long are MCP call logs kept?
Call logs are kept 30 days and daily analytics 90 days by default. Change both under Settings → Data Retention, from 0 to 365 days, where 0 keeps data forever.
Can I export MCP logs to another tool?
Yes. Export the filtered Call Logs as CSV, JSON or NDJSON. NDJSON loads directly into most log platforms.
With every call recorded, signed and searchable, you can always answer what an AI did with your API, when, and how it went. Explore the rest of the toolkit on the features page.
Ship an MCP server for your product this week.
Install GetMCP on any PHP host, import your API and share one URL. Your users can call your tools from Claude tonight.