Prerequisites
- Reacher must be running and publicly reachable over HTTPS. If you haven’t done that yet, complete the Quickstart first.
- Your server URL must use HTTPS — Claude.ai will not connect to plain HTTP endpoints.
- You’ll need your
MCP_SECRETvalue from your.envfile.
Add the connector
Open Claude.ai settings
Go to Claude.ai and click your profile avatar, then select Settings.
Enter your server URL
Paste your Reacher URL in the following format:Replace
yourdomain.com with your actual domain and YOUR_MCP_SECRET with the value from your .env file.Verify Claude can call tools
Start a new conversation and try a prompt that exercises a tool:“What devices are on my Tailscale network?”Claude should call
tailscale_status and return a list of your devices with their hostnames, IP addresses, OS, and online/offline status.
If Claude responds without calling any tools, the connector may not be active in that conversation. Look for a tools icon or connector indicator in the Claude.ai UI and confirm Reacher is enabled.
Bootstrap Claude with AGENT.MD
The repository includes anAGENT.MD file that tells Claude how to use Reacher’s tools effectively: how to discover your devices, when to use each tool, how to handle Windows vs. Linux targets, and what to save to the knowledge base.
The first-time checklist Claude follows from AGENT.MD:
- Call
tailscale_statusto discover all devices, their hostnames, OS, and online status - Run a test command via
ssh_execon each online device to confirm SSH access - Call
gist_kbwithaction: listto check for saved notes from previous sessions - Write a device map to a gist (
RC: device-map) so future sessions resume with full context
Troubleshooting
Claude.ai shows “connection failed” when adding the connector- Confirm the server is publicly reachable:
curl "https://yourdomain.com/health?token=YOUR_MCP_SECRET" - Check that your reverse proxy is forwarding to port 3000 (or whatever
PORTyou set) - Verify your SSL certificate is valid and not expired
- Make sure port 443 is open in your VPS firewall
- Check the server logs:
docker compose logs -f reacher - Confirm
MCP_SECRETin the URL matches the one in.envexactly (it’s case-sensitive) - Look at
reacher-audit.logfor logged tool calls and their results
fetch_external returns “Domain not allowed”
The domain isn’t in your PROXY_ALLOWED_DOMAINS list. Add it to .env and restart the server:
ssh_exec fails to connect to a device
- Run
tailscale_statusto confirm the device shows online (note: status can lag — try SSH anyway) - Verify Tailscale SSH is enabled on the target device:
sudo tailscale up --ssh - Test the connection manually from your Reacher server:
ssh user@device-hostname
gist_kb or github_search returns an authentication error
Your GITHUB_TOKEN is missing or doesn’t have the required scopes. The token needs gist scope for gist_kb and any additional API scopes needed for fetch_external targets. Create or update the token at github.com/settings/tokens.