Skip to main content
Glama
Omnidim

@omnidim-ai/mcp-server

by Omnidim

purchasePhoneNumber

Destructive

Purchase a phone number from OmniDimension's shop: pay the monthly rental from your wallet, and the number is added to your account, ready to attach to an agent.

Instructions

Buy a phone number from the OmniDimension number shop. The monthly rental comes out of your wallet and the number is added to your account, ready to attach to an agent.

(Tags: Phone numbers)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
requestBodyYesThe JSON request body.
Idempotency-KeyNoYour own unique key for this purchase, for example a fresh UUID. Strongly recommended: it is what makes a retry safe.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.13.1
    • changedInput schema / properties / requestBody / properties / carrier / description
      Previous value: -"The carrier to buy from: pass the `carrier` the search\nresponse named, so you buy from the inventory you searched.\nAlways required. Region `IN` has `carrier-1` (landline) and\n`carrier-2-new` (mobile); region `US` has `carrier-us`.\nOmitting it returns `409 carrier_required` listing them.\n"New value: +"The carrier to buy from: pass the `carrier` the search\nresponse named, so you buy from the inventory you searched.\nAlways required, and omitting it returns\n`409 carrier_required` naming that region's carriers.\n"
  2. Changed2 schema fields changedv0.13.0
    • addedInput schema / properties / requestBody / properties / carrier
      Added value: +{
      +  "description": "The carrier to buy from: pass the `carrier` the search\nresponse named, so you buy from the inventory you searched.\nAlways required. Region `IN` has `carrier-1` (landline) and\n`carrier-2-new` (mobile); region `US` has `carrier-us`.\nOmitting it returns `409 carrier_required` listing them.\n",
      +  "type": "string"
      +}
    • changedInput schema / properties / requestBody / required
      Previous value: -[
      -  "region",
      -  "phone_number"
      -]New value: +[
      +  "region",
      +  "carrier",
      +  "phone_number"
      +]
  3. Addedv0.10.1

TDQS

A4/5.0
Behavior4/5

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

The description clearly discloses the financial consequence ('monthly rental comes out of your wallet') and the resulting state change ('number is added to your account'). This adds behavioral context beyond the annotations, which only signal that the operation is not read-only and has destructive/irreversible implications. It could go further by mentioning the Idempotency-Key for safe retries, but the key concept is already conveyed.

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 short sentences communicate purpose, cost, and post-purchase state. The tag 'Phone Numbers' is minor redundancy but does not hurt. No filler or extraneous detail.

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?

The description covers the purchase action, financial impact, and next step (ready to attach to an agent). Combined with the rich schema—especially the Idempotency-Key explanation—this is sufficient for an agent to call the tool correctly. It doesn't mention retry/idempotency in prose, but the schema covers that, and there's no required return-value contract to document.

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%, with detailed parameter explanations for carrier, number, and Idempotency-Key. The description itself adds no parameter-specific details, so it stays at the baseline 3 rather than compensating for gaps.

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 opens with a specific verb and object: 'Buy a phone number from the OmniDimension number shop.' It clearly distinguishes this tool from siblings like attachPhoneNumber, releasePhoneNumber, or searchPhoneNumbers by focusing on the act of acquiring a number.

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

Usage Guidelines3/5

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

The description gives some workflow context by noting the number is 'ready to attach to an agent,' which implies a follow-up step. However, it does not explicitly guide the agent to search for available numbers first or contrast with sibling tools like releasePhoneNumber or attachPhoneNumber. The intent is understandable but the when-to-use guidance is implicit rather than explicit.

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