We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
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
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
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
In the UI:
Go to grok.com or open the Grok app on your computer.
Go to grok.com/connectors, click New Connector → Custom, 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