CALL-E /mcp/openagent_oauth MCP
June 5, 2026 ยท View on GitHub
/mcp/openagent_oauth is CALL-E's standard OAuth-protected Model Context
Protocol (MCP) endpoint. It lets any compatible MCP client connect to CALL-E
over Streamable HTTP, discover available tools, authorize the user, and run the
CALL-E one-shot call workflow through MCP tool calls.
This guide describes only the MCP surface: the endpoint, transport, authorization behavior, tool discovery, tool contracts, and safe tool order.
Endpoint
Production MCP URL:
https://seleven-mcp-sg.airudder.com/mcp/openagent_oauth
Transport:
Streamable HTTP
MCP Lifecycle
A compatible MCP client should treat this as a remote Streamable HTTP MCP server:
- Connect to the MCP URL.
- Send
initialize. - Complete OAuth authorization if the server returns an authorization challenge.
- Send
tools/list. - Call tools with
tools/call.
The expected tool set is:
plan_call
run_call
get_call_run
Test With MCP Inspector
Use the MCP Inspector when you need to verify this endpoint outside a normal MCP client. The Inspector is the MCP project's interactive test tool for connecting to MCP servers, inspecting capability negotiation, listing tools, and invoking tools with test input.
For Inspector-specific options, see the official MCP Inspector guide.
Start the Inspector locally:
npx @modelcontextprotocol/inspector
The Inspector starts a local web UI and prints the URL to open. Use the printed URL because recent Inspector versions include a proxy session token in it.
In the Inspector UI:
-
Select the
streamable-httptransport. -
Set the server URL to:
https://seleven-mcp-sg.airudder.com/mcp/openagent_oauth -
Connect to the server.
-
Complete the OAuth browser flow if the server asks for authorization. If you are testing with an existing bearer token, enter it only in the Inspector authentication field and do not paste it into prompts, screenshots, or logs.
-
Open the Tools view and list tools.
-
Confirm the tool list contains
plan_call,run_call, andget_call_run. -
For a safe smoke test, invoke
plan_callwith incomplete or clearly non-running input and verify that the response asks for missing details.
Do not use run_call as a setup or connectivity test. run_call can place a
real outbound phone call. Only test run_call when the test intentionally
places or schedules a real call and the returned plan_id and confirm_token
come from the immediately preceding plan_call result.
Authorization
This MCP endpoint requires OAuth authorization. If a request is unauthenticated or the token is invalid, the MCP server can return an OAuth protected-resource challenge. The MCP client should follow the advertised protected-resource metadata, complete the browser authorization flow, and retry MCP requests with the issued bearer token.
Clients must not expose OAuth access tokens, bearer tokens, authorization codes, callback URLs, or refresh tokens to the model or user-visible logs.
Tool Flow
The MCP tool order is:
plan_call -> run_call -> get_call_run
plan_call prepares the call. run_call starts the prepared call. get_call_run
reads progress and results.
plan_call
Use plan_call first. It creates or refines a call plan and does not place a
phone call.
Important inputs:
user_input: the user's latest message, passed verbatim.to_phones: destination phone numbers, only when known and unambiguous.region: region hint, only when known.language: call language, only when known.goal: call goal or instruction, only when known.scheduled_at: optional one-time execution time, only when supplied clearly.plan_id: an existing plan identifier when refining a previous plan.ttl_seconds: optional retention TTL for plan and run records.
Rules:
- Always preserve the user's latest message in
user_input. - Do not guess phone numbers, country codes, region, language, schedule time, or missing call goals.
- If
ready_to_run=false, ask the user for the missing details and callplan_callagain. - If
ready_to_run=true, preserve the returnedplan_idandconfirm_tokenexactly.
run_call
Use run_call only after plan_call returns ready_to_run=true and the user
clearly intends to place the call.
Important inputs:
plan_id: the exact plan identifier returned byplan_call.confirm_token: the exact confirmation token returned byplan_call.ttl_seconds: optional retention TTL override for the run record.
run_call can place a real outbound phone call. Do not synthesize, edit, or
reuse plan_id or confirm_token across plans.
If a call starts, do not call run_call again for the same plan unless the
server returns a next_step that explicitly requires another run action.
get_call_run
Use get_call_run after run_call starts or schedules a run. It is read-only
and does not initiate calls.
Important inputs:
run_id: the run identifier returned byrun_call.cursor: optional pagination cursor from a previousget_call_runresponse.limit: optional maximum number of activity entries to return.
The response can include status, activity, summary, details, transcript, and
next_step guidance. After a new call starts, wait about 60 seconds before the
first status query, then poll every 5-10 seconds until the run reaches a
terminal state or next_step says otherwise.
Safety Contract
CALL-E can contact external people and businesses by phone. MCP clients must keep the workflow plan-first and user-confirmed:
- Always call
plan_callbeforerun_call. - Never call
run_callfor setup verification. - Never auto-run
run_call. - Never guess call inputs or opaque identifiers.
- Never expose OAuth secrets.
- Treat
plan_id,confirm_token, andrun_idas opaque values.
Minimal Manual MCP Config
Some MCP clients accept a JSON server definition similar to:
{
"mcpServers": {
"call-e": {
"url": "https://seleven-mcp-sg.airudder.com/mcp/openagent_oauth"
}
}
}
Exact config shape is client-specific. The invariant is the remote Streamable HTTP URL:
https://seleven-mcp-sg.airudder.com/mcp/openagent_oauth