pinecallDocs
MCP: the tools / The phone

The phone

line, numbers, carriers and callbacks: who answers, and on which number.

Part of the MCP server: every tool of this stage, what each parameter takes — read off the tool's own schema, as the assistant sees it — and one real call, answered by Pinecall Cloud.

line#

Who answers the agent's number right now and who could take it; which phone is the person's own, so their calls reach their copy.

line show says whose process a ring at the agent's number lands in. from <number> says which phone is the person's own, once: their calls reach the copy they hold (the one start holds) while everybody else reaches production. claim takes the line for this copy, release gives it back, forget drops the phone.

parameter takes what it is
action show · from · forget · claim · release required show whose process a ring lands in; from says which phone is the person's own; forget drops it; claim takes the line for this copy; release gives it back
agent text the agent's name; the project's only agent when left out
number text from: the person's own phone, in +E.164
prod true or false act in production instead of the sandbox; the org's own switch decides whether this key may
called with
{
  "action": "show"
}
answered
{
  "agent": "front-desk",
  "env": "sandbox",
  "held": true,
  "holding": {
    "holder": "m_4f1c2a9b0e7d",
    "name": "you@example.com"
  },
  "yours": true,
  "waiting": [],
  "calling": []
}

numbers#

The org's numbers and the agent each reaches; the numbers its carrier account owns; importing one, shown as steps before anything is written.

numbers list shows which number reaches which agent in the sandbox; available what the org's Twilio account owns. import points a number the account owns at an agent: it first answers the steps it would take and writes nothing; call again with dry_run: false to do them. Letting a number go is never a tool: pinecall numbers drop in a terminal.

parameter takes what it is
action list · available · import required list the org's numbers; available is what its carrier account owns; import points one at an agent, a dry run unless dry_run is false
number text import: the number, in +E.164
agent text import: the agent that answers it
channel phone · whatsapp import: phone unless it is a WhatsApp number
account text available: one carrier account, when the org has several
dry_run true or false import: true (the default) prints the steps and writes nothing; false does them
prod true or false act in production instead of the sandbox; the org's own switch decides whether this key may
called with
{
  "action": "list"
}
answered
{
  "numbers": [
    {
      "route": {
        "org": "org_98889a61509c",
        "agent": "front-desk",
        "channel": "phone",
        "number": "+15550104133",
        "label": null,
        "env": "sandbox",
        "managed": false
      },
      "origin": "imported",
      "rings": "broken",
      "last_call_at": null,
      "via": null,
      "account": "AC5f…e442"
    }
  ]
}

carriers#

The org's carrier accounts — Twilio, a SIP peer, WhatsApp — and one account's networks and how outbound calls leave. Never a secret.

carriers lists the org's carrier accounts and shows one. Adding one takes its secrets, so it is never a tool: the person types pinecall carriers add in a terminal, or uses the console's Numbers screen.

parameter takes what it is
action list · show required list the org's carrier accounts, or show one
account text show: the account's id
prod true or false act in production instead of the sandbox; the org's own switch decides whether this key may
called with
{
  "action": "list"
}
answered
{
  "carriers": [
    {
      "kind": "twilio",
      "account": "AC5f…e442",
      "label": "",
      "networks": []
    }
  ]
}

callbacks#

The callers waiting to be called back, oldest first: who, on which channel, through what (the overflow, the agent's own tool, the widget).

callbacks lists the people waiting for a call back, each with the call it came from.

parameter takes what it is
agent text only this agent's
after a whole number 0 or more where the page before ended
prod true or false act in production instead of the sandbox; the org's own switch decides whether this key may
called with
{}
answered
{
  "requests": [],
  "next": null
}