v0.6.0: drop MetaMCP from the neovim path
MetaMCP never re-dials a restarted upstream — proven for both STDIO and STREAMABLE_HTTP upstreams — so it cannot front an ephemeral, editor-bound MCP. The pool now fronts the nvim-mcp-bridge directly: Claude Code -> mcp-session-pool /p/neovim -> nvim-mcp-bridge -> nvim The pool re-establishes on its own (_ensure_pinned re-runs initialize), so an event-driven /repin (fired by the socket-appearance systemd.path oneshot) actually heals the chain. - tool names revert to two-segment mcp__neovim__vim_* (no MetaMCP aggregation prefix) - agents/companion.md + skills + README: surface description and troubleshooting runbook rewritten for the pool->bridge->nvim chain
This commit is contained in:
@@ -12,7 +12,7 @@ description: |
|
||||
buffer", "have Claude edit my file", "send this to Claude in nvim",
|
||||
"let Claude in the editor handle it".
|
||||
disable-model-invocation: false
|
||||
allowed-tools: Bash, Read, Skill, AskUserQuestion, mcp__neovim__neovim__*
|
||||
allowed-tools: Bash, Read, Skill, AskUserQuestion, mcp__neovim__*
|
||||
---
|
||||
|
||||
# claude-code-handoff — let the in-editor Claude do the editing
|
||||
@@ -60,7 +60,7 @@ These are defined under `<leader>a*` in
|
||||
|
||||
## The full `:ClaudeCode*` command surface
|
||||
|
||||
When driving the editor via `mcp__neovim__neovim__vim_command` you have more
|
||||
When driving the editor via `mcp__neovim__vim_command` you have more
|
||||
than the keymaps above. The complete set:
|
||||
|
||||
- `:ClaudeCode` — toggle the terminal split.
|
||||
@@ -88,7 +88,7 @@ quoting them.
|
||||
|
||||
1. **Confirm the split is open.** Either ask `editor-introspect` to
|
||||
check for a Claude Code buffer/window, or just run
|
||||
`:ClaudeCode` via `mcp__neovim__neovim__vim_command` — the command is
|
||||
`:ClaudeCode` via `mcp__neovim__vim_command` — the command is
|
||||
idempotent (toggles, but if already visible the user sees no
|
||||
surprise).
|
||||
|
||||
@@ -104,7 +104,7 @@ quoting them.
|
||||
neovim.nix add a keymap for ...", say "add a `<leader>tw` keymap
|
||||
that toggles wrap, next to the existing wrap-toggle block."
|
||||
Send via `:ClaudeCodeSend` (after selection) or by typing the
|
||||
prompt into the Claude Code buffer (`mcp__neovim__neovim__vim_command`
|
||||
prompt into the Claude Code buffer (`mcp__neovim__vim_command`
|
||||
plus an explicit feedkeys is overkill — usually the user can type
|
||||
it themselves once focus is in the split).
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ name: editor-act
|
||||
description: |
|
||||
Drive the user's running Neovim instance — open files, run user
|
||||
commands, trigger keymaps, jump to LSP locations, toggle UI,
|
||||
evaluate small lua snippets. Uses the `mcp__neovim__neovim__*` tools
|
||||
evaluate small lua snippets. Uses the `mcp__neovim__*` tools
|
||||
(`vim_command`, `vim_file_open`, `vim_window`, …) against the live
|
||||
instance. Prefers the user's own commands and keymaps over teaching
|
||||
new vim syntax. Will *not* edit buffer contents — that work is
|
||||
@@ -13,7 +13,7 @@ description: |
|
||||
neo-tree", "run this command in my nvim", "go to next diagnostic",
|
||||
"save my buffer".
|
||||
disable-model-invocation: false
|
||||
allowed-tools: Bash, Read, Skill, AskUserQuestion, mcp__neovim__neovim__*
|
||||
allowed-tools: Bash, Read, Skill, AskUserQuestion, mcp__neovim__*
|
||||
---
|
||||
|
||||
# editor-act — do things in the user's nvim
|
||||
@@ -24,7 +24,7 @@ For buffer edits, invoke `claude-code-handoff` instead.
|
||||
|
||||
## Preconditions
|
||||
|
||||
`mcp__neovim__neovim__*` tools must be present. If they aren't, stop and tell
|
||||
`mcp__neovim__*` tools must be present. If they aren't, stop and tell
|
||||
the user to restart nvim + Claude Code (see `editor-introspect` for
|
||||
the recovery message).
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name: editor-introspect
|
||||
description: |
|
||||
Read-only inspection of the user's running Neovim instance via
|
||||
`mcp__neovim__neovim__*` tools. Use whenever a question depends on the live
|
||||
`mcp__neovim__*` tools. Use whenever a question depends on the live
|
||||
editor state: what is mapped to a key, which buffers are open, what
|
||||
the cursor is on, what diagnostics exist, which plugins are loaded,
|
||||
what the messages buffer says. Returns concrete facts grounded in
|
||||
@@ -12,7 +12,7 @@ description: |
|
||||
"current selection", "what's the cursor on", "any diagnostics",
|
||||
"lualine theme actually applied".
|
||||
disable-model-invocation: false
|
||||
allowed-tools: Bash, Read, Glob, Grep, mcp__neovim__neovim__*
|
||||
allowed-tools: Bash, Read, Glob, Grep, mcp__neovim__*
|
||||
---
|
||||
|
||||
# editor-introspect — read the live nvim instance
|
||||
@@ -24,7 +24,7 @@ for that.
|
||||
## Preconditions
|
||||
|
||||
The user's nvim must be running with an RPC socket reachable by the
|
||||
`mcp-neovim-server` MCP server. If `mcp__neovim__neovim__*` tools are not
|
||||
`mcp-neovim-server` MCP server. If `mcp__neovim__*` tools are not
|
||||
present in this session, **stop and tell the user**:
|
||||
|
||||
> The neovim MCP server isn't connected to this Claude Code session.
|
||||
@@ -38,13 +38,13 @@ Do not try to fake introspection from the config alone.
|
||||
`mcp-neovim-server` exposes these (note the `vim_` prefix, *not*
|
||||
`nvim_`):
|
||||
|
||||
- `mcp__neovim__neovim__vim_command` — run any `:` command, including `:lua`.
|
||||
- `mcp__neovim__vim_command` — run any `:` command, including `:lua`.
|
||||
Returns the rendered command output. This is the workhorse for
|
||||
introspection: pass `:verbose nmap ...`, `:lua print(...)`, etc.
|
||||
- `mcp__neovim__neovim__vim_status` — cursor, mode, marks, registers in one
|
||||
- `mcp__neovim__vim_status` — cursor, mode, marks, registers in one
|
||||
call. Use instead of three separate `:lua` calls.
|
||||
- `mcp__neovim__neovim__vim_buffer` — buffer contents with line numbers.
|
||||
- `mcp__neovim__neovim__vim_health` — check the nvim↔server connection; run
|
||||
- `mcp__neovim__vim_buffer` — buffer contents with line numbers.
|
||||
- `mcp__neovim__vim_health` — check the nvim↔server connection; run
|
||||
this first if anything seems disconnected.
|
||||
|
||||
There is **no eval tool**. To get a lua value, call `vim_command`
|
||||
@@ -53,7 +53,7 @@ with `:lua print(vim.inspect(<expr>))` and parse the printed output.
|
||||
## The introspection vocabulary
|
||||
|
||||
Queries to reach for first. Unless noted, run each as the `command`
|
||||
argument to `mcp__neovim__neovim__vim_command`.
|
||||
argument to `mcp__neovim__vim_command`.
|
||||
|
||||
### Keymaps
|
||||
|
||||
|
||||
Reference in New Issue
Block a user