Deyaho Phone Calls
Server Details
AI places real phone calls (Spain, Mexico) with a voice agent and returns summary and transcript.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Deyaho/deyaho-phone-calls-mcp
- GitHub Stars
- 0
- Server Listing
- Deyaho Phone Calls MCP
TDQS
Scored across 4 tools
Each tool targets a distinct purpose: make_call places a call, get_call retrieves one call's detail, list_calls enumerates recent calls, and get_pricing returns account/pricing info. The singular vs plural distinction (get_call vs list_calls) is explicit in the descriptions, leaving no realistic confusion.
All four names follow a clean verb_noun pattern (get_call, get_pricing, list_calls, make_call) with consistent snake_case and predictable verb choices (get/list/make). No mixed conventions or vague verbs.
Four tools is exactly right for a focused outbound-calling service: create, inspect, enumerate, and check pricing. Nothing is padded or missing a natural sibling.
The create/get/list/pricing lifecycle covers the core calling workflow well. Minor gaps exist for lifecycle management (e.g. cancelling an in-progress call or a delete/prune operation), but calls auto-terminate so agents can work around these.
Available Tools
4 toolsget_callAInspect
Get the status, duration, summary, collected data and transcript of a call placed with make_call.
| Name | Required | Description | Default |
|---|---|---|---|
| call_id | Yes | The call_id returned by make_call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the return payload (status, duration, summary, collected data, transcript), which is important since there is no output schema. But it does not explicitly state that the operation is read-only, nor does it cover permissions, rate limits, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that starts with the verb 'Get' and lists exactly what the tool returns. There is no waste or unnecessary preamble.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter with no output schema, the description adequately explains the data returned and where the call_id comes from. It omits alternative routing (e.g., list_calls) and error handling, but covers the core call contract well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single parameter call_id is documented in the schema as 'The call_id returned by make_call'. The description adds no further parameter detail beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('a call'), and enumerates the exact data returned: status, duration, summary, collected data, and transcript. It also ties the call to make_call, distinguishing it from create operations, but does not explicitly contrast with list_calls for bulk retrieval, so sibling differentiation is only partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'placed with make_call' implies the tool is used after make_call to retrieve details of a specific call. However, there is no explicit when-to-use guidance, no mention of when to prefer list_calls, and no exclusions or prerequisites stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricingAInspect
Free. Show the price per call/minute, limits, allowed countries and calling hours, and your remaining balance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds real value by disclosing the operation is 'Free' (no billing impact) and by enumerating the returned fields, and 'Show' plus 'your remaining balance' implies a read-only, user-scoped operation. It stops short of confirming read-only semantics or whether auth/account context is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the most decision-relevant fact ('Free') front-loaded. The remaining clause is a dense list of returned fields, which is efficient, though not quite maximal polish.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema and no annotations, the description usefully substitutes for the missing output schema by naming exactly what data comes back. Minor residual gap around whether account context/auth is required, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline for 0 params is 4. No misleading parameter claims are made.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Show') plus an enumerated set of resources: price per call/minute, limits, allowed countries, calling hours, and remaining balance. This is unmistakably distinct from the sibling call-handling tools (get_call, list_calls, make_call), so an agent can route correctly without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the leading 'Free' signals it is cheap/safe to call and the balance field implies checking before placing calls, but there is no explicit when-to-use statement, no prerequisites, and no named alternative. Adequate-but-inferred rather than guiding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_callsBInspect
List the most recent calls placed with your key (newest first).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many calls, default 10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden, and it does disclose two traits: results are scoped to 'your key' and ordered newest-first. It omits pagination behavior, the cap on returned items, and whether the operation is purely read-only, so disclosure is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the verb, resource, and scope. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read-only list tool with one well-documented parameter and no output schema, the description covers scope and ordering adequately. The only real gap is absent guidance on choosing this over get_call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'limit' parameter is fully documented in the schema (100% coverage, default 10, max 50), so the schema already carries the semantics. The description adds nothing about the parameter, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('calls') with useful scope detail: 'placed with your key (newest first)'. It contrasts implicitly with the singular get_call and the write-oriented make_call, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance or alternatives are offered. The agent must infer that get_call retrieves one call while list_calls enumerates recent ones; nothing in the text routes between them or states exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_callAInspect
Place a real outbound phone call with an AI voice agent and get a call_id. The agent introduces itself as an AI assistant of the business you name, pursues the goal you describe, collects the requested data and hangs up. Destinations: Spain (+34) and Mexico (+52) only, during local business hours. Calls are short (max 4 minutes). You must confirm the recipient asked for or agreed to be contacted. Poll get_call for the result.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Destination phone number in E.164 format, e.g. +34600111222 or +525512345678 | |
| goal | Yes | What the call must achieve, in plain language | |
| collect | No | Data points to collect, e.g. ['preferred date', 'email'] | |
| language | Yes | Language the agent speaks | |
| business_name | Yes | Name of the business on whose behalf the agent calls | |
| consent_confirmed | Yes | Must be true: the recipient requested or agreed to be contacted | |
| consent_statement | Yes | How and when the recipient requested or agreed to be contacted |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden and does so well: it discloses the real-world side effect (an actual outbound call), the agent's self-identification as AI, the call lifecycle (introduce, pursue goal, collect data, hang up), the 4-minute ceiling, geographic limits, and the consent gate. These are exactly the operational facts an agent needs before triggering a non-reversible external action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and return value, then progressively adds constraints, obligations, and the follow-up step. Every sentence contributes distinct information with no repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully explains that the call yields a call_id and that get_call should be polled, rounding out the workflow. Minor gaps remain around failure modes, cost, and what happens when a call cannot complete, but nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the schema already documents format, enums, and length limits for all 7 parameters. The description adds only light semantic color (the agent introduces itself on behalf of business_name, collects what is in goal/collect, and consent_confirmed is a gate), not syntax or constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Place a real outbound phone call with an AI voice agent') plus the concrete return artifact ('get a call_id'). It is immediately distinguishable from siblings: get_call is the polling tool, list_calls enumerates past calls, and get_pricing is unrelated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives hard preconditions and scope: Spain (+34) and Mexico (+52) only, local business hours, max 4 minutes, and a mandatory consent confirmation. It also routes the agent to the correct follow-up step ('Poll get_call for the result'), leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
get_call - First observed
get_pricing - First observed
list_calls - First observed
make_call
Related MCP Connectors
AI voice agents that make real phone calls: single calls or campaigns, with transcripts and notes.
- DialMCPOAuthcom.dialmcp
Let AI agents place real phone calls from your verified number, with transcripts and recordings.
Real US phone calls for AI agents: navigates phone menus, waits on hold, returns transcripts.
Give AI agents a phone: outbound AI calls that return a summary, transcript, and extracted fields.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to place real phone calls, navigate IVR trees, and retrieve structured answers with transcripts and recordings.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to place real phone calls, engage in spoken conversations across 12 languages, and report the outcomes for tasks like booking appointments, answering questions, negotiating, or confirming orders.MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to make real-world phone calls with AI voice technology and provides tools to track call status, transcripts, and summaries. It supports automated communication with both live numbers and simulated businesses for testing and demonstration purposes.-
- AlicenseBqualityBmaintenanceEnables AI assistants to place and steer real phone calls through ElevenLabs voice agents: draft a briefing with the number, language, goal and permitted facts, rehearse it in text, confirm to dial, then follow progress, answer the agent's questions mid-call, and retrieve the transcript, duration and cost. Includes guardrails such as a fixed AI disclosure line, per-person call and minute limits, number restrictions and retention-based deletion of calls and transcripts.102MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.