Four faces, one binary
Web UI, REST API, MCP server and optional AI answers — all served by a single Go binary, on port 8089 in the standard compose.
The suite’s search engine. By SearXNG.
Searchgirl is the private search of the Escriba family: metasearch with four faces in a single binary — a web UI, a REST API, an MCP server for agents and LLMs, and an optional AI Answer mode that synthesizes answers with citations. No tracking, no profiles: the engines see your server, never you.
Searchgirl is a value layer on top of SearXNG, the open-source metasearch engine that aggregates results from dozens of engines. SearXNG runs as its unmodified official container, internal and never exposed; Searchgirl consumes it over HTTP and adds the normalized API, the MCP server, the Escriba-family UI and the LLM synthesis. It is not a fork — see License.
/mcp endpoint.Four faces, one binary
Web UI, REST API, MCP server and optional AI answers — all served by a single Go binary, on port 8089 in the standard compose.
Private metasearch
The official SearXNG container runs internal and unexposed, aggregating dozens of engines. No tracking, no profiles: the engines see your server, never you.
A clean web UI
Results by category (General, News, Images, Videos, Science, IT), language/date/SafeSearch filters, direct answers and infoboxes, light and dark theme. Thumbnails go through Searchgirl’s own proxy.
Normalized REST API
GET /api/search plus suggestions and an engine catalog, returning a stable shape — dedup by URL, score, domain, ISO dates — independent of SearXNG’s raw JSON.
MCP for agents
search, url_read and answer tools over streamable HTTP at /mcp. One command adds it to Claude Code; the same binary also speaks MCP over stdio.
AI Answer with citations
Optional and off by default: searches, reads the best sources and writes a short answer citing [1][2], with the source list at the foot. Anthropic native or any OpenAI-compatible endpoint (Ollama, OpenRouter, DeepSeek).
URL to Markdown
POST /api/read (and the url_read MCP tool) fetches any public URL and returns it as Markdown, behind an SSRF guard.
Fail-safe by default
The compose publishes the port on 127.0.0.1 only; the bare binary refuses to serve unauthenticated on a public interface. Per-IP rate limiting covers API, MCP and login.
Standalone or federated
A one-user local login (the standard Escriba screen) or OIDC single sign-on through Lockatus. Named Bearer tokens for agents compose with either — revoking one does not rotate the rest.