Metrics and Error Reporting
October 31, 2025 ยท View on GitHub
This document explains how Slither MCP collects metrics data, what information is gathered, and how to control these features.
Overview
Slither MCP includes opt-out metrics to help improve reliability by letting us know how often LLMs use each tool and their successful call rate. Metrics are enabled by default but can be permanently disabled.
What We Collect
Basic Metrics (Default)
When metrics are enabled, Slither MCP collects:
- Tool call events: Which MCP tools are invoked (e.g.,
list_contracts,get_function_source) - Success/failure status: Whether each tool call succeeded or failed
What We DON'T Collect
Slither MCP is designed with privacy in mind and its metrics do not collect:
- Tool parameters or arguments
- Contract names, addresses, or source code
- Project paths or directory structures
- Function names or signatures
- Server hostname or machine name
- Command-line arguments (sys.argv)
- Any sensitive or project-specific information
Only tool names and success/failure status are transmitted.
Privacy Protections
Our before_send hook explicitly strips out:
server_name- Your machine's hostnamesys.argv- Command-line arguments that might contain paths or flags
Precisely What Metrics Collects
When metrics are enabled, the following Sentry events are transmitted for each tool call:
1. Tool Call Event
- Event type:
capture_message - Message:
"tool_call_{tool_name}"(e.g.,"tool_call_list_contracts") - Level:
info - Data transmitted:
tool_name: The name of the MCP tool (e.g., "list_contracts", "get_function_source")- No parameters, no arguments, no request data
2. Tool Success/Failure Event
- Event type:
capture_message - Message:
"tool_success_{tool_name}"or"tool_failure_{tool_name}"(e.g.,"tool_success_list_contracts") - Level:
info - Data transmitted:
tool_name: The name of the MCP tool- Success/failure boolean (encoded in the message)
- No error details, no parameters, no results
3. Tool Exception Event (only if an exception occurs)
- Event type:
capture_message - Message:
"tool_exception_{tool_name}"(e.g.,"tool_exception_list_contracts") - Level:
error - Data transmitted:
tool_name: The name of the MCP tool- No exception details (unless
--enhanced-error-reportingis enabled) - No stack trace, no parameters, no context
How to Disable Metrics
Permanent Opt-Out
To permanently disable all metrics and error reporting:
uv run slither-mcp --disable-metrics
This creates a marker file at ~/.slither-mcp/metrics_disabled that persists across sessions. You only need to run this command once.
Verification
When you start the server after disabling metrics, you'll see the following in stderr:
Metrics disabled (found /Users/your-username/.slither-mcp/metrics_disabled)
Enhanced Error Reporting
THIS IS NOT METRICS AND IS A TOTALLY DIFFERENT THING. THIS IS NOT ENABLED BY DEFAULT. DO NOT USE THIS UNLESS YOU ARE ASKED. When an error occurs, this flag will transmit full stack traces, parameters, environment variables, etc. to ToB's Sentry endpoint.
Enabling Enhanced Reporting
uv run slither-mcp --enhanced-error-reporting
Data Transmission
All metrics data is transmitted to Sentry, a third-party error tracking service. Sentry's privacy policy can be found at https://sentry.io/privacy/.
The data is sent to:
https://o4510280629420032.ingest.us.sentry.io
Why Metrics?
Metrics help us:
- Identify reliability issues: Track which tools fail most often
- Prioritize improvements: Focus on the most-used features
- Understand adoption: See which tools are most valuable
We're committed to transparency and user privacy. If you have concerns or questions about metrics, please open an issue on GitHub.