Connecting an Agent
The server is reachable over HTTP at a single endpoint:
https://mcp.virtualmetric.com/mcp
The transport is MCP over HTTP. Clients that default to the stdio transport — the one used for MCP servers running as a local subprocess — must be told to use HTTP explicitly; a client left on stdio will attempt to launch a local binary and fail with a missing-command error rather than a network error.
The authentication model on this page is not yet confirmed. It describes Cloudflare Access service tokens, carried forward from the earlier Testing page, and the published gateway source does not corroborate it: the Worker that fronts the endpoint states it performs no authentication of its own, and the internal token it does carry is a gateway-to-engine credential rather than a customer-facing one. Any edge authentication would live in Cloudflare Access configuration, which is not in the repository, so the code can neither confirm nor refute what is written here.
To settle this page, the platform team needs to confirm (a) whether the endpoint requires credentials at all, (b) if so, whether they are service tokens or an OAuth flow, and (c) the exact path by which an organization is issued them. If the endpoint is in fact open, this section changes substantially and the finding is an escalation rather than a documentation fix.
Credentials
Access is protected by Cloudflare Access service tokens. VirtualMetric provisions a Client ID and a Client Secret for your organization, and both are presented as request headers on every call:
| Header | Value |
|---|---|
CF-Access-Client-Id | The client ID issued to your organization |
CF-Access-Client-Secret | The client secret issued to your organization |
The credentials identify the organization, not an individual user. Treat the secret as you would any other deployment credential: store it where your other service credentials live rather than in a file that is committed alongside pipeline sources.
Claude Code
Register the server with claude mcp add, passing the transport and both headers:
claude mcp add --transport http vmetric https://mcp.virtualmetric.com/mcp \
--header "CF-Access-Client-Id: <client-id>" \
--header "CF-Access-Client-Secret: <client-secret>"
The server is registered under the name vmetric, which is how its tools are namespaced in the agent's tool list.
Other MCP Clients
Any MCP client that supports the HTTP transport connects to the same URL with the same two headers. The shape of the configuration differs by client, but the four values are always the same — transport, URL, and the two header lines:
The generic form, as a JSON server entry... | |
Verifying the Connection
Ask the agent to list the available processors. The call reaches list_processors, which requires no arguments and no pipeline, so it exercises the full path — transport, credentials, and engine — without depending on anything you have authored. A returned catalog confirms the connection; anything else is one of the failures below.
Troubleshooting
| Symptom | Cause |
|---|---|
| The client tries to launch a local command | The transport was left at its stdio default — set it to HTTP explicitly |
401 Unauthorized | A missing, misspelled, or expired header; confirm both header names and that the secret has not been rotated |
404 Not Found | The path was omitted. The endpoint is /mcp; the bare host serves only a redirect to this documentation |
405 Method Not Allowed | The client issued a GET. The endpoint accepts POST only |
| The first call after a quiet period is slow | Expected cold-start behavior — see Limits and Safety |
For the request-size cap and the one-request-per-call rule, both of which surface as parse errors rather than connection failures, see Limits and Safety.