surge-mcp-server
Enables natural language control of Surge proxy, including toggling features, managing policies, requests, DNS, and device settings via the Surge HTTP API.
README
Surge MCP Server
A Model Context Protocol (MCP) server for controlling Surge proxy via its HTTP API.
Features
This MCP server provides comprehensive control over Surge proxy through the following tool categories:
Features Toggle
- Get and toggle MITM, Capture, Rewrite, and Scripting features
Outbound Mode
- Get and set outbound mode (direct, proxy, rule)
Proxy Policies
- List all available policies
- Get policy group details
- Test policies with specific URLs
- Set selected policy for policy groups
Request Management
- List recent and active requests
- Kill specific active requests
Profile Management
- Get current profile information
- Reload profile
DNS
- Flush DNS cache
Modules
- List all available modules
- Enable/disable specific modules
Scripting
- List all scripts
- Evaluate scripts with mock environment
Device Management (Mac Only, Surge 4.0.6+)
- List all active and saved devices
- Modify device properties (name, IP address, Surge handling)
Prerequisites
- Surge installed and running
- HTTP API enabled in Surge configuration
- Node.js 18+ installed
Surge Configuration
Add the following to your Surge configuration file:
[General]
http-api = YOUR_API_KEY@127.0.0.1:6171
Replace YOUR_API_KEY with a secure API key of your choice.
For TLS support (optional):
http-api-tls = true
http-api-web-dashboard = true
Installation
- Clone this repository:
git clone https://github.com/DLYZZT/surge-mcp-server.git
cd surge_mcp
- Install dependencies:
npm install
- Build the project:
npm run build
Configuration
Set the following environment variables:
export SURGE_HOST=127.0.0.1 # Default: 127.0.0.1
export SURGE_PORT=6171 # Default: 6171
export SURGE_API_KEY=YOUR_API_KEY # Required: Your Surge API key
Usage with Claude Desktop
Add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Option 1: Using npx (Recommended)
{
"mcpServers": {
"surge": {
"command": "npx",
"args": ["-y", "surge-mcp-server"],
"env": {
"SURGE_HOST": "127.0.0.1",
"SURGE_PORT": "6171",
"SURGE_API_KEY": "YOUR_API_KEY"
}
}
}
}
Option 2: Using local installation
{
"mcpServers": {
"surge": {
"command": "node",
"args": ["/path/to/surge_mcp/dist/index.js"],
"env": {
"SURGE_HOST": "127.0.0.1",
"SURGE_PORT": "6171",
"SURGE_API_KEY": "YOUR_API_KEY"
}
}
}
}
Replace /path/to/surge_mcp with the actual path to this project and YOUR_API_KEY with your Surge API key.
Available Tools
Feature Management
surge_get_feature_status- Check status of featuressurge_toggle_feature- Enable/disable features
Outbound Mode
surge_get_outbound_mode- Get current modesurge_set_outbound_mode- Set mode (direct/proxy/rule)
Policy Management
surge_list_policies- List all policiessurge_get_policy_group- Get policy group detailssurge_test_policy- Test policies with URLsurge_set_policy_group- Set policy for group
Request Management
surge_list_requests- List recent/active requestssurge_kill_request- Kill active request
Profile Management
surge_get_profile- Get current profilesurge_reload_profile- Reload profile
DNS
surge_flush_dns- Flush DNS cache
Module Management
surge_list_modules- List all modulessurge_toggle_module- Enable/disable module
Script Management
surge_list_scripts- List all scriptssurge_evaluate_script- Evaluate script with mock environment
Device Management (Mac Only, Surge 4.0.6+)
surge_list_devices- List all active and saved devicessurge_modify_device- Modify device properties
Example Usage in Claude
Once configured, you can ask Claude to control Surge:
- "What's the current outbound mode in Surge?"
- "Enable MITM in Surge"
- "List all proxy policies"
- "Set the proxy group 'Proxy' to use 'US Server'"
- "Show me recent requests"
- "Flush DNS cache"
- "Reload Surge profile"
- "List all devices in Surge" (Mac only)
- "Rename the device with MAC address XX:XX:XX:XX:XX:XX to 'My iPhone'" (Mac only)
Development
Run in development mode with auto-rebuild:
npm run dev
Troubleshooting
Connection Issues
- Ensure Surge is running
- Verify HTTP API is enabled in Surge configuration
- Check that the API key matches
- Confirm the port number is correct
Authentication Errors
- Double-check your API key is set correctly
- Ensure the API key in Surge config matches the environment variable
Security Notes
- Keep your API key secure and never commit it to version control
- The API key grants full control over Surge
- Consider using
http-api-tls = truefor encrypted communication - Restrict the API to localhost (
127.0.0.1) unless remote access is needed
Reference
Based on the official Surge HTTP API documentation: https://manual.nssurge.com/others/http-api.html
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.