tor-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TOR_TIMEOUT | No | HTTP request timeout in seconds | 30 |
| TOR_PATTERNS | No | Comma-separated hostnames to route through Tor (supports *.example.com) | |
| TOR_SOCKS_PORT | No | Tor SOCKS5 proxy port | 9050 |
| DIRECT_PATTERNS | No | Comma-separated hostnames to route direct | |
| TOR_CONTROL_PORT | No | Tor control port (for circuit rotation) | 9051 |
| TOR_DEFAULT_ROUTE | No | Fallback route: tor or direct | tor |
| TOR_CONTROL_PASSWORD | No | Control port password (if set in torrc) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tor_private_fetchA | Fetch a URL with privacy-aware routing through Tor. Automatically decides whether to route through Tor or direct based on URL pattern matching. Built-in rules route .onion through Tor, localhost direct, OSINT domains (Shodan, HIBP) through Tor, and Tor-blocking domains (GitHub, OpenAI) direct. Args: params (TorFetchInput): Validated input parameters containing: - url (str): Target URL (e.g., 'https://example.com') - method (str): HTTP method, default GET - force_tor (bool): Override routing rules, force Tor - force_direct (bool): Override routing rules, force direct - response_format (ResponseFormat): 'json' or 'markdown' Returns: str: Response with status_code, content, routing decision, and content_type. Examples: - Use when: "Fetch this webpage anonymously" -> url="https://example.com" - Use when: "Check Shodan for host info" -> url="https://api.shodan.io/..." - Use when: "Access onion site" -> url="http://xyz.onion/page" - Don't use when: You need to verify Tor is working (use tor_check_anonymity) - Don't use when: You need a new exit IP first (use tor_new_identity) Error Handling: - Connection refused: Tor not running, returns install instructions - 403 Forbidden: Target blocks Tor, suggests force_direct or new_identity - 429 Rate Limited: Suggests tor_new_identity for fresh exit IP - Timeout: Suggests increasing TOR_TIMEOUT |
| tor_check_anonymityA | Check if Tor is active and verify anonymity. Contacts check.torproject.org to verify traffic routes through Tor, then compares the Tor exit IP with the direct (real) IP to confirm anonymity. Use this before making sensitive requests. Args: params (TorStatusInput): Validated input containing: - response_format (ResponseFormat): 'json' or 'markdown' Returns: str: Anonymity verification result. Examples: - Use when: "Am I anonymous right now?" -> default params - Use when: "Verify Tor is working before OSINT" -> default params - Don't use when: You want to fetch a URL (use tor_private_fetch) - Don't use when: You want full connection details (use tor_privacy_status) Error Handling: - Tor not running: Returns error with install instructions - Network issues: Returns partial result with error field |
| tor_new_identityA | Request a new Tor circuit to get a different exit IP. Changes your apparent location and IP address by requesting a new circuit from the Tor daemon. Requires the Tor control port (9051). Rate-limited to once per 10 seconds by Tor itself. Args: params (TorCircuitInput): Validated input containing: - verify (bool): Check if IP actually changed (default: True) - response_format (ResponseFormat): 'json' or 'markdown' Returns: str: Circuit rotation result. Examples: - Use when: "Get a new exit IP" -> default params - Use when: "A site rate-limited me" -> default params - Use when: "I need to appear from a different location" -> default params - Don't use when: You just need to check current IP (use tor_check_anonymity) Error Handling: - stem not installed: Returns pip install instruction - Control port not enabled: Returns torrc configuration hint - Rate-limited: Waits automatically (max 10s), reports wait time |
| tor_privacy_statusA | Show current Tor connection status and routing configuration. Provides a full health check: Tor connectivity, exit IP, control port availability, routing rules, and configuration. Use this for diagnostics. Args: params (TorStatusInput): Validated input containing: - response_format (ResponseFormat): 'json' or 'markdown' Returns: str: Complete privacy status. Examples: - Use when: "Is Tor working?" -> default params - Use when: "Show me the routing config" -> default params - Use when: "Debug why requests are failing" -> default params - Don't use when: You just need to verify anonymity (use tor_check_anonymity) Error Handling: - Returns status regardless of Tor state (offline status is valid) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/rushikeshmore/tor-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server