GeminiCLI MCP Antigravity Server
A local MCP server for code analysis and investigation, providing tools like code search, file read, and symbol hint via SSE for integration with Gemini CLI and Antigravity.
README
GeminiCLI MCP Antigravity Server
A local Model Context Protocol (MCP) server designed for code analysis and investigation without code modification. Supports connection via SSE, enabling seamless integration with Gemini CLI and Antigravity.
特性
- 提供 5 组强大的 MCP Tools:
repo_list: 枚举工作区根目录文件code_search: 强大的基于 Ripgrep (支持回退 Node.js) 的全库内容检索file_read: 精确读取指定文件的指定行以提供引用证据symbol_hint: 基于正则探索常见源文件的符号(Class、Function、API Endpoints)build_investigation_report: 生成事故排查标准的 Markdown 模板报告
- 严格的安全沙盒:限制只能读取
WORKSPACE_ROOT内的文件,原生支持 allowlist/denylist,忽略常见 build 目录。 - 本地审计:自动日志记录至
data/audit.log包含每次 Tool 调用的参数,不写回用户文件修改。 - 专为 Windows 11 设计:开箱即跑的 Node.js/TypeScript 实现。
环境要求
- Node.js: v18.x 或更高
- OS: Windows 11 (也可兼容 Linux/macOS)
- 可选依赖: Ripgrep (rg)(如未安装会自动降级为 Node 实现)
快速安装与启动
- 在项目目录执行依赖安装:
npm install - 复制环境变量示例:
copy .env.example .env - 编辑
.env文件:# 服务运行的端口 PORT=3001 # 你期望分析的目标项目的绝对路径 WORKSPACE_ROOT=D:/Your/Target/Project # 如果需要强制指定 ripgrep 路径(如果你有) # RG_PATH=C:/Program Files/ripgrep/rg.exe - 编译并启动服务:
npm run build npm start启动成功后,控制台会打印:
Listening on http://127.0.0.1:3001
客户端配置示例(SSE 接入)
如何将同一 Server 同时接入 Gemini CLI 和 Antigravity?
你只需要把上述 npm start 开启的 Server 保持在后台独立运行,然后在 Gemini CLI 和 Antigravity 中都配置接入这个 http://127.0.0.1:3001/sse 节点即可。因为是基于 HTTP 的 SSE (Server-Sent Events) 长连接,同一个端口可以接受多个 Client 并发连接并响应调用。
1. Gemini CLI 接入 (~/.gemini/settings.json)
参见 examples/gemini-settings.json:
{
"mcp": {
"servers": {
"local_code_analysis": {
"url": "http://127.0.0.1:3001/sse"
}
}
}
}
2. Antigravity 接入 (mcp_config.json)
参见 examples/antigravity-mcp_config.json:
{
"mcpServers": {
"geminiCLI-MCP": {
"url": "http://127.0.0.1:3001/sse"
}
}
}
常见分析问题示例模板 (Sample Queries)
Q: “如何用它找一个 error code 在哪里抛出?” 给 AI 发送的 Prompt:
“请使用 code_search 检索
ERR_DB_TIMEOUT_001,找到它被抛出的具体文件和行号,并用 file_read 读取抛出位置的上下 20 行,告诉我触发超时错误前的业务逻辑。”
Q: “如何让它总结某个 API 的 data flow(入口->service->repo->SQL/topic)?” 给 AI 发送的 Prompt:
“首先用 symbol_hint 找出所有的 endpoint,告诉我处理 POST
/api/v1/orders的 Controller 是什么。发现是OrderController.ts后,请用 code_search 看看里面调用了哪个 Service。接着顺藤摸瓜检索该 Service 里的 Repository 调用,并总结从入口到 SQL 写入数据库的完整 data flow(仅输出 markdown 说明,禁止修改代码)。”
常见问题排查 (Troubleshooting in Windows 11)
-
**端口被占用 (EADDRINUSE)
** *问题*: 无法绑定 3001 端口。 *解决*: 在.env中修改PORT=3002`,并同步修改各客户端配置的 URL。 -
"Path access denied" 错误 问题: 你试图跨盘符或检索不在
WORKSPACE_ROOT定义的文件夹。 解决: 检查你code_search或file_read传入的是相对路径还是包含在 WorkSpace 下的真实绝对路径。 -
没有找到 Ripgrep 问题: 终端出现
Ripgrep search failed... falling back to nodefs search.。 解决: 纯提示信息,系统已自动平滑降级到 Node 原生搜索。如果项目非常大,推荐通过winget install BurntSushi.ripgrep.MSVC安装 rg 以获取百倍速度提升。
原理说明
在本项目(GeminiCLI_MCP_Antigravity)的语境下,Antigravity 是另一个可以接入该 MCP 服务的“客户端”,它与 Gemini CLI 的作用互补。
如果说 Gemini CLI 是你的“文字助手”,那么 Antigravity 通常被视为你的“图形化代码分析工作台”。
它的核心作用如下:
-
提供可视化交互界面 (GUI) Gemini CLI 运行在终端,交互以文字为主。而 Antigravity 通常提供一个更直观的界面,可以让你在侧边栏看到文件树,或者在更宽敞的窗口中阅读 AI 生成的代码分析报告、调用图等。
-
共享“后端”探针 这个项目的最大特色是“一服多用”。你运行的那个 npm start 开启的 SSE 服务器(3001 端口),可以同时被两个客户端连接:
- Gemini CLI:负责快速的、基于命令行的即时问答。
- Antigravity:负责更深度的、需要可视化展示的复杂项目排查。
- 专注“事故排查”与“代码调查” Antigravity 往往内置了更复杂的 Prompt 模板和工作流(Workflow)。例如,本项目中专门提供了一个工具叫 build_investigation_report:
- 当你使用 Antigravity 时,它可以调用这个工具自动生成一份符合行业标准的 Markdown 事故排查报告。
- 它擅长处理“顺藤摸瓜”式的逻辑推导,比如:入口 A -> 服务 B -> 数据库 C 的数据流向图,在 Antigravity 中展示会比在命令行中更易读。
- 离线/本地化优先 Antigravity 和该 MCP Server 的设计初衷都是为了隐私和性能。
- 它不需要把你的整个 Java 项目(ib)上传到云端。
- 它利用本地的 ripgrep (rg) 进行秒级搜索,然后只把 AI 关心的那一小段代码片段发送给大模型处理。
总结
- MCP Server (本项目):是“眼睛和手”,负责去硬盘上读代码、搜关键字。
- Gemini CLI:是“对讲机”,让你通过命令行指挥。
- Antigravity:是“大屏幕监控室”,让你更全局、更直观地进行代码分析和问题定位。
1 MCP 服务端:通过 /sse 和 /message 路由,继续为 Gemini CLI 和 Antigravity 提供本地代码检索能力。 2 Web 助手服务端:通过 / 路由提供静态网页,通过 /api/chat 路由接收网页端发来的图片和文字,并在 Node.js 后台调用 Google 的 Gemini API 进行回答。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器