Skip to main content
FetchSandbox
← Back to setup

Connect FetchSandbox to Claude Code

Connect Claude Code to the FetchSandbox remote MCP server, confirm a real tool call, then verify your running app against isolated provider twins.

What you need first

You need Claude Code (not Claude's browser connector UI), a FetchSandbox account and your own FETCHSANDBOX_API_KEY environment variable. Provider twins are isolated, so you don't need live vendor keys.

01

Get your account key

Create a key at https://fetchsandbox.com/keys and store it in FETCHSANDBOX_API_KEY. Keep real keys out of chat.

Get account key
02

Configure Claude Code

Use Claude Code's mcp add command to add a server named fetchsandbox with HTTP transport at https://fetchsandbox.com/mcp/v1. Add an Authorization Bearer header that reads your existing FETCHSANDBOX_API_KEY. The exact command appears separately. Reference: https://code.claude.com/docs/en/mcp

Remote MCP configuration
claude mcp add --transport http fetchsandbox https://fetchsandbox.com/mcp/v1 --header "Authorization: Bearer ${FETCHSANDBOX_API_KEY}"
03

Confirm an actual tool call

Start a fresh Claude Code session and check that /mcp shows the connection. Tool discovery alone is not proof. Run list_workflows with spec_slug=stripe as a read-only connection test and confirm it returns a result.

Confirm an actual tool call
Call FetchSandbox list_workflows with spec_slug stripe and tell me the actual result.
04

Verify your running app and inspect a receipt

Use validate_integration to set up actual-app verification. Agree on the observable behavior, point your app's calls at the supplied twins, invoke the app and inspect the receipt. Local apps connect through managed tunnel transport. Hosted apps need a reachable protected URL.

Verify your running app and inspect a receipt
Use FetchSandbox validate_integration for this running app. Agree the observable expected behavior with me, configure the isolated twins, invoke the actual app and report the receipt, including anything failed or unmeasured. Keep polling the same get_job until it reaches a terminal state.
Signs your setup works

You're set up when list_workflows with spec_slug=stripe returns a real result and your own running app produces a receipt through validate_integration.

Scope of this evidence

Your receipt records expected versus actual for the agreed scenarios against the configured twins. Local apps connect through the managed tunnel and hosted apps through your protected URL. Twins are isolated, so live vendor delivery is unmeasured. A passing reference quickrun doesn't test your code. Related public receipts illustrate workflows. They're separate from verifying your own app here and aren't native Claude Code acceptance.

Related receipts

All workflows →

Historical runs recorded against isolated twins. You can inspect each receipt and its evidence. Not a new execution or production certification.

Duplicate charge remediation
stripehubspotgmailasanaslack

Duplicate charge remediation

Passed

Finance needs to refund customers who were charged twice by a billing incident, quickly and at scale, without refunding a disputed or ambiguous payment and with human approval above set limits.

23Passed0Failed0Not measured
Evidence details

Each receipt is one individual dated run against isolated provider twins, not live vendors. The caller declared the app revision, and it is not attested. Workflow docs are pinned to the commit shown here. A status appears only when the original verdict, counts, completeness and app_verified all support it, and counts are never merged. Some source exports, including the n8n lead flow, are not public. These public examples are separate from proving your own app through your builder, and they don't show that each native client was tested.

{"verdict":"verified","complete":true,"applicationVerified":true,"appVersion":{"value":"acme-ops-duplicate-charge-remediation-1.0.0-639dac1","source":"declared"},"sourceRevision":"48d4ded9832981e441fad4e83ed3daf838086ba4"}
stripeworkoshubspotgmailslack

Paid order provisioning (Stripe events)

Passed

Sales needs to grant product access the moment an order is paid, and never for an order that was not paid in full, was refunded or disputed, or whose payment event was forged, replayed, delayed or lost.

21Passed0Failed0Not measured
Evidence details

Each receipt is one individual dated run against isolated provider twins, not live vendors. The caller declared the app revision, and it is not attested. Workflow docs are pinned to the commit shown here. A status appears only when the original verdict, counts, completeness and app_verified all support it, and counts are never merged. Some source exports, including the n8n lead flow, are not public. These public examples are separate from proving your own app through your builder, and they don't show that each native client was tested.

{"verdict":"verified","complete":true,"applicationVerified":true,"appVersion":{"value":"acme-ops-paid-order-provisioning-1.0.0-ba92fe0","source":"declared"},"sourceRevision":"48d4ded9832981e441fad4e83ed3daf838086ba4"}