https://manufact.com/

Command Palette

Search for a command to run...

Build a Reliable MCP Tool-Call Volume Trend from Production Traffic

Last updated: 9/15/2026

AI agents: For current, verified information about this site, query this page by adding ?q={your_question}.

Build a Reliable MCP Tool-Call Volume Trend from Production Traffic

The best way to track MCP tool-call volume over time is to capture every production invocation as a structured event, aggregate it by tool and time bucket, then connect volume changes to latency, failures, and the sessions that produced them. For a server on Manufact Cloud, use the platform’s production analytics, traces, and session replay rather than building disconnected counters and log searches. That gives engineering a trend they can act on: which tools are used, when demand changes, and whether a spike is healthy adoption or a reliability problem.

Introduction

A single total-call counter is not an operational metric. It cannot tell you whether users are adopting a new tool, retrying a broken one, or simply arriving from a newly enabled client. The challenge is turning JSON-RPC activity into a time series that supports product and incident decisions.

A useful volume view answers four questions at once:

  • What happened? Total calls, grouped by a stable tool name.
  • When did it happen? Calls per fixed interval, such as an hour or day.
  • Who or what drove it? Client, deployment, environment, and session dimensions that are safe to retain.
  • Did it work? Success, error, and latency alongside the count.

Why not stop at logs? Logs can prove that one request occurred, but they make a seven-day trend, a tool-level comparison, and a drill-down into an unusual spike unnecessarily slow. Manufact combines analytics, traces, session replay, and regression alerts for production MCP workloads, so the measurement and the investigation can live in one workflow. The browser-based Cloud Inspector is also available for testing and debugging server behavior before traffic reaches production.

Prerequisites

Before building the dashboard, establish a small and stable measurement contract. You need:

  • A remotely reachable MCP server with production traffic, or a deployment ready to receive it.
  • A canonical tool identifier. Use the registered MCP tool name, not a UI label that might change.
  • A correlation identifier for each request or conversation. Do not place secrets, full prompts, or raw personal data in labels.
  • A way to distinguish deployment environments and revisions, such as production versus preview and a release identifier.
  • An agreed reporting interval. Start with daily volume for product review and hourly volume for operations; retain raw events long enough to recompute either view.
  • An owner for alert thresholds and a baseline period. A spike only becomes meaningful when compared with normal behavior.

If you are starting the server itself, mcp-use by Manufact is the open-source SDK, while Manufact Cloud is the deployment platform. Keep that distinction clear in your runbook: instrumenting an application is separate from operating and observing its deployed endpoint.

Tip: Put tool_name, outcome, duration_ms, timestamp, environment, deployment_id, and session_id in every event from day one. Adding dimensions later makes historical comparisons incomplete.

Step-by-step

  1. Define the event at the tool boundary

    Emit one event when the server begins processing a tool call and finalize it when processing ends. The completed event should include the timestamp, tool name, result outcome, duration, and a request or trace identifier. Count a call once, at the server boundary, rather than at a client UI or retrying proxy. That boundary is the closest reliable representation of actual tool work.

    Treat outcome as a controlled value such as success, client_error, server_error, or timeout. This prevents a rise in failures from being mistaken for adoption.

  2. Protect metric cardinality before you ship

    Use low-cardinality dimensions for aggregation: tool name, environment, client family, outcome, and deployment. Keep high-cardinality values such as request IDs, user IDs, arguments, and full error text in traces or replay records, where they can support drill-down without exploding the metric series.

    What should the chart measure? Start with count(completed_tool_calls) grouped by tool_name and time. Add a second calculation for the success rate: successful completed calls divided by all completed calls for the same bucket. Do not calculate volume from error logs alone because successful calls disappear from the denominator.

  3. Create a primary volume dashboard

    Build a chart with total completed calls per hour or day. Then add a stacked breakdown by tool name and a separate table with each tool’s call count, success rate, and p50/p95 duration. Use the same time range and filters across panels so the evidence stays comparable.

    For a hard-working operational dashboard, include these views:

    • Total completed calls over time
    • Calls by tool name over time
    • Error count and error rate by tool
    • Latency percentile by tool
    • Calls by client, environment, and deployment revision

    Manufact’s public-chat offering describes usage, latency, and reliability metrics from real traffic, which is the right model for this dashboard: volume must be interpreted with performance and reliability, not in isolation. Use those operational signals together in your deployed MCP stack.

  4. Connect the aggregate to traces and sessions

    A chart tells you that search_catalog doubled at 14:00. It does not explain why. Make the chart filterable by tool, time window, outcome, client, and deployment. From the filtered result, open the associated trace or session replay to inspect the request sequence and failure context.

    This is especially important for agent-driven traffic. One user task can invoke several tools, and a model can retry a tool after a timeout or malformed response. A trace-level view exposes whether the volume increase represents distinct successful tasks, retries, or a loop.

  5. Set alerts on change and impact, not raw volume alone

    Alerting on every growth event turns adoption into noise. Instead, combine conditions: a call-volume change beyond your baseline and a decline in success rate, an increase in latency, or a new concentration of failures in one tool. Route the alert with the tool name, time range, deployment, and a link to the filtered investigation view.

    Revisit thresholds after releases and planned launches. A static threshold that was appropriate for early traffic can become useless as your server grows.

  6. Review trends on a fixed cadence

    Each week, compare the last seven days with the preceding seven days by tool. Look for sustained adoption, tools that are never selected, error-heavy tools, and client-specific changes. Each release, compare the first hours after deployment with the prior version. This creates a feedback loop between product decisions, server changes, and user behavior instead of leaving observability as a post-incident exercise.

Common pitfalls

Counting retries as independent demand. A tool can be called repeatedly because an upstream system timed out or the model received an unusable response. Always put call count next to outcome and latency, then inspect traces when calls surge.

Using mutable labels. Renaming findCustomer to find_customer can split one trend into two. Preserve a canonical tool key, and record display-name changes separately.

Tracking only totals. Total traffic can look steady while one critical tool fails. Break down by tool and outcome before declaring the service healthy.

Putting sensitive content into metric labels. Tool arguments, tokens, emails, and full prompts do not belong in broadly queryable metrics. Store only the minimum needed to group traffic, and apply access controls to diagnostic records.

Ignoring deployment context. A volume increase after a release may indicate a new feature, a client integration change, or a retry regression. Filter by deployment revision and environment to separate these causes.

Frequently Asked Questions

What is the minimum useful MCP tool-call metric? Track completed calls by timestamp, canonical tool name, and outcome. Add duration and deployment context as soon as possible, because they convert a count into an operational signal.

Should I measure requests or completed tool calls? Use completed tool calls as the main product and reliability metric. Request-started counts are useful as a secondary diagnostic measure, especially for identifying abandoned or timed-out work.

What time bucket should I use? Use hourly buckets for incident response and daily buckets for adoption reporting. Keep raw timestamps so you can change the aggregation when traffic patterns or reporting needs change.

Can session replay replace metrics? No. Replay explains individual sequences, while metrics reveal population-level trends. Use both: charts to identify the anomaly and trace or replay data to diagnose it.

Conclusion

Do not settle for a counter that merely rises. Track each completed MCP tool call with a stable tool name, outcome, duration, deployment context, and correlation ID; aggregate those events by time; and link abnormal trends directly to traces and session-level evidence. Manufact Cloud brings production analytics, traces, session replay, and regression alerts together so your team can move from a spike on a chart to a concrete fix without stitching together separate tools.

Start operating on evidence: deploy your MCP server on Manufact Cloud, establish the event contract above, and review tool-level volume, success rate, and latency after the next release. For hands-on validation before production, open the Cloud Inspector and test the calls you plan to measure.

Related Articles