Quickstart
Install DataCork in 60 seconds and make your first agent request via Claude Code or Cursor.
Install the CLI
curl -sSL https://get.datacork.com | sh
powershell -Command "irm https://get.datacork.com/install.ps1 | iex"
docker pull ghcr.io/datacork/conduit-cli:latest
The installer adds the datacork binary to your PATH and runs a post-install check. Expected output:
DataCork Conduit v0.1.0
Architecture: arm64 / amd64
Rosenpass: available
WireGuard: available
All checks passed.
Authenticate
Run the OAuth flow. This opens your browser and writes a short-lived credential to ~/.datacork/auth.json.
datacork auth login
For headless environments (CI, agents without a browser), use device flow:
datacork auth login --headless
This prints a verification code and URL. Visit the URL, enter the code, and the CLI polls until authorized.
Note: DataCork uses PKCE S256 OAuth 2.0. No password is stored. The credential file contains a short-lived access token and a refresh token — rotate via
datacork auth rotate.
Add to Claude Code
# One-liner MCP registration
claude mcp add --transport http datacork https://mcp.datacork.com/mcp
Verify it registered:
claude mcp list
# datacork https://mcp.datacork.com/mcp http connected
Add to Cursor
cursor mcp add datacork
Or manually add to .cursor/mcp.json:
{
"mcpServers": {
"datacork": {
"transport": "http",
"url": "https://mcp.datacork.com/mcp",
"auth": {
"type": "bearer",
"tokenEnvVar": "DATACORK_API_KEY"
}
}
}
}
Make your first request
In Claude Code, ask your agent to route a request through DataCork:
# Prompt to Claude Code:
"Connect to DataCork and route the next HTTP request through a German exit node."
# Claude Code will call:
# datacork.connect_vpn({ country: "DE" })
# datacork.get_exit_ip()
# ... route your request ...
import requests
# Connect via REST API
resp = requests.post(
"https://api.datacork.com/v1/vpn/connect",
headers={"Authorization": f"Bearer {DATACORK_API_KEY}"},
json={"country": "DE"}
)
session = resp.json()
print(f"Connected. Exit IP: {session['exit_ip']}")
print(f"WireGuard config: {session['wireguard_config']}")
const resp = await fetch('https://api.datacork.com/v1/vpn/connect', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.DATACORK_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ country: 'DE' })
});
const session = await resp.json();
console.log('Exit IP:', session.exit_ip);
curl -sX POST https://api.datacork.com/v1/vpn/connect \
-H "Authorization: Bearer $DATACORK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country":"DE"}' | jq
Check your first x402 receipt
After your first paid request, an x402 receipt is emitted. View receipts:
datacork receipts list --limit 10
[
{
"id": "rcpt_01hx...",
"timestamp": "2026-04-27T18:30:00Z",
"amount_usdc": "0.001",
"tx_hash": "0xabc123...",
"session_id": "sess_01hx...",
"exit_node": "de-fra-01",
"bytes_egress": 14320
}
]
Checkpoint: You should see a receipt entry with a real USDC transaction hash. If the Free tier quota is active (no wallet connected), the receipt shows
payment_method: "quota" instead.
Next steps
- MCP Server reference — all 15 tools, auth scopes, discovery endpoint
- x402 billing — set up your USDC wallet, understand the 402 flow
- WireGuard manual setup — configure without the CLI
- Pricing — upgrade when you hit Free tier limits