Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Routes to the best predicted fit from configured metadata/evidence after hard-capability filtering.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
ANTHROPIC_API_KEY, ANTHROPIC_MODELS, ANTHROPIC_NAMES, ANTHROPIC_STRENGTHS, ANTHROPIC_CONTEXT, ANTHROPIC_MAX_OUTPUT, ANTHROPIC_TOOLS, ANTHROPIC_COST_IN, ANTHROPIC_COST_OUT, ANTHROPIC_TIER, MOONSHOT_API_KEY, MOONSHOT_BASE_URL, MOONSHOT_MODELS, MOONSHOT_NAMES, MOONSHOT_STRENGTHS, MOONSHOT_CONTEXT, MOONSHOT_MAX_OUTPUT, MOONSHOT_TOOLS, MOONSHOT_COST_IN, MOONSHOT_COST_OUT, MOONSHOT_TIER, OLLAMA_BASE_URL, OLLAMA_API_KEY, OLLAMA_MODELS, OLLAMA_NAMES, OLLAMA_STRENGTHS, OLLAMA_CONTEXT, OLLAMA_MAX_OUTPUT, OLLAMA_TOOLS, OLLAMA_COST_IN, OLLAMA_COST_OUT, OLLAMA_TIER, CLAUDE_CODE_ENABLED, CLAUDE_CODE_MODELS, CLAUDE_CODE_TIER, CLAUDE_CODE_MAX_OUTPUT, CLAUDE_CODE_TIMEOUT, CLAUDE_CODE_SYSTEM_PROMPT_MODE, CODEX_ENABLED, CODEX_MODELS, CODEX_TIER, CODEX_CONTEXT, CODEX_MAX_OUTPUT, CODEX_COST_IN, CODEX_COST_OUT, CODEX_TIMEOUT, OPENAI_COMPAT_BASE_URL, OPENAI_COMPAT_KEY, OPENAI_COMPAT_MODEL, OPENAI_COMPAT_NAME, OPENAI_COMPAT_STRENGTHS, OPENAI_COMPAT_CONTEXT, OPENAI_COMPAT_MAX_OUTPUT, OPENAI_COMPAT_TOOLS, OPENAI_COMPAT_COST_IN, OPENAI_COMPAT_COST_OUT, OPENAI_COMPAT_TIER, OPENAI_COMPAT_2_BASE_URL, OPENAI_COMPAT_2_KEY, OPENAI_COMPAT_2_MODEL, OPENAI_COMPAT_2_NAME, OPENAI_COMPAT_2_STRENGTHS, OPENAI_COMPAT_2_CONTEXT, OPENAI_COMPAT_2_MAX_OUTPUT, OPENAI_COMPAT_2_TOOLS, OPENAI_COMPAT_2_COST_IN, OPENAI_COMPAT_2_COST_OUT, OPENAI_COMPAT_2_TIER, OPENAI_COMPAT_3_BASE_URL, OPENAI_COMPAT_3_KEY, OPENAI_COMPAT_3_MODEL, OPENAI_COMPAT_3_NAME, OPENAI_COMPAT_3_STRENGTHS, OPENAI_COMPAT_3_CONTEXT, OPENAI_COMPAT_3_MAX_OUTPUT, OPENAI_COMPAT_3_TOOLS, OPENAI_COMPAT_3_COST_IN, OPENAI_COMPAT_3_COST_OUT, OPENAI_COMPAT_3_TIER, VOLANTE_QUALITY_PROFILES_FILE, VOLANTE_MODEL_OVERRIDES_FILE, VOLANTE_FETCH_ALLOWLIST, VOLANTE_READ_ROOT, VOLANTE_SANDBOX, VOLANTE_MAX_SUBSCRIPTION_CALLSValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"volante": {
"command": "uvx",
"args": [
"volante"
],
"env": {
"ANTHROPIC_API_KEY": "your-value",
"ANTHROPIC_MODELS": "your-value",
"ANTHROPIC_NAMES": "your-value",
"ANTHROPIC_STRENGTHS": "your-value",
"ANTHROPIC_CONTEXT": "your-value",
"ANTHROPIC_MAX_OUTPUT": "your-value",
"ANTHROPIC_TOOLS": "your-value",
"ANTHROPIC_COST_IN": "your-value",
"ANTHROPIC_COST_OUT": "your-value",
"ANTHROPIC_TIER": "your-value",
"MOONSHOT_API_KEY": "your-value",
"MOONSHOT_BASE_URL": "your-value",
"MOONSHOT_MODELS": "your-value",
"MOONSHOT_NAMES": "your-value",
"MOONSHOT_STRENGTHS": "your-value",
"MOONSHOT_CONTEXT": "your-value",
"MOONSHOT_MAX_OUTPUT": "your-value",
"MOONSHOT_TOOLS": "your-value",
"MOONSHOT_COST_IN": "your-value",
"MOONSHOT_COST_OUT": "your-value",
"MOONSHOT_TIER": "your-value",
"OLLAMA_BASE_URL": "your-value",
"OLLAMA_API_KEY": "your-value",
"OLLAMA_MODELS": "your-value",
"OLLAMA_NAMES": "your-value",
"OLLAMA_STRENGTHS": "your-value",
"OLLAMA_CONTEXT": "your-value",
"OLLAMA_MAX_OUTPUT": "your-value",
"OLLAMA_TOOLS": "your-value",
"OLLAMA_COST_IN": "your-value",
"OLLAMA_COST_OUT": "your-value",
"OLLAMA_TIER": "your-value",
"CLAUDE_CODE_ENABLED": "your-value",
"CLAUDE_CODE_MODELS": "your-value",
"CLAUDE_CODE_TIER": "your-value",
"CLAUDE_CODE_MAX_OUTPUT": "your-value",
"CLAUDE_CODE_TIMEOUT": "your-value",
"CLAUDE_CODE_SYSTEM_PROMPT_MODE": "your-value",
"CODEX_ENABLED": "your-value",
"CODEX_MODELS": "your-value",
"CODEX_TIER": "your-value",
"CODEX_CONTEXT": "your-value",
"CODEX_MAX_OUTPUT": "your-value",
"CODEX_COST_IN": "your-value",
"CODEX_COST_OUT": "your-value",
"CODEX_TIMEOUT": "your-value",
"OPENAI_COMPAT_BASE_URL": "your-value",
"OPENAI_COMPAT_KEY": "your-value",
"OPENAI_COMPAT_MODEL": "your-value",
"OPENAI_COMPAT_NAME": "your-value",
"OPENAI_COMPAT_STRENGTHS": "your-value",
"OPENAI_COMPAT_CONTEXT": "your-value",
"OPENAI_COMPAT_MAX_OUTPUT": "your-value",
"OPENAI_COMPAT_TOOLS": "your-value",
"OPENAI_COMPAT_COST_IN": "your-value",
"OPENAI_COMPAT_COST_OUT": "your-value",
"OPENAI_COMPAT_TIER": "your-value",
"OPENAI_COMPAT_2_BASE_URL": "your-value",
"OPENAI_COMPAT_2_KEY": "your-value",
"OPENAI_COMPAT_2_MODEL": "your-value",
"OPENAI_COMPAT_2_NAME": "your-value",
"OPENAI_COMPAT_2_STRENGTHS": "your-value",
"OPENAI_COMPAT_2_CONTEXT": "your-value",
"OPENAI_COMPAT_2_MAX_OUTPUT": "your-value",
"OPENAI_COMPAT_2_TOOLS": "your-value",
"OPENAI_COMPAT_2_COST_IN": "your-value",
"OPENAI_COMPAT_2_COST_OUT": "your-value",
"OPENAI_COMPAT_2_TIER": "your-value",
"OPENAI_COMPAT_3_BASE_URL": "your-value",
"OPENAI_COMPAT_3_KEY": "your-value",
"OPENAI_COMPAT_3_MODEL": "your-value",
"OPENAI_COMPAT_3_NAME": "your-value",
"OPENAI_COMPAT_3_STRENGTHS": "your-value",
"OPENAI_COMPAT_3_CONTEXT": "your-value",
"OPENAI_COMPAT_3_MAX_OUTPUT": "your-value",
"OPENAI_COMPAT_3_TOOLS": "your-value",
"OPENAI_COMPAT_3_COST_IN": "your-value",
"OPENAI_COMPAT_3_COST_OUT": "your-value",
"OPENAI_COMPAT_3_TIER": "your-value",
"VOLANTE_QUALITY_PROFILES_FILE": "your-value",
"VOLANTE_MODEL_OVERRIDES_FILE": "your-value",
"VOLANTE_FETCH_ALLOWLIST": "your-value",
"VOLANTE_READ_ROOT": "your-value",
"VOLANTE_SANDBOX": "your-value",
"VOLANTE_MAX_SUBSCRIPTION_CALLS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add volante --env ANTHROPIC_API_KEY=your-value --env ANTHROPIC_MODELS=your-value --env ANTHROPIC_NAMES=your-value --env ANTHROPIC_STRENGTHS=your-value --env ANTHROPIC_CONTEXT=your-value --env ANTHROPIC_MAX_OUTPUT=your-value --env ANTHROPIC_TOOLS=your-value --env ANTHROPIC_COST_IN=your-value --env ANTHROPIC_COST_OUT=your-value --env ANTHROPIC_TIER=your-value --env MOONSHOT_API_KEY=your-value --env MOONSHOT_BASE_URL=your-value --env MOONSHOT_MODELS=your-value --env MOONSHOT_NAMES=your-value --env MOONSHOT_STRENGTHS=your-value --env MOONSHOT_CONTEXT=your-value --env MOONSHOT_MAX_OUTPUT=your-value --env MOONSHOT_TOOLS=your-value --env MOONSHOT_COST_IN=your-value --env MOONSHOT_COST_OUT=your-value --env MOONSHOT_TIER=your-value --env OLLAMA_BASE_URL=your-value --env OLLAMA_API_KEY=your-value --env OLLAMA_MODELS=your-value --env OLLAMA_NAMES=your-value --env OLLAMA_STRENGTHS=your-value --env OLLAMA_CONTEXT=your-value --env OLLAMA_MAX_OUTPUT=your-value --env OLLAMA_TOOLS=your-value --env OLLAMA_COST_IN=your-value --env OLLAMA_COST_OUT=your-value --env OLLAMA_TIER=your-value --env CLAUDE_CODE_ENABLED=your-value --env CLAUDE_CODE_MODELS=your-value --env CLAUDE_CODE_TIER=your-value --env CLAUDE_CODE_MAX_OUTPUT=your-value --env CLAUDE_CODE_TIMEOUT=your-value --env CLAUDE_CODE_SYSTEM_PROMPT_MODE=your-value --env CODEX_ENABLED=your-value --env CODEX_MODELS=your-value --env CODEX_TIER=your-value --env CODEX_CONTEXT=your-value --env CODEX_MAX_OUTPUT=your-value --env CODEX_COST_IN=your-value --env CODEX_COST_OUT=your-value --env CODEX_TIMEOUT=your-value --env OPENAI_COMPAT_BASE_URL=your-value --env OPENAI_COMPAT_KEY=your-value --env OPENAI_COMPAT_MODEL=your-value --env OPENAI_COMPAT_NAME=your-value --env OPENAI_COMPAT_STRENGTHS=your-value --env OPENAI_COMPAT_CONTEXT=your-value --env OPENAI_COMPAT_MAX_OUTPUT=your-value --env OPENAI_COMPAT_TOOLS=your-value --env OPENAI_COMPAT_COST_IN=your-value --env OPENAI_COMPAT_COST_OUT=your-value --env OPENAI_COMPAT_TIER=your-value --env OPENAI_COMPAT_2_BASE_URL=your-value --env OPENAI_COMPAT_2_KEY=your-value --env OPENAI_COMPAT_2_MODEL=your-value --env OPENAI_COMPAT_2_NAME=your-value --env OPENAI_COMPAT_2_STRENGTHS=your-value --env OPENAI_COMPAT_2_CONTEXT=your-value --env OPENAI_COMPAT_2_MAX_OUTPUT=your-value --env OPENAI_COMPAT_2_TOOLS=your-value --env OPENAI_COMPAT_2_COST_IN=your-value --env OPENAI_COMPAT_2_COST_OUT=your-value --env OPENAI_COMPAT_2_TIER=your-value --env OPENAI_COMPAT_3_BASE_URL=your-value --env OPENAI_COMPAT_3_KEY=your-value --env OPENAI_COMPAT_3_MODEL=your-value --env OPENAI_COMPAT_3_NAME=your-value --env OPENAI_COMPAT_3_STRENGTHS=your-value --env OPENAI_COMPAT_3_CONTEXT=your-value --env OPENAI_COMPAT_3_MAX_OUTPUT=your-value --env OPENAI_COMPAT_3_TOOLS=your-value --env OPENAI_COMPAT_3_COST_IN=your-value --env OPENAI_COMPAT_3_COST_OUT=your-value --env OPENAI_COMPAT_3_TIER=your-value --env VOLANTE_QUALITY_PROFILES_FILE=your-value --env VOLANTE_MODEL_OVERRIDES_FILE=your-value --env VOLANTE_FETCH_ALLOWLIST=your-value --env VOLANTE_READ_ROOT=your-value --env VOLANTE_SANDBOX=your-value --env VOLANTE_MAX_SUBSCRIPTION_CALLS=your-value -- uvx volanteFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"volante": {
"command": "uvx",
"args": [
"volante"
],
"env": {
"ANTHROPIC_API_KEY": "your-value",
"ANTHROPIC_MODELS": "your-value",
"ANTHROPIC_NAMES": "your-value",
"ANTHROPIC_STRENGTHS": "your-value",
"ANTHROPIC_CONTEXT": "your-value",
"ANTHROPIC_MAX_OUTPUT": "your-value",
"ANTHROPIC_TOOLS": "your-value",
"ANTHROPIC_COST_IN": "your-value",
"ANTHROPIC_COST_OUT": "your-value",
"ANTHROPIC_TIER": "your-value",
"MOONSHOT_API_KEY": "your-value",
"MOONSHOT_BASE_URL": "your-value",
"MOONSHOT_MODELS": "your-value",
"MOONSHOT_NAMES": "your-value",
"MOONSHOT_STRENGTHS": "your-value",
"MOONSHOT_CONTEXT": "your-value",
"MOONSHOT_MAX_OUTPUT": "your-value",
"MOONSHOT_TOOLS": "your-value",
"MOONSHOT_COST_IN": "your-value",
"MOONSHOT_COST_OUT": "your-value",
"MOONSHOT_TIER": "your-value",
"OLLAMA_BASE_URL": "your-value",
"OLLAMA_API_KEY": "your-value",
"OLLAMA_MODELS": "your-value",
"OLLAMA_NAMES": "your-value",
"OLLAMA_STRENGTHS": "your-value",
"OLLAMA_CONTEXT": "your-value",
"OLLAMA_MAX_OUTPUT": "your-value",
"OLLAMA_TOOLS": "your-value",
"OLLAMA_COST_IN": "your-value",
"OLLAMA_COST_OUT": "your-value",
"OLLAMA_TIER": "your-value",
"CLAUDE_CODE_ENABLED": "your-value",
"CLAUDE_CODE_MODELS": "your-value",
"CLAUDE_CODE_TIER": "your-value",
"CLAUDE_CODE_MAX_OUTPUT": "your-value",
"CLAUDE_CODE_TIMEOUT": "your-value",
"CLAUDE_CODE_SYSTEM_PROMPT_MODE": "your-value",
"CODEX_ENABLED": "your-value",
"CODEX_MODELS": "your-value",
"CODEX_TIER": "your-value",
"CODEX_CONTEXT": "your-value",
"CODEX_MAX_OUTPUT": "your-value",
"CODEX_COST_IN": "your-value",
"CODEX_COST_OUT": "your-value",
"CODEX_TIMEOUT": "your-value",
"OPENAI_COMPAT_BASE_URL": "your-value",
"OPENAI_COMPAT_KEY": "your-value",
"OPENAI_COMPAT_MODEL": "your-value",
"OPENAI_COMPAT_NAME": "your-value",
"OPENAI_COMPAT_STRENGTHS": "your-value",
"OPENAI_COMPAT_CONTEXT": "your-value",
"OPENAI_COMPAT_MAX_OUTPUT": "your-value",
"OPENAI_COMPAT_TOOLS": "your-value",
"OPENAI_COMPAT_COST_IN": "your-value",
"OPENAI_COMPAT_COST_OUT": "your-value",
"OPENAI_COMPAT_TIER": "your-value",
"OPENAI_COMPAT_2_BASE_URL": "your-value",
"OPENAI_COMPAT_2_KEY": "your-value",
"OPENAI_COMPAT_2_MODEL": "your-value",
"OPENAI_COMPAT_2_NAME": "your-value",
"OPENAI_COMPAT_2_STRENGTHS": "your-value",
"OPENAI_COMPAT_2_CONTEXT": "your-value",
"OPENAI_COMPAT_2_MAX_OUTPUT": "your-value",
"OPENAI_COMPAT_2_TOOLS": "your-value",
"OPENAI_COMPAT_2_COST_IN": "your-value",
"OPENAI_COMPAT_2_COST_OUT": "your-value",
"OPENAI_COMPAT_2_TIER": "your-value",
"OPENAI_COMPAT_3_BASE_URL": "your-value",
"OPENAI_COMPAT_3_KEY": "your-value",
"OPENAI_COMPAT_3_MODEL": "your-value",
"OPENAI_COMPAT_3_NAME": "your-value",
"OPENAI_COMPAT_3_STRENGTHS": "your-value",
"OPENAI_COMPAT_3_CONTEXT": "your-value",
"OPENAI_COMPAT_3_MAX_OUTPUT": "your-value",
"OPENAI_COMPAT_3_TOOLS": "your-value",
"OPENAI_COMPAT_3_COST_IN": "your-value",
"OPENAI_COMPAT_3_COST_OUT": "your-value",
"OPENAI_COMPAT_3_TIER": "your-value",
"VOLANTE_QUALITY_PROFILES_FILE": "your-value",
"VOLANTE_MODEL_OVERRIDES_FILE": "your-value",
"VOLANTE_FETCH_ALLOWLIST": "your-value",
"VOLANTE_READ_ROOT": "your-value",
"VOLANTE_SANDBOX": "your-value",
"VOLANTE_MAX_SUBSCRIPTION_CALLS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"volante": {
"type": "stdio",
"command": "uvx",
"args": [
"volante"
],
"env": {
"ANTHROPIC_API_KEY": "your-value",
"ANTHROPIC_MODELS": "your-value",
"ANTHROPIC_NAMES": "your-value",
"ANTHROPIC_STRENGTHS": "your-value",
"ANTHROPIC_CONTEXT": "your-value",
"ANTHROPIC_MAX_OUTPUT": "your-value",
"ANTHROPIC_TOOLS": "your-value",
"ANTHROPIC_COST_IN": "your-value",
"ANTHROPIC_COST_OUT": "your-value",
"ANTHROPIC_TIER": "your-value",
"MOONSHOT_API_KEY": "your-value",
"MOONSHOT_BASE_URL": "your-value",
"MOONSHOT_MODELS": "your-value",
"MOONSHOT_NAMES": "your-value",
"MOONSHOT_STRENGTHS": "your-value",
"MOONSHOT_CONTEXT": "your-value",
"MOONSHOT_MAX_OUTPUT": "your-value",
"MOONSHOT_TOOLS": "your-value",
"MOONSHOT_COST_IN": "your-value",
"MOONSHOT_COST_OUT": "your-value",
"MOONSHOT_TIER": "your-value",
"OLLAMA_BASE_URL": "your-value",
"OLLAMA_API_KEY": "your-value",
"OLLAMA_MODELS": "your-value",
"OLLAMA_NAMES": "your-value",
"OLLAMA_STRENGTHS": "your-value",
"OLLAMA_CONTEXT": "your-value",
"OLLAMA_MAX_OUTPUT": "your-value",
"OLLAMA_TOOLS": "your-value",
"OLLAMA_COST_IN": "your-value",
"OLLAMA_COST_OUT": "your-value",
"OLLAMA_TIER": "your-value",
"CLAUDE_CODE_ENABLED": "your-value",
"CLAUDE_CODE_MODELS": "your-value",
"CLAUDE_CODE_TIER": "your-value",
"CLAUDE_CODE_MAX_OUTPUT": "your-value",
"CLAUDE_CODE_TIMEOUT": "your-value",
"CLAUDE_CODE_SYSTEM_PROMPT_MODE": "your-value",
"CODEX_ENABLED": "your-value",
"CODEX_MODELS": "your-value",
"CODEX_TIER": "your-value",
"CODEX_CONTEXT": "your-value",
"CODEX_MAX_OUTPUT": "your-value",
"CODEX_COST_IN": "your-value",
"CODEX_COST_OUT": "your-value",
"CODEX_TIMEOUT": "your-value",
"OPENAI_COMPAT_BASE_URL": "your-value",
"OPENAI_COMPAT_KEY": "your-value",
"OPENAI_COMPAT_MODEL": "your-value",
"OPENAI_COMPAT_NAME": "your-value",
"OPENAI_COMPAT_STRENGTHS": "your-value",
"OPENAI_COMPAT_CONTEXT": "your-value",
"OPENAI_COMPAT_MAX_OUTPUT": "your-value",
"OPENAI_COMPAT_TOOLS": "your-value",
"OPENAI_COMPAT_COST_IN": "your-value",
"OPENAI_COMPAT_COST_OUT": "your-value",
"OPENAI_COMPAT_TIER": "your-value",
"OPENAI_COMPAT_2_BASE_URL": "your-value",
"OPENAI_COMPAT_2_KEY": "your-value",
"OPENAI_COMPAT_2_MODEL": "your-value",
"OPENAI_COMPAT_2_NAME": "your-value",
"OPENAI_COMPAT_2_STRENGTHS": "your-value",
"OPENAI_COMPAT_2_CONTEXT": "your-value",
"OPENAI_COMPAT_2_MAX_OUTPUT": "your-value",
"OPENAI_COMPAT_2_TOOLS": "your-value",
"OPENAI_COMPAT_2_COST_IN": "your-value",
"OPENAI_COMPAT_2_COST_OUT": "your-value",
"OPENAI_COMPAT_2_TIER": "your-value",
"OPENAI_COMPAT_3_BASE_URL": "your-value",
"OPENAI_COMPAT_3_KEY": "your-value",
"OPENAI_COMPAT_3_MODEL": "your-value",
"OPENAI_COMPAT_3_NAME": "your-value",
"OPENAI_COMPAT_3_STRENGTHS": "your-value",
"OPENAI_COMPAT_3_CONTEXT": "your-value",
"OPENAI_COMPAT_3_MAX_OUTPUT": "your-value",
"OPENAI_COMPAT_3_TOOLS": "your-value",
"OPENAI_COMPAT_3_COST_IN": "your-value",
"OPENAI_COMPAT_3_COST_OUT": "your-value",
"OPENAI_COMPAT_3_TIER": "your-value",
"VOLANTE_QUALITY_PROFILES_FILE": "your-value",
"VOLANTE_MODEL_OVERRIDES_FILE": "your-value",
"VOLANTE_FETCH_ALLOWLIST": "your-value",
"VOLANTE_READ_ROOT": "your-value",
"VOLANTE_SANDBOX": "your-value",
"VOLANTE_MAX_SUBSCRIPTION_CALLS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
ANTHROPIC_MODELS envANTHROPIC_NAMES envANTHROPIC_STRENGTHS envANTHROPIC_CONTEXT envANTHROPIC_MAX_OUTPUT envANTHROPIC_TOOLS envANTHROPIC_COST_IN envANTHROPIC_COST_OUT envANTHROPIC_TIER envMOONSHOT_BASE_URL envMOONSHOT_MODELS envMOONSHOT_NAMES envMOONSHOT_STRENGTHS envMOONSHOT_CONTEXT envMOONSHOT_MAX_OUTPUT envMOONSHOT_TOOLS envMOONSHOT_COST_IN envMOONSHOT_COST_OUT envMOONSHOT_TIER envOLLAMA_BASE_URL envOLLAMA_MODELS envOLLAMA_NAMES envOLLAMA_STRENGTHS envOLLAMA_CONTEXT envOLLAMA_MAX_OUTPUT envOLLAMA_TOOLS envOLLAMA_COST_IN envOLLAMA_COST_OUT envOLLAMA_TIER envCLAUDE_CODE_ENABLED envCLAUDE_CODE_MODELS envCLAUDE_CODE_TIER envCLAUDE_CODE_MAX_OUTPUT envCLAUDE_CODE_TIMEOUT envCLAUDE_CODE_SYSTEM_PROMPT_MODE envCODEX_ENABLED envCODEX_MODELS envCODEX_TIER envCODEX_CONTEXT envCODEX_MAX_OUTPUT envCODEX_COST_IN envCODEX_COST_OUT envCODEX_TIMEOUT envOPENAI_COMPAT_BASE_URL envOPENAI_COMPAT_MODEL envOPENAI_COMPAT_NAME envOPENAI_COMPAT_STRENGTHS envOPENAI_COMPAT_CONTEXT envOPENAI_COMPAT_MAX_OUTPUT envOPENAI_COMPAT_TOOLS envOPENAI_COMPAT_COST_IN envOPENAI_COMPAT_COST_OUT envOPENAI_COMPAT_TIER envOPENAI_COMPAT_2_BASE_URL envOPENAI_COMPAT_2_MODEL envOPENAI_COMPAT_2_NAME envOPENAI_COMPAT_2_STRENGTHS envOPENAI_COMPAT_2_CONTEXT envOPENAI_COMPAT_2_MAX_OUTPUT envOPENAI_COMPAT_2_TOOLS envOPENAI_COMPAT_2_COST_IN envOPENAI_COMPAT_2_COST_OUT envOPENAI_COMPAT_2_TIER envOPENAI_COMPAT_3_BASE_URL envOPENAI_COMPAT_3_MODEL envOPENAI_COMPAT_3_NAME envOPENAI_COMPAT_3_STRENGTHS envOPENAI_COMPAT_3_CONTEXT envOPENAI_COMPAT_3_MAX_OUTPUT envOPENAI_COMPAT_3_TOOLS envOPENAI_COMPAT_3_COST_IN envOPENAI_COMPAT_3_COST_OUT envOPENAI_COMPAT_3_TIER envVOLANTE_QUALITY_PROFILES_FILE envVOLANTE_MODEL_OVERRIDES_FILE envVOLANTE_FETCH_ALLOWLIST envVOLANTE_READ_ROOT envVOLANTE_SANDBOX envVOLANTE_MAX_SUBSCRIPTION_CALLS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account ribato22, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: ANTHROPIC_API_KEY, MOONSHOT_API_KEY, OLLAMA_API_KEY, OPENAI_COMPAT_KEY, OPENAI_COMPAT_2_KEY, OPENAI_COMPAT_3_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.10.0) reached the registry 3 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, NexusWindows
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Windows computer use in the background: desktop apps driven without your mouse or keyboard.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
A transparent, user-owned model router that checks its own answers (alpha). Volante routes a goal across the models *you* configured — enforcing hard capabilities first, ranking the rest on explainable metadata and evaluation evidence — and can then verify the result by RUNNING it: assertions derived from your goal, executed in a sandbox, reported check by check. Inventory, policy, credentials and decision traces stay on your machine. By default it answers in ONE call — across 72 paired runs, planning and synthesising scored -0.047 against that [95% CI -0.135, +0.041] at 8.8x the cost, so the interval bounds its best case near +0.04. --orchestrate opts back into the task DAG for the work that genuinely needs a tool loop, which one call cannot do.
What the measurements say, including the parts that do not flatter it. This project runs a 3-arm eval against itself and publishes the losses. Orchestration does not reliably beat a single strong model: an earlier release of this README claimed +0.289 at p<0.005, it failed to reproduce, and on the goal built to give decomposition headroom a stronger model in the same family scores 0.958 alone. Four predictive gates, a repair pass and a model-escalation policy were all built, measured, and discarded. What survived every test is narrower and real — the router, the reliability work (unparsable output 2 runs in 8 -> 0 in 8), and the verifier. Full numbers, method and corrections: eval/artifacts/README.md.
Selection quality is an evidence-based prediction, not a claim of a universal winner. Volante does not yet ship published representative cross-provider benchmarks or automatic score calibration. Built without an orchestration framework (no LangChain / CrewAI / LiteLLM).
A *volante* steers the game: the deep-lying midfielder who reads the whole pitch and sends the
ball where it does the most good — then takes it back. One mind, many players.
quality, local, cheap, and cash_protect_quota are distinct routing objectives.AnthropicProvider and a generic OpenAICompatProvider speak to Anthropic, Google AI Studio (Gemini), Groq, OpenRouter, DeepSeek, Moonshot (Kimi), local Ollama, and any other OpenAI-compatible endpoint. The inventory and credentials stay in the user's environment.run_python in a Docker-isolated sandbox when a daemon is available, withheld when none is — plus host-mediated fetch_url / read_file).volante --verify derives assert statements from your goal, runs them against the result in the sandbox, and prints which passed and which failed — with the check text, not a badge, because a failing check is often the CHECK being wrong and only the line shows that. It reports three states, including "not enough evidence" when your goal states no expected result. Measured: 0 false positives and 0 false negatives across 8 goals against a coarse defect, 5 of 6 caught against edit-shaped ones. A clean report is evidence, not a guarantee.CostMeter tallies per-model usage and cost, and propagates an *estimated* flag when a provider returns no usage.FakeProvider + local subprocesses), ruff-clean, mypy-clean.flowchart TD
goal(["goal"]) --> S["Supervisor plan → validated task DAG (acyclic · typed · one_shot | agentic)"] S --> R["Router best predicted fit per task (hard constraints → explainable score)"] R --> P subgraph wave["wave execution · asyncio fan-out · fail-fast"] direction TB P["Projector scoped, budget-capped request (system + task + deps)"] P --> W["Worker one-shot"] P --> AW["AgenticWorker model ↔ tool loop (run_python · fetch_url · read_file)"] end W --> BB[("Blackboard append-only · provenance · latest-wins")] AW --> BB BB --> SY["Synthesizer combine artifacts → final answer"] SY --> result(["result
classDef io stroke:#8b5cf6,stroke-width:2px; classDef store stroke:#f59e0b,stroke-width:2px; class goal,result io; class BB store;
Text version (renders anywhere, e.g. PyPI or a terminal)
┌──────────────┐
goal ──────────► │ Supervisor │ plan → validated task DAG (acyclic, typed, one_shot|agentic) └──────┬───────┘ ▼ ┌──────────────┐ per task: hard-capability filter, then rank the │ Router │ predicted fit from configured evidence └──────┬───────┘ ▼ ┌───────────── wave execution (asyncio, fan-out cap, fail-fast) ─────────────┐ │ ┌───────────┐ scoped, budget-capped request (system + task + deps) │ │ │ Projector │──────────────────────────────────────────────────────────► │ │ └───────────┘ │ │ ▼ ▼ │ │ ┌─────────┐ one-shot ┌───────────────┐ model↔tool loop │ │ │ Worker │ │ AgenticWorker │ (run_python sandbox, │ │ └────┬────┘ └───────┬───────┘ fetch_url, read_file) │ │ └──────────────┬──────────────────┘ │ └───────────────────────┼───────────────────────────────────────────────────┘ ▼ ┌──────────────────────┐ append-only, provenance, latest-wins │ Blackboard │◄────────────────────────────────────── └──────────┬───────────┘ ▼ ┌──────────────┐ │ Synthesizer │ combine artifacts → final answer └──────┬───────┘ ▼ result (+ CostMeter totals, usage, duration)
| Component | File | Responsibility |
|---|---|---|
| Supervisor | src/volante/supervisor.py | Decompose goal → validated task DAG |
| Router | src/volante/router.py | Whole inventory → eligible candidates → explainable ranking |
| Projector | src/volante/projector.py | Scoped, budget-capped request from blackboard artifacts |
| Worker | src/volante/worker.py | One-shot model call |
| AgenticWorker | src/volante/agent.py | Model↔tool loop with per-turn records |
| Blackboard | src/volante/blackboard.py | Append-only shared state with provenance |
| Synthesizer | src/volante/synthesizer.py | Artifacts → final answer |
| Runtime | src/volante/runtime.py | Orchestrate: plan → waves → synthesize (streaming, fail-fast) |
| Providers | src/volante/providers/ | Anthropic + OpenAI-compatible adapters (complete/stream/tools) |
| Tools | src/volante/tools/ | Sandbox / DockerSandbox, run_python, fetch_url, read_file |
| Eval | eval/ | 7 goals (5 katas + 2 multi-part), 3-arm comparison, forgery-resistant scorer |
Requires Python 3.11.10+ (the floor is a security boundary — see Providers).
Install it:
pip install volante # the CLI and the library
pip install "volante[mcp]" # ...plus the MCP server, for IDE use volante --version volante --list-models # what your environment currently offers, offline
volante needs at least one configured provider before it can run a goal — see Providers for the two-line setup. Until then --list-models and --help work and everything else will tell you what is missing.
Or work on it: the clone gives you the tests, the Web UI, and a zero-key demo that the wheel deliberately does not ship.
git clone https://github.com/ribato22/volante
cd volante uv sync --dev # install deps + dev tools uv run pytest # 1200+ tests, no network uv run ruff check . # lint
uv run python examples/fake_provider.py
Then configure at least one real provider (see Providers) and run a demo:
cp .env.example .env # fill in one provider, then `set -a; . .env; set +a`
uv run python demo.py # show detected providers uv run python demo.py orchestrate # full supervisor → workers → synth, streamed live uv run python demo.py agentic # one cross-provider agentic coding task (run_python loop) uv run python demo.py eval # 3-arm eval suite
demo.py orchestrate streams every phase live, then prints the result (illustrative):
Orchestrate demo — planner/synth model=openai/gpt-4o-mini
(planning + workers + synthesis stream live) [haiku] Threads run as one— / tasks bloom in parallel time, / the join gathers all.
STATUS: success
FINAL: Threads run as one— tasks bloom in parallel time, the join gathers all.
cost: $0.001834
demo.py eval prints the 3-arm table (format_report). Here is what it actually printed on the last full run:
GOAL WINNER BASE ORCH AGEN
slugify baseline 1.00
Only the beginning is shown; read the rest in the repo