3.3 KiB
Antigravity Neovim MCP Instructions
When connected to this Neovim MCP server (win-nvim or linux-nvim), you have powerful tools to interact directly with the active Neovim editor.
The Tool Arsenal
The following tools are available:
- File/Buffer Mgmt:
nvim_open_file,nvim_open_buffer,nvim_close_buffer,nvim_reload_buffer,nvim_save_buffer,nvim_list_buffers - Window Mgmt:
nvim_split_window,nvim_close_window,nvim_list_windows,nvim_get_active_window,nvim_set_active_window - State Reading:
nvim_get_active_buffer,nvim_get_cursor,nvim_goto_line,nvim_get_visual_selection,nvim_get_viewport,nvim_get_messages - Diagnostics & Visuals:
nvim_set_diagnostics,nvim_get_diagnostics,nvim_highlight_lines,nvim_set_extmark,nvim_set_quickfix - God Mode:
nvim_execute_lua
1. Using Dedicated Tools First
Always prefer the specific dedicated tools (like nvim_open_file, nvim_highlight_lines, etc.) over writing raw Lua scripts. These tools are tested and safe.
2. Lua God Mode (nvim_execute_lua)
If you need to access any Neovim API that does not have a dedicated tool (e.g., complex buffer edits, changing options, LSP interactions), you MUST use nvim_execute_lua as your escape hatch.
CRITICAL RULES for nvim_execute_lua:
- Never Block: Never use interactive prompts (
vim.fn.input,vim.ui.select,vim.fn.confirm) or confirmation flags in regex substitutions (e.g.,%s/old/new/gc). This will cause the headless MCP bridge to deadlock forever. - Visual Feedback: Always trigger a notification using
require("notify")("Antigravity: [Action]", "info", { title = "Antigravity" }). - Auto-Save: If you modify a file buffer, always save it using
vim.cmd('write')within the same Lua script so external tools can see the changes, unless you explicitly want to pause for manual human review. - Buffer Focus: When making changes to a specific buffer, always ensure the active window is switched to that buffer, and optionally move the cursor so the human can see the change visually.
3. The "Unix is NOT King" Rule
You should ALWAYS prioritize Neovim tools over basic unix terminal utilities (like cat, grep, sed, awk, or PowerShell equivalents) for file read/writes and search/replace. If an interactive Neovim session is not currently open, the server will automatically spawn a persistent headless Neovim daemon in the background to execute your commands.
CRITICAL PAIR-PROGRAMMING EXCEPTION: While the headless background instance is great for autonomous, routine tasks, if you are performing collaborative "pair programming" activities, complex refactors that require visual engagement, or step-by-step human review, DO NOT execute them blindly in the background. Instead, explicitly ask the user to open a Neovim UI first so they can visually follow along. Use Neovim as your primary AST-aware interface to the codebase at all times.
4. Tool Schema Discovery
Do NOT grep or search the Rust source code to find tool schemas or arguments. All lazy-loaded MCP tool schemas are automatically cached as JSON files on your disk. To understand a tools arguments, directly read ~/.gemini/antigravity-cli/mcp/win-nvim/<tool_name>.json(or linux-nvim), or simply guess the arguments if it is a basic tool likenvim_open_file(e.g.,{"file": "/path/to/file"}`).