The title clearly communicates the tool’s action and subject. Keep it concise.
Description85/100
Purchase a new phone number. This is a paid purchase that charges the account's balance. area_code requests a specific region (e.g. '415' for San Francisco); agent_id attaches it on purchase. Requires confirm=true to proceed.
Describe the returned information so the agent knows whether it will answer the request.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
country
2-letter ISO country code (e.g. US, CA, GB)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
area_code
3-digit area code for a specific region (e.g. '415', '212', '310')
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
agent_id
Agent ID to attach this number to immediately
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
confirm
Must be true to complete the purchase. When false, no number is bought.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "buy_number",
"title": "Buy Phone Number",
"description": "Purchase a new phone number. This is a paid purchase that charges the account's balance. area_code requests a specific region (e.g. '415' for San Francisco); agent_id attaches it on purchase. Requires confirm=true to proceed.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"confirm": {
"type": "boolean",
"default": false,
"description": "Must be true to complete the purchase. When false, no number is bought."
},
"country": {
"type": "string",
"default": "US",
"maxLength": 2,
"minLength": 2,
"description": "2-letter ISO country code (e.g. US, CA, GB)"
},
"agent_id": {
"type": "string",
"description": "Agent ID to attach this number to immediately"
},
"area_code": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "3-digit area code for a specific region (e.g. '415', '212', '310')"
}
}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description79/100
Send an SMS or iMessage from one of your agent's phone numbers, or react to a message.
The agent must have at least one phone number attached. If the agent has multiple numbers, number_id or from_number selects which one to send from.
iMessage extras (silently ignored on SMS): reply_to_message_id threads the reply under an earlier message, and send_style adds an expressive screen/bubble effect.
To react to a message instead of sending one, set reaction and react_to_message_id (iMessage only); to_number and body are not needed in that case.
The description explains the capability, when to use it, and what to expect.
Inputs91/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
agent_id
The agent ID to send from (the agent must have a phone number attached). Optional if you pass from_number or number_id instead.
Clear enough to supply this argument.
to_number
Recipient: a phone number in E.164 format (e.g. +14155551234), a US short code, or a group ID (grp_...) to post into an iMessage group chat. Required when sending a message (not needed for a reaction).
Clear enough to supply this argument.
body
The message text to send (may be empty when sending media only)
Clear enough to supply this argument.
media_url
URL of a single image/media file to attach
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
media_urls
Multiple media URLs to attach (delivered as an image carousel on iMessage)
Clear enough to supply this argument.
number_id
Specific phone number ID to send from (if agent has multiple numbers)
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
from_number
Exact number to send from in E.164 format (alternative to number_id)
Clear enough to supply this argument.
reply_to_message_id
iMessage only. ID of an earlier message to reply to inline (threaded reply)
Clear enough to supply this argument.
send_style
iMessage only. Expressive screen/bubble effect to send with the message
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
react_to_message_id
iMessage only. ID of a message to react to. Set together with `reaction`.
Clear enough to supply this argument.
reaction
iMessage only. Tapback or single emoji applied to react_to_message_id: one of love, like, dislike, laugh, emphasize, question, or a single emoji (e.g. '🔥'). When set, this reacts instead of sending a message.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "send_message",
"title": "Send Message",
"description": "Send an SMS or iMessage from one of your agent's phone numbers, or react to a message.\n\nThe agent must have at least one phone number attached. If the agent has multiple numbers, number_id or from_number selects which one to send from.\niMessage extras (silently ignored on SMS): reply_to_message_id threads the reply under an earlier message, and send_style adds an expressive screen/bubble effect.\nTo react to a message instead of sending one, set reaction and react_to_message_id (iMessage only); to_number and body are not needed in that case.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"body": {
"type": "string",
"default": "",
"description": "The message text to send (may be empty when sending media only)"
},
"agent_id": {
"type": "string",
"description": "The agent ID to send from (the agent must have a phone number attached). Optional if you pass from_number or number_id instead."
},
"reaction": {
"type": "string",
"description": "iMessage only. Tapback or single emoji applied to react_to_message_id: one of love, like, dislike, laugh, emphasize, question, or a single emoji (e.g. '🔥'). When set, this reacts instead of sending a message."
},
"media_url": {
"type": "string",
"format": "uri",
"description": "URL of a single image/media file to attach"
},
"number_id": {
"type": "string",
"description": "Specific phone number ID to send from (if agent has multiple numbers)"
},
"to_number": {
"type": "string",
"description": "Recipient: a phone number in E.164 format (e.g. +14155551234), a US short code, or a group ID (grp_...) to post into an iMessage group chat. Required when sending a message (not needed for a reaction)."
},
"media_urls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Multiple media URLs to attach (delivered as an image carousel on iMessage)"
},
"send_style": {
"enum": [
"celebration",
"fireworks",
"lasers",
"love",
"confetti",
"balloons",
"spotlight",
"echo",
"invisible",
"gentle",
"loud",
"slam"
],
"type": "string",
"description": "iMessage only. Expressive screen/bubble effect to send with the message"
},
"from_number": {
"type": "string",
"description": "Exact number to send from in E.164 format (alternative to number_id)"
},
"react_to_message_id": {
"type": "string",
"description": "iMessage only. ID of a message to react to. Set together with `reaction`."
},
"reply_to_message_id": {
"type": "string",
"description": "iMessage only. ID of an earlier message to reply to inline (threaded reply)"
}
}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
List recent calls. Scope by agent_id or number_id, or use status/direction/search to filter globally.
When agent_id or number_id is passed, status/direction/search filters are not applied.
Returns call summaries including each call's ID, direction, participants, and status.
The description explains the capability, when to use it, and what to expect.
Inputs78/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
agent_id
Filter to calls for a specific agent
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
number_id
Filter to calls for a specific phone number
Clear enough to supply this argument.
limit
Max results to return
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
offset
Number of results to skip (for pagination)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
status
Filter by status: ringing, in-progress, completed, failed, busy, no-answer
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
direction
Filter by direction: 'inbound' or 'outbound'
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description84/100
Get details and transcript for a specific call, identified by its call ID. Pass wait=true to block until an in-progress call finishes before returning.
Describe the returned information so the agent knows whether it will answer the request.
Inputs75/100
Explain the meaning of this value, not just its name.
call_id
The call ID
Explain the meaning of this value, not just its name.
wait
When true, long-polls until the call completes before returning. Useful for checking back on a call you initiated earlier.
Clear enough to supply this argument.
timeout
Max seconds to wait when wait=true. Defaults to 120.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description78/100
Initiate an outbound, webhook-driven phone call where your backend handles the conversation logic.
The agent must have a phone number attached and a webhook configured. Every call automatically opens with an automated-assistant disclosure (added server-side and not removable).
Describe the returned information so the agent knows whether it will answer the request.
Inputs60/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
agent_id
The agent ID (the agent must have a phone number attached)
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
to_number
Recipient phone number in E.164 format (e.g. +14155551234)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
initial_greeting
What the agent says when the call connects
Explain what happens when this optional value is omitted.
from_number_id
Specific phone number ID to call from (if agent has multiple numbers)
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
voice
Voice ID override for this call
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "make_call",
"title": "Make Call",
"description": "Initiate an outbound, webhook-driven phone call where your backend handles the conversation logic.\n\nThe agent must have a phone number attached and a webhook configured. Every call automatically opens with an automated-assistant disclosure (added server-side and not removable).",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"agent_id",
"to_number"
],
"properties": {
"voice": {
"type": "string",
"description": "Voice ID override for this call"
},
"agent_id": {
"type": "string",
"description": "The agent ID (the agent must have a phone number attached)"
},
"to_number": {
"type": "string",
"description": "Recipient phone number in E.164 format (e.g. +14155551234)"
},
"from_number_id": {
"type": "string",
"description": "Specific phone number ID to call from (if agent has multiple numbers)"
},
"initial_greeting": {
"type": "string",
"description": "What the agent says when the call connects"
}
}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Place a phone call where the AI has an autonomous conversation about a given topic — scheduling, surveys, follow-ups, etc. No webhook setup needed.
The agent must have a phone number attached.
Every call automatically opens with an automated-assistant disclosure (added server-side; cannot be disabled via topic or initial_greeting).
By default this blocks until the call finishes and returns the full transcript. Set wait=false for fire-and-forget.
Describe the returned information so the agent knows whether it will answer the request.
Inputs84/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
agent_id
The agent ID (must have a phone number attached)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
to_number
Recipient phone number in E.164 format (e.g. +14155551234)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
topic
The conversation goal for the assistant to pursue. Embedded as the call objective within locked instructions that always enforce the automated-assistant disclosure (it can't be overridden). Be specific about what to discuss and any goals.
Clear enough to supply this argument.
initial_greeting
What the AI says when the call connects. If not set, the AI will generate one from the topic.
Clear enough to supply this argument.
wait
When true (default), blocks until the call ends and returns the full transcript.
Clear enough to supply this argument.
max_wait_seconds
Maximum seconds to wait for the call to complete. Defaults to 300 (5 minutes).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
from_number_id
Specific phone number ID to call from (if agent has multiple numbers)
Clear enough to supply this argument.
voice
Voice ID override for this call
Explain the meaning of this value, not just its name.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "make_conversation_call",
"title": "Make AI Conversation Call",
"description": "Place a phone call where the AI has an autonomous conversation about a given topic — scheduling, surveys, follow-ups, etc. No webhook setup needed.\n\nThe agent must have a phone number attached.\nEvery call automatically opens with an automated-assistant disclosure (added server-side; cannot be disabled via topic or initial_greeting).\nBy default this blocks until the call finishes and returns the full transcript. Set wait=false for fire-and-forget.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"agent_id",
"to_number",
"topic"
],
"properties": {
"wait": {
"type": "boolean",
"default": true,
"description": "When true (default), blocks until the call ends and returns the full transcript."
},
"topic": {
"type": "string",
"description": "The conversation goal for the assistant to pursue. Embedded as the call objective within locked instructions that always enforce the automated-assistant disclosure (it can't be overridden). Be specific about what to discuss and any goals."
},
"voice": {
"type": "string",
"description": "Voice ID override for this call"
},
"agent_id": {
"type": "string",
"description": "The agent ID (must have a phone number attached)"
},
"to_number": {
"type": "string",
"description": "Recipient phone number in E.164 format (e.g. +14155551234)"
},
"from_number_id": {
"type": "string",
"description": "Specific phone number ID to call from (if agent has multiple numbers)"
},
"initial_greeting": {
"type": "string",
"description": "What the AI says when the call connects. If not set, the AI will generate one from the topic."
},
"max_wait_seconds": {
"type": "number",
"default": 300,
"maximum": 600,
"minimum": 10,
"description": "Maximum seconds to wait for the call to complete. Defaults to 300 (5 minutes)."
}
}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description82/100
List all agents with their phone numbers and voice configuration. An agent is required before you can make calls — it owns phone numbers and handles voice/SMS.
Describe the returned information so the agent knows whether it will answer the request.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
limit
Max results to return
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description84/100
Create a new agent. An agent owns phone numbers and handles calls/SMS.
A newly created agent has no phone number until one is attached.
Set voice_mode to 'hosted' with a system_prompt for autonomous AI voice calls, or 'webhook' (default) to forward call transcripts to your webhook URL.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Explain the meaning of this value, not just its name.
name
Name for the agent (e.g. 'Customer Support', 'Sales Bot')
Clear enough to supply this argument.
description
Description of what this agent does
Explain the meaning of this value, not just its name.
voice_mode
'webhook' (default) forwards transcripts to your webhook. 'hosted' uses built-in AI with system_prompt.
Clear enough to supply this argument.
system_prompt
Required when voice_mode is 'hosted'. The AI's personality and instructions for voice calls.
Clear enough to supply this argument.
begin_message
What the AI says when a call connects. Only used in 'hosted' mode.
Explain what happens when this optional value is omitted.
voice
Voice ID for the agent. Defaults to 'Skylar - Friendly Guide'.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
model_tier
Model quality/speed tier for hosted-mode agents. 'turbo' = fastest/cheapest, 'balanced' (default) = general use, 'max' = highest quality.
Clear enough to supply this argument.
transfer_number
Phone number to transfer calls to (E.164 format). Enables call transfer during conversations.
Clear enough to supply this argument.
voicemail_message
Voicemail greeting text. When set, unanswered calls hear this message and can leave a voicemail.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description84/100
Update an agent's configuration — name, description, voice settings, instructions, greeting, call transfer, or voicemail. Only provided fields are updated.
Switching voice_mode to 'hosted' requires a system_prompt.
The description explains the capability, when to use it, and what to expect.
Inputs88/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
agent_id
The agent ID to update
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
name
New name for the agent
Clear enough to supply this argument.
description
New description
Explain the meaning of this value, not just its name.
voice_mode
'webhook' forwards transcripts to your webhook. 'hosted' uses built-in AI with system_prompt.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
system_prompt
The AI's personality and instructions. Required when voice_mode is 'hosted'.
Clear enough to supply this argument.
begin_message
What the AI says when a call connects (hosted mode only).
Clear enough to supply this argument.
voice
Voice ID for the agent.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
model_tier
Model quality/speed tier for hosted-mode agents. 'turbo' = fastest/cheapest, 'balanced' = general use, 'max' = highest quality.
Clear enough to supply this argument.
transfer_number
Phone number to transfer calls to (E.164 format), or empty string to remove.
Clear enough to supply this argument.
voicemail_message
Voicemail greeting text, or empty string to disable voicemail.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "attach_number",
"title": "Attach Number to Agent",
"description": "Attach a phone number to an agent so the agent handles calls/SMS on that number. Takes an agent ID and a phone number ID.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"agent_id",
"number_id"
],
"properties": {
"agent_id": {
"type": "string",
"description": "The agent ID"
},
"number_id": {
"type": "string",
"description": "The phone number ID to attach"
}
}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "detach_number",
"title": "Detach Number from Agent",
"description": "Detach a phone number from an agent. The number is kept in your account but becomes unassigned.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"agent_id",
"number_id"
],
"properties": {
"agent_id": {
"type": "string",
"description": "The agent ID that currently owns the number"
},
"number_id": {
"type": "string",
"description": "The phone number ID to detach"
}
}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description92/100
List SMS conversations. Optionally filter by agent_id to see conversations for a specific agent.
Each conversation is a thread between your number and an external contact, with its ID, participant, message count, and last-message preview.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
agent_id
Filter to conversations for a specific agent
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
limit
Max results to return
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_conversations",
"title": "List Conversations",
"description": "List SMS conversations. Optionally filter by agent_id to see conversations for a specific agent.\n\nEach conversation is a thread between your number and an external contact, with its ID, participant, message count, and last-message preview.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Max results to return"
},
"offset": {
"type": "number",
"default": 0,
"minimum": 0,
"description": "Number of results to skip (for pagination)"
},
"agent_id": {
"type": "string",
"description": "Filter to conversations for a specific agent"
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description79/100
Create, update, or delete a saved contact. Set `action` to choose the operation.
- create: requires phone_number and name
- update: requires contact_id; only the fields you pass are changed
- delete: requires contact_id (permanent)
contact_id refers to a saved contact.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs83/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
action
The operation to perform
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
contact_id
Contact ID. Required for 'update' and 'delete'.
Clear enough to supply this argument.
phone_number
Phone number in E.164 format (e.g. +14155551234). Required for 'create'.
Clear enough to supply this argument.
name
Contact name. Required for 'create'.
Clear enough to supply this argument.
email
Contact email address
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
notes
Freeform notes about the contact
Explain the meaning of this value, not just its name.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description85/100
Get account usage statistics. By default returns a summary with number usage plus message, call, and webhook volume. Use breakdown='daily' or 'monthly' for time-series data.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
breakdown
'summary' for number usage and totals, 'daily' for per-day breakdown, 'monthly' for per-month breakdown
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
days
Number of days to look back (only used with breakdown='daily')
Clear enough to supply this argument.
months
Number of months to look back (only used with breakdown='monthly')
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Set a webhook URL to receive inbound messages and call events.
Pass agent_id to set a webhook for a specific agent (overrides project default). Omit agent_id to set the project-level webhook for all agents.
The webhook secret is returned — use it to verify signatures.
The description explains the capability, when to use it, and what to expect.
Inputs81/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
url
The publicly accessible webhook URL (must be HTTPS in production)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
agent_id
Agent ID to set webhook for that agent only. Omit for project-level.
Clear enough to supply this argument.
context_limit
Number of recent messages to include as conversation context (0-50)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
timeout
Webhook response timeout in seconds
Explain what happens when this optional value is omitted.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "set_webhook",
"title": "Set Webhook",
"description": "Set a webhook URL to receive inbound messages and call events.\n\nPass agent_id to set a webhook for a specific agent (overrides project default). Omit agent_id to set the project-level webhook for all agents.\nThe webhook secret is returned — use it to verify signatures.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "The publicly accessible webhook URL (must be HTTPS in production)"
},
"timeout": {
"type": "number",
"description": "Webhook response timeout in seconds"
},
"agent_id": {
"type": "string",
"description": "Agent ID to set webhook for that agent only. Omit for project-level."
},
"context_limit": {
"type": "number",
"maximum": 50,
"minimum": 0,
"description": "Number of recent messages to include as conversation context (0-50)"
}
}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Send a test event to verify a webhook is working. Returns the HTTP status code and response time.
Pass agent_id to test that agent's webhook. Omit to test the project-level webhook.
The description explains the capability, when to use it, and what to expect.
Inputs89/100
Input documentation gives an agent enough context to populate the arguments.
agent_id
Agent ID to test that agent's webhook. Omit for project-level.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "test_webhook",
"title": "Test Webhook",
"description": "Send a test event to verify a webhook is working. Returns the HTTP status code and response time.\n\nPass agent_id to test that agent's webhook. Omit to test the project-level webhook.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"agent_id": {
"type": "string",
"description": "Agent ID to test that agent's webhook. Omit for project-level."
}
}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
View recent webhook delivery history. Shows which events were delivered, HTTP status codes, and timing.
Pass agent_id to see deliveries for that agent's webhook. Omit for project-level.
The description explains the capability, when to use it, and what to expect.
Inputs83/100
Explain what happens when this optional value is omitted.
agent_id
Agent ID to see deliveries for that agent's webhook. Omit for project-level.
Clear enough to supply this argument.
limit
Max results to return
Explain what happens when this optional value is omitted.
hours
Only show deliveries from the last N hours
Explain what happens when this optional value is omitted.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_webhook_deliveries",
"title": "List Webhook Deliveries",
"description": "View recent webhook delivery history. Shows which events were delivered, HTTP status codes, and timing.\n\nPass agent_id to see deliveries for that agent's webhook. Omit for project-level.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"hours": {
"type": "number",
"minimum": 1,
"description": "Only show deliveries from the last N hours"
},
"limit": {
"type": "number",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Max results to return"
},
"agent_id": {
"type": "string",
"description": "Agent ID to see deliveries for that agent's webhook. Omit for project-level."
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
Loading score analytics…
Put your MCP to the test
A few tasks worth trying with this server, chosen from its reviewed tools. These have not been run.
mcp.agentphone.ai setup, tools, quality score, publishing readiness, and alternatives.
How do I add mcp.agentphone.ai to Claude, ChatGPT, or Cursor?
Add mcp.agentphone.ai to Claude, ChatGPT, or Cursor by connecting its remote MCP URL in each client's MCP settings. In Claude, add a custom connector. In ChatGPT, add an MCP app. In Cursor, add an MCP server under Settings. The MCP URL is https://mcp.agentphone.ai/mcp.
Is mcp.agentphone.ai MCP ready for ChatGPT and Claude?
As of October 14, 2026, mcp.agentphone.ai scores 100/100 on Manufact's MCP publishing checklist. The scan meets ChatGPT publishing checks and meets Claude publishing checks. Passing these checks does not guarantee marketplace approval.
How clear is mcp.agentphone.ai's MCP tool documentation?
As of October 14, 2026, mcp.agentphone.ai scores 79/100 in Manufact's review of tool titles, descriptions, input and output schemas, and behavior annotations. The review covers 28 of 28 discovered tools. The quality score measures documentation clarity; runtime behavior and marketplace readiness require separate checks.
What are the best alternatives to mcp.agentphone.ai?
As of October 14, 2026, alternatives to mcp.agentphone.ai in communication on the Manufact MCP catalog include mcp.openmail.sh, Granola, Simply.com public, Wispr Flow, and Resend.
How can mcp.agentphone.ai improve its MCP documentation?
make_call is the lowest-scoring reviewed tool at 70/100. No output schema is declared. Add one for structured results so clients can interpret returned fields. Open its review for feedback and a copyable fix prompt, then rerun the documentation review after updating your tool metadata.
Not your MCP?
Review any public or OAuth MCP server for protocol compatibility, tool documentation, and ChatGPT and Claude publishing readiness. No account required.