SendMyCall public data
Virtual phone number coverage, monthly prices, calling and forwarding rates, help articles.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"public": {
"url": "https://sendmycall.com/api/mcp"
}
}
}Remote endpoints
https://sendmycall.com/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢list_countries(number_type)
List the countries where SendMyCall has virtual phone numbers, with their number types (local, national, mobile, toll-free...), the number of areas, the lowest monthly price in US cents and whether new numbers can be bought now. Optionally only countries with a given number type.
Input Schema
{
"type": "object",
"properties": {
"number_type": {
"type": "string",
"enum": [
"local",
"national",
"mobile",
"toll_free",
"shared_cost",
"global"
],
"description": "Kind of number: local, national, mobile, toll_free, shared_cost or global."
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"countries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "ISO 3166-1 alpha-2."
},
"name": {
"type": "string"
},
"calling_code": {
"type": "string",
"description": "Country calling code without +."
},
"number_types": {
"type": "array",
"items": {
"type": "string",
"enum": [
"local",
"national",
"mobile",
"toll_free",
"shared_cost",
"global"
],
"description": "Kind of number: local, national, mobile, toll_free, shared_cost or global."
}
},
"area_count": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Areas in the snapshot (of number_type when filtered). Not a stock count."
},
"monthly_price_from_cents": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
],
"description": "Lowest monthly price in US cents, tax included; null when no price is published."
},
"currency": {
"type": "string",
"const": "USD"
},
"offered": {
"description": "Whether new numbers in this country can be bought now; null when that could not be checked.",
"type": [
"boolean",
"null"
]
},
"page_urls": {
"type": "object",
"properties": {
"virtual_number": {
"anyOf": [
{
"type": "string",
"description": "Absolute URL on https://sendmycall.com."
},
{
"type": "null"
}
]
},
"toll_free": {
"anyOf": [
{
"type": "string",
"description": "Absolute URL on https://sendmycall.com."
},
{
"type": "null"
}
]
}
},
"required": [
"virtual_number",
"toll_free"
],
"additionalProperties": false
},
"order_url": {
"type": "string",
"description": "The number picker for this country, where the user chooses and buys a number."
}
},
"required": [
"code",
"name",
"calling_code",
"number_types",
"area_count",
"monthly_price_from_cents",
"currency",
"offered",
"page_urls",
"order_url"
],
"additionalProperties": false
}
},
"count": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"data_as_of": {
"type": "string"
}
},
"required": [
"countries",
"count",
"data_as_of"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢search_areas(country, query, number_type, limit, offset)
Search the number areas (cities, regions, national, mobile and toll-free ranges) by country, number type and text (a city, region or dialling prefix such as London or 4420). Returns each area's id, prefix, monthly price and whether it had numbers at the last snapshot. Use get_area_pricing with an id for the full details.
Input Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166-1 alpha-2 country code, e.g. GB or US."
},
"query": {
"description": "Text in the area's name, city or region, or a dialling prefix.",
"type": "string",
"maxLength": 80
},
"number_type": {
"type": "string",
"enum": [
"local",
"national",
"mobile",
"toll_free",
"shared_cost",
"global"
],
"description": "Kind of number: local, national, mobile, toll_free, shared_cost or global."
},
"limit": {
"description": "Areas to return, 1 to 50; default 20.",
"type": "integer",
"minimum": 1,
"maximum": 50
},
"offset": {
"description": "Areas to skip, for the next page; default 0.",
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"areas": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Public area id, for get_area_pricing."
},
"country": {
"type": "string"
},
"name": {
"type": "string"
},
"city": {
"type": [
"string",
"null"
]
},
"region": {
"type": [
"string",
"null"
]
},
"prefix": {
"type": "string",
"description": "Dialling prefix after the country code."
},
"type": {
"type": "string",
"enum": [
"local",
"national",
"mobile",
"toll_free",
"shared_cost",
"global"
],
"description": "Kind of number: local, national, mobile, toll_free, shared_cost or global."
},
"monthly_price_cents": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
],
"description": "Monthly price in US cents, tax included; null when not published (unknown, not free)."
},
"available_at_snapshot": {
"type": "boolean"
},
"page_url": {
"type": "string",
"description": "Absolute URL on https://sendmycall.com."
}
},
"required": [
"id",
"country",
"name",
"city",
"region",
"prefix",
"type",
"monthly_price_cents",
"available_at_snapshot",
"page_url"
],
"additionalProperties": false
}
},
"total": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"has_more": {
"type": "boolean"
},
"data_as_of": {
"type": "string"
}
},
"required": [
"areas",
"total",
"offset",
"has_more",
"data_as_of"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_area_pricing(area_id)
Get one number area by its id (from search_areas): monthly price and setup price in US cents, toll-free per-minute prices, the features of its numbers (voice, SMS, fax), the documents the holder must provide, the billing terms and the link where the user can buy a number.
Input Schema
{
"type": "object",
"properties": {
"area_id": {
"type": "string",
"minLength": 6,
"maxLength": 220,
"description": "Public area id from search_areas, e.g. gb-vn-london_44-20."
}
},
"required": [
"area_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"area": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"country": {
"type": "string"
},
"name": {
"type": "string"
},
"city": {
"type": [
"string",
"null"
]
},
"region": {
"type": [
"string",
"null"
]
},
"prefix": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"local",
"national",
"mobile",
"toll_free",
"shared_cost",
"global"
],
"description": "Kind of number: local, national, mobile, toll_free, shared_cost or global."
},
"features": {
"type": "array",
"items": {
"type": "string",
"enum": [
"voice_in",
"voice_out",
"sms_in",
"sms_out",
"fax_t38"
]
}
},
"monthly_price_cents": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"setup_price_cents": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"currency": {
"type": "string",
"const": "USD"
},
"tax_included": {
"type": "boolean",
"const": true
},
"toll_free_incoming_per_minute": {
"anyOf": [
{
"type": "object",
"properties": {
"all": {
"type": [
"string",
"null"
]
},
"fixed": {
"type": [
"string",
"null"
]
},
"mobile": {
"type": [
"string",
"null"
]
}
},
"required": [
"all",
"fixed",
"mobile"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Toll-free numbers only: per-minute price of incoming calls in US dollars (decimal strings)."
},
"availability": {
"type": "object",
"properties": {
"available_at_snapshot": {
"type": "boolean"
},
"observed_at": {
"type": "string"
},
"stock_count": {
"type": "null"
},
"country_offered": {
"type": [
"boolean",
"null"
]
}
},
"required": [
"available_at_snapshot",
"observed_at",
"stock_count",
"country_offered"
],
"additionalProperties": false
},
"registration": {
"anyOf": [
{
"type": "object",
"properties": {
"documents_required": {
"type": "boolean"
},
"holder": {
"type": "string",
"enum": [
"personal",
"business",
"any"
]
},
"address_required_in": {
"anyOf": [
{
"type": "string",
"enum": [
"world_wide",
"country",
"area",
"city"
]
},
{
"type": "null"
}
]
},
"identity_documents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"address_documents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"service_description_required": {
"type": "boolean"
},
"summary": {
"type": "string"
}
},
"required": [
"documents_required",
"holder",
"address_required_in",
"identity_documents",
"address_documents",
"service_description_required",
"summary"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "What the holder must provide before the number is activated; null when the snapshot does not say."
},
"page_url": {
"type": "string",
"description": "Absolute URL on https://sendmycall.com."
},
"order_url": {
"type": "string",
"description": "Absolute URL on https://sendmycall.com."
}
},
"required": [
"id",
"country",
"name",
"city",
"region",
"prefix",
"type",
"features",
"monthly_price_cents",
"setup_price_cents",
"currency",
"tax_included",
"toll_free_incoming_per_minute",
"availability",
"registration",
"page_url",
"order_url"
],
"additionalProperties": false
},
"billing_terms": {
"type": "object",
"properties": {
"currency": {
"type": "string",
"const": "USD"
},
"tax_included": {
"type": "boolean"
},
"setup_price_cents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"prepay_periods_months": {
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"longer_periods_discounted": {
"type": "boolean"
},
"contract": {
"type": "string"
},
"usage_billing": {
"type": "string"
}
},
"required": [
"currency",
"tax_included",
"setup_price_cents",
"prepay_periods_months",
"longer_periods_discounted",
"contract",
"usage_billing"
],
"additionalProperties": false
}
},
"required": [
"area",
"billing_terms"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_calling_rate(phone_number)
Get the per-minute price of an outgoing call, or of a call forwarded, to one phone number, by the longest matching prefix. The same price applies when a call to a SendMyCall number is forwarded to that phone. The number is used for the lookup only: it is not stored or returned.
Input Schema
{
"type": "object",
"properties": {
"phone_number": {
"type": "string",
"pattern": "^\\+?[1-9]\\d{6,14}$",
"description": "Phone number in E.164 format: + then country code and number, 7 to 15 digits, e.g. +442079460000."
}
},
"required": [
"phone_number"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"rate": {
"type": "object",
"properties": {
"destination": {
"type": [
"string",
"null"
]
},
"country": {
"type": [
"string",
"null"
]
},
"matched_prefix": {
"description": "The longest prefix that matched, without +; null when none matched or the rule is the whole number.",
"type": [
"string",
"null"
]
},
"offered": {
"type": "boolean"
},
"price_per_minute": {
"description": "US dollars per minute as a decimal string; null when not offered.",
"type": [
"string",
"null"
]
},
"first_interval_price": {
"type": [
"string",
"null"
]
},
"first_interval_seconds": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"currency": {
"type": "string",
"const": "USD"
},
"tax_included": {
"type": "boolean",
"const": true
},
"rates_url": {
"type": "string",
"description": "Absolute URL on https://sendmycall.com."
}
},
"required": [
"destination",
"country",
"matched_prefix",
"offered",
"price_per_minute",
"first_interval_price",
"first_interval_seconds",
"currency",
"tax_included",
"rates_url"
],
"additionalProperties": false
},
"data_as_of": {
"type": "string"
}
},
"required": [
"rate",
"data_as_of"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_forwarding_rate(country)
Get what forwarding calls to a country costs: free to SIP, VoIP and the SendMyCall app; the per-minute price range to the country's phone numbers (use get_calling_rate for one exact number).
Input Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166-1 alpha-2 code of the country calls are forwarded to, e.g. GB."
}
},
"required": [
"country"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"rate": {
"type": "object",
"properties": {
"country": {
"type": "string"
},
"destination": {
"type": "string"
},
"to_sip_voip_app": {
"type": "object",
"properties": {
"price_per_minute": {
"type": "string",
"const": "0"
}
},
"required": [
"price_per_minute"
],
"additionalProperties": false
},
"to_phone": {
"type": "object",
"properties": {
"price_per_minute_min": {
"type": [
"string",
"null"
]
},
"price_per_minute_max": {
"type": [
"string",
"null"
]
},
"offered": {
"type": "boolean"
},
"currency": {
"type": "string",
"const": "USD"
},
"tax_included": {
"type": "boolean",
"const": true
}
},
"required": [
"price_per_minute_min",
"price_per_minute_max",
"offered",
"currency",
"tax_included"
],
"additionalProperties": false
},
"exact_rate": {
"type": "object",
"properties": {
"endpoint": {
"type": "string"
},
"description": {
"type": "string"
}
},
"required": [
"endpoint",
"description"
],
"additionalProperties": false
},
"rates_url": {
"type": "string",
"description": "Absolute URL on https://sendmycall.com."
}
},
"required": [
"country",
"destination",
"to_sip_voip_app",
"to_phone",
"exact_rate",
"rates_url"
],
"additionalProperties": false
},
"data_as_of": {
"type": "string"
}
},
"required": [
"rate",
"data_as_of"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_support_article(slug)
Get one SendMyCall help article as Markdown: billing and renewals, how calls are billed, the cloud phone system (IVR, queues, voicemail, call recording), audio files, SIP and softphones, number porting, legal requirements and restrictions. Pick the slug from the list.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"enum": [
"support",
"step-by-step-guides",
"virtual-pbx-user-guide",
"call-flow-examples",
"billing-and-prices",
"how-are-calls-billed",
"new-subscriptions-and-renewals",
"paypal-payments",
"money-back-policy",
"free-virtual-pbx",
"call-forwarding",
"voice-menu-ivr",
"queue",
"time-routing",
"time-schedule",
"voicemail",
"call-recording",
"call-blocking",
"text-to-speech",
"real-time-notification",
"audio-files",
"uploading-files",
"recording-messages",
"creating-playlists",
"audio-file-actions",
"third-party-softphone-configuration",
"general-sip-information",
"voip-knowledgebase",
"asteriskconfig",
"received-calls-troubleshooting",
"number-porting",
"legal-requirements",
"virtual-number-restrictions"
],
"description": "The article's slug."
}
},
"required": [
"slug"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string",
"description": "Absolute URL on https://sendmycall.com."
},
"markdown": {
"type": "string"
},
"truncated": {
"type": "boolean"
}
},
"required": [
"slug",
"title",
"url",
"markdown",
"truncated"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Community
Evidence