Prerequisites
- Python with the asyncio backend under anyio - the default for
anyio.run()and for both FastMCP flavors’ own runners. trio is not currently supported. - An MCPFY API key - see Get your API key if you don’t have one yet
mcpfy-pulse. None of them edit your files for you - pick the one that matches your situation.
- FastMCP
- Raw mcp SDK
- Someone else's server (no source)
Works for both
mcp.server.fastmcp.FastMCP (bundled in the official mcp package) and the standalone fastmcp package - same call either way, since both expose the same underlying server object.1
Install the package
2
Set your API key
In your
.env file:3
Instrument your app
Right before you call
.run():instrument_fastmcp monkey-patches the one call every FastMCP transport funnels through internally (self._mcp_server.run(...)), so it doesn’t matter which transport you pick. If api_key is unset, it’s a complete no-op - mcp is returned untouched, so it’s safe to leave this in place across environments.Advanced options
TelemetryOptions fields all fall back to an environment variable if omitted:
What’s next
Once your server sends its first event, head to the dashboard to see it.View telemetry in the dashboard
See tool-level usage, health scores, and quality signals once data starts flowing.

