vibe-mcp
Run the Mistral Vibe CLI as an MCP subagent from Codex. This server wraps Vibe programmatic mode (-p) and exposes:
vibe_run: run a new Vibe taskvibe_resume: resume a project using the last session ID
Requirements
- Node.js 18+
- Vibe CLI
Install Vibe:
curl -LsSf https://mistral.ai/vibe/install.sh | bash
Install
Official install (recommended)
curl -fsSL https://raw.githubusercontent.com/DarkPhilosophy/vibe-mcp/main/install.sh | bash
This will:
- clone/update to
~/.local/share/mcp-servers/vibe-mcp - auto-detect and update Codex / Amp / OpenCode configs (no duplicate entries)
Manual install (clone + configure yourself)
Clone to the standard MCP location:
git clone https://github.com/DarkPhilosophy/vibe-mcp.git "$HOME/.local/share/mcp-servers/vibe-mcp"
If you cloned elsewhere, running ./install.sh will move it into the standard location and update Codex / Amp / OpenCode configs.
If detection fails, see Configuration below.
Configuration
Codex (~/.codex/config.toml)
[mcp_servers.vibe]
command = "node"
args = ["$HOME/.local/share/mcp-servers/vibe-mcp/index.js"]
startup_timeout_sec = 30.0
Restart Codex after changes.
Amp (~/.config/amp/settings.json)
{
"amp.mcpServers": {
"vibe": {
"command": "node",
"args": [
"$HOME/.local/share/mcp-servers/vibe-mcp/index.js"
]
}
}
}
OpenCode (~/.config/opencode/opencode.json)
{
"mcp": {
"vibe": {
"type": "local",
"command": [
"node",
"$HOME/.local/share/mcp-servers/vibe-mcp/index.js"
],
"enabled": true
}
}
}
Usage
Example tool call payload:
{
"prompt": "Summarize this repo in 3 bullets.",
"project_dir": "$HOME/Projects/cpufetch",
"max_turns": 8,
"max_price": 1
}
Resume a task later:
{
"prompt": "Continue from earlier and list next steps.",
"project_dir": "$HOME/Projects/cpufetch",
"max_turns": 5,
"max_price": 1
}
Session persistence
- Session IDs are stored per project path in:
~/.local/share/mcp-servers/vibe-mcp/state.json vibe_resumeuses the last stored session ID for that project.
Cost summary
Each response includes a cost line based on Vibe logs in:
~/.vibe/logs/session/*.json and metadata.stats.session_cost.
Example output:
Cost: 0.0022 EUR | Month: 0.0765 EUR
Configuration
Optional env vars:
VIBE_BIN: override the Vibe binary pathVIBE_MCP_STATE: override the state file path
Roadmap ideas
- Optional transcript return for deeper debugging
- Smarter session selection when multiple runs happen in parallel
- Safer defaults for
max_turnsandmax_price
License
GNU General Public License v3.0