Telemetry
Understanding MCP-use’s telemetry system
Overview
MCP-use includes an opt-out telemetry system that helps us understand how the library is being used in practice. This data enables us to:
- Prioritize development based on real usage patterns
- Optimize performance for common workflows
- Improve compatibility with popular model providers
- Focus on the most valuable features
Privacy First: All telemetry is anonymized and can be completely disabled with a single environment variable.
What We Collect
Agent Execution Data
When you use MCPAgent.run()
or MCPAgent.astream()
, we collect:
- Query and response content (to understand use cases)
- Model provider and name (e.g., “openai”, “gpt-4”)
- MCP servers connected (types and count, not specific URLs/paths)
- Tools used (which MCP tools are popular)
- Performance metrics (execution time, steps taken)
- Configuration settings (memory enabled, max steps, etc.)
System Information
- Package version (for version adoption tracking)
- Error types (for debugging and improvement)
- Package download analytics (via Scarf for distribution insights)
What We DON’T Collect
- Personal information (no names, emails, or identifiers)
- Server URLs or file paths (only connection types)
- API keys or credentials (never transmitted)
- IP addresses (PostHog configured with
disable_geoip=False
)
How to Disable Telemetry
Environment Variable (Recommended)
In Your Code
Verification
When telemetry is disabled, you’ll see this debug message:
When enabled, you’ll see:
Data Storage and Privacy
Anonymous User IDs
- A random UUID is generated and stored locally in your cache directory
- Linux/Unix:
~/.cache/mcp_use/telemetry_user_id
- macOS:
~/Library/Caches/mcp_use/telemetry_user_id
- Windows:
%LOCALAPPDATA%\mcp_use\telemetry_user_id
Data Transmission
- Data is sent to both PostHog (EU servers:
https://eu.i.posthog.com
) and Scarf (https://mcpuse.gateway.scarf.sh/simple/
) - No personal information is ever transmitted
- Data is used only for aggregate analysis and package usage analytics
Example Telemetry Event
Here’s what a typical telemetry event looks like:
Benefits to the Community
For Users
- Better library through data-driven improvements
- Faster issue resolution via error pattern detection
- Feature prioritization based on actual usage
For Developers
- Compatibility insights for new model providers
- Performance optimization targets
- Usage pattern understanding for better APIs
Technical Implementation
Clean Architecture
The telemetry system uses a decorator pattern that ensures:
- Zero overhead when disabled
- No exceptions if PostHog or Scarf services are unavailable
- Graceful degradation in all failure scenarios
- Dual telemetry to both PostHog and Scarf for comprehensive analytics
Code Example
Frequently Asked Questions
Can I see what data is being sent?
Yes! Set your logging level to DEBUG to see telemetry events:
Does telemetry affect performance?
- When disabled: Zero performance impact
- When enabled: Minimal impact (async data transmission)
Can I opt out after using the library?
Yes! Set the environment variable and restart your application. You can also delete the user ID file to reset your anonymous identifier.
Is this GDPR compliant?
Yes. The telemetry system:
- Collects no personal data
- Uses anonymous identifiers
- Provides easy opt-out
- Processes data for legitimate business interests (software improvement)
Support
If you have questions about telemetry:
- Disable it: Use
MCP_USE_ANONYMIZED_TELEMETRY=false
- Report issues: GitHub Issues
- Check logs: Enable DEBUG logging to see telemetry activity
Remember: Telemetry helps us build a better library for everyone, but your privacy comes first. We’ve designed the system to be transparent, minimal, and easily disabled.