Skip to content
AGENTS · MCP

Built for agents, not just apps.

openappend ships as an MCP server, so Claude and any MCP-capable agent can query ~971M phones and 380.8M people conversationally — discover the schema, size an audience for free, then pull only the records it commits to. Generate your config below, or point a crawler at /llms.txt.

GENERATOR

MCP server config

Pasted here only — it is templated into the config in your browser and never sent anywhere. Don't have one yet? Grab a free trial key from Get API key.
Tools to expose

Add this to your claude_desktop_config.json, then restart Claude Desktop.

claude_desktop_config.jsonjson
{
  "mcpServers": {
    "openappend": {
      "command": "npx",
      "args": [
        "-y",
        "@openappend/mcp"
      ],
      "env": {
        "OPENAPPEND_API_KEY": "oa_live_YOUR_API_KEY",
        "OPENAPPEND_BASE_URL": "https://api.openappend.com/v1"
      }
    }
  }
}
Where's the package?
@openappend/mcp is the documented client wrapper — the portal ships only the config, not the package. The stdio server and the remote SSE endpoint speak to the same https://api.openappend.com/v1 and are gated by the same bearer key.
TOOLS · 5

What the agent gets

MCP toolREST endpointCostPurpose
people_fieldsGET/v1/fieldsFREEDiscover every filterable + returnable field before building a query.
people_countPOST/v1/people/countFREESize an audience. Free — dial filters until the count is right.
people_searchPOST/v1/people/searchMETEREDReturn matching records. reveal:false is free; reveal:true bills per record.
email_to_phonePOST/v1/email-to-phoneMETEREDReverse an email to callable, DNC-scored phones. 1 credit per hit.
phone_to_emailPOST/v1/phone-to-emailMETEREDReverse a phone to email(s). 1 credit per hit, misses free.
QUICKSTART

How an agent should drive it

Three moves, in order. The whole point of people_fields is that an agent that can read it can compose any count or search — no hard-coded schema.

  1. 1

    Install the MCP server

    Use the generator above, or add it in one line:

    bash
    claude mcp add openappend \
      --env OPENAPPEND_API_KEY=oa_live_… \
      -- npx -y @openappend/mcp
    
  2. 2

    Discover the fields

    The agent calls people_fields first to learn what it can filter and return — categories, operators, and ordinal bands — then composes from that.

    system nudgebash
    # What an agent tells the model:
    Use openappend. First call people_fields to learn the schema,
    then people_count to size, then people_search with reveal:false
    to qualify before spending a credit.
    
    tool calljson
    {
      "tool": "people_fields",
      "arguments": {}
    }
    
  3. 3

    Count free, then reveal what you commit to

    Size the audience for $0, qualify with reveal:false (records + contact counts, still $0), then flip reveal:true to pull contacts — billed only for the records you actually take.

    1 · count (free)json
    {
      "tool": "people_count",
      "arguments": {
        "filters": {
          "state": "IL",
          "city": "Chicago",
          "age": { "between": [30, 55] },
          "home_owner": true,
          "line_type": "mobile",
          "dnc": false
        }
      }
    }
    // → { "data": { "count": 128450 }, "meta": { "credits_used": 0, ... } }
    
    2 · qualify → revealjson
    {
      "tool": "people_search",
      "arguments": {
        "filters": { "state": "IL", "city": "Chicago", "line_type": "mobile", "dnc": false },
        "fields": ["first_name", "last_name", "address", "phone_count"],
        "reveal": false,
        "limit": 100
      }
    }
    // reveal:false → qualifying fields + contact COUNTS, $0.
    // Re-run with "reveal": true to pull contacts — 1 credit per record.
    
The qualify-then-pay pattern
count (free) → search reveal:false (free — see who matches and how many contacts each has) → search reveal:true (1 credit per record). An agent never spends a credit to explore, only to deliver.
FOR CRAWLERS & AGENTS