Skip to main content
Glama
scamverifyai

ScamVerify

batch_phone

Read-onlyIdempotent

Verify multiple US phone numbers for scam risks simultaneously by analyzing against 10M+ intelligence records from FTC, FCC, and threat databases, returning individual risk scores and summary results.

Instructions

Look up multiple phone numbers in a single request (max 100). Each number is checked individually with the same analysis as check_phone. Returns results array with per-item risk scores and a summary.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
phone_numbersYesArray of US phone numbers (1-100)
force_refreshNoForce fresh lookups, bypassing cache (default: false)

Implementation Reference

  • The `batch_phone` tool is registered using `server.tool` and handles multiple phone number lookups by calling the `/api/v1/batch/phone` endpoint.
    server.tool(
      'batch_phone',
      'Look up multiple phone numbers in a single request (max 100). Each number is checked individually with the same analysis as check_phone. Returns results array with per-item risk scores and a summary.',
      {
        phone_numbers: z.array(z.string()).min(1).max(100).describe('Array of US phone numbers (1-100)'),
        force_refresh: z.boolean().optional().describe('Force fresh lookups, bypassing cache (default: false)'),
      },
      {
        title: 'Batch Phone Lookup',
        readOnlyHint: true,
        destructiveHint: false,
        idempotentHint: true,
        openWorldHint: true,
      },
      async ({ phone_numbers, force_refresh }) => {
        try {
          const data = await apiPost('/api/v1/batch/phone', { phone_numbers, force_refresh });
          return jsonResult(data);
        } catch (err) {
          return errorResult(err instanceof Error ? err.message : 'Batch phone lookup failed');
        }
      },
    );
Behavior4/5

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

Annotations cover safety (readOnly, non-destructive) and idempotency. Description adds valuable behavioral context: the 100-item limit, return structure ('results array with per-item risk scores and a summary') compensating for missing output schema, and behavioral equivalence to check_phone.

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, zero waste. First sentence establishes operation and hard limit. Second sentence clarifies sibling relationship and return format. Front-loaded with essential constraints (max 100) and differentiation.

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?

Strong completeness given no output schema: description proactively explains return structure ('results array...'). Combined with 100% schema coverage and rich annotations, the description provides sufficient context for invocation. Minor gap: doesn't clarify partial failure behavior in batch operations.

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 has 100% description coverage. Description reinforces the 'max 100' constraint but adds no additional semantic depth for force_refresh beyond the schema's 'bypassing cache' description. Baseline 3 appropriate when schema carries full documentation load.

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?

Clear specific verb ('Look up') and resource ('multiple phone numbers'). Explicitly distinguishes from sibling check_phone by noting 'same analysis as check_phone', clarifying this is the batch variant. The 'max 100' constraint further defines scope.

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?

Implies clear context for batch usage ('multiple phone numbers in a single request'). References sibling tool check_phone, suggesting it as the alternative for single lookups. Could be explicit with 'use check_phone for single numbers' to reach 5, but the distinction is clear from context.

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

Install Server

Other Tools

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/scamverifyai/scamverify-mcp'

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