fetch_external is Reacher’s general-purpose HTTP proxy. It forwards requests to external APIs, automatically injecting the right authentication token based on the target domain. Tokens stay on the server — Claude never sees them.
This is the core insight behind Reacher’s design: Claude already knows REST APIs. It doesn’t need a dedicated tool for GitHub, Linear, or Notion. It needs a way to call those APIs with your credentials. fetch_external is that mechanism.
Prerequisites
- The target domain must be listed in
PROXY_ALLOWED_DOMAINS(comma-separated) - For authenticated APIs, add the domain-to-token mapping in
FETCH_EXTERNAL_TOKEN_MAP
api.github.com, the tool looks up "api.github.com" in FETCH_EXTERNAL_TOKEN_MAP, finds "GITHUB_TOKEN", reads that env var, and injects Authorization: Bearer ghp_xxx automatically.
Parameters
The full URL to fetch. Must be a valid URL including scheme (e.g.
https://api.github.com/user).HTTP method. Accepted values:
GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS. Defaults to GET.Request body for
POST, PUT, and PATCH requests. Serialized as JSON. Content-Type: application/json is added automatically if not already present.Additional headers to include in the request. Merged with any injected auth headers. If you specify
Authorization here it will be overridden by the injected token for the domain.Return value
true if the HTTP response status was in the 2xx range (response.ok).HTTP status code returned by the upstream server.
HTTP status text (e.g.
"OK", "Not Found").Response headers as a key-value object.
Parsed response body. JSON responses are returned as a parsed object. All other content types are returned as a string.
The URL that was fetched.
Security
When a request targets a domain not inPROXY_ALLOWED_DOMAINS, the tool returns immediately without making any network request: