MCP Integration

Connect your AI agent to Hardline Phone

Hardline Phone supports the Model Context Protocol (MCP), which is the standard way for AI agents to connect to and use external services.

This lets your agent find and buy a remote phone from us, and then it can pull screenshots from the phone, to let it tap x,y locations on the screenshot, to use the phone.

Connect your AI assistant

Claude

Claude

In the UI:

Go to claude.ai or open the Claude app on your computer.

Click Settings → Connectors → Add → Add custom connector

Paste in the server URL — Claude will redirect you to log in and approve access.

Server URL: https://hardlinephone.com/mcp

Via terminal:

claude mcp add --transport http hardlinephone https://hardlinephone.com/mcp --header "Authorization: Bearer YOUR_TOKEN"
ChatGPT

ChatGPT

In the UI:

Go to chatgpt.com or open the ChatGPT app on your computer.

Click Settings → Connectors, then add a new connector.

Paste in the server URL — ChatGPT will redirect you to log in and approve access.

Note: OpenAI requires the Business Plan to use MCP.

Server URL: https://hardlinephone.com/mcp
Grok

Grok

In the UI:

Go to grok.com or open the Grok app on your computer.

Go to grok.com/connectors, click New ConnectorCustom, then paste the MCP URL.

Server URL: https://hardlinephone.com/mcp

API Reference

Authentication

All authenticated requests use a Bearer token in the Authorization header. AI assistants get this token automatically via the OAuth flow above. For direct API or terminal access, generate a token on the settings page.

Authorization: Bearer YOUR_TOKEN

Endpoints

POST
https://hardlinephone.com/mcp — MCP JSON-RPC 2.0 endpoint
GET
https://hardlinephone.com/.well-known/mcp.json — service discovery

Tools

list_plans List available phone plans with monthly pricing. No auth needed.
get_balance Get your current account balance in USD.
request_topup Get crypto payment amounts to add funds. Accepts amount_usd.
withdraw Request a withdrawal from your balance. Accepts amount_usd.
buy_plan Purchase a subscription. Accepts plan: sms-phone, remote-android.
list_subscriptions List all your subscriptions with IDs and phone numbers.
cancel_subscription Cancel a subscription by ID. Accepts subscription_id.
list_remote_androids List your remote Android devices with hardware_id, online status, phone number, and screen size.
remote_screenshot Take a screenshot of a remote Android's screen. Accepts hardware_id.
remote_tap Tap the screen at pixel coordinates. Accepts hardware_id, x, y.
remote_wake Wake the screen. Accepts hardware_id.
remote_key Press a nav key. Accepts hardware_id, key (back, home, app_switcher, enter, delete, volume_up, volume_down).
remote_text Type text into the focused field. Accepts hardware_id, text.

Examples

List available plans (no auth required)

curl -s -X POST https://hardlinephone.com/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_plans","arguments":{}}}' \
  | jq

Check your balance

curl -s -X POST https://hardlinephone.com/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_balance","arguments":{}}}' \
  | jq

Buy a plan

curl -s -X POST https://hardlinephone.com/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"buy_plan","arguments":{"plan":"sms-phone"}}}' \
  | jq

List all tools

curl -s -X POST https://hardlinephone.com/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' \
  | jq