SMS-Activate MCP Server
Allows requesting virtual phone numbers and managing SMS activations for Facebook via SMS-Activate.
Allows requesting virtual phone numbers and managing SMS activations for Google via SMS-Activate.
Allows requesting virtual phone numbers and managing SMS activations for Instagram via SMS-Activate.
Allows requesting virtual phone numbers and managing SMS activations for Telegram via SMS-Activate.
Allows requesting virtual phone numbers and managing SMS activations for Uber via SMS-Activate.
Allows requesting virtual phone numbers and managing SMS activations for Viber via SMS-Activate.
Allows requesting virtual phone numbers and managing SMS activations for WhatsApp via SMS-Activate.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SMS-Activate MCP ServerRequest a virtual number for Telegram"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SMS-Activate MCP Server
English
MCP (Model Context Protocol) server for integrating with SMS-Activate service - a platform for receiving SMS verification codes and temporary email addresses.
Features
📱 Phone Number Operations: Request virtual numbers, check SMS codes, manage activations
📧 Email Activations: Purchase temporary emails, check inbox, manage email sessions
💰 Account Management: Check balance, view activation history
🌍 Service Information: Get available countries, operators, services, and prices
🔄 Real-time Status: Track activation status and retrieve verification codes
Prerequisites
Node.js 18 or higher
npm or yarn
SMS-Activate API key (get it from sms-activate.io)
Installation
1. Clone the repository
git clone https://github.com/momentum100/sms-activate-mcp.git
cd sms-activate-mcp2. Install dependencies
npm install3. Configure environment
Create a .env file in the project root:
SMS_ACTIVATE_API_KEY=your_api_key_here
SMS_ACTIVATE_BASE_URL=https://api.sms-activate.ae4. Build the project
npm run build5. Test the server
npm startConfiguration for Claude Desktop
Add this configuration to your Claude Desktop settings:
Windows
Location: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"sms-activate": {
"command": "node",
"args": ["C:/path/to/sms-activate-mcp/dist/index.js"],
"env": {
"SMS_ACTIVATE_API_KEY": "your_api_key_here"
}
}
}
}macOS
Location: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"sms-activate": {
"command": "node",
"args": ["/Users/username/path/to/sms-activate-mcp/dist/index.js"],
"env": {
"SMS_ACTIVATE_API_KEY": "your_api_key_here"
}
}
}
}Linux
Location: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"sms-activate": {
"command": "node",
"args": ["/home/username/path/to/sms-activate-mcp/dist/index.js"],
"env": {
"SMS_ACTIVATE_API_KEY": "your_api_key_here"
}
}
}
}Available Tools
Phone Number Operations
request_number- Request a virtual phone number for SMS verificationservice(required): Service code or name (e.g., "tg" or "Telegram")country(optional): Country ID (0=Russia, 1=Ukraine, etc.)operator(optional): Mobile operatorforward(optional): Enable forwarding (0 or 1)ref(optional): Referral code
get_status- Check activation status and retrieve SMS codeactivationId(required): The activation ID from request_number
set_status- Change activation statusactivationId(required): The activation IDstatus(required): Status code (1=resend, 3=new code, 6=complete, 8=cancel)
get_active_activations- Get list of all active activationsget_activation_history- View activation history
Email Operations
purchase_email- Purchase a temporary email addresssite(required): Target website (e.g., "telegram.com")mailDomain(required): Email domain (e.g., "gmail.com")
get_email_status- Check email activation status and inboxemailId(required): Email activation ID
cancel_email- Cancel email activationemailId(required): Email activation ID
reorder_email- Reorder the same email activationemailId(required): Email activation ID
get_email_domains- Get available email domains for a websitesite(optional): Target website
Information Tools
get_balance- Check account balanceget_numbers_status- Get available phone numbers countget_countries- Get list of all available countriesget_services- Get list of all available servicesget_operators- Get operators for a specific countryget_prices- Get service pricesget_top_countries- Get top countries for a specific service
Common Service Codes
Code | Service |
| Telegram |
| |
| |
| |
| |
| |
| Viber |
| Uber |
| Any other |
Common Country IDs
ID | Country |
0 | Russia |
1 | Ukraine |
2 | Kazakhstan |
3 | China |
4 | Philippines |
5 | Myanmar |
6 | Indonesia |
10 | Vietnam |
12 | USA (Virtual) |
16 | England |
22 | India |
Development
# Run in development mode
npm run dev
# Build the project
npm run build
# Start the server
npm startTroubleshooting
"SMS_ACTIVATE_API_KEY environment variable is required" - Create
.envfile with your API key"BAD_KEY" or "ERROR_SQL" - Verify API key and account balance
Connection errors - Check internet connection and API availability
Related MCP server: VirtualSMS MCP Server
Русский
MCP (Model Context Protocol) сервер для интеграции с сервисом SMS-Activate - платформой для получения SMS кодов верификации и временных email адресов.
Возможности
📱 Операции с номерами: Запрос виртуальных номеров, проверка SMS кодов, управление активациями
📧 Email активации: Покупка временных email адресов, проверка входящих, управление сессиями
💰 Управление аккаунтом: Проверка баланса, просмотр истории активаций
🌍 Информация о сервисах: Получение доступных стран, операторов, сервисов и цен
🔄 Статус в реальном времени: Отслеживание статуса активации и получение кодов верификации
Требования
Node.js 18 или выше
npm или yarn
API ключ SMS-Activate (получите на sms-activate.io)
Установка
1. Клонирование репозитория
git clone https://github.com/momentum100/sms-activate-mcp.git
cd sms-activate-mcp2. Установка зависимостей
npm install3. Настройка окружения
Создайте файл .env в корне проекта:
SMS_ACTIVATE_API_KEY=ваш_api_ключ
SMS_ACTIVATE_BASE_URL=https://api.sms-activate.ae4. Сборка проекта
npm run build5. Тестирование сервера
npm startКонфигурация для Claude Desktop
Добавьте эту конфигурацию в настройки Claude Desktop:
Windows
Расположение: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"sms-activate": {
"command": "node",
"args": ["C:/путь/к/sms-activate-mcp/dist/index.js"],
"env": {
"SMS_ACTIVATE_API_KEY": "ваш_api_ключ"
}
}
}
}macOS
Расположение: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"sms-activate": {
"command": "node",
"args": ["/Users/username/путь/к/sms-activate-mcp/dist/index.js"],
"env": {
"SMS_ACTIVATE_API_KEY": "ваш_api_ключ"
}
}
}
}Linux
Расположение: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"sms-activate": {
"command": "node",
"args": ["/home/username/путь/к/sms-activate-mcp/dist/index.js"],
"env": {
"SMS_ACTIVATE_API_KEY": "ваш_api_ключ"
}
}
}
}Доступные инструменты
Операции с телефонными номерами
request_number- Запрос виртуального номера телефона для SMS верификацииservice(обязательный): Код или название сервиса (например, "tg" или "Telegram")country(опциональный): ID страны (0=Россия, 1=Украина и т.д.)operator(опциональный): Мобильный операторforward(опциональный): Включить переадресацию (0 или 1)ref(опциональный): Реферальный код
get_status- Проверка статуса активации и получение SMS кодаactivationId(обязательный): ID активации из request_number
set_status- Изменение статуса активацииactivationId(обязательный): ID активацииstatus(обязательный): Код статуса (1=переотправить, 3=новый код, 6=завершить, 8=отменить)
get_active_activations- Получить список всех активных активацийget_activation_history- Просмотр истории активаций
Операции с Email
purchase_email- Покупка временного email адресаsite(обязательный): Целевой сайт (например, "telegram.com")mailDomain(обязательный): Email домен (например, "gmail.com")
get_email_status- Проверка статуса email активации и входящих сообщенийemailId(обязательный): ID email активации
cancel_email- Отмена email активацииemailId(обязательный): ID email активации
reorder_email- Повторный заказ той же email активацииemailId(обязательный): ID email активации
get_email_domains- Получить доступные email домены для сайтаsite(опциональный): Целевой сайт
Информационные инструменты
get_balance- Проверка баланса аккаунтаget_numbers_status- Получить количество доступных номеровget_countries- Получить список всех доступных странget_services- Получить список всех доступных сервисовget_operators- Получить операторов для конкретной страныget_prices- Получить цены на сервисыget_top_countries- Получить топ стран для конкретного сервиса
Основные коды сервисов
Код | Сервис |
| Telegram |
| |
| |
| |
| |
| |
| Viber |
| Uber |
| Любой другой |
Основные ID стран
ID | Страна |
0 | Россия |
1 | Украина |
2 | Казахстан |
3 | Китай |
4 | Филиппины |
5 | Мьянма |
6 | Индонезия |
10 | Вьетнам |
12 | США (Виртуальный) |
16 | Англия |
22 | Индия |
Разработка
# Запуск в режиме разработки
npm run dev
# Сборка проекта
npm run build
# Запуск сервера
npm startРешение проблем
"SMS_ACTIVATE_API_KEY environment variable is required" - Создайте файл
.envс вашим API ключом"BAD_KEY" или "ERROR_SQL" - Проверьте API ключ и баланс аккаунта
Ошибки подключения - Проверьте интернет-соединение и доступность API
Project Structure
sms-activate-mcp/
├── src/
│ ├── index.ts # Main MCP server / Основной MCP сервер
│ └── sms-activate-client.ts # SMS-Activate API client / Клиент API
├── dist/ # Compiled JavaScript / Скомпилированный код
├── docs/ # API documentation / Документация API
│ ├── SMS-ACTIVATE.postman_collection.json
│ ├── api-protocol-for-working-with-sms-activate.json
│ └── services.json
├── package.json
├── tsconfig.json
├── .env.example
└── README.mdSupport / Поддержка
Issues: GitHub Issues
SMS-Activate Support: sms-activate.io/support
API Documentation: sms-activate.io/api2
License
MIT License - see LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Author
Created by momentum100
Acknowledgments
SMS-Activate for providing the SMS verification service
Anthropic for the MCP protocol specification
Available Tools
17 toolscancel_emailC
Cancel email activation
| Name | Required | Description | Default |
|---|---|---|---|
| emailId | Yes | Email activation ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it merely restates the operation. It fails to disclose side effects, reversibility, or state changes beyond the basic 'cancel' action, leaving the agent without critical behavioral context.
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?
The description is extremely brief and free of fluff, making it efficiently front-loaded. However, it is so short that it borders on under-specification rather than deliberate conciseness.
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?
Despite the tool's simplicity, the description is not complete enough. It lacks any context about what an 'email activation' is, when cancellation is relevant, or what the outcome will be. No output schema or annotations exist to compensate, making this description inadequate for reliable tool selection.
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% (emailId with 'Email activation ID'), so the baseline is 3. The description adds no further parameter clarification, but the schema already provides adequate semantics.
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?
The description 'Cancel email activation' clearly states a specific verb+resource combination, distinguishing it from siblings like purchase_email or reorder_email. It leaves no doubt about the tool's primary function.
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 guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, such as the email needing to be in a pending state, or any conditions under which cancellation is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_activation_historyC
Get activation history
| 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 must carry the full burden of behavioral disclosure. It merely restates the tool name and offers no additional context about what 'activation history' includes, how the response is structured, or any other behavioral traits. This is effectively a tautology that provides no behavioral insight.
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?
The description is concise at one sentence, but it is essentially a rephrasing of the tool name and offers no added structure or value. While not wordy, it borders on under-specification rather than effective brevity.
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?
The tool has no output schema and no behavioral details. The description does not clarify what 'activation history' means, what data is returned, or how it differs from get_active_activations. This leaves the tool feeling incomplete for a user needing context.
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 has zero parameters, so the description does not need to explain any. Baseline for 0 params is 4, and the description correctly avoids superfluous parameter details.
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?
The description clearly states the action 'get' and the resource 'activation history', which is specific and unambiguous. However, it does not differentiate from similar sibling tools like get_active_activations, so it lacks explicit sibling differentiation.
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 description provides no guidance on when to use this tool versus alternatives such as get_active_activations or get_status. There is no context about scenarios where this tool is appropriate or preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_activationsB
Get list of active activations
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description adds little beyond the tool name. It does not disclose any behavioral details such as read-only nature, pagination, user scoping, or other operational aspects, leaving the agent to infer from the name alone.
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?
The description is concise, with a single sentence and no wasteful wording. However, it is extremely minimal and omits any additional context, so it does not earn a perfect score for structure.
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 tool, the description adequately states the core function (returning a list of active activations). However, it lacks context about what 'active' means, potential response details, or any operational notes, making it merely adequate rather than complete.
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 has zero parameters, so there are no parameter semantics to explain. The baseline of 4 is appropriate since the description does not neglect any parameter documentation duty.
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?
The description clearly states the tool's action (get) and resource (list of active activations), which is specific and understandable. It does not explicitly differentiate from sibling tools like get_activation_history, but the 'active' qualifier provides some distinction.
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 guidance is given on when to use this tool relative to alternatives. The description only names the action and resource, without context about use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceB
Get account balance
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It does not state whether the operation is read-only, whether authentication is required, or what the response format is. The description is minimal and lacks transparency beyond the bare function.
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?
The description is extremely concise, using only four words. It is front-loaded and has no wasted content. However, it could be slightly more descriptive without losing conciseness, such as adding 'current' or 'available' balance.
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?
Given the simplicity of the tool (no parameters, no output schema), the description is minimally adequate. It tells what the tool does, but it does not mention return values, potential errors, or any related context. For a simple getter, this is acceptable but not comprehensive.
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 has zero parameters, so the schema covers 100% of the parameters trivially. The baseline for zero-parameter tools is 4, and no additional parameter information is needed or provided.
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?
The description clearly states the verb 'Get' and the resource 'account balance'. It is unambiguous and specific enough to understand the tool's purpose, though it does not explicitly distinguish it from siblings beyond the resource name.
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 guidance is provided about when to use this tool versus alternatives. There are no hints about prerequisites, context, or exclusions. The description simply states what it does without any usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_countriesB
Get list of available countries
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only says 'Get list of available countries,' which implies a read operation but does not mention return format, pagination, size limits, or any other behavioral traits.
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?
The description is a concise single sentence that is front-loaded and free of filler. Every word is meaningful for the simple operation it describes.
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?
The tool is simple with no parameters and no output schema, and the description is mostly sufficient to understand its purpose. However, a bit more detail about the response structure or its distinction from 'get_top_countries' would improve completeness. For this low complexity, the description is largely complete.
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 has zero parameters, so the schema fully covers parameter semantics, and the description does not need to elaborate. The phrase 'available countries' adds a slight contextual nuance, but the baseline of 4 for parameterless tools is 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?
The description uses a specific verb 'Get' and resource 'list of available countries', clearly identifying this as a read operation returning country data. It is not tautological, but it does not explicitly distinguish itself from the sibling tool 'get_top_countries'.
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 guidance is provided on when to use this tool versus alternatives like 'get_top_countries' or other list tools. The description only states what the tool does, with no mention of typical use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_email_domainsA
Get available email domains for a site
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Website for which to get email domains (e.g., "telegram.com") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that the tool 'gets' email domains, but does not indicate whether it is read-only, what happens on invalid input, or any other behavioral traits. This is insufficient for a tool with no safety annotations.
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?
The description is a single, front-loaded sentence with no filler or redundant phrasing. Every word contributes to conveying the tool's purpose, making it highly concise and well-structured.
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 tool with one parameter and no output schema, the description is minimal but adequate. However, it does not provide usage context or clarify return behavior, which would be helpful given the absence of annotations and output schema. It meets the minimum viable standard but has clear gaps.
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 input schema already provides a description for the single 'site' parameter with 100% coverage. The tool description adds minimal value beyond the schema, essentially restating the purpose. Baseline is 3 due to high schema coverage, and the description does not introduce any new parameter semantics.
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?
The description uses a specific verb ('Get') and resource ('available email domains') with a scope qualifier ('for a site'). It clearly distinguishes itself from sibling tools by naming a unique resource type, and there is no ambiguity about what operation is performed.
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 explicit guidance is given on when to use this tool versus alternatives. The intended usage is implied by the tool name and description but not stated directly. It does not mention exclusions or alternative tools, which is a notable gap given the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_email_statusC
Get email activation status
| Name | Required | Description | Default |
|---|---|---|---|
| emailId | Yes | Email activation ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It simply states the action without elaborating on return values, possible statuses, side effects, or required conditions. This is a clear gap for a query tool.
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?
Extremely concise with a single sentence using active verb and object. No redundant or vague phrasing.
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?
Given no output schema and broad sibling context, the description under-explains what statuses exist and how this tool fits into the workflow. The relationship to purchase_email/cancel_email is left implicit, making it hard for an agent to choose correctly in complex scenarios.
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 input schema fully documents the single parameter (emailId as 'Email activation ID'), and the description adds no extra semantic detail. Baseline of 3 applies due to high schema coverage.
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?
The description clearly states a specific action (Get) and resource (email activation status), making the primary purpose unambiguous. It implicitly distinguishes from generic get_status by specifying 'email', though it doesn't explicitly contrast with siblings.
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 description provides no guidance on when to use this tool instead of alternatives like get_status or get_activation_history. No prerequisites or positional context are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_numbers_statusC
Get available phone numbers quantity by country and service
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Country ID (e.g., 0 for Russia, 1 for Ukraine) | |
| operator | No | Operator name (e.g., "mts", "beeline") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full responsibility. It only states the basic read operation without disclosing return format, behavior with missing filters, or any constraints like operator name exactness.
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?
The description is a single concise sentence, immediately stating the tool's purpose. No filler or redundant information.
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?
Given no output schema or annotations, the description is too sparse. It does not explain what the response looks like, whether filters are optional or combinable, or any edge cases. A simple getter still requires this context.
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 covers both parameters with descriptions. The description's use of 'service' rather than 'operator' adds minor ambiguity, but the schema descriptions clarify. No additional parameter semantics are provided beyond what the schema already states.
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?
The description clearly states the tool retrieves the quantity of available phone numbers, with optional filters by country and operator (described as 'service'). It distinguishes from sibling tools like get_prices and get_status by focusing on number availability quantity.
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 guidance is provided on when to use this tool versus alternatives. It is not stated whether this tool should be used before requesting a number or how it relates to get_operators or get_services.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_operatorsA
Get available operators for a country
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | Country ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention read-only status, return format, potential errors, or any side effects, leaving the agent to infer the operation from the verb 'Get'.
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?
The description is one concise sentence, front-loading the action and object without any redundant or filler words. It is appropriately sized for the tool's simplicity.
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?
The tool is simple with one parameter and no output schema; the description adequately conveys the purpose and implies the return value (available operators). However, it lacks any detail about what 'available' means or potential error conditions, which is a minor gap given the absence of annotations.
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 input schema already provides a description for the 'country' parameter ('Country ID'), giving 100% coverage. The tool description's phrase 'for a country' aligns with this but adds no additional semantic meaning beyond what the schema documents.
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?
The description clearly identifies the tool's action ('Get'), resource ('available operators'), and scope ('for a country'), which unambiguously distinguishes it from sibling tools like get_countries or get_services.
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 description implies usage when a country is provided and operators are needed, but it does not explicitly state when to use this tool versus alternatives or mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricesA
Get prices for services by country
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Country ID | |
| service | No | Service code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. The verb 'Get' clearly signals a read-only operation, which is a meaningful behavioral trait. However, it does not disclose other useful details such as response format, whether results are paginated, or any requirements. For a simple getter, this baseline is acceptable but not rich.
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?
The description is a single, clear sentence with no superfluous words. It is front-loaded with the action and resource, making it immediately understandable. There is no waste, so it earns a top score.
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?
Given no output schema and no annotations, the description is under-specified. It doesn't explain what the returned prices look like, whether the parameters are optional (schema shows none required), or how results are structured. This is a notable gap for a tool with two filter parameters, making it incomplete for an agent to fully anticipate behavior.
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 coverage is 100%: both parameters (country ID and service code) have descriptions in the schema. The description's 'by country' adds marginal context that aligns with the country parameter but does not provide any new meaning beyond the schema. Baseline 3 is 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?
The description 'Get prices for services by country' uses a specific verb ('Get') and clearly identifies the resource ('prices') with qualifiers ('services by country'). This distinguishes it from sibling tools like get_balance or get_status, which address different data. The purpose is unambiguous.
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 description implies usage: call when you need prices for services filtered by country. However, it provides no explicit guidance on when not to use it or how it compares to alternative tools (e.g., get_services or get_countries). The implied context is enough for a basic rating, but lacks explicit exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_servicesB
Get list of available services
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description alone must convey behavioral traits. It only says 'Get list' without explaining response format, authentication needs, rate limits, or any side effects. For a read-only tool, this is minimal but not entirely misleading.
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?
The description is a single, concise sentence with no redundant words. It is appropriately sized for a zero-parameter tool.
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 parameters and no output schema, the description is minimally viable. However, it fails to define the domain meaning of 'services' or how this list relates to the sibling tools, leaving room for ambiguity.
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 input schema has zero parameters, so the baseline is 4. The description adds value by specifying the output is a list of services, though it does not elaborate on what constitutes a 'service' in this domain.
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?
The description 'Get list of available services' clearly states the verb and resource. It is more specific than a tautology but lacks explicit differentiation from siblings like get_countries or get_operators, though 'services' likely has a distinct domain meaning.
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 guidance is provided on when to use this tool versus siblings or on prerequisites. The description simply states the action without any contextual pointers or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusC
Get activation status and SMS code
| Name | Required | Description | Default |
|---|---|---|---|
| activationId | Yes | Activation ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the purpose and does not explain return format, error behavior, permissions, or side effects. The word 'Get' implies read-only, but no explicit safety or response details are given.
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?
The description is a single, well-structured sentence that immediately conveys the tool's purpose. Every word is meaningful, with no redundancy or filler, making it highly efficient.
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?
Given the lack of output schema and annotations, the description should provide more detail about return values and usage context. It fails to mention when to preference this over similar siblings (e.g., get_active_activations) and does not clarify what 'status' entails, leaving the agent with incomplete information for reliable invocation.
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 input schema has 100% coverage for the single parameter, with description 'Activation ID' that minimally defines the parameter. The tool description adds no additional semantics beyond the schema, so the baseline of 3 applies. The parameter description is terse but present.
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?
The description 'Get activation status and SMS code' clearly identifies the action (get) and the resource (activation status and SMS code). It distinguishes from siblings like get_balance or get_operators, though it does not explicitly mention it operates on a single activationId, leaving some ambiguity with get_active_activations or get_activation_history.
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 guidance is provided on when to use this tool versus alternatives such as get_active_activations or get_activation_history. The description simply states what it does without any context or exclusions, leaving the agent to infer usage from the tool name and parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_countriesB
Get top countries for a specific service
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | Service code (e.g., "tg" for Telegram, "wa" for WhatsApp) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only says 'Get top countries' without explaining what 'top' means (e.g., by volume), what the return format is, or any ordering/limitations. This is insufficient for the agent to predict the tool's 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?
The description is a single, efficient sentence that directly states the tool's purpose without any filler. Every word earns its place, making it highly concise and well-structured.
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?
Given the tool has no output schema and no annotations, the description should compensate by explaining what the response contains or how results are ordered. It does not, leaving the agent uncertain about the output's nature and the meaning of 'top'. This is a clear completeness gap.
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 schema description covers 100% of the parameter 'service' with examples. The description adds the phrase 'specific service' which aligns with the schema but does not add new semantic meaning beyond what the schema already provides. Baseline 3 is 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?
The description uses a specific verb 'Get' with a clear resource 'top countries' and scope 'for a specific service'. This distinguishes it from siblings like get_countries (which likely returns all countries) by adding the 'top' qualifier and service parameter.
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 description implies usage when you need top countries for a specific service, but it provides no explicit when-to-use or exclusion criteria. It does not reference alternatives like get_countries, so it lacks explicit guidance beyond the implied context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
purchase_emailC
Purchase an email activation
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | Website for activation (e.g., "telegram.com") | |
| mailDomain | Yes | Email domain (e.g., "gmail.com") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'purchase' implies a paid action, it does not explain prerequisites, reversibility, cost implications, or what happens after the activation is purchased.
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?
The description is very brief and front-loaded, consisting of a single sentence. It is not verbose, but it lacks sufficient content to be fully informative. Still, it earns a moderate score for being appropriately sized.
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?
The tool is simple with two parameters and no output schema, but the description does not clarify the expected result or side effects of the purchase. For a mutation tool, this is a significant gap; the agent is left guessing what the response contains or what state changes occur.
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 input schema already provides descriptions for both parameters (site and mailDomain), giving 100% schema coverage. The description adds no extra meaning about the parameters, so the baseline score of 3 is 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?
The description uses a specific verb ('purchase') and identifies the resource ('email activation'). It is clear enough to differentiate from read tools like get_email_status, but does not explicitly distinguish from related email tools like reorder_email or cancel_email.
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 description provides no guidance on when to use this tool versus alternatives. It does not mention relationships to sibling tools such as get_email_domains or request_number, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reorder_emailC
Reorder email activation
| Name | Required | Description | Default |
|---|---|---|---|
| emailId | Yes | Email activation ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It fails to state whether the action is destructive, incurs costs, requires prior steps, or what happens on execution. 'Reorder' implies a mutating operation, but no effects or side effects are disclosed.
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?
The description is very concise (four words), but it is under-specified rather than appropriately concise. It provides no more information than the tool name, so the brevity does not add value.
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?
The tool is simple with one fully documented parameter, but the description still leaves the core behavior unexplained. Without output schema or annotations, the agent needs at least a clear statement of what 'reorder' does and what the result is. The description is not sufficient for correct invocation.
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 schema already documents emailId as 'Email activation ID' with 100% coverage. The description adds no extra parameter meaning, but since schema coverage is high, the baseline of 3 applies. The description does not conflict with the schema but also does not enrich it.
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?
The description 'Reorder email activation' essentially restates the tool name 'reorder_email' with slightly more wording. It does not specify what 'reorder' means in this domain (e.g., re-purchase, re-activate, or reorder a list), making the purpose vague and indistinguishable from siblings like purchase_email or get_email_status.
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 guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, expected usage scenarios, or exclusions. Given the vague action, the agent has no information to decide when to invoke reorder_email over other email-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_numberC
Request a phone number for SMS verification
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Referral code | |
| country | No | Country ID (e.g., 0 for Russia) | |
| forward | No | Forward option (0 or 1) | |
| service | Yes | Service code or name (e.g., "tg", "Telegram", "wa", "WhatsApp") | |
| operator | No | Operator name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It merely restates the tool's name and adds the purpose 'SMS verification', but does not disclose side effects (e.g., reserving a number, deducting balance), required permissions, or the state change involved. The description provides no behavioral transparency beyond what the tool's name already implies.
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?
The description is a single, front-loaded sentence: 'Request a phone number for SMS verification.' Every word is necessary and there is no fluff. It is appropriately paced for a tool with a fully documented schema. This is a model of conciseness.
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?
Despite having a complete schema, the description lacks essential context for a request tool: it does not explain what the tool returns (e.g., a phone number and activation ID), what happens on success or failure, or any process steps (e.g., selecting a service first). With no annotations or output schema, the description is insufficient to understand the tool's full behavior.
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 schema description coverage is 100% (all 5 parameters have descriptions), so the baseline is 3. The tool description does not mention any parameters or add semantics beyond what the schema already provides. It neither compensates nor detracts from the schema, hence a baseline score.
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?
The description clearly states the verb and resource: 'Request a phone number for SMS verification'. It distinguishes itself from sibling tools like get_balance and set_status by specifying the action of requesting a number for SMS verification. However, it does not explicitly name alternatives or contrast with other request-type tools, so it's slightly below a perfect score.
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 description offers no guidance on when to use this tool versus alternatives. It does not mention typical scenarios, prerequisites, or exclude other tools. There is no explicit 'when to use' or 'use this instead of' information, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_statusC
Change activation status
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | Status code: 1=report SMS sent, 3=request another code, 6=complete activation, 8=cancel activation | |
| activationId | Yes | Activation ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a write operation but does not disclose side effects, required state, 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?
The description is a single short sentence, which is concise but lacks substance. It's not wordy, but it also doesn't earn its place with added value.
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?
The tool is part of a larger SMS activation flow (with siblings like request_number, get_status, etc.), but the description doesn't place it in that context. No output schema exists, so the description should explain behaviors or outcomes, but it doesn't.
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 input schema already fully describes both parameters (status codes and activationId). The description adds no additional parameter information, so the schema carries the full weight.
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?
The description uses the verb 'change' with the resource 'activation status', clearly identifying this as a mutation tool. It distinguishes itself from sibling tools like 'get_status' by the action, though it could be more specific about the status types.
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 description provides no context on when to use this tool versus retrieving status or requesting numbers. With 16 sibling tools, there is no guidance on integration or prerequisites.
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.
17 tool updates
v1.0.0- First observed
cancel_email - First observed
get_activation_history - First observed
get_active_activations - First observed
get_balance - First observed
get_countries - First observed
get_email_domains - First observed
get_email_status - First observed
get_numbers_status - First observed
get_operators - First observed
get_prices - First observed
get_services - First observed
get_status - First observed
get_top_countries - First observed
purchase_email - First observed
reorder_email - First observed
request_number - First observed
set_status
TDQS
Scored across 17 tools
Most tools have clear, distinct purposes, but some overlap exists between get_countries and get_top_countries, and between get_numbers_status and get_prices. Descriptions help differentiate them, so ambiguity is limited.
Tool names follow a consistent lowercase_with_underscores convention and mostly use verb_noun (get_balance, request_number, purchase_email). A few names like get_status and set_status are more generic, but the overall pattern is predictable.
At 17 tools, the count is slightly above the ideal range but each tool serves a distinct purpose within the dual phone/email activation domain. The scope justifies the number, and no tools feel redundant.
The server covers the full lifecycle for both phone and email activations: balance, availability, pricing, request, status, history, and cancellation (via set_status). Email-specific operations (purchase, cancel, reorder, domains) complete the picture, leaving no obvious gaps.
Maintenance
Related MCP Connectors
Hosted MCP server for the Wavix telecom platform: SMS, voice, 2FA, SIP, numbers, 10DLC, CDRs.
MCP server for MailTempo's public free temporary email inboxes.
MCP server for e-mail testing: create disposable inboxes, wait for delivery, and extract e-mail content or links - all from your AI agent or test automation workflow. Get a free API key on https://app.zyntra.app/
MCP server for Tomba email finder, verification, and contact enrichment API
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for provisioning dedicated real-SIM US phone numbers, receiving inbound SMS, and extracting OTP codes. Built for AI agents automating phone verification workflows.20 npm1MIT
- AlicenseAqualityAmaintenanceMCP server for SMS verification — get virtual phone numbers, receive OTP codes, and manage verifications for 500+ services across 50+ countries via the VirtualSMS API.18108 npm8MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that enables AI agents to autonomously buy virtual phone numbers and receive SMS verification codes. Supports multiple providers (5sim, SMS-Activate, OnlineSim) with automatic cheapest-provider selection.1MIT
- AlicenseAqualityDmaintenanceMCP server for integrating with Grizzly SMS platform to rent virtual numbers, receive SMS verification codes, and manage activations directly from AI assistants like Cursor, Claude Desktop, and OpenClaw.815MIT