Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"groksearch-rs": {
"args": [
"-y",
"grok-search-rs"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Rust MCP server for Grok web search and Tavily-backed source retrieval
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y 'grok-search-rs' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked grok-search-rs against OSV.dev.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationBe the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in search
Web and local search using Brave Search API
Production ready MCP server with real-time search, extract, map & crawl.
mini cli search engine for your docs, knowledge bases, meeting notes, whatever. Tracking current sota approaches while being all local
MCP server for Firecrawl — search, scrape, and interact with the web. Supports both cloud and self-hosted instances. Features include web search, scraping, page interaction, batch processing, and LLM-powered content analysis.
MCP Security Weekly
Get CVE alerts and security updates for GrokSearch Rs and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.

A lightweight Rust MCP server for Grok / OpenAI‑compatible web search, plus Tavily fetch/map and Firecrawl fallback.
grok-search-rs is an MCP stdio server — your client (Claude Code, Codex, Cursor, VS Code, …) launches it; you do not run it directly. 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.
get_sources calls./v1/responses) or any OpenAI‑compatible chat‑completions gateway (/v1/chat/completions). Pick by env vars; no flag.login/status/logout commands store a local xAI OAuth token for Responses auth, so the MCP server can run without GROK_SEARCH_API_KEY.x_search (Responses transport only).doctor — connectivity probe + redacted config in one tool call.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.
After npm install -g grok-search-rs, add this MCP server entry to your client config:
{
"grok-search-rs": {
"command": "grok-search-rs",
"args": [],
"env": {
"GROK_SEARCH_API_KEY": "",
"GROK_SEARCH_URL": "",
"GROK_SEARCH_MODEL": "grok-4.20-fast",
"TAVILY_API_KEY": "",
"TAVILY_API_URL": "https://api.tavily.com",
"FIRECRAWL_API_KEY": ""
}
}
}
For Codex TOML config:
[mcp_servers.grok-search-rs]
type = "stdio"
command = "grok-search-rs"
[mcp_servers.grok-search-rs.env]
FIRECRAWL_API_KEY = ""
GROK_SEARCH_API_KEY = ""
GROK_SEARCH_MODEL = "grok-4.20-fast"
GROK_SEARCH_URL = ""
TAVILY_API_KEY = ""
TAVILY_API_URL = "https://api.tavily.com"
Put your real keys in the empty values. If your client expects a top-level mcpServers / mcp_servers object, place the grok-search-rs entry under that section.
Optional: scaffold a shared global config file instead of duplicating env blocks in every MCP client:
grok-search-rs --init
$EDITOR ~/.config/grok-search-rs/config.toml
Verify:
Ask your assistant: "call doctor"
Successful output shows reachable: true for each enabled upstream and transport: Responses (or ChatCompletions).
Pick one transport group. Both Tavily and Firecrawl keys are shared across transports.
| Variable | Default | Purpose |
|---|---|---|
GROK_SEARCH_AUTH_MODE | api_key | api_key uses GROK_SEARCH_API_KEY; oauth uses the local token from grok-search-rs login. |
GROK_SEARCH_API_KEY | — (required in api_key mode) | Bearer token for the Grok / xAI gateway. |
GROK_SEARCH_AUTH_FILE | <home>/.config/grok-search-rs/auth.json | Optional OAuth token file override. |
GROK_SEARCH_URL | https://api.x.ai | Root, /v1, or full‑endpoint URL. |
GROK_SEARCH_MODEL | grok-4-1-fast-reasoning | Model name. |
GROK_SEARCH_WEB_SEARCH | true | Offer web_search tool to Grok. |
GROK_SEARCH_X_SEARCH | false | Offer x_search tool (X/Twitter) to Grok. |
Verified upstreams: xAI (https://api.x.ai, both tools), Modelverse (https://api.modelverse.cn, x_search depends on relay).
OAuth mode is a single-binary flow:
grok-search-rs login
grok-search-rs status
... [View full README on GitHub](https://github.com/Episkey-G/GrokSearch-rs#readme)