Python Anthropic SDK (low-level)
Add Voxmith analytics to your low-level Anthropic MCP server
Install
pip install voxmith-mcpuv add voxmith-mcpIntegrate
Call track after defining your server and handlers, before running:
from mcp.server import Server
from voxmith_mcp import track, config
server = Server("your-server-name")
# ... your list_tools and call_tool handlers ...
track(server, "your-org-id", config(
endpoint="https://api.voxmith.com",
disable_input=False,
disable_output=False,
))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 are optional and forwarded as user traits.
Checkpoints
Per-step latency checkpoints are currently available only in the TypeScript SDK. Tool-level latency is captured automatically across all SDKs.
What appears in Voxmith
- Tool calls for MCP tool invocations.
- Events for every tracked call.
- Failed tool calls remain visible in Events with their error details.
Verify
Call one MCP tool from your Anthropic client, then open app.voxmith.com. Check Events first, then Tool calls.
Troubleshooting
- Call
track(...)after registering handlers and before serving. - Confirm the org ID is correct.
Next steps
- Tool calls: analyze calls from your low-level MCP server.
- Events: verify call fields and execution details.
- Alerts: monitor important MCP tool conditions.