> ## Documentation Index
> Fetch the complete documentation index at: https://docs.staging.alpic.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Analytics

> Understand how your users interact with your MCP server.

### Overview

Alpic offers analytics to understand how your MCP server behaves and how your users interact with it.
All graphs are broken in two:

* The top part displays the aggregated data over the selected time period;
* The bottom part displays data over time for the selected period.

### Measured Metrics

<CardGroup cols={3}>
  <Card title="Sessions" icon="users" href="#sessions">
    MCP session counts and client breakdown
  </Card>

  <Card title="Requests" icon="bolt" href="#requests">
    MCP request counts per feature
  </Card>

  <Card title="Output Tokens" icon="comment" href="#average-output-tokens">
    Average token usage per feature
  </Card>

  <Card title="Request Latency" icon="clock" href="#mean-request-latency">
    Average response times per feature
  </Card>

  <Card title="Errors" icon="exclamation" href="#errors">
    Error counts per type
  </Card>
</CardGroup>

### Sessions

<Frame>
  <img src="https://mintcdn.com/alpic-staging/SUgEP0peVh3Vy_OH/images/session-analytics-light.png?fit=max&auto=format&n=SUgEP0peVh3Vy_OH&q=85&s=6f06427aa7f00bdeb73404257eb87ab8" alt="Session Graphs" data-theme="light" className="block dark:hidden" width="2884" height="1308" data-path="images/session-analytics-light.png" />

  <img src="https://mintcdn.com/alpic-staging/SUgEP0peVh3Vy_OH/images/session-analytics-dark.png?fit=max&auto=format&n=SUgEP0peVh3Vy_OH&q=85&s=cea1f62c30047fecfd83321c7bcd20ff" alt="Session Graphs" data-theme="dark" className="hidden dark:block" width="2890" height="1284" data-path="images/session-analytics-dark.png" />
</Frame>

Session graphs count the number of MCP sessions and break them down per MCP client.
A session corresponds to a new MCP [initialize request](https://modelcontextprotocol.io/specification/2025-11-25/basic/lifecycle#initialization). This request provides
client info, including the name of the MCP client used.

### Requests

<Frame>
  <img src="https://mintcdn.com/alpic-staging/SUgEP0peVh3Vy_OH/images/request-analytics-light.png?fit=max&auto=format&n=SUgEP0peVh3Vy_OH&q=85&s=3b92b91a5c6ce1cfa18fefb00aea6944" alt="Request Graphs" data-theme="light" className="block dark:hidden" width="2924" height="1332" data-path="images/request-analytics-light.png" />

  <img src="https://mintcdn.com/alpic-staging/SUgEP0peVh3Vy_OH/images/request-analytics-dark.png?fit=max&auto=format&n=SUgEP0peVh3Vy_OH&q=85&s=c93a93a054bf6af50b51c63961337c9b" alt="Request Graphs" data-theme="dark" className="hidden dark:block" width="2910" height="1330" data-path="images/request-analytics-dark.png" />
</Frame>

Request graphs count the number of MCP requests received by your server and break them down per [MCP feature](https://modelcontextprotocol.io/specification/2025-11-25/server).
We group them into 4 categories:

* **Tool:** contains only `tools/call` requests
* **Prompt:** contains only `prompts/get` requests
* **Resource:** contains only `resources/read` requests
* **Other:** contains all other protocol requests including: `initialize`, `tools/list`, `prompt/lists`, `resource/list`.
  All "Other" requests don't necessarily show active usage of your server as these requests are sent frequently by MCP clients if they are configured to connect to your MCP server.

### Average Output Tokens

<Frame>
  <img src="https://mintcdn.com/alpic-staging/SUgEP0peVh3Vy_OH/images/token-analytics-light.png?fit=max&auto=format&n=SUgEP0peVh3Vy_OH&q=85&s=4b028c84bb201a036a7a07af9e883dd2" alt="Token Graphs" data-theme="light" className="block dark:hidden" width="2914" height="1322" data-path="images/token-analytics-light.png" />

  <img src="https://mintcdn.com/alpic-staging/SUgEP0peVh3Vy_OH/images/token-analytics-dark.png?fit=max&auto=format&n=SUgEP0peVh3Vy_OH&q=85&s=a81f5d70efe386b34293ad1e6b1a7f3c" alt="Token Graphs" data-theme="dark" className="hidden dark:block" width="2904" height="1328" data-path="images/token-analytics-dark.png" />
</Frame>

Alpic estimates the token equivalent of each part of the MCP responses that are passed to the LLM context window and breaks them down into each relevant [MCP feature](https://modelcontextprotocol.io/specification/2025-11-25/server).
The average output token graphs help you understand and track the filling of the LLM context between your different tools, prompts & resources. Note that the tools & server descriptions are also passed to the LLM via the `list/tools` & `initialize` requests.

### Mean Request Latency

The latency graphs displays the average latency (in ms) of the MCP requests hitting your server and breaks it down per [MCP feature](https://modelcontextprotocol.io/specification/2025-11-25/server).

### Errors

The error graphs count the number of requests erroring out after hitting your MCP server, broken down per [MCP feature](https://modelcontextprotocol.io/specification/2025-11-25/server).
We separate two types of errors:

* **Tool errors**: these are common, and correspond to a tool call result with the isError attribute set to true. These errors are designed to be passed to the LLM so that it can recover from them.
* **MCP errors**: these errors can result from a variety of causes and require your attention. They are not passed to the LLM and will usually impact the user experience, appearing as error messages in most MCP clients. Check out your logs if you see a spike of errors.
  If you want to know more about how to design your errors properly, check out [this article](https://alpic.ai/blog/better-mcp-tool-call-error-responses-ai-recover-gracefully).

<Warning>
  The quality of the protocol implementation vary depending on the MCP client, and can generate more errors than
  expected. For instance, Claude asks for a list of ressources and prompts if you server doesn't advertise any, which
  results in MCP errors that should be ignored.
</Warning>
