Prerequisites
- Claude Desktop installed (download here)
- Surfa account with API key (sign up at surfa.dev)
uvpackage manager (install guide)
Get your Surfa API key from your dashboard.
Step 1: Install the MCP Server
Clone the Surfa MCP repository:Step 2: Find Your uv Path
You’ll need the full path touv for the Claude Desktop config.
macOS/Linux:
/Users/yourname/.local/bin/uv(macOS)/home/yourname/.local/bin/uv(Linux)/opt/homebrew/bin/uv(macOS with Homebrew)
Step 3: Configure Claude Desktop
Find your Claude Desktop config file: macOS:If You Have Other MCP Servers
If you already have MCP servers configured, just add Surfa to the existingmcpServers object:
Step 4: Restart Claude Desktop
Important: You must completely quit and reopen Claude Desktop for changes to take effect. macOS:- Cmd+Q to quit Claude Desktop
- Reopen from Applications
- Right-click system tray → Quit
- Reopen from Start menu
Step 5: Verify Connection
Look for the 🔌 icon in the bottom-right corner of Claude Desktop. Click it to see connected MCP servers. You should see “surfa” in the list.Step 6: Test Your First Query
Ask Claude:Success! Your Surfa MCP Server is now connected and working.
Using Remote MCP
Want to use a remote MCP instead of local?Option 1: Fly.io Proxy (Experimental)
Option 2: Direct HTTP (Coming Soon)
Claude Desktop doesn’t yet support direct HTTP MCP connections. Use the Surfa web platform instead.Remote MCP Deployment
Learn how to deploy and test remote MCPs
Example Queries
Try these queries to explore your analytics:Troubleshooting
Surfa not showing in MCP servers list
Surfa not showing in MCP servers list
Check:
- Config file path is correct
- JSON syntax is valid (use jsonlint.com)
- No trailing commas in JSON
- File saved after editing
Connection failed / Server not responding
Connection failed / Server not responding
Check:If this works, the issue is in your Claude Desktop config.
uvpath is correct (runwhich uvagain)- Surfa MCP directory path is absolute, not relative
- API key is correct (check dashboard)
- Internet connection is working
'No data' or empty responses
'No data' or empty responses
Check:
- You have events in your Surfa dashboard
- API key has access to the workspace
- Events are from “live” source (not test data)
'Module not found' error
'Module not found' error
Solution:
Reinstall dependencies:Then restart Claude Desktop.
JSON syntax error in config
JSON syntax error in config
Common mistakes:
- Trailing comma after last item
- Missing quotes around strings
- Backslashes in Windows paths (use forward slashes or double backslashes)
Advanced Configuration
Using Production API
If you’re using the production Surfa API (not localhost):Custom Timeout
Set a custom timeout (in seconds):Multiple Workspaces
Use different API keys for different workspaces:Updating the MCP Server
To update to the latest version:Uninstalling
To remove the Surfa MCP Server:- Remove the
"surfa"entry fromclaude_desktop_config.json - Restart Claude Desktop
- Optionally delete the cloned directory:
Next Steps
MCP Server Overview
Learn about all 4 analytics tools and example queries
API Reference
Complete API documentation with examples
Quickstart Guide
Start tracking events in 5 minutes
GitHub Repository
View source and contribute
Need Help?
Join Discord
Get help from the community and Surfa team