MCP Server
status…

Your call statistics, in plain language.

Connect your AI agent to VoxoLib and ask as you would a colleague: WebCallback and Call Tracking volumes, breakdown by status, for today, yesterday or any period.

MCP endpoint

https://mcp-dev2.agent.voxolib.com/mcp

Video tutorial1 min, the four screens step by step
How many WebCallback calls did I receive yesterday?
the agent calls voxolib_wcb_calls with day: "yesterday"

Yesterday, 42 WebCallback calls:

Answered31 Voicemail7 Missed4

Illustrative example. The real figures are your account's, identical to the API and to your customer portal.

Works with

Protocol
MCP, streamable HTTP transport
Authentication
VoxoLib token in a Bearer header, or OAuth sign-in with your VoxoLib account (claude.ai, ChatGPT)
Data
Read-only, aggregated by day, no phone numbers

Connect

Two ways to connect. With a token: the endpoint address and the Authorization: Bearer <token> header (Claude Code, Claude Desktop, Le Chat, OpenAI API). With OAuth, nothing to copy: the address alone, then a sign-in with your VoxoLib account (claude.ai, ChatGPT). Pick your client.

Video tutorial1 min, the four screens step by step

In a terminal, a single command:

claude mcp add --transport http voxolib-stats https://mcp-dev2.agent.voxolib.com/mcp?lang=en \
  --header "Authorization: Bearer <token>"

Then, in Claude Code: “how many WebCallback calls yesterday, by status?”

Settings, then Connectors, then Add custom connector.

URL
https://mcp-dev2.agent.voxolib.com/mcp
Header
Authorization: Bearer <token>

Claude Desktop also supports OAuth sign-in: leave the header empty and follow the claude.ai tab.

Settings, then Connectors, then Add custom connector. No token to enter.

URL
https://mcp-dev2.agent.voxolib.com/mcp
OAuth client ID / secret
Leave empty: the client registers itself automatically
  1. Click Connect: a https://dev-app.voxolib.com page opens.
  2. Sign in with your VoxoLib customer portal credentials.
  3. Grant read access to statistics (stats:read). You return to claude.ai, connected.

Access can be revoked at any time from your customer portal or by removing the connector. Nothing but statistics is reachable.

Test environment: the https://dev-app.voxolib.com authorization server is not in service; OAuth only works on mcp.agent.voxolib.com.

Settings, then Connectors, then add a remote MCP server.

URL
https://mcp-dev2.agent.voxolib.com/mcp?lang=en
Header
Authorization: Bearer <token>

In Responses or Agents, declare a tool of type mcp:

{
  "type": "mcp",
  "server_label": "voxolib-stats",
  "server_url": "https://mcp-dev2.agent.voxolib.com/mcp?lang=en",
  "headers": { "Authorization": "Bearer <token>" },
  "require_approval": "never"
}

Settings, then Connectors, then Create (developer mode; Plus, Pro, Business or Enterprise plans).

MCP server URL
https://mcp-dev2.agent.voxolib.com/mcp
Authentication
OAuth. Leave client ID and secret empty: the client registers itself automatically
  1. Create the connector: ChatGPT opens a https://dev-app.voxolib.com page.
  2. Sign in with your VoxoLib customer portal credentials.
  3. Grant read access to statistics (stats:read). The connector is ready in your conversations.

Access can be revoked from your customer portal or by removing the connector. For the OpenAI API (Responses, Agents), see the OpenAI (API) tab.

Test environment: the https://dev-app.voxolib.com authorization server is not in service; OAuth only works on mcp.agent.voxolib.com.

To check the token and the connection without an MCP client. A 200 response with a session ID confirms both; a 401 says why.

curl -i -X POST https://mcp-dev2.agent.voxolib.com/mcp?lang=en \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1"}}}'

Tools

Each tool queries the VoxoLib API with your token and returns JSON aggregated by day, week or month. Statuses are the API's own, with no reclassification. The server also publishes a usage guide for the agent (the protocol's instructions field, also exposed as the voxolib://guide resource): products, periods, meaning of fields and statuses, errors. The agent has nothing to guess.

ToolWhat you getParameters
voxolib_wcb_callsWebCallback calls by day, week or month, with the breakdown by status (answered, missed, voicemail, cancelled…). The statuses add up to the number of calls.day or start_date + end_date, tz, group_by
voxolib_did_callsInbound calls on your tracking numbers (Call Tracking) by day, week or month, with the same breakdown by status.day or start_date + end_date, tz, group_by
voxolib_didsNumber of tracking numbers on the account: total, active, suspended, other.none

Periods

day accepts today, yesterday, last7days, last30days or a YYYY-MM-DD date, and takes precedence over start_date + end_date (at most 180 days between the two dates, more if your account has a higher CDR limit: period.max_days states it in every response). group_by sets the granularity: day by default, week (weeks starting Monday) or month (calendar months), rows then carrying period_start and period_end. The tz time zone is an IANA name, Europe/Paris by default.

Agent language

Tool descriptions, the usage guide and error messages are sent to the agent in French by default. To receive them in English or Spanish, append ?lang=en or ?lang=es to the endpoint address (token-based clients: Claude Code, Le Chat, OpenAI API, curl). Figures and field names are the same in every language.

Authentication and data

The token

Two forms are accepted. The dedicated MCP token, of the form vxmcp_…, is issued by VoxoLib for this server only: it grants access to statistics alone and can be revoked without touching your other integrations. The API v2 Enhanced token works too:

token = api_public_key + "." + HMAC_SHA256(api_public_key + "cdr", client_secret_key)

OAuth sign-in

Clients that cannot send a header (claude.ai, ChatGPT, Claude Desktop in connector mode) go through the VoxoLib authorization server, https://dev-app.voxolib.com, discovered automatically from the /.well-known/oauth-protected-resource metadata. Authorization code flow with PKCE, dynamic client registration, a single scope: stats:read. You sign in with your customer portal account and give your consent once. The access token handed to the client is a dedicated vxmcp_… MCP token, limited to statistics, refreshed by the client and revocable from your customer portal.

What the server does

It verifies the token with the VoxoLib API when the session opens, then relays it on every tool call. It stores no secret and keeps no data. Without a token, or with a rejected one, the connection is refused with a 401 and a WWW-Authenticate header telling OAuth clients where to authorize. The server never sees your password: sign-in happens on the VoxoLib authorization server.

What comes out

Call counts and breakdowns by status, by day, week or month. Never a phone number, a recording or a transcript. API quotas apply: per account, 500 requests per hour by default on statistics.

Status and version

Service
reading /healthz…
Server version
0.3.5
Transport
MCP Streamable HTTP, sessions via the Mcp-Session-Id header

Machine-readable

Server card, MCP registry format
/.well-known/mcp/server.json
OAuth protected resource (RFC 9728)
/.well-known/oauth-protected-resource
Health
/healthz

Help

With OAuth (claude.ai, ChatGPT), there is nothing to request: your customer portal credentials are enough, and access is revoked from that portal. For an MCP token to copy (Claude Code, Le Chat, OpenAI API), VoxoLib creates it on your customer record: to obtain, renew or revoke it, contact your usual VoxoLib contact. A question about the figures returned: they are identical to those of the API v2 and of your customer portal, given the same period and time zone.