Cyxj Groksearch
FreeNot checkedMCP server for Claude Code: Grok AI web search + Tavily fetch/map + Firecrawl screenshots, with multi-key failover.
About
MCP server for Claude Code: Grok AI web search + Tavily fetch/map + Firecrawl screenshots, with multi-key failover.
README
中文 | English
cyxj-groksearch
为 Claude Code 提供实时联网能力的 MCP 服务器:Grok AI 搜索、Tavily 高保真抓取/站点映射、Firecrawl 网页截图,内置多 key 轮询与自动 failover。
为什么用它,而不是 Claude Code 内置 WebSearch?
Claude Code 自带 WebSearch 和 WebFetch。这个 MCP 不是替代,而是补充——它提供内置工具做不到的能力:
- 多源交叉验证 —
web_search可通过extra_sources参数同步向 Tavily/Firecrawl 并行取独立信源,合并后一次返回,Claude 可在单次调用内对比多方索引结果。 - Grok 中转路由 — 可将 AI 搜索流量指向任意 OpenAI 兼容端点(官方 Grok API、自建镜像、中转站)。内置工具无法重定向。
- 原文全文抓取 —
web_fetch通过 Tavily Extract(Firecrawl 降级)获取 16 KB+ 结构化 Markdown 原文,而非摘要片段,适合钉死一手事实。 - 强制路由控制 —
toggle_builtin_tools把WebSearch/WebFetch写入项目.claude/settings.json黑名单,所有联网请求强制走本 MCP。可随时撤销。 - 多 key 轮询池 — Grok / Tavily / Firecrawl 三个 API 均支持逗号分隔多 key,遇到限速/报错自动 30 分钟 cooldown,无缝切下一个 key。
功能特性
- 8 个 MCP 工具,覆盖搜索、抓取、截图、站点映射、运行时控制
- Grok AI 搜索 + session 级信源缓存
- Tavily Extract 为主抓取,Firecrawl 自动降级
- Firecrawl JS 渲染截图(返回签名 GCS URL)
- 同一 Firecrawl key 池同时供
web_fetch降级、extra_sources补信源、web_screenshot三用 - 内置连接诊断:配置检查 + 1-token 模型探针
- 通过
~/.config/grok-search/config.json持久化默认模型 - launcher 脚本自动聚合所有
TAVILY_API_KEY*变量成多 key 轮询池
工具列表
| 工具 | 作用 | 关键参数 |
|---|---|---|
web_search |
Grok AI 搜索;缓存信源,返回 session_id + content + sources_count |
query、platform(可选,限定平台)、model(单次覆盖)、extra_sources(附加 Tavily/Firecrawl 信源数) |
get_sources |
按 session_id 取上次 web_search 缓存的完整信源列表 |
session_id |
web_fetch |
抓取 URL 全文,以 Markdown 返回;Tavily 主抓取 → Firecrawl 降级 | url |
web_screenshot |
Firecrawl JS 渲染截图,返回签名 PNG URL | url、full_page(bool,默认 false) |
web_map |
遍历站点链接图,返回 URL 结构清单(Tavily) | url、instructions、max_depth、max_breadth、limit、timeout |
get_config_info |
显示配置、执行连接测试、列出可用模型、查看 key cooldown 状态 | — |
switch_model |
切换默认 Grok 模型,持久化到 ~/.config/grok-search/config.json |
model |
toggle_builtin_tools |
把 WebSearch/WebFetch 加入/移出项目 deny 名单 |
action("on" / "off" / "status") |
安装与配置
前置条件
- uv — Python 包管理器
- Claude Code
方式 A — 从 GitHub 安装(推荐)
用 uvx 从 GitHub 直接安装并注册 MCP。只有 GROK_API_URL 和 GROK_API_KEY 必填,Tavily/Firecrawl 可选。
claude mcp add-json grok-search --scope user '{
"type": "stdio",
"command": "uvx",
"args": ["--from", "git+https://github.com/chenyuxiaojin/cyxj-groksearch@main", "grok-search"],
"env": {
"GROK_API_URL": "https://your-grok-endpoint/v1",
"GROK_API_KEY": "your-grok-api-key",
"TAVILY_API_KEYS": "tvly-...",
"FIRECRAWL_API_KEYS": "fc-..."
}
}'
验证:claude mcp list 显示 grok-search ✓ 即成功。
方式 B — 本地源码 + launcher 脚本(开发调试)
克隆仓库后,在 Claude Code MCP 注册里把 command 指向 launcher 脚本。launcher 会加载 .env、自动聚合所有 TAVILY_API_KEY* 变量到轮询池,再用 uv run 从本地源码启动(改代码即时生效)。
{
"grok-search": {
"type": "stdio",
"command": "/绝对路径/GrokSearch/grok-search-launcher.sh",
"args": [],
"env": { "GROK_SEARCH_ENV_FILE": "/绝对路径/你的/.env" }
}
}
.env 默认取脚本同目录,可用 GROK_SEARCH_ENV_FILE 覆盖。参考 .env.example 查看所有变量。
环境变量
| 变量 | 必填 | 默认值 | 说明 |
|---|---|---|---|
GROK_API_URL |
✅ | — | OpenAI 兼容 Grok 端点(含 /v1) |
GROK_API_KEY |
✅ | — | Grok API key |
GROK_MODEL |
— | grok-4.3-console |
默认模型(也可被 ~/.config/grok-search/config.json 覆盖) |
TAVILY_API_KEYS |
— | — | Tavily key,逗号分隔多 key;也支持单数 TAVILY_API_KEY |
TAVILY_API_URL |
— | https://api.tavily.com |
Tavily 端点 |
FIRECRAWL_API_KEYS |
— | — | Firecrawl key,逗号分隔;兼容回落 FIRECRAWL_SCREENSHOT_API_KEYS |
FIRECRAWL_API_URL |
— | https://api.firecrawl.dev/v2 |
Firecrawl 端点 |
GROK_FETCH_HEDGE_DELAY |
— | 8 |
web_fetch 对冲延迟(秒):Tavily 超时未返回则并行追加 Firecrawl;设 0 为始终并发 |
GROK_DEBUG |
— | false |
调试日志开关 |
GROK_LOG_LEVEL / GROK_LOG_DIR |
— | INFO / logs |
日志级别/目录 |
GROK_RETRY_MAX_ATTEMPTS / GROK_RETRY_MULTIPLIER / GROK_RETRY_MAX_WAIT |
— | 3 / 1 / 10 |
重试策略 |
Firecrawl key 读取优先级:
FIRECRAWL_API_KEYS→FIRECRAWL_API_KEY→FIRECRAWL_SCREENSHOT_API_KEYS→FIRECRAWL_SCREENSHOT_API_KEY
强制联网走本工具
安装后在对话里说「调用 toggle_builtin_tools,action=on」。这会把 WebSearch、WebFetch 写入当前项目 .claude/settings.json 的 deny 列表,所有联网请求强制路由到本 MCP。用 action=off 可恢复内置工具。
与同类工具对比
| cyxj-groksearch | Tavily 官方 MCP | Firecrawl 官方 MCP | Brave Search MCP | Exa MCP | Claude Code 内置 WebSearch | |
|---|---|---|---|---|---|---|
| AI 搜索(Grok) | 有 | 无 | 无 | 无 | 无 | 有(Claude 内置) |
| 全文抓取 | 有(Tavily + Firecrawl 降级) | 部分 | 有 | 无 | 有 | 摘要片段 |
| 站点结构映射 | 有 | 无 | 有 | 无 | 无 | 无 |
| JS 截图 | 有(Firecrawl) | 无 | 有 | 无 | 无 | 无 |
| 多 key failover | 有(三个 API 均支持) | 无 | 无 | 无 | 无 | N/A |
| 强制路由控制 | 有(toggle_builtin_tools) | 无 | 无 | 无 | 无 | N/A |
| session 信源缓存 | 有(get_sources) | 无 | 无 | 无 | 无 | 无 |
| 中转端点支持 | 有(任意 OpenAI 兼容 URL) | 无 | 无 | 无 | 无 | 无 |
FAQ
不配 Tavily / Firecrawl 能用吗?
能。只有 GROK_API_URL 和 GROK_API_KEY 是必填项。不配 Tavily,web_fetch 和 web_map 会返回配置提示。不配 Firecrawl,web_screenshot 返回配置提示,web_fetch 的 Firecrawl 降级路径跳过。
与内置 WebSearch 的区别是什么?怎么强制走本工具?
内置 WebSearch 由 Claude 托管,无法重定向到自定义端点。本 MCP 路由到你自己的 Grok 端点,并增加多源聚合、全文抓取和 key failover。强制路由:调用 toggle_builtin_tools 设 action="on";恢复内置:设 action="off"。
支持哪些 Grok 端点?
任意暴露了 /v1/chat/completions 和 /v1/models 的 OpenAI 兼容端点,包括官方 api.x.ai、自建镜像和商业中转站。GROK_API_URL 填含 /v1 的基础 URL。
多 key failover 怎么工作?
每个 API(Grok、Tavily、Firecrawl)都接受逗号分隔的多 key 列表,服务器按轮询顺序使用。某个 key 报错(限速或网络错误)后进入 30 分钟 cooldown,期间自动跳过。用 get_config_info 可查看当前 cooldown 状态。
连接有问题怎么排查?
调用 get_config_info。它会向 /models 发连接测试请求、发送 1-token 探针验证默认模型是否可用,并报告所有 key 池的 cooldown 状态。
环境要求
- Python 3.10+
fastmcp >= 2.3.0、mcp[cli] >= 1.21.2、httpx[socks] >= 0.28.0、tenacity >= 8.0.0uv(用于安装和本地开发)
开发
cd GrokSearch
uv sync
uv run --extra dev pytest -v # 跑测试
uv run --directory . grok-search # 本地 stdio 调试
致谢
- 原版项目:GuDaStudio/GrokSearch(孙佬 @DaiSun)——LINUX DO 原帖
- 感谢 LINUX DO 社区,本项目源于站内佬友的分享
许可证
MIT License — 基于 GuDaStudio/GrokSearch 重写。
Installing Cyxj Groksearch
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/chenyuxiaojin/cyxj-groksearchFAQ
Is Cyxj Groksearch MCP free?
Yes, Cyxj Groksearch MCP is free — one-click install via Unyly at no cost.
Does Cyxj Groksearch need an API key?
No, Cyxj Groksearch runs without API keys or environment variables.
Is Cyxj Groksearch hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Cyxj Groksearch in Claude Desktop, Claude Code or Cursor?
Open Cyxj Groksearch on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Cyxj Groksearch with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
