Skip to main content
Glama
sv-number

SV Number MCP Server

Official
by sv-number

SV Number MCP server

Phone numbers as tools. Your agent orders a private number in the country a service expects, reads the SMS verification code straight from the API, and hands the number back. Nine tools over stdio, no SDK to learn.

200+ countries, the widest coverage in this category. Every other claim on this page is checkable too, but this one takes a single call: run list_countries and count the rows.

order_number(service="tg", country=6)   ->  +62 838 1234 5678
wait_for_code(activationId)             ->  123456
finish_activation(activationId)         ->  done

Install

Claude Code:

claude mcp add sv-number --env SVN_API_KEY=your_key_here -- npx -y sv-number-mcp

Anything that reads a JSON config (Codex, Cursor, Claude Desktop):

{
  "mcpServers": {
    "sv-number": {
      "command": "npx",
      "args": ["-y", "sv-number-mcp"],
      "env": { "SVN_API_KEY": "your_key_here" }
    }
  }
}

The key comes from your profile after signup. The balance has to be funded: there is no free tier on this API. The key is read from the environment and never leaves the process, no tool returns it and no error message quotes it.

Related MCP server: agentsim-mcp

Tools

Tool

What it does

get_balance

what is left on the account

list_countries

every country with its id and operators

list_services

find the code for a site: search by name or domain, best match first, price, how many are online, and the share of codes that actually arrived

order_number

order a private number for one service in one country

wait_for_code

poll until the code lands and return it, already parsed out of the SMS

finish_activation

close a successful activation

cancel_activation

cancel and get the money back

request_another_sms

ask for one more code on the same number

totp_code

compute the authenticator code locally, by RFC 6238

list_services answers with matches ranked best first plus notInList, the fallback service. It takes a site name or a URL, so discord.com finds Discord, and it ranks a whole word above a substring so x puts X.com (Twitter) above Maxim. Codes are arbitrary and must never be recalled from memory: uk is Airbnb, re is Coinbase, tn is LinkedIn. When nothing matches, the answer says so and points at another country, because the catalogue is not the same everywhere, and at ot ("Not on list"), which receives SMS from any sender that is not in the list. A site that has its own code sends to that code, so ot is a fallback and not a wildcard.

deliveredPercent is the delivery rate for that service and country, and null when the pair has no statistics yet, which is the common case. Where there is a number, pick by it instead of by price; where there is not, online shows how big the live pool is, which is the next best signal.

What the server handles for you

Every call carries lang. The API answers without it, but then it prices in another currency, so the server never leaves it out. Text markers that the API returns instead of JSON are checked before anything is parsed, and turned into a sentence an agent can act on: NO_NUMBERS becomes "change country, or set operator to any" rather than a bare token. Polling runs at a sane interval instead of hammering getStatus, and wait_for_code stops at the 20 minute life of a number.

What it is not

Receiving verification codes is the whole job. These numbers do not send SMS, do not take calls, and are not meant for banking, payment or government accounts. An agent that needs a permanent number to hold a conversation wants a carrier product instead.

Config

Variable

Default

SVN_API_KEY

required

SVN_API_BASE

https://sms-verification-number.com/stubs/handler_api

SVN_LANG

en, sets both the language and the currency of the answers

SVN_POLL_SECONDS

4

MIT. The service behind it is commercial.

Available Tools

9 tools
cancel_activationA

Cancel an activation when no code arrived; the money returns to the balance in full. Can be called right after ordering. If the API answers that it is too early, wait a couple of minutes and repeat.

ParametersJSON Schema
NameRequiredDescriptionDefault
activationIdYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It discloses a key behavior: money returns in full, and it acknowledges API timing constraints with retry advice. It doesn't mention side effects like irreversibility or response format, but for a cancellation tool this is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, each adding value: the action, the money result, and the retry hint. No redundant information, and the primary action is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter cancellation tool with no output schema, the description covers the main purpose, timing, and error handling. It doesn't explain the response format or further error cases, but the provided guidance is sufficient for typical use. Slight gap on what happens after cancellation, but it states money returns, which is a key context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter, activationId, with no description. The tool description implies activationId identifies the activation to cancel via 'Cancel an activation' and 'after ordering,' but it doesn't explicitly connect the parameter name to the concept. Since schema coverage is 0%, the description should compensate, and it partially does through context but lacks explicit parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Cancel an activation' when no code arrived. It distinguishes from siblings by specifying the cancellation action and the condition, making it clear this is not wait_for_code or finish_activation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit context for when to use: 'when no code arrived' and 'Can be called right after ordering.' It also gives retry guidance for the 'too early' scenario. However, it doesn't explicitly mention when not to use it or name alternative tools as alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

finish_activationA

Close an activation after the code was used. Do this on every success: a forgotten activation holds money until it expires.

ParametersJSON Schema
NameRequiredDescriptionDefault
activationIdYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must convey behavior. It states 'Close an activation' and adds a financial consequence if skipped. However, it does not disclose what happens upon closing (e.g., whether funds are released, idempotency, or errors). It adds some context but leaves key behavioral aspects unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The first sentence states the action, and the second provides critical usage guidance and rationale. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 sufficiently explains what it does and when to use it. It lacks details on edge cases (e.g., already closed activation), but these are not essential for a basic close operation. Overall, it is well-rounded for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single parameter 'activationId' with no description (coverage 0%). The tool description does not explicitly explain the parameter or how to obtain it, leaving the agent to infer that 'activationId' refers to the activation being closed. Since the description does not compensate for the low schema coverage, this scores low.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Close an activation after the code was used.' It uses a specific verb ('Close') and resource ('activation'), and the context 'after the code was used' clarifies its role. However, it does not explicitly distinguish itself from the sibling tool 'cancel_activation', which would merit a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit usage context: 'Do this on every success' and explains the consequence of not doing it ('a forgotten activation holds money until it expires'). This is a clear guideline for when to use the tool, but it does not mention when not to use it or alternatives, stopping short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_balanceA

Current account balance. Ordering a number needs a funded balance; there is no free tier.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior2/5

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 mentions a service-wide requirement but does not state whether the tool is read-only, what side effects it has, or any rate limits or authentication needs. The key behavior (safe query) is only implied by the word 'balance'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences. The first directly states the purpose; the second adds a relevant caveat about funding. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no output schema, the description gives the essential purpose and a key caveat. However, it does not describe the response format (e.g., currency, numeric type, whether pending amounts are included), which would be helpful given the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 the input. The description has no need to explain parameters, and the baseline score for 0 parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource (account balance) and the tool's purpose (returning the current balance). It distinguishes itself from sibling tools like order_number and wait_for_code, which are about ordering and SMS operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The text explicitly states that ordering a number needs a funded balance and that there is no free tier, implying this tool is used to check funds before ordering. It gives practical usage context, though it does not explicitly name alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_countriesA

Every country the numbers can come from, with its id and operators. Use the id in order_number.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoFilter by country name, case-insensitive

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that the tool returns a list of countries with ids and operators, and hints at usage in order_number. However, it doesn't mention the optional search filter or whether the list is fully returned, paginated, or any side effects. The description is adequate 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no fluff. It front-loads the core purpose and includes a practical usage hint without wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple list tool with one optional parameter and no output schema. The description explains the return contents (country id, operators) and how to use the id, which covers the essential information. It doesn't detail the response format (e.g., array structure), but given the low complexity, it's sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description covers the only parameter (search) 100%, so the description need not add parameter details. The description doesn't mention the search filter, but since the schema fully documents it, the baseline of 3 is appropriate. No additional meaning is added beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool lists countries that numbers can come from, and includes id and operators. It also clarifies the purpose of the id in the order_number workflow, distinguishing it from sibling tools like list_services.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: this is the tool for getting country information to use in order_number. It doesn't explicitly state when not to use it, but the integration hint implies when it's needed. Sibling alternatives are not mentioned, but no other sibling covers countries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_servicesB

Services available in a country: service code, price, how many numbers are online, and the share of codes that arrived for other users. deliveredPercent is null when the pair has no statistics yet, which is the common case; then judge the pair by how many numbers are online.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoFilter by service name, case-insensitive
countryYesCountry id from list_countries

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It adds a valuable nuance: deliveredPercent is null in the common case and recommends judging by online numbers. However, it does not mention read-only behavior, error cases, or response structure beyond the listed fields, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise at two sentences. The first sentence front-loads the tool's output fields, and the second explains an important null case. It is somewhat dense but every sentence contributes useful information without excessive verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description partially covers the return shape by naming fields. It explains the tricky deliveredPercent null behavior. However, it omits usage context such as the relationship to list_countries, ordering, or pagination, making it only moderately complete for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents both parameters with clear descriptions (search filter and country id from list_countries), so schema coverage is 100%. The description does not add additional parameter-level meaning, which aligns with the baseline score of 3 for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource ('Services available in a country') and lists the returned fields (service code, price, online count, deliveredPercent). While it doesn't use an explicit verb like 'list', the tool name and context make the purpose unambiguous, and it is distinct from sibling tools such as list_countries and get_balance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool or alternatives. It implies usage with a country but does not mention prerequisites (e.g., 'use list_countries first') or situations where another tool would be appropriate. The interpretative note about deliveredPercent is useful but not a usage guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

order_numberA

Order a private number for one service in one country. The number is held for 20 minutes and belongs to this activation alone. Money is held now and charged when the code arrives.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryYesCountry id from list_countries
serviceYesService code from list_services, for example tg
maxPriceNoCeiling per activation; prices float with demand
operatorNoOperator, or any to keep the pool wideany

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits, and it does so effectively: the number is private, exclusive to one activation, held for 20 minutes, and money is held now but charged only when the code arrives. These details go beyond the schema and give the agent important non-obvious information about 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, with the main purpose front-loaded in the first sentence and the key behavioral details in the second. Every word earns its place, and there is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and no annotations, the description covers the essential context: the ordering process, the exclusivity, the 20-minute hold, and the payment model. It does not mention what the response returns (e.g., an activation ID), but that is not required given the absence of an output schema. Minor missing details like prerequisites (funds) are implied by 'Money is held now'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters have descriptions in the schema (100% coverage), so the baseline is 3. The description does not add any parameter-specific details beyond what the schema already provides, but the schema is sufficiently descriptive (e.g., 'Country id from list_countries', 'Ceiling per activation'). Thus the description adds no extra value here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Order a private number for one service in one country.' This specifies the verb ('order'), the resource ('private number'), and the scope ('for one service in one country'), distinguishing it from siblings like list_services or wait_for_code. The purpose is unambiguous and complete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context that this is the initial step to obtain a number for a single service and country, including the 20-minute hold and payment timing. It does not explicitly state exclusions or alternatives, but the purpose is distinct enough from the sibling tools that an agent can infer when to use it. The absence of explicit 'when not to use' guidance prevents a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_another_smsA

Ask for one more code on the same number, for a password reset or a re-send. Works only after a first code has already arrived; before that the API refuses it.

ParametersJSON Schema
NameRequiredDescriptionDefault
activationIdYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It explicitly mentions the refusal behavior when called before a first code, which is valuable. However, it does not disclose other potential side effects (e.g., whether a new SMS is sent immediately, whether previous codes are invalidated) or error conditions, so it is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, each earning its place: the first states the purpose, the second provides a critical usage constraint. There is no fluff or redundancy, making it exceptionally concise and well structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema or annotations, the description covers the core purpose and the most important precondition. However, it omits details about expected return values or error handling, and the parameter is not explained, leaving some gaps that an agent might need for fully confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the activationId parameter, and the description does not explain what activationId represents or how it relates to 'the same number'. The description adds no meaning beyond the parameter's literal name, so it fails to compensate for the missing schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with a specific verb ('Ask for one more code') and resource ('the same number'), and it distinguishes itself from siblings like wait_for_code by focusing on resending a code. It also adds purpose context ('for a password reset or a re-send') and notes the prerequisite that a first code must have arrived.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear when-to-use guidance by stating it works only after a first code has arrived and that the API refuses requests before that. This gives both a positive condition and an exclusion, though it does not explicitly name alternative tools like wait_for_code.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

totp_codeA

Compute the authenticator code for an account whose second factor was set up with a shared secret. Runs locally by RFC 6238: the secret never leaves this machine.

ParametersJSON Schema
NameRequiredDescriptionDefault
digitsNo
periodNo
secretYesBase32 secret shown when 2FA was enabled
algorithmNosha1

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the burden. It discloses that computation runs locally and that the secret never leaves the machine, a meaningful privacy/behavioral trait. It stops short of describing output format or time-dependence, but the disclosed trait is significant.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the verb and purpose, no redundancy. Every sentence contributes to understanding the tool's core function and a key behavioral trait.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose and a key behavior but lacks an explicit mention of return value. Given the tool's simplicity and presence of defaults in schema, it is adequate but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only 25% of parameters have schema descriptions (secret). The description mentions the shared secret but fails to explain digits, period, or algorithm, leaving these parameters under-documented. With schema coverage low, the description should compensate but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Compute' and clearly identifies the resource as the authenticator code for an account with a shared-secret 2FA. It further specifies RFC 6238 and local execution, which distinguishes it from sibling tools like wait_for_code that likely handle external SMS codes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the precondition ('an account whose second factor was set up with a shared secret') which tells when to use. It doesn't explicitly name alternatives or exclusions, but the context is clear enough for an agent to differentiate from siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wait_for_codeA

Wait for the verification code on an ordered number. Polls on its own and returns the code itself, already parsed out of the SMS. Trigger the SMS on the target service first.

ParametersJSON Schema
NameRequiredDescriptionDefault
activationIdYesId returned by order_number
timeoutSecondsNoHow long to wait, up to the 20 minute life

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It discloses that the tool 'Polls on its own' and 'returns the code itself, already parsed out of the SMS,' which are key behavioral traits beyond the name. It omits explicit timeout/error behavior, but the schema's timeoutSeconds parameter hints at the lifespan.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core function, then the prerequisite. Every sentence earns its place with zero redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter tool with no output schema, the description explains what it does, how it behaves (polls), what it returns (parsed code), and the prerequisite action. It does not address failure modes like timeout errors, but the overall context is adequate for practical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add new parameter meaning beyond repeating 'verification code' and 'ordered number'; activationId and timeoutSeconds are already well-documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool waits for a verification code on an ordered number and returns the parsed code. The verb 'Wait' plus the resource 'verification code on an ordered number' is specific and distinguishes it from sibling tools like order_number or request_another_sms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear prerequisite: 'Trigger the SMS on the target service first.' This implies the proper sequence (order first, trigger SMS, then wait) and gives context without explicitly exclaiming alternatives. It does not explicitly state when not to use it, but the guidance is sufficient for an agent.

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. Dates show when Glama detected each change.

  1. 9 tool updatesv1.0.0
    • First observedcancel_activation
    • First observedfinish_activation
    • First observedget_balance
    • First observedlist_countries
    • First observedlist_services
    • First observedorder_number
    • First observedrequest_another_sms
    • First observedtotp_code
    • First observedwait_for_code

TDQS

A4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: balance, countries, services, ordering, waiting, finishing, canceling, resending, and TOTP. Even the similar wait_for_code and request_another_sms are distinguished by timing (first vs subsequent codes).

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern like get_balance, list_countries, order_number. The only deviation is totp_code, which is a noun phrase rather than an imperative, but it is still clear and fits the naming style.

Tool Count5/5

9 tools is well-suited to the domain, covering every step from discovery to completion without redundancy. No tool feels extraneous, and the count is within the ideal range.

Completeness5/5

The toolset provides complete lifecycle coverage: discovery, ordering, code waiting, resend, finish, cancel, and balance check. The inclusion of TOTP adds a complementary feature, and there are no significant gaps in the core workflow.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for provisioning dedicated real-SIM US phone numbers, receiving inbound SMS, and extracting OTP codes. Built for AI agents automating phone verification workflows.
    47
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that gives AI agents disposable email addresses and real phone numbers with automatic OTP extraction and self-destructing identities.
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    MCP server for accessing Virtual Number API to manage virtual numbers, view SMS history, and retrieve available countries and numbers.
    3
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sv-number/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server