Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Routes to the best predicted fit from configured metadata/evidence after hard-capability filtering.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
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_CALLS비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 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"
}
}
}
}터미널에서 이 명령어를 실행하세요
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 volante실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.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"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"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"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
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 env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 ribato22 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: ANTHROPIC_API_KEY, MOONSHOT_API_KEY, OLLAMA_API_KEY, OPENAI_COMPAT_KEY, OPENAI_COMPAT_2_KEY, OPENAI_COMPAT_3_KEY
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.10.0)은 3개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, OpenTakeoff
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
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.
Construction takeoff for AI agents: load plans, set scale, measure, count, export with provenance.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요