Skip to main content
Glama
schwarztim

Proxychains MCP Server

by schwarztim

Proxychains MCP Server

MCP License: MIT TypeScript

MCP server for proxychains-ng (proxychains4) - route commands through proxy chains via SSH to a remote Linux host (e.g., Kali Linux).

Overview

This MCP server provides tools to manage and use proxychains configurations dynamically. It executes commands through SSH on a remote host where proxychains4 is installed, allowing AI assistants to route network traffic through proxy chains for privacy, security testing, or accessing geo-restricted resources.

Features

Tool

Description

proxychains_run

Execute commands through the configured proxy chain

proxychains_config

Get, set, or reset the full configuration

proxychains_add

Add a proxy to the chain (SOCKS4, SOCKS5, HTTP, RAW)

proxychains_remove

Remove a proxy by index or host:port

proxychains_mode

Set chain mode (strict, dynamic, random, round_robin)

proxychains_dns

Configure DNS handling mode

proxychains_test

Test proxy chain connectivity and latency

proxychains_list

List all configured proxies

proxychains_import

Import proxies from file or URL

proxychains_export

Export configuration in various formats

Installation

Prerequisites

  • Node.js 18+

  • SSH access to a Linux host with proxychains4 installed

  • The SSH host should be configured in ~/.ssh/config or accessible by hostname

Setup

# Clone the repository
git clone https://github.com/schwarztim/sec-proxychains-mcp.git
cd sec-proxychains-mcp

# Install dependencies
npm install

# Build
npm run build

MCP Configuration

Add to your Claude Desktop or MCP client configuration:

{
  "mcpServers": {
    "proxychains": {
      "command": "node",
      "args": ["/path/to/sec-proxychains-mcp/dist/index.js"],
      "env": {
        "PROXYCHAINS_KALI_HOST": "kali",
        "PROXYCHAINS_SSH_TIMEOUT": "30000"
      }
    }
  }
}

Configuration

Environment Variables

Variable

Default

Description

PROXYCHAINS_KALI_HOST

kali

SSH hostname for the remote host

PROXYCHAINS_SSH_TIMEOUT

30000

SSH command timeout in milliseconds

PROXYCHAINS_CONFIG_DIR

~/.proxychains-mcp

Local config storage directory

Chain Modes

Mode

Description

strict_chain

All proxies must work, used in order specified

dynamic_chain

Skip dead proxies, at least one must work

random_chain

Random proxy selection for each connection

round_robin_chain

Rotate through proxies sequentially

Proxy Types

Type

Description

socks5

SOCKS5 proxy (recommended)

socks4

SOCKS4 proxy

http

HTTP CONNECT proxy

raw

Raw TCP forwarding

DNS Modes

Mode

Description

proxy_dns

Route DNS through proxy (recommended, prevents leaks)

proxy_dns_old

Legacy mode using proxyresolv

proxy_dns_daemon

Daemon-based DNS resolution

none

No DNS proxying (may leak DNS queries)

Usage Examples

Basic Setup

// Add a SOCKS5 proxy (e.g., Tor)
proxychains_add({ type: "socks5", host: "127.0.0.1", port: 9050 })

// Add an authenticated HTTP proxy
proxychains_add({
  type: "http",
  host: "proxy.example.com",
  port: 8080,
  user: "admin",
  pass: "secret"
})

// Set dynamic chain mode (skip dead proxies)
proxychains_mode({ mode: "dynamic_chain" })

Testing the Chain

// Test connectivity
proxychains_test({ verbose: true })

// Test against specific target
proxychains_test({ target: "https://api.ipify.org" })

Running Commands

// Check your proxied IP
proxychains_run({ command: "curl https://httpbin.org/ip" })

// Run nmap through proxies
proxychains_run({ command: "nmap -sT -Pn target.com" })

// Custom timeout for long operations
proxychains_run({ command: "wget https://example.com/large-file", timeout: 120000 })

Importing Proxies

// Import from URL
proxychains_import({
  source: "https://raw.githubusercontent.com/example/proxies/main/list.txt",
  defaultType: "socks5"
})

// Import from file on remote host
proxychains_import({ source: "/tmp/proxies.txt" })

Exporting Configuration

// Export as proxychains.conf format
proxychains_export({ format: "proxychains" })

// Export as JSON
proxychains_export({ format: "json" })

// Export as simple ip:port list
proxychains_export({ format: "ip:port" })

Remote Host Setup

The remote host (e.g., Kali Linux) needs proxychains4 installed:

# Debian/Ubuntu/Kali
sudo apt update
sudo apt install proxychains4 curl

# Verify installation
proxychains4 --version

Ensure SSH access works without password prompts:

# Test SSH connection
ssh kali "echo 'Connection successful'"

Security Considerations

  • SSH Keys: Use SSH key authentication instead of passwords

  • DNS Leaks: Use proxy_dns mode to prevent DNS leakage

  • Proxy Trust: Only use trusted proxies; traffic is visible to proxy operators

  • Authentication: Proxy credentials are stored locally in ~/.proxychains-mcp/config.json

Architecture

┌─────────────────┐     SSH      ┌─────────────────┐     Proxies     ┌─────────────┐
│   MCP Client    │─────────────▶│   Remote Host   │────────────────▶│   Target    │
│  (Claude, etc)  │              │   (Kali Linux)  │                 │             │
└─────────────────┘              │   proxychains4  │                 └─────────────┘
                                 └─────────────────┘

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add some amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

-
license - not tested
-
quality - not tested
-
maintenance - not tested

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/schwarztim/sec-proxychains-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server