What searchio MCP server does
The searchio MCP server connects AI agents to web search and page-reading functions without requiring a search provider API key. Its MCP tools cover ranked web search, merged product listings, Facebook Marketplace results near a city, YouTube caption transcripts, readable page content, multi-step research, and service statistics. A health resource is also available at searchio://health.
Search supports several intents, including web, news, video, shopping, academic, code, forum, reference, and local. Queries can be narrowed by domains, freshness, locale, or result count. Product results combine listings across retailers, while local results use a browser-backed Facebook Marketplace workflow.
How it works
The searchio MCP server can communicate over standard input/output or streamable HTTP. Agents call the same underlying capabilities exposed by the command-line interface. Search uses multiple keyless providers and returns provider usage and failure information. Page reading uses a tiered fetch process: plain HTTP is the initial tier, TLS impersonation adds another option, and browser-based handling is available for JavaScript pages and sites that challenge automated clients.
The Docker image includes the Python components, Rust engine sidecar, and Chromium used by the challenge tier. On a host installation, the Rust sidecar is optional but recommended; it can be installed separately and discovered automatically. The server reports a reason when a page cannot be read rather than returning an empty result.
The research tool runs a multi-step AI workflow whose findings cite the pages read by its workers. This feature is separate from keyless search and requires an LLM provider key. The MCP payment gate is open by default. If configured with static:<token>, protected calls require a bearer token and return a payment challenge when the token is missing.
Setup and configuration
Install with Python 3.10 or newer using pip install "searchio[mcp]", then start the server with searchio mcp or searchio-mcp. The repository also supports editable source installation. Docker provides a Python-free option through ghcr.io/ioserviceslabs/searchio-mcp, and the published npm wrapper can select Docker when available or use a local installation.
A client configuration points to searchio-mcp for a local stdio process. Docker clients use docker run -i --rm with the image name. The server can instead be exposed with searchio mcp --transport streamable-http, a host, port, and path. The README specifically documents configuration examples for Claude Desktop and Cursor.
The optional SEARCHIO_ENGINE_BIN variable selects a custom Rust engine binary. SEARCHIO_MCP_PAYMENT controls the local payment gate. Research can use Anthropic through ANTHROPIC_API_KEY, or DeepSeek when SEARCHIO_LLM_PROVIDER=deepseek and DEEPSEEK_API_KEY are set.
Tools and capabilities
Available MCP tools are:
search: ranks and combines web results from keyless providers.
search_items: merges product listings and prices across retailers.
search_local: finds browser-backed Facebook Marketplace listings near a city.
youtube_transcript: returns timed captions and full transcript text for one video.
read_url: converts one accessible URL into markdown through the fetch ladder.
research: runs the cited multi-step research workflow when an LLM key is configured.
stats: reports ladder and provider health, including learned per-domain behavior.
The searchio MCP server also exposes searchio://health as a small JSON health resource. The same project can run as an HTTP service with search, read, product, marketplace, transcript, research, provider, statistics, and health endpoints, although those endpoints are outside the MCP transport itself.
Limitations and notes
Search and reading do not need an API key, but the research workflow does. Browser-backed operation may need Chromium unless the Docker image or Rust engine supplies the required components. A target can still be refused by policy or remain blocked by an anti-bot system; the HTTP interface documents status codes for invalid requests, refused targets, blocked pages, and provider failures.
The static payment option is only a token check and does not provide a ledger. For hosted deployments, the README recommends placing a real x402 verifier in front of the server. Persist browser clearance and session state by mounting /root/.searchio when running Docker.