Skip to main content

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 .env and fill in your credentials. Every required variable is listed below.Required environment variables
MCP_SECRET, TAILSCALE_API_KEY, and GITHUB_TOKEN are validated at startup. The server will refuse to start if any of these are missing.
Optional: edit reacher.config.yamlThe YAML config controls safety settings. The defaults are reasonable, but you can tighten them:
Environment variables always take precedence over YAML config values.
3

Enable Tailscale SSH on target devices

For ssh_exec to reach a machine, Tailscale SSH must be enabled on it. Run this on each device you want Reacher to control:
Then verify SSH access works from your server:
If that succeeds manually, Reacher will be able to reach it too.
You can skip this step initially and come back to it. The tailscale_status tool works without SSH being enabled, and you can enable SSH per device as you need it.
4

Start the server

Choose your runtime:
Check the server started correctly:
If startup fails with “Missing required environment variables”, check that MCP_SECRET, TAILSCALE_API_KEY, and GITHUB_TOKEN are all set in your .env file.
5

Verify the server is responding

Run a tools/list request against the local server to confirm everything is working:
Replace 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):
Expected response:
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.
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.
After setting up the proxy, confirm it’s reachable from the public internet:
7

Connect to Claude.ai

  1. Go to Claude.ai > Settings > Integrations
  2. Click Add custom connector
  3. Paste your server URL: https://mcp.yourdomain.com/mcp?token=YOUR_MCP_SECRET
  4. Save and start a new conversation
Try asking: “What devices are on my Tailscale network?” — Claude should call 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.