first-party phone validation, called over MCP
The 1Lookup MCP server: your AI agent can verify a phone, email, or IP mid-workflow
Paste one URL into Claude or Cursor and click Connect with 1Lookup. Your agent gets five tools to check contacts and flag fraud. No API key to paste, and every check bills to the plan you already have.
https://app.1lookup.io/api/mcpNo API key · Streamable HTTP · Works in any client that supports remote MCP.
See it mid-conversation
Real tool calls with the real response shape, not staged chat bubbles.
you ▸ Is +1 415 555 0132 a real mobile before we text it?
{ "phone_number": "4155550132", "country_code": "US", "valid": true, "reachable": true, "line_type": "mobile", "carrier": "Verizon Wireless", "dnc_status": "not_listed", "fraud_score": 15, "risk_level": "low", "tokens_used": 1}
agent ▸ Real, active mobile on Verizon. Low risk. Safe to text.
Simulated session for illustration
Setup takes about a minute
No SDK to install and no keys to manage. The URL is the whole integration, whether your client takes it in a settings panel or a config file.
- 01
you ▸ add the URL
Paste https://app.1lookup.io/api/mcp into the connector settings of Claude, Cursor, or any client that supports remote MCP over streamable HTTP.
Claude · Cursor · any remote MCP client
- 02
you ▸ connect with 1Lookup
Click Connect, sign in, and approve access with OAuth 2.1. No API key changes hands.
- 03
agent ▸ validate anything
The five tools appear in your client, and your agent starts checking phones, emails, and IPs on demand, billed to your plan.
Copy-paste config
A remote MCP server needs the URL and nothing else. No command to run, no args, no environment variable holding a key.
- 01Open Settings, then Connectors.
- 02Choose Add custom connector.
- 03Paste the URL below and save.
- 04Sign in to 1Lookup in the browser window and approve access.
https://app.1lookup.io/api/mcp- 01Open ~/.cursor/mcp.json, or .cursor/mcp.json in your project.
- 02Add the block below. There is no command, no args, and no API key.
- 03Reload Cursor and approve access in the browser window that opens.
{
"mcpServers": {
"1lookup": {
"url": "https://app.1lookup.io/api/mcp"
}
}
}Any other client that supports remote MCP over streamable HTTP takes the same URL. SSE transport is disabled on the endpoint.
The five tools your agent gets from the MCP server
Each one maps to a single call your agent already knows how to make. Three checks for phone, email, and IP, plus bulk for up to 50 values at a time and an account read so it can pace itself.
validate_phone
Before your agent dials, texts, or saves a number, it confirms the line is real and active, and pulls line type, carrier, DNC status, and a fraud score. No more acting on a dead or risky number.
validate_phone("+1 415 555 0132") → mobile · Verizon · reachable · risk 15verify_email
Your agent checks that an address exists and isn't disposable, role-based, or on a bad domain before it sends. Bounces stay down and your sender reputation stays intact.
verify_email("j.ramos@acme.co") → valid · not disposable · deliverable 98ip_lookup
Your agent geolocates an IP and flags proxies, VPNs, Tor, and datacenter ranges, so it can catch fake signups and risky sessions the moment they happen.
ip_lookup("72.14.201.5") → datacenter · hosting · risk 62bulk_verify
Your agent validates up to 50 phones, emails, or IPs in a single call instead of looping one lookup at a time. Invalid items come back as an inline error entry rather than failing the whole batch.
bulk_verify(type: "email", [ …50 max ]) → 50 checked · 1 credit eachget_account
Your agent checks remaining credits and plan status before a large run, so it can pace itself and never stalls mid-task on an empty balance.
get_account() → plan: growth · credits: 48,210 remainingPhone, email, and IP through one MCP server
Most setups make your agent wire up three vendors with three separate bills. Here it checks all three through one MCP server, one credit per check, on the plan you already have.
The whole spec on one screen
What the endpoint is, what it costs, and what it does under load. If you are comparing MCP data providers, this is the part worth diffing.
- Endpoint
- https://app.1lookup.io/api/mcp
- Transport
- streamable HTTP (SSE disabled)
- Auth
- OAuth 2.1 · PKCE S256 required · no API key
- Tools
- 5 · validate_phone, verify_email, ip_lookup, bulk_verify, get_account
- Cost
- 1 credit per phone, email, or IP · 1 per bulk record · get_account free
- Bulk cap
- 50 values per call, one type per call
- Rate limit
- 1,000 requests per minute, shared with API keys
- Cache
- identical lookups return from cache for 7 days
- Plan gate
- paid plan required · free plans get 403 UPGRADE_REQUIRED
- Token life
- access 1 hour · refresh 30 days, rotated on use
Your key never leaves your account
Every remote server raises the same two worries: what can it touch, and where does my key end up. OAuth 2.1 answers both.
OAuth 2.1, not pasted keys
You authorize with your 1Lookup login and the client receives a token limited to a single lookup scope. Your API key never goes into a prompt, a config file, or a third-party server.
Tokens expire on their own
Access tokens last one hour and refresh tokens last thirty days, so a connection that stops being used stops working without any action from you. Refresh tokens rotate on every use.
Runs on the plan you already have
Every call spends the same credits as the API and honors your plan's limits and gating. No new billing to set up.
One server, three data types
Phone, email, and IP validation under a single credit system, so your agent isn't wiring up separate vendors.
Results cached for 7 days
Identical lookups return from cache within the window, so repeated checks stay fast and consistent.
Data refreshed daily
Phone and carrier data is updated every 24 hours from primary sources, not recycled on a monthly cycle.
Errors written for the agent, not the log file
When credits run out the tool does not just fail, it tells the agent to call get_account to check the balance or ask the account owner to top up. A rate limit tells it to retry shortly. A free-plan account is told an upgrade is required. The agent gets a next step, not a stack trace.
1Lookup wants to connect to your AI client
Read-only access to 5 tools
Billed to your plan's credits
Access token expires in 1 hour
OAuth 2.1 · single `lookup` scope · expiring token
Where teams are putting it to work
Anywhere an agent acts on a phone, email, or IP, a quick check keeps it from running on bad data.
AI SDR & outreach agents
Validate a number and email before the agent dials, texts, or sends, so it never burns a message on a dead line or a spam trap.
Enrichment & data agents
Clean a batch mid-pipeline with bulk_verify, up to 50 values a call, instead of looping one lookup at a time.
Signup & fraud flows
Score the IP and email at the point of action to catch fake signups and risky sessions the moment they happen.
Straight answers, including the annoying ones
Credits, security, and what actually happens when you connect.
Yes. 1Lookup runs a hosted MCP server at https://app.1lookup.io/api/mcp. Add that one URL in Claude or Cursor, sign in, and your agent gets validate_phone, verify_email, ip_lookup, bulk_verify, and get_account. Authorization is OAuth 2.1, so there is no API key to paste.
you ▸ ship it
Add it in about a minute
Add one URL, click Connect, and every phone, email, and IP your agent touches gets checked against the plan you already have.
https://app.1lookup.io/api/mcpProgrammatic access is a paid feature. A 7-day trial is available.