Connect Search1API to OpenClaw, Claude Code, and Codex with the Search1API CLI

A Web Search MCP Server for Coding Agents: Search, Read Pages, and Parse Stack Overflow in One Server

Snippets aren't enough for Claude Code or Cursor: coding agents need the accepted answer, the GitHub issue thread, the full page. Here is what to look for in a web search MCP server, and how to set up Search1API's hosted MCP in Claude Code, Cursor, VS Code, Windsurf and OpenCode.

5 minute read

Ask a coding agent to fix an obscure build error and it will usually search the web first. What happens next depends on the search tool. If the tool only returns ten titles and two-line snippets, the agent has to guess which link has the answer, call a separate fetch tool, and then spend context on raw HTML, navigation menus and cookie banners.

Developers who compare web search MCP servers for Claude Code and Cursor tend to want the same things:

  • the full text of the accepted Stack Overflow answer or the GitHub issue thread, not a snippet;
  • clean Markdown instead of raw HTML that wastes context;
  • search and read without wiring up two servers;
  • no juggling API keys across tools and machines.

This post turns those into a checklist, then shows how Search1API's hosted MCP server handles each one and how to connect it to your editor.

What to look for in a web search MCP server

Question

Why it matters for a coding agent

Can one call return full page text, not just snippets?

Saves a round trip and a second tool

Is the page text Markdown with page chrome removed?

Less context spent on navigation and ads

Does it handle developer sites specially?

Q&A threads, READMEs and package pages have structure worth keeping

Can it search GitHub issues and discussions, not only repositories?

Most error messages are answered in an issue thread

How does it authenticate?

OAuth means no keys pasted into config files

Remote or local?

Remote means one URL that works the same on every machine

How is it billed?

Agents call tools in loops; per-call cost adds up

Use these questions to evaluate any server. Below is how Search1API answers them.

One hosted server: search, read and parse

Search1API runs a hosted MCP server at:

https://mcp.search1api.com/mcp

It exposes eight tools:

Tool

What it does

search

Web search across Google, Bing, DuckDuckGo, GitHub, Reddit, arXiv, YouTube and more

news

News search

ask

Describe what you need; Search1API picks the engines and time window

crawl

Read a URL as Markdown

sitemap

List a site's links

trending

GitHub and Hacker News trends

render_results

Show selected sources as cards or a list; no search credits

send_feedback

Report a wrong result or a missing capability; no credits

Search and read in one call

The search tool takes a crawl_results parameter: the number of top results to read in full. With crawl_results: 3, the top three results come back with their whole page text instead of a snippet, in the same tool call. The agent doesn't need a second fetch step for the pages it is most likely to use.

Dedicated parsers for developer sites

crawl works on any public URL. For a set of sites developers read constantly, Search1API also maintains dedicated handling that returns structured Markdown:

  • Stack Overflow and every Stack Exchange site are read through the public Stack Exchange API. You get the question, the full answer thread with scores, and the accepted answer flagged, not just ranked first. An answer permalink resolves to its whole thread.
  • GitHub READMEs, file (blob) views and raw.githubusercontent.com files go through a dedicated converter.
  • Hacker News story pages come back with their comment trees.
  • npm and PyPI package pages are read from the registries' own JSON APIs.

Other pages, including GitHub issue pages, go through generic extraction, which still returns readable text rather than raw HTML.

GitHub search that finds issues

With search_service: "github", search returns issues, pull requests and discussions alongside repositories. Each result is labelled with kind (repo, issue, pr or discussion), and threads include their comment count. A query like tanstack start hydration error returns the matching issue threads, not only repositories. Add a GitHub qualifier such as is:issue to search one type only.

OAuth instead of pasted keys

The server supports OAuth 2.1 with dynamic client registration. An OAuth-aware client only needs the URL: on first connect it opens a browser sign-in, and there is no API key to store in your dotfiles. Clients without OAuth can still send an API key as a bearer header.

Current protocol, old clients still work

The server implements MCP revision 2026-07-28 (the stateless revision), and clients on the 2025 revisions keep working unchanged. See MCP 2026-07-28: The Protocol Goes Stateless for what changed.

Set it up in your editor

Claude Code

claude mcp add --transport http search1api https://mcp.search1api.com/mcp

Run /mcp in Claude Code and sign in when prompted. To use an API key instead:

claude mcp add --transport http search1api https://mcp.search1api.com/mcp \
  --header "Authorization: Bearer YOUR_SEARCH1API_KEY"

On a paid Claude plan, you can instead install the Search1API plugin. It bundles the same tools with an Agent Skill, and it syncs to Claude Code v2.1.273 or later when you're signed in with the same account.

Cursor

Install from the Cursor Directory with Add to Cursor, then sign in when the browser opens. Or add this to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):

{
  "mcpServers": {
    "search1api": {
      "url": "https://mcp.search1api.com/mcp"
    }
  }
}

Cursor discovers the authorization server and prompts you to sign in.

VS Code

VS Code uses servers (not mcpServers) and requires type:

{
  "servers": {
    "search1api": {
      "type": "http",
      "url": "https://mcp.search1api.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_SEARCH1API_KEY"
      }
    }
  }
}

Windsurf

Windsurf passes the key in the URL:

{
  "mcpServers": {
    "search1api": {
      "serverUrl": "https://mcp.search1api.com/mcp?apiKey=YOUR_SEARCH1API_KEY"
    }
  }
}

A key in a URL can end up in logs, so prefer OAuth or a header wherever the client supports one.

OpenCode

OpenCode has a native plugin that registers the tools directly, without an MCP bridge:

opencode plugin opencode-search1api

It reads SEARCH1API_KEY, or reuses the OAuth session from s1 login if you have the Search1API CLI installed.

Run it locally

To run the server over stdio instead of connecting to the hosted endpoint:

{
  "mcpServers": {
    "search1api": {
      "command": "npx",
      "args": ["-y", "search1api-mcp@latest"],
      "env": { "SEARCH1API_KEY": "YOUR_SEARCH1API_KEY" }
    }
  }
}

What it costs

MCP tool calls cost the same as calling the API directly. A search or news call is 1 credit, and each page successfully read through crawl_results adds 1 more. render_results and send_feedback are free. New accounts get 100 free credits with no card required.

FAQ

Do I still need a separate fetch MCP server?

Usually not. crawl reads any public URL as Markdown, and crawl_results reads the top search results within the same search call.

How is this different from running a SearXNG MCP server?

A SearXNG MCP server sends queries through your own SearXNG instance, so result quality depends on how that instance's upstream engines treat its IP. It also leaves reading pages to another tool. Search1API is a hosted service: the same server searches and reads pages, and it adds the dedicated parsers above.

Remote or local — which should I use?

Use the remote endpoint if you want OAuth and the same URL on every machine. Use the local npx package if your client only supports stdio; it uses an API key.

Which clients have been tested?

Setup instructions are maintained for Claude, Cursor, OpenCode, VS Code and Windsurf. Any client that supports remote MCP over HTTP can use the same URL.

Get started

Sign up at app.s1.dev for 100 free credits, then add https://mcp.search1api.com/mcp to your editor. The full tool reference is on the MCP server page.

No comments yet