feat: Replace python tests with native E2E test suite and fix capabilities schema
- Added native E2E test suite in stub to validate server<->stub<->nvim IPC - Added win-nvim integration tests - Fixed empty capabilities schema in initialize response in server and win-nvim - Refactored server to accept dynamic MCP_PORT for test isolation - Made server exit gracefully on port 3000 collision
This commit is contained in:
1 parent
f2582b58be
commit
d71b1e6e35
11 files changed
+327
-79
No files matched your search
@@ -24,10 +24,12 @@ Copy-Item target\release\mcp-memory-stub.exe C:\Users\reazul.ashraf\.local\bin\m
|
||||
if (-not (Get-Process mcp-memory-server -ErrorAction SilentlyContinue)) { Start-Process -FilePath "C:\Users\reazul.ashraf\.local\bin\mcp-memory-server.exe" -ArgumentList "--daemon" -WindowStyle Hidden -ErrorAction SilentlyContinue }
|
||||
```
|
||||
|
||||
**Shutting Down:** If you need to stop the background daemon (e.g., to replace the executable after a recompile), use the built-in `--exit` flag instead of forcefully killing the process.
|
||||
**Shutting Down:** If you need to stop or restart the background daemon (e.g., to replace the executable after a recompile), you MUST NEVER use brute-force OS kill commands (e.g., Stop-Process, pkill, or kill). Instead, you MUST ALWAYS use the server's built-in graceful shutdown mechanisms:
|
||||
1. The CLI flag: `--exit` (or `--restart`)
|
||||
```powershell
|
||||
mcp-memory-server.exe --exit
|
||||
```
|
||||
2. The HTTP endpoint: `POST http://127.0.0.1:3000/shutdown`
|
||||
`
|
||||
**Step 2:** Update your Windows ~/.gemini/config/mcp_config.json to point the CLI to the ultra-lightweight stub (since the server is already running in the background):
|
||||
`json
|
||||
@@ -99,13 +101,8 @@ Whenever you alt-tab into a Neovim window (FocusGained) or switch files (BufEnte
|
||||
|
||||
### Neovim MCP Tools
|
||||
The LLM agent interacts with your active Neovim session using a dedicated set of MCP tools. *(Note: /nvim/telemetry is strictly a one-way webhook for Neovim; the LLM uses the tools below to interact).*
|
||||
* **
|
||||
vim_goto_line**: Open files and jump cursors directly from the LLM.
|
||||
* **
|
||||
vim_set_diagnostics**: Push inline code review warnings as virtual text.
|
||||
* **
|
||||
vim_get_active_buffer**: Read live, unsaved buffer contents.
|
||||
* **
|
||||
vim_get_cursor**: Fetch precise line/column coordinates.
|
||||
* **
|
||||
vim_get_visual_selection**: Read highlighted code blocks.
|
||||
* **vim_goto_line**: Open files and jump cursors directly from the LLM.
|
||||
* **vim_set_diagnostics**: Push inline code review warnings as virtual text.
|
||||
* **vim_get_active_buffer**: Read live, unsaved buffer contents.
|
||||
* **vim_get_cursor**: Fetch precise line/column coordinates.
|
||||
* **vim_get_visual_selection**: Read highlighted code blocks.
|
||||
Reference in new issue
Block a user