Prerequisites
Before you start, make sure you have:- A Tailscale account with your devices enrolled in a mesh network
- A VPS or always-on machine to host the server (must be reachable from Claude.ai)
- Node.js 18+ or Docker installed on that machine
- A Tailscale API key and a GitHub personal access token
1
Clone the repository
2
Copy and configure your environment files
Copy both config files from their examples:Open Optional: edit Environment variables always take precedence over YAML config values.
.env and fill in your credentials. Every required variable is listed below.Required environment variablesMCP_SECRET, TAILSCALE_API_KEY, and GITHUB_TOKEN are validated at startup. The server will refuse to start if any of these are missing.reacher.config.yamlThe YAML config controls safety settings. The defaults are reasonable, but you can tighten them:3
Enable Tailscale SSH on target devices
For Then verify SSH access works from your server:If that succeeds manually, Reacher will be able to reach it too.
ssh_exec to reach a machine, Tailscale SSH must be enabled on it. Run this on each device you want Reacher to control:4
Start the server
Choose your runtime:Check the server started correctly:
5
Verify the server is responding
Run a Replace Expected response:
tools/list request against the local server to confirm everything is working:YOUR_MCP_SECRET with the value you set in .env. You should get back a JSON response listing all six tools: ssh_exec, tailscale_status, fetch_external, github_search, gist_kb, and browser.You can also check the health endpoint (requires the same token):6
Expose the server over HTTPS
Claude.ai requires a public HTTPS URL to connect to your server. If you’re running on a VPS, set up a reverse proxy in front of port 3000.After setting up the proxy, confirm it’s reachable from the public internet:
Caddy handles HTTPS certificate provisioning automatically via Let’s Encrypt. With Nginx, you’ll need to run Certbot separately to obtain and renew a certificate.
7
Connect to Claude.ai
- Go to Claude.ai > Settings > Integrations
- Click Add custom connector
- Paste your server URL:
https://mcp.yourdomain.com/mcp?token=YOUR_MCP_SECRET - Save and start a new conversation
tailscale_status and list your devices.See Connecting to Claude for full instructions and troubleshooting.Next steps
Connect to Claude
Step-by-step instructions for adding the connector in Claude.ai settings.
Tools reference
Learn what each tool does and how to use it effectively.
Configuration
Full reference for all environment variables and YAML config options.
Safety settings
Configure blocked commands, directory restrictions, and audit logging.