MCP server
SerpResult is also a remote MCP server, so an
AI client can run a live search and read back the same JSON the REST API
returns. There is one endpoint, POST https://api.serpresult.com/mcp, and one tool,
serp_search. The transport is Streamable HTTP and stateless: nothing to
install, nothing to run locally, no package to keep up to date. Point a client
at the URL and it discovers everything else.
https://api.serpresult.com/mcpThe dashboard page at https://app.serpresult.com/dashboard/developers/mcp has the
same setup snippets with your key filled in, and the Connected apps list.
Authenticate
Section titled “Authenticate”Two ways in, and a reader picks one. Sign in for a personal client; use a key for a committed config or a server.
| Sign in | API key | |
|---|---|---|
| How | The client discovers OAuth from the endpoint and opens the browser. You approve once, scope search. |
Authorization: Bearer sk_live_… or sk_test_…, the same key you use for HTTP. See Authentication. |
| Fits | claude.ai, Claude Desktop, ChatGPT, Claude Code on your own machine. | A .mcp.json checked into a repo, a shared Cursor or Codex config, a server-side agent. |
| Lifetime | Access tokens last 1 hour and refresh silently for 30 days. | Until the key is rotated or revoked. |
| Revoke | Connected apps in the dashboard. | Revoke the key under Developers → API Keys. |
A connection made by signing in draws credits straight from your account and never creates a key, so nothing shows up under API Keys for it.
Set up your client
Section titled “Set up your client”-
Open Customize → Connectors and press Add custom connector.
-
Paste
https://api.serpresult.com/mcpas the URL and press Connect. -
Sign in to SerpResult in the window that opens and approve the connection.
An API key works here too, through the request-header option, but that option
is an organisation-limited beta. Its value must include the literal
Bearer prefix: Bearer sk_live_…, not the bare key.
-
Turn on Settings → Security and login → Developer mode.
-
Open Settings → Apps & Connectors and press Create.
-
For Icon, upload the SerpResult icon. ChatGPT shows a generic icon when this is left empty.
-
Paste
https://api.serpresult.com/mcpas the URL, choose OAuth for Authentication, and sign in to SerpResult when asked.
Available on Pro, Plus, Business, Enterprise and Edu plans.
Add the server, then run /mcp in a session to sign in:
claude mcp add --transport http serp-api https://api.serpresult.com/mcpTo use a key instead of signing in:
claude mcp add --transport http serp-api https://api.serpresult.com/mcp \ --header "Authorization: Bearer sk_live_your_key"For a config committed with the project, put this in .mcp.json at the repo
root and set SERP_API_KEY in the environment:
{ "mcpServers": { "serp-api": { "type": "http", "url": "https://api.serpresult.com/mcp", "headers": { "Authorization": "Bearer ${SERP_API_KEY}" } } }}Add the server to .cursor/mcp.json in the project, or to ~/.cursor/mcp.json
for every project:
{ "mcpServers": { "serp-api": { "type": "http", "url": "https://api.serpresult.com/mcp", "headers": { "Authorization": "Bearer ${SERP_API_KEY}" } } }}Add the server to the Codex MCP config in the same shape:
{ "mcpServers": { "serp-api": { "type": "http", "url": "https://api.serpresult.com/mcp", "headers": { "Authorization": "Bearer ${SERP_API_KEY}" } } }}The serp_search tool
Section titled “The serp_search tool”The tool takes the GET /v1/query
parameters as its arguments and answers that endpoint’s JSON response
verbatim: once as structuredContent, and once more as pretty-printed text so
a client that only reads text still gets the whole thing. The response shape
is documented on the endpoint page; the countries geo accepts are on
Targets & geo.
| Argument | Type | Default | Notes |
|---|---|---|---|
query |
string | required | The search terms, 1 to 400 characters. |
target |
string | google_search |
Any target on Targets & geo. |
geo |
string | us |
ISO 3166-1 alpha-2, one of the 193 supported countries. |
locale |
string | from geo |
Overrides the country’s default locale. |
page |
integer | 1 |
1 to 5 where the target supports paging; the others serve page 1 only. |
num |
integer | 10 |
1 to 20. duckduckgo_search and yahoo_search cap at 10. |
safe |
string | off |
off, moderate, strict. |
The per-target table on Targets & geo says which
target takes which page, num and safe values; a combination
the target cannot serve is refused, not silently ignored.
Limits and cost
Section titled “Limits and cost”Every serp_search call costs 1 credit, exactly like a GET /v1/query. The
tool description tells the model so, which is why a well-behaved client
searches once per question rather than re-running variations.
Calls made with an API key share that key’s per-minute bucket with its HTTP
traffic: an MCP call and a GET /v1/query on the same key draw on the same
counter, at the key’s own limit. An app connected by signing in gets 60 calls
a minute per account. Rate limits has the full table.
Troubleshooting
Section titled “Troubleshooting”Argument and upstream failures come back as tool results carrying the same
error envelope as HTTP: invalid_request,
unsupported_geo, unsupported_parameter, upstream_error,
upstream_timeout. The two exceptions are 401 and 429, which are answered
at the HTTP level and so show up in a client as a connection or transport
failure rather than as a tool result.
401— the credential is missing or wrong. On claude.ai the header value must start withBearer; pasting the bare key fails.- “Couldn’t reach the MCP server” while signing in — that is OAuth
discovery failing. Check that
https://api.serpresult.com/.well-known/oauth-protected-resource/mcploads. - A connection error right after a burst of searches — that is the
429rate limit. MCP clients render it as a transport failure, not as a tool error; wait a minute and retry. - A result starting with
unsupported_geo— a bad argument, not an outage. The refusal lists every supported code. See Errors. GETon the endpoint returns405— deliberate. The transport is POST-only, so a browser opening the URL gets405withAllow: POST.
Find it in a directory
Section titled “Find it in a directory”SerpResult is being listed in the Official MCP Registry as
com.serpresult/serp-search, the Claude Connectors Directory and the ChatGPT
app directory; until a listing is live, connect with the URL above.