{"calls": [], "exit_before_cleanup": null, "initialize": {"capabilities": {"tools": {"listChanged": true}}, "protocolVersion": "2025-11-25", "serverInfo": {"name": "callmcp-server", "version": "0.1.0"}}, "list_change_notifications": 0, "monotonic_seconds": 0.6232132919831201, "outcome": "listed tools offline", "started_utc": "2026-10-17T12:23:14.195385Z", "status": "completed", "tools": [{"annotations": {"destructiveHint": false, "idempotentHint": true, "openWorldHint": false, "readOnlyHint": true}, "description": "Read-only capability introspection. Call before assuming any other tool's behavior (SPEC §1.1).", "inputSchema": {"additionalProperties": false, "properties": {}, "type": "object"}, "name": "list_drivers"}, {"annotations": {"destructiveHint": false, "idempotentHint": false, "openWorldHint": false, "readOnlyHint": false}, "description": "Creates a pending human authorization for a destination, allowlist entry, or campaign batch (SPEC §1.2). Fires MCP elicitation when supported; otherwise returns an out-of-band approval URL.", "inputSchema": {"additionalProperties": false, "properties": {"campaign_max_contacts": {"description": "required when scope=campaign_batch", "minimum": 1, "type": "integer"}, "channel": {"default": "voice", "enum": ["voice", "sms", "whatsapp", "rcs"], "type": "string"}, "destinations": {"items": {"description": "E.164 phone number, or a wildcard pattern for allowlist_add e.g. '+1415555....'", "type": "string"}, "minItems": 1, "type": "array"}, "driver": {"type": "string"}, "options": {"additionalProperties": {"type": "object"}, "description": "namespaced driver-specific passthrough, keyed by driver_id", "type": "object"}, "purpose": {"description": "human-readable reason shown in the elicitation/approval UI", "type": "string"}, "scope": {"enum": ["single_call", "allowlist_add", "campaign_batch"], "type": "string"}, "ttl_seconds": {"default": 86400, "description": "see SPEC §3.2 for tier defaults", "minimum": 60, "type": "integer"}}, "required": ["scope", "destinations"], "type": "object"}, "name": "request_call_approval"}, {"annotations": {"destructiveHint": false, "idempotentHint": true, "openWorldHint": false, "readOnlyHint": true}, "description": "Read-only. Returns pending approvals, allowlist entries, and active campaign grants (SPEC §1.3).", "inputSchema": {"additionalProperties": false, "properties": {"cursor": {"type": "string"}, "driver": {"type": "string"}, "scope": {"default": "any", "enum": ["single_call", "allowlist_add", "campaign_batch", "any"], "type": "string"}, "state": {"default": "any", "enum": ["pending", "approved", "denied", "expired", "any"], "type": "string"}}, "type": "object"}, "name": "list_approvals"}, {"annotations": {"destructiveHint": true, "idempotentHint": false, "openWorldHint": true, "readOnlyHint": false}, "description": "Places an outbound call (SPEC §1.4). Requires a valid, unexpired approval_id or an allowlist match; otherwise the server elicits approval inline rather than dialing.", "execution": {"taskSupport": "optional"}, "inputSchema": {"additionalProperties": false, "properties": {"agent_config_ref": {"description": "opaque reference to an already-configured agent/assistant", "type": "string"}, "approval_id": {"description": "omit only if `to` matches a standing allowlist entry", "type": "string"}, "driver": {"type": "string"}, "from": {"description": "E.164 caller-id number; if omitted, driver default number is used", "type": "string"}, "max_duration_seconds": {"minimum": 1, "type": "integer"}, "metadata": {"additionalProperties": true, "type": "object"}, "options": {"additionalProperties": {"type": "object"}, "description": "namespaced driver-specific passthrough, keyed by driver_id", "type": "object"}, "to": {"description": "E.164 destination number", "type": "string"}}, "required": ["to"], "type": "object"}, "name": "make_call"}, {"annotations": {"destructiveHint": true, "idempotentHint": true, "openWorldHint": true, "readOnlyHint": false}, "description": "Terminates an in-progress call (SPEC §1.5). Capability-gated by supports_hangup.", "inputSchema": {"additionalProperties": false, "properties": {"call_id": {"type": "string"}, "reason": {"type": "string"}}, "required": ["call_id"], "type": "object"}, "name": "end_call"}, {"annotations": {"destructiveHint": false, "idempotentHint": true, "openWorldHint": false, "readOnlyHint": true}, "description": "Read-only poll fallback for clients that don't subscribe to resource updates (SPEC §1.6).", "inputSchema": {"additionalProperties": false, "properties": {"call_id": {"type": "string"}}, "required": ["call_id"], "type": "object"}, "name": "get_call_status"}, {"annotations": {"destructiveHint": false, "idempotentHint": true, "openWorldHint": false, "readOnlyHint": true}, "description": "Returns a call's transcript, inline or as a subscribable resource link (SPEC §1.7).", "inputSchema": {"additionalProperties": false, "properties": {"call_id": {"type": "string"}, "format": {"default": "inline", "enum": ["inline", "resource_link"], "type": "string"}}, "required": ["call_id"], "type": "object"}, "name": "get_transcript"}, {"annotations": {"destructiveHint": false, "idempotentHint": true, "openWorldHint": false, "readOnlyHint": true}, "description": "Returns a resource link to the call's audio recording (SPEC §1.8). Capability-gated by supports_recording.", "inputSchema": {"additionalProperties": false, "properties": {"call_id": {"type": "string"}}, "required": ["call_id"], "type": "object"}, "name": "get_recording"}, {"annotations": {"destructiveHint": true, "idempotentHint": false, "openWorldHint": true, "readOnlyHint": false}, "description": "Sends an outbound message over SMS, WhatsApp, or RCS (SPEC §1.9). Capability-gated; approval-gated like make_call.", "inputSchema": {"additionalProperties": false, "properties": {"approval_id": {"type": "string"}, "body": {"maxLength": 4096, "type": "string"}, "channel": {"default": "sms", "enum": ["sms", "whatsapp", "rcs"], "type": "string"}, "driver": {"type": "string"}, "from": {"type": "string"}, "media_urls": {"items": {"type": "string"}, "type": "array"}, "options": {"additionalProperties": {"type": "object"}, "description": "namespaced driver-specific passthrough, keyed by driver_id", "type": "object"}, "to": {"type": "string"}}, "required": ["to", "body"], "type": "object"}, "name": "send_sms"}, {"annotations": {"destructiveHint": false, "idempotentHint": true, "openWorldHint": false, "readOnlyHint": true}, "description": "Read-only search for purchasable phone numbers (SPEC §1.10).", "inputSchema": {"additionalProperties": false, "properties": {"area_code": {"type": "string"}, "capabilities_required": {"items": {"enum": ["voice", "sms", "mms", "whatsapp"], "type": "string"}, "type": "array"}, "country": {"description": "ISO 3166-1 alpha-2", "type": "string"}, "cursor": {"type": "string"}, "driver": {"type": "string"}}, "required": ["country"], "type": "object"}, "name": "search_numbers"}, {"annotations": {"destructiveHint": true, "idempotentHint": false, "openWorldHint": true, "readOnlyHint": false}, "description": "Purchases a phone number (SPEC §1.11). Spends money but does not contact a third party, so no human approval gate.", "inputSchema": {"additionalProperties": false, "properties": {"compliance": {"additionalProperties": true, "type": "object"}, "driver": {"type": "string"}, "number": {"description": "a number returned by search_numbers", "type": "string"}, "options": {"additionalProperties": {"type": "object"}, "description": "namespaced driver-specific passthrough, keyed by driver_id", "type": "object"}}, "required": ["number"], "type": "object"}, "name": "buy_number"}, {"annotations": {"destructiveHint": false, "idempotentHint": true, "openWorldHint": false, "readOnlyHint": false}, "description": "Updates routing/configuration for an already-owned number (SPEC §1.12).", "inputSchema": {"additionalProperties": false, "properties": {"agent_config_ref": {"type": ["string", "null"]}, "caller_id_name": {"type": ["string", "null"]}, "driver": {"type": "string"}, "number": {"type": "string"}, "options": {"additionalProperties": {"type": "object"}, "description": "namespaced driver-specific passthrough, keyed by driver_id", "type": "object"}, "sms_webhook_url": {"type": ["string", "null"]}}, "required": ["number"], "type": "object"}, "name": "configure_number"}, {"annotations": {"destructiveHint": false, "idempotentHint": true, "openWorldHint": false, "readOnlyHint": true}, "description": "Read-only inventory of owned numbers (SPEC §1.13).", "inputSchema": {"additionalProperties": false, "properties": {"cursor": {"type": "string"}, "driver": {"type": "string"}}, "type": "object"}, "name": "list_numbers"}, {"annotations": {"destructiveHint": false, "idempotentHint": true, "openWorldHint": false, "readOnlyHint": true}, "description": "Read-only call history/inventory (SPEC §1.14).", "inputSchema": {"additionalProperties": false, "properties": {"cursor": {"type": "string"}, "driver": {"type": "string"}, "since": {"type": "string"}, "status": {"default": "any", "enum": ["queued", "ringing", "in_progress", "completed", "failed", "no_answer", "busy", "canceled", "any"], "type": "string"}, "until": {"type": "string"}}, "type": "object"}, "name": "list_calls"}], "tools_list_hashes": ["c0074b5f8ee4187373ef234d2025319377eefcc433f92066903e12dcbffe52fa"], "wall_limit_seconds": 45}