MCP Server
Use DataCork from Cursor or Claude Code. One command to connect. Fifteen tools once connected.
Connect in one command
# Claude Code
claude mcp add --transport http datacork https://mcp.datacork.com/mcp
# Cursor
cursor mcp add datacork
Discovery endpoint
The MCP discovery endpoint lists all available tools and their schemas. LLMs and orchestration frameworks can read this to understand capabilities without documentation:
curl -s https://mcp.datacork.com/mcp \
-H "Authorization: Bearer $DATACORK_API_KEY" | jq .tools[].name
Tool reference
Tools marked [stub] are defined in the schema but implementation ships in Epic E05 (Q3 2026).
| Tool name | Description | Free tier |
|---|---|---|
| connect_vpn | Connect to a WireGuard exit node by country or region code. Returns WireGuard config. | Yes |
| disconnect_vpn | Gracefully terminate active VPN session. Emits x402 receipt. | Yes |
| get_exit_ip | Return current egress IP and geo-location of active session. | Yes |
| list_exit_nodes | List available exit nodes with latency, load, and country. | Yes |
| get_session_status | Return session metadata: bytes transferred, uptime, cost accrued. | Yes |
| rotate_exit_node | Switch to a new exit node without dropping the session. | Pro+ |
| get_wireguard_config | Download WireGuard .conf for manual import. | Pro+ |
| list_sessions | List historical sessions with cost breakdown. | Pro+ |
| get_audit_log | Export signed audit events for a time range. | Pro+ |
| set_region_pin | Pin sessions to a specific region (Team+). | Team+ |
| manage_policy | Create / update Cedar access policies. [stub] | Team+ |
| request_signed_egress | Attach Web Bot Auth signature to outbound request. [stub] | Pro+ Beta |
| get_receipt | Fetch a specific x402 receipt by ID. | Yes |
| estimate_cost | Return cost estimate for a given session profile before connecting. | Yes |
| top_up_balance | Initiate a Stripe credit top-up from agent context. [stub] | Pro+ |
Auth scopes
| Scope | Grants access to |
|---|---|
| read:sessions | get_session_status, list_sessions, get_exit_ip, list_exit_nodes |
| write:exits | connect_vpn, disconnect_vpn, rotate_exit_node |
| write:billing | estimate_cost, top_up_balance, get_receipt |
| read:audit | get_audit_log (Team+ only) |
| write:policy | manage_policy (Team+ only) |
Tip: When calling
claude mcp add, the MCP server negotiates the minimum scopes it needs for the current request. You can restrict scopes further in the dashboard under API Keys → Scope limits.
Python example
from anthropic import Anthropic
client = Anthropic()
# MCP is configured in Claude Code — this is what the agent invokes
result = client.messages.create(
model="claude-opus-4-7-20251201",
max_tokens=1024,
tools=[{"type": "mcp", "server_name": "datacork"}],
messages=[{
"role": "user",
"content": "Connect to a US exit node and check the exit IP."
}]
)
print(result.content)
TypeScript example
// datacork MCP is pre-configured via cursor mcp add
// This is the prompt your agent sends:
const message = await anthropic.messages.create({
model: 'claude-opus-4-7-20251201',
max_tokens: 1024,
tools: [{ type: 'mcp', server_name: 'datacork' }],
messages: [{
role: 'user',
content: 'Route the next fetch() call through a Singapore exit node.'
}]
});
curl example (direct tool invocation)
# Call connect_vpn directly via the MCP JSON-RPC endpoint
curl -sX POST https://mcp.datacork.com/mcp \
-H "Authorization: Bearer $DATACORK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "connect_vpn",
"arguments": {"country": "SG"}
},
"id": 1
}' | jq