Provides live streaming telemetry for MCP tool calls via a socket server and SDK, enabling real-time progress updates without polling.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by MCP Telemetry.
check_deployment_statusCheck the latest deployment status for a project on a platform
watch_deploymentStream real-time deployment progress with detailed status updates and error information
compare_deploymentsCompare deployments using smart comparison modes to identify changes, performance differences, and potential issues
get_deployment_logsFetch detailed logs for a specific deployment, useful for debugging failed deployments
list_projectsList all available projects/sites on a platform that you have access to
Socket.IO for AI agents. Instrument any MCP server's tool calls with a few lines, and any MCP client watching (Claude Code, Cursor, or your own tooling) gets live, structured progress โ no polling, no context-flooding tool calls.

MCP tool calls are synchronous: an agent calls a tool, waits, gets a result. For anything long-running, that leaves two bad options โ block the whole call with no visibility, or have the agent poll a status tool in a loop (which floods the conversation with repeated tool calls and burns context for no new information).
MCP does have one legitimate way for a server to push updates mid-call: notifications/progress, keyed to a progressToken on the in-flight request. But every MCP server author ends up re-implementing the same plumbing โ extracting the token, wiring a timer, tailing output, cleaning up on completion. mcp-telemetry is that plumbing, factored out once, plus a companion server so a job started in one session can be watched from a completely different one.
Two packages, one job each:
| Package | Who uses it | What it does |
|---|---|---|
mcp-telemetry-sdk | MCP server authors | Import it, call job.start() / .stepDone() / .log() from your tool handlers. Zero runtime dependencies โ it's a socket writer with a persistent, queued connection and nothing else. |
mcp-telemetry-server | Agent users | An MCP server you register once. Exposes telemetry_subscribe (blocks and streams live progress for a job), plus telemetry_jobs/telemetry_job_status for point-in-time queries. |
These two packages are architecturally independent โ the SDK never calls any MCP tool, and the server never imports your tool's code. They only ever meet at a local socket, so a producer with a broken connection can't take down anything, and a collector that's overwhelmed can't block your tool call.
mcp-telemetry-sdk)That's the entire integration. If nothing is listening on the socket, every call is a fast no-op โ your server behaves identically with or without a collector running.
mcp-telemetry-server)Register it as an MCP server, alongside your instrumented one:
Then, in your agent session:
No polling, no separate terminal, no context-flooding tool calls โ one deploy call plus one telemetry_subscribe call, regardless of how long the job runs.
mcp-telemetry-sdknew MCPTelemetry(opts?)
Creates a telemetry client. opts.socketPath overrides the default (derived from process.cwd() via getSocketPath()). Owns one persistent, queued connection shared by every job it creates.
telemetry.createJob({ id?, task }) โ JobHandle
Starts tracking a job. id defaults to an auto-incrementing job-N.
telemetry.disconnect()
Closes the underlying connection. Call on server shutdown if you want a clean teardown instead of letting it idle.
JobHandle method | Emits | Notes |
|---|---|---|
start() | job_start | Call once, at the beginning of the tool handler. |
stepStart(name, meta?) | step_start | name is any string โ 'build', 'implement', whatever fits your domain. |
stepDone(name, meta?) | step_done | meta is arbitrary key/value data (shown in telemetry_subscribe's live output). |
stepFailed(name, reason?) | step_failed | |
log(line, stream?) | log | stream is 'stdout' | 'stderr', optional. Rapid log lines are coalesced by the server before being pushed live โ see below. |
cost(amount, meta?) | cost | amount in USD. |
done(exitCode?) | job_done | Async. This is the terminal event โ nothing else may be sent after it, so it actively retries delivery for up to 1.5s instead of relying on a future send() to recover from a transient connection failure. Safe to call without await. |
getSocketPath(root?) is also exported, for advanced cases where you need to compute the same path a producer and a server will independently derive.
mcp-telemetry-serverExposes three MCP tools:
Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/arnavranjan005-mcp-telemetry)<a href="https://allmcps.com/mcp/arnavranjan005-mcp-telemetry"><img src="https://allmcps.com/api/badge/arnavranjan005-mcp-telemetry?style=directory" alt="MCP Telemetry on AllMCPs" /></a>