Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Rust MCP server for Grok web search and Tavily-backed source retrieval
| Date | Stars |
|---|---|
| 2026-07-31 | 375 |
| 2026-08-05 | 418 |
| 2026-08-06 | 418 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
60.0
growth rate 0.00%/day
# GrokSearch-rs  **A lightweight Rust MCP server for Grok / OpenAI‑compatible web search, backed by an ordered source chain — Tavily, Exa, TinyFish, Firecrawl — for supplemental sources, fetch, and map.** `grok-search-rs` is an **MCP server** — run it locally over **stdio** (your client launches it; you do not run it directly) or as a **remote Streamable HTTP** service for mobile / multi‑device access (see [self-hosting](#self-hosting-remote-http)). It exposes one set of tools (`web_search`, `get_sources`, `web_fetch`, `web_map`, `doctor`) and supports two upstream transports so you can plug into either xAI's official API or any OpenAI‑compatible relay. --- ## Features - 🔎 **Live web search** with cited sources, cached for follow‑up `get_sources` calls. Opt‑in `include_content` enriches the top sources with full extracted text in one call. - 📏 **Response budgeting** — `web_search` keeps responses inside agent context limits: only the top `max_inline_sources` carry inline text, a whole‑response char budget (`response_max_chars`, default 45k — sized to stay under the MCP client token ceiling after JSON serialization) trims tail sources with recovery notes, `response_format: "concise" | "detailed"` picks the payload size, and `get_sources` pages through cached sources with `offset`/`limit`. The session cache always keeps full content. - 🧩 **Structured `web_fetch`** — GitHub issues/PRs/releases, StackExchange/MathOverflow, arXiv, and Wikipedia URLs are parsed by specialist extractors into clean Markdown (title, state/labels, release notes, accepted‑answer ordering, abstracts, vote‑sorted answers). Anything else falls back to the generic source chain (Tavily → Exa → TinyFish → Firecrawl, as configured). Output carries `source_type` and a `fallback_reason` when a specialist was skipped. - 🔀 **Two transports** — native xAI Responses (`/v1/responses`) **or** any OpenAI‑compatible chat‑completions gateway (`/v1/chat/completions`). Pick by env vars; no flag. - 🔐 **Optional Grok OAuth mode** — `login/status/logout` commands store a local xAI OAuth token for Responses auth, so the MCP server can run without `GROK_SEARCH_API_KEY`. - 🌐 **Optional remote mode** — build with `--features http` to serve the same tools over **Streamable HTTP** (multi‑tenant, bring‑your‑own‑key via request headers) for mobile / multi‑device access. See [self-hosting](#self-hosting-remote-http). - 📥 **Pluggable source chain** — supplemental sources and generic fetch walk an ordered provider chain: **Tavily** (RAG‑tuned search + extract + map), **Exa** (semantic search, native domain/date filters), **TinyFish** (free search + JS‑rendering fetch), **Firecrawl** (robust scrape fallback). First provider with results wins; `GROK_SEARCH_SOURCE_PROVIDERS` reorders. `TAVILY_API_KEY` accepts a comma‑separated key list — keys rotate round‑robin with automatic failover on rate/quota errors. - 🐦 **Optional X/Twitter search** via `x_search` (Responses transport only). - 🩺 **`doctor`** — connectivity probe + redacted config in one tool call. - 🗂 **Single global config file** so multiple MCP clients share one set of keys. --- ## Install ```bash npm install -g grok-search-rs ``` The npm package ships a native Rust binary; the `grok-search-rs` command is what your MCP client launches. --- ## Quick Start **Option A — use the hosted instance (no install).** Point any MCP client that supports remote HTTP + custom headers at the public endpoint and pass your own keys as headers: ```bash claude mcp add --transport http grok-search https://mcp.episkeyai.com/groksearch_rs/mcp \ --header "X-Grok-Api-Key: xai-..." \ --header "X-Tavily-Api-Key: tvly-..." ``` The default gateway is xAI official (`api.x.ai`) — use an xAI key. For any other Grok‑compatible gateway, add `--header "X-Grok-Base-Url: https://your-gateway.example/v1"` with a matching key, and optionally `--header "X-Grok-Model: <model>"` (m
Excerpt of 19,476 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:37622d49807fbbd9, desc:mcp server