Use GateWire with your AI agent

All work is low-voltage (under 50 V DC). No line-voltage electrical work is performed.

GateWire exposes the same customer jobs three ways: a remote MCP server at /mcp, a REST API at /api/v1 (documented in /openapi.json), and the gatewire CLI. All three call the same functions as the website, so a key never grants more than signing in at gatewire.dev-50e.workers.dev would.

1. Create an API key

Sign in, open your account, and create a key under Agent access. Choose read (status, scheduling state) or read+write (also request an install and offer your availability). The plaintext (gw_sk_...) is shown once -- store it like a password. Revoke it any time from the same page.

2. Connect your client

Claude Code

claude mcp add --transport http gatewire https://gatewire.dev-50e.workers.dev/mcp --header "Authorization: Bearer gw_sk_..."

Or in .mcp.json:

{
  "mcpServers": {
    "gatewire": {
      "type": "http",
      "url": "https://gatewire.dev-50e.workers.dev/mcp",
      "headers": { "Authorization": "Bearer ${GATEWIRE_API_KEY}" }
    }
  }
}

claude.ai / Claude Desktop

Settings > Connectors > Add custom connector > URL https://gatewire.dev-50e.workers.dev/mcp, then add a fixed request header Authorization: Bearer gw_sk_....

Cursor

.cursor/mcp.json:

{
  "mcpServers": {
    "gatewire": {
      "url": "https://gatewire.dev-50e.workers.dev/mcp",
      "headers": { "Authorization": "Bearer ${env:GATEWIRE_API_KEY}" }
    }
  }
}

ChatGPT / Codex

codex mcp add gatewire --url https://gatewire.dev-50e.workers.dev/mcp

TOML:

[mcp_servers.gatewire]
url = "https://gatewire.dev-50e.workers.dev/mcp"
bearer_token_env_var = "GATEWIRE_API_KEY"

ChatGPT's own connectors currently require OAuth for a custom server; until GateWire ships one (see Status below), use Codex or the Responses API's mcp tool with an authorization header instead of the ChatGPT connectors UI. The search / fetch tools (public pages only) are also reachable without a key for a deep-research-style connector.

VS Code

{
  "servers": {
    "gatewire": {
      "type": "http",
      "url": "https://gatewire.dev-50e.workers.dev/mcp",
      "headers": { "Authorization": "Bearer ${env:GATEWIRE_API_KEY}" }
    }
  }
}

CLI

gatewire-cli: one file, zero dependencies, served from this site (Node 18 or newer). The npm package named gatewire belongs to an unrelated company -- do not install it.

curl -fsSLO https://gatewire.dev-50e.workers.dev/cli/gatewire.mjs
node gatewire.mjs login
node gatewire.mjs whoami
node gatewire.mjs status
node gatewire.mjs request-install --distance-ft 180
node gatewire.mjs availability --day 2026-11-03:morning --day 2026-11-04:afternoon
node gatewire.mjs visit

3. Tools / endpoints

MCP toolRESTScopeNotes
whoamiWho am Ireadread-only
get_account_statusGet install request and booking statusreadread-only
request_installRequest a low-voltage installwritewrites
get_visitGet the install scheduling statereadread-only
request_install_visitOffer your availability for the installwritewrites
accept_proposed_timeAccept a time the installer proposedwritewrites
cancel_install_visitCancel the install visit requestwritedestructive, needs confirm: true
list_available_slotsList the installer's open times (optional shortcut)readread-only
book_install_slotTake one of the installer's open timeswritedestructive, needs confirm: true
searchSearch GateWire's public pages (connector shape)readread-only
fetchFetch a GateWire public page (connector shape)readread-only

4. Safety

FAQ

What can an agent do on GateWire?

Check who the API key belongs to, read the account's install vetting / deposit / receipt / booking status, submit a new install request for vetting, offer the days and parts of the day you are free once scheduling is unlocked (the installer confirms one or proposes others), accept a proposed time, and cancel. It cannot take or move money, upload photos, or touch another account's data.

Can an agent pay the $400 deposit?

No. The deposit is a browser-only Stripe card-entry flow and is not reachable from the MCP server, the REST API, or the CLI.

How does scheduling work for an agent?

By availability, like the website: request_install_visit (POST /api/v1/visit) offers days and parts of the day; the installer confirms one or proposes others (get_visit shows it, accept_proposed_time accepts). Sending the same data again changes nothing. The older book_install_slot / POST /api/v1/bookings still works for a time the installer has already listed, and confirms it immediately, so it asks for confirm: true. Cancelling a visit does not move money.

Where do I get an API key?

Sign in, open your account, and create a key under Agent access. The plaintext is shown once.