/ Directory / Playground / mcphub.nvim
● Community ravitemer ⚡ Instant

mcphub.nvim

by ravitemer · ravitemer/mcphub.nvim

Neovim plugin that turns your editor into a first-class MCP client — marketplace installs, Avante/CodeCompanion integration, OAuth PKCE.

ravitemer/mcphub.nvim integrates MCP servers into Neovim workflows. Discover + install via a verified marketplace, chat through Avante/CodeCompanion/CopilotChat, manage OAuth, hot-reload dev servers. Supports stdio, SSE, and Streamable HTTP.

Why use it

Key features

Live Demo

What it looks like in practice

mcphub-nvim.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcphub-nvim": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/ravitemer/mcphub.nvim"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcphub-nvim": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/ravitemer/mcphub.nvim"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcphub-nvim": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/ravitemer/mcphub.nvim"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcphub-nvim": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/ravitemer/mcphub.nvim"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcphub-nvim",
      "command": "TODO",
      "args": [
        "See README: https://github.com/ravitemer/mcphub.nvim"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "mcphub-nvim": {
      "command": {
        "path": "TODO",
        "args": [
          "See README: https://github.com/ravitemer/mcphub.nvim"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add mcphub-nvim -- TODO 'See README: https://github.com/ravitemer/mcphub.nvim'

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use mcphub.nvim

How to use MCP servers from Neovim via Avante or CodeCompanion

👤 Neovim devs ⏱ ~20 min intermediate

When to use: You live in Neovim and don't want to switch to VS Code for MCP access.

Prerequisites
  • Neovim 0.10+ — brew install neovim
  • Avante.nvim or CodeCompanion.nvim installed — Via your plugin manager (lazy.nvim/packer)
  • mcphub.nvim + its Node dependency — See ravitemer.github.io/mcphub.nvim for install snippet
Flow
  1. Install via plugin manager
    Add ravitemer/mcphub.nvim to your lazy.nvim config with opts = { ... }.✓ Copied
    → :MCPHub opens the management UI
  2. Install a server from the marketplace
    :MCPHub marketplace — search 'github' and install.✓ Copied
    → Server starts, tools registered
  3. Use via Avante
    In Avante chat, ask a question — Avante picks up MCP tools.✓ Copied
    → Tool calls visible in Avante output

Outcome: MCP tools usable inside your editor, no context switch.

Pitfalls
  • Node not on PATH inside Neovim — Use an absolute path in config or ensure Neovim inherits your shell env

How to set up project-local MCP servers that merge with global

👤 Polyglot devs with different tooling per project ⏱ ~15 min intermediate

When to use: One project needs postgres MCP, another needs a bespoke internal MCP.

Flow
  1. Create .mcphub.json5 at project root
    Define project-specific servers in .mcphub.json5.✓ Copied
    → Servers auto-load when you open the project
  2. Verify merge
    :MCPHub status — see which servers are global vs project.✓ Copied
    → Merged view

Outcome: Context-aware tool loadout per project.

Pitfalls
  • Committing secrets in .mcphub.json5 — Use env var references, gitignore the file if it must contain tokens

How to iterate on a custom MCP server from Neovim

👤 MCP server authors ⏱ ~15 min advanced

When to use: You're building a server and want fast iteration.

Flow
  1. Enable dev mode
    Add your server with dev=true in mcphub config.✓ Copied
    → Hot-reload on file save
  2. Iterate
    Edit server code; mcphub restarts it transparently.✓ Copied
    → Updated tools without Neovim restart

Outcome: Tight dev loop inside Neovim.

Combinations

Pair with other MCPs for X10 leverage

mcphub-nvim + github

Use GitHub MCP from Neovim via Avante chat

Install github MCP via marketplace, then ask Avante to show PRs assigned to me.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
(plugin) :MCPHub Commands: status, marketplace, install, logs Manage servers free
(plugin) marketplace-install server_name Quickly add a vetted MCP free
(integration) Avante/CodeCompanion/CopilotChat tools Chat prompts Normal chat usage 1 LLM call + tool calls

Cost & Limits

What this costs to run

API quota
None (plugin itself)
Tokens per call
Adds a tools list to Avante/CC prompts
Monetary
Free (MIT)
Tip
Disable unused marketplace servers — each one adds tools to your prompt budget.

Security

Permissions, secrets, blast radius

Minimum scopes: Whatever each installed MCP needs
Credential storage: Env var references in mcphub config
Data egress: Per downstream MCP
Never grant: Don't commit .mcphub.json5 with inline secrets

Troubleshooting

Common errors and fixes

mcphub fails to start Node subprocess

Neovim's PATH may not include Node. Set vim.env.PATH or use absolute path.

Verify: :!which node
Avante doesn't see MCP tools

Check Avante adapter version — older versions don't support MCP. Update.

Marketplace shows empty list

Network/firewall blocking marketplace URL. Check :MCPHub logs.

OAuth flow stuck in browser

Copy the URL from :MCPHub logs and paste manually; localhost redirect may not fire from Neovim context.

Alternatives

mcphub.nvim vs others

AlternativeWhen to use it insteadTradeoff
CodeCompanion.nvim (native)You want LLM chat without MCP managementNo marketplace, no OAuth flows
VS Code MCPYou prefer VS CodeNot Neovim

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills