surge-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@surge-mcp-serverEnable MITM in Surge"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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:6171Replace YOUR_API_KEY with a secure API key of your choice.
For TLS support (optional):
http-api-tls = true
http-api-web-dashboard = trueInstallation
Clone this repository:
git clone https://github.com/DLYZZT/surge-mcp-server.git
cd surge_mcpInstall dependencies:
npm installBuild the project:
npm run buildConfiguration
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 keyUsage 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 devTroubleshooting
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 communicationRestrict 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
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DLYZZT/surge-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server