# MCP server

**Spam I Am has an MCP server, so AI agents that use Model Context Protocol can check whether a phone number shows a spam label on AT&T, Verizon and T-Mobile.** Add one address to your MCP client, and your agent can start checks, wait for results, and ask you to approve spending.

*Last updated: 2026-10-24*

- **Address:** `https://ismynumberspam.com/mcp`
- **Transport:** Streamable HTTP
- **Key:** optional. The first check on a number works without one. To use a key, send `Authorization: Bearer sia_...`. You make keys on your Balance page, or your agent gets one when you approve its request.

## Connect

### Claude Code

```bash
claude mcp add --transport http spam-i-am https://ismynumberspam.com/mcp
```

With a key:

```bash
claude mcp add --transport http spam-i-am https://ismynumberspam.com/mcp \
  --header "Authorization: Bearer sia_..."
```

### Claude, Cursor and other clients

Add a remote (HTTP) MCP server with the address `https://ismynumberspam.com/mcp`. If your client can send headers, add `Authorization: Bearer sia_...` to use a key. Clients that can't send headers can still use a key: the agent passes it to each tool as `api_key`.

## Tools

| Tool | What it does |
|---|---|
| `start_check` | Starts a check for a number. Returns the test line to call for each carrier, and a token for a keyless check |
| `get_check` | Each carrier's result: the label, caller name, flagged or not, and a screenshot link. Can wait up to 25 seconds for results |
| `get_coverage` | Which carriers are online, prices and the dialing window |
| `get_balance` | Your balance and the key's spending limit (needs a key) |
| `request_approval` | Gets a link for you to approve spending. You sign in, add funds if needed and set a limit |
| `get_approval` | Whether you approved. Once you have, a keyless agent receives its key here, once |

## How a check goes

1. Your agent calls `start_check` with the number.
2. **The number being checked calls each test line.** The MCP server can't place calls, and we never spoof numbers. Your agent uses its own calling tools, or asks you to dial.
3. Your agent calls `get_check` with `wait_seconds` until the status is `complete`, then reports each carrier separately.

A carrier that gets no call in time is Incomplete, at no charge.

## Spending

The first check on a number is free. After that, **$0.25 for one carrier or $0.40 for two or three**, from your balance. [Pricing](/pricing)

Your agent never pays. When it needs to spend, it calls `request_approval` and shows you the link. You decide the spending limit. You can change or revoke the key on your Balance page at any time.

## FAQ

### Do I need an account to try it?
No. The first check on any number works without a key or an account.

### Can the agent spend my money without asking?
Only up to the limit you set when you approve, or on the key you made. Without a key it can only run free first checks.

### Can the MCP server call the test lines for me?
No. The calls must come from the number being checked, so your agent's own calling tools, or you, place them.

### Is there a REST API too?
Yes. The MCP tools use the same API. [API docs](/docs/api)
