Python FastMCP
Add Voxmith analytics to your FastMCP server
Install
pip install voxmith-mcpuv add voxmith-mcpIntegrate
Call track after defining your server and tools, before running:
from mcp.server.fastmcp import FastMCP
from voxmith_mcp import track, config
server = FastMCP("Your Server Name")
# ... your tools ...
track(server, "your-org-id", config(
endpoint="https://api.voxmith.com",
disable_input=False,
disable_output=False,
))
if __name__ == "__main__":
server.run()Get your org ID from app.voxmith.com.
Identify users
Pass an identify function to resolve a user from the incoming request context. It receives the raw request object and the process environment, and should return a dict with at least a userId key:
from voxmith_mcp import track, config
track(server, "your-org-id", config(
identify=lambda req, env: {
"userId": req.get("headers", {}).get("x-user-id") or env.get("USER_ID", "anonymous"),
"email": req.get("headers", {}).get("x-user-email") or env.get("USER_EMAIL"),
"role": req.get("headers", {}).get("x-user-role") or env.get("USER_ROLE", "user"),
}
))The function can also be async. Return None to skip user attribution for a request.
Options
| Field | Type | Default | Description |
|---|---|---|---|
endpoint |
str |
https://api.voxmith.com |
API endpoint |
disable_input |
bool |
False |
Skip capturing tool input arguments |
disable_output |
bool |
False |
Skip capturing tool output / result |
log_level |
str |
"INFO" |
Log verbosity: DEBUG, INFO, WARNING, ERROR |
identify |
Callable |
None |
Function (request, env) → UserIdentity to resolve user identity per request |
UserIdentity is a Dict[str, Any] that must contain a userId key. Other fields (e.g. email, role) are optional and forwarded as user traits. The identify callable can be sync or async, and may return None to skip attribution for a request.
What appears in Voxmith
- Tool calls for FastMCP tool invocations.
- Events for every tracked call.
- Failed tool calls remain visible in Events with their error details.
Verify
Call one FastMCP tool from your MCP client, then open app.voxmith.com. Check Events first, then Tool calls.
Troubleshooting
- Call
track(...)after defining tools and beforeserver.run(). - Confirm the org ID is correct.
Next steps
- Tool calls: analyze calls from your FastMCP server.
- Events: verify call fields and execution details.
- Alerts: monitor important MCP tool conditions.