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: ``json { "mcp": { "servers": { "local_code_analysis": { "url": "http://127.0.0.1:3001/sse" } } } } ``
2. Antigravity 接入 (mcp_config.json) 参见 examples/antigravity-mcp_config.json: ``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 进行回答。






