MCP Servers
Vox MCP: Multi-Model AI Gateway
Vox lets an MCP client ask several model providers without adding hidden instructions.
The right model for the right question beats the best model for every question.
Vox MCP is a multi-model AI gateway that lets you access any AI provider directly from Claude Code, Claude Desktop, Cursor, or any MCP client. Unlike other multi-model tools, Vox uses a pure passthrough design: prompts go to providers unmodified and responses come back unmodified. No system prompt injection, no response formatting, no behavioral directives.
MCP SERVERXule LinPython / uv
Minimal intervention. The only value Vox adds is routing and conversation memory. Everything else is pure passthrough.
Current release: 0.9.0 (opens in a new tab). Install the published package with uvx vox-mcp or pin it with uvx vox-mcp@0.9.0. Check saved model names after upgrading. listmodels reports configured choices, not provider liveness: some configured IDs may be retired or absent from their gateway catalogue. Check the actual provider or gateway lifecycle notice before reusing a saved selection.
Why it matters
When you're working in Claude Code and want a second opinion from Gemini, GPT, GLM, Kimi, or DeepSeek, you'd normally have to switch applications. Vox lets you query any model without leaving your current workflow.
The difference from alternatives: Most multi-model tools inject their own system prompts or modify your messages. Vox doesn't. What you send is what the model receives.
Supported providers
| Provider | Env Variable |
|---|---|
| Google Gemini | GEMINI_API_KEY |
| OpenAI | OPENAI_API_KEY |
| Anthropic | ANTHROPIC_API_KEY |
| xAI | XAI_API_KEY |
| DeepSeek | DEEPSEEK_API_KEY |
| Moonshot (Kimi) | MOONSHOT_API_KEY |
| OpenRouter | OPENROUTER_API_KEY |
| Cloudflare AI Gateway | CLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID |
| Vercel AI Gateway | VERCEL_AI_GATEWAY_API_KEY or AI_GATEWAY_API_KEY |
| Custom/Local | CUSTOM_API_URL |
You only need API keys for providers you want to use. Vox works with any subset.
Tools
Vox provides three tools through the MCP protocol:
chat
Send prompts to any supported model with optional file or image attachments.
"Use vox chat with gemini-3.8-flash:
Compare these two theoretical frameworks and identify tensions..."listmodels
Show the configured catalog, aliases, capabilities, and allowlist restrictions for that Vox process. Provider configuration and local registries decide this output; it does not validate credentials, billing, or model entitlement. Gateway availability is not probed. Check the provider or gateway's documentation for the exact route, and verify account access separately before relying on it.
dump_threads
Export conversation threads as JSON or Markdown. This is useful for documenting multi-model analysis.
Multi-turn conversations
Vox supports persistent threads via continuation_id. This means you can:
- Start a conversation with Gemini about a theoretical framework
- Continue the same thread with follow-up questions
- Switch to DeepSeek mid-conversation to get a different perspective
- Export the entire multi-model dialogue
Vox automatically saves threads to disk as JSONL for durability. You can export threads as Markdown.
Research workflows
Compare perspectives on the same research question:
Ask the same analytical question to 3-4 models and compare their responses. Each model brings different strengths: Claude for nuanced interpretation, Gemini for large-context synthesis, DeepSeek for cost-effective exploration.
This is particularly valuable for:
- Theory development (different models foreground different tensions)
- Literature gap identification
- Methodological critique
Host support
Vox is a standard stdio MCP server, so it runs anywhere MCP runs.
| Host | Support | Notes |
|---|---|---|
| Claude Code (CLI) | Full support | `claude mcp add` or project `.mcp.json` |
| Claude Code (Desktop "Code" tab) | Full support | Same `.mcp.json` as the CLI |
| Claude Desktop (chat) | Full support | `claude_desktop_config.json` |
| Codex CLI / Codex Desktop | Full support | `codex mcp add vox -- uv run --directory /path/to/vox python server.py` |
| Cursor / Windsurf / VS Code | Full support | Standard `mcp.json` / `mcp_config.json` |
| Cherry Studio, Witsy, other MCP clients | Full support | Standard MCP server entry — same args block as the configs below |
The exact config blocks for the common hosts live in the Installation section.
Install
Two ways to set Vox up:
- Published package — use
uvx vox-mcpin the MCP client configuration below; pinvox-mcp@0.9.0when reproducibility matters. - Manually — clone, configure
.env, register with your MCP client. See the steps below. - Via Carrel — run
/carrel-setupand answer yes when the interview asks about multi-model access (Gemini, GPT, Grok, Kimi, …). Carrel adds Vox at project level and prompts for at least one provider API key.
The manual path is host-agnostic; the Carrel path is Claude Code-only but skips the config steps.
Setup
Clone and install
git clone https://github.com/linxule/vox-mcp.git
cd vox-mcp
uv syncConfigure API keys
cp .env.example .env
# Edit .env — add at least one provider API keyTest the server
uv run python server.pyAdd to your MCP client
See the configuration tabs below for your specific client.
For a published-package configuration, use uvx instead of a source checkout:
{
"mcpServers": {
"vox-mcp": {
"command": "uvx",
"args": ["vox-mcp@0.9.0"],
"env": {
"OPENAI_API_KEY": "your-key-here"
}
}
}
}MCP client configuration
Vox runs as a stdio MCP server. Replace /path/to/vox-mcp with the absolute path to your cloned repo.
Via CLI:
claude mcp add vox-mcp \
-e GEMINI_API_KEY=your-key-here \
-- uv run --directory /path/to/vox-mcp python server.pyOr add to .mcp.json in your project root:
{
"mcpServers": {
"vox-mcp": {
"command": "uv",
"args": ["run", "--directory", "/path/to/vox-mcp", "python", "server.py"],
"env": {
"GEMINI_API_KEY": "your-key-here"
}
}
}
}Tip
API keys can live in either the MCP client config or the .env file inside the vox-mcp directory (loaded automatically). If both are set and conflict, add VOX_FORCE_ENV_OVERRIDE=true to .env to prefer your local values.
Configuration options
Beyond API keys, Vox supports several configuration options in .env; the repository's .env.example is the full reference:
DEFAULT_MODEL
Set to auto (default) to let the agent pick the best model, or specify a model name like gpt-6-astra to always route to that model.
CONVERSATION_TIMEOUT_HOURS
How long conversation threads stay alive. Default: 24 hours. Threads expire after this period of inactivity.
MAX_CONVERSATION_TURNS
Maximum number of turns per conversation thread. Default: 100. Prevents runaway threads from consuming memory.
Model Restrictions
Per-provider allowlists like GOOGLE_ALLOWED_MODELS, OPENAI_ALLOWED_MODELS, etc. Restrict which models are available to prevent unintended requests to expensive models.
Saved defaults and gateway routes
Vox 0.9 retains the ability to persist a model preference without editing the MCP client file:
uvx vox-mcp config set-default gpt-6-astra
uvx vox-mcp config showUse listmodels in the connected client to see the model catalog configured for that
process. A saved default is a preference, not a provider-access check; explicit
chat.model values and continued-thread models take precedence.
Restart or reconnect Vox after changing the saved default. A DEFAULT_MODEL
value in the MCP server process environment overrides the saved setting.
config show reports its own launch environment, which may differ from the MCP client's.
Cloudflare and Vercel AI Gateway routes use an explicit first prefix, for example
cloudflare/openai/gpt-5.5 or vercel/anthropic/claude-sonnet-4.6. Vox keeps the
prefix in conversation memory, refuses an unconfigured or disallowed gateway, and
does not silently fall through to another provider. Gateway requests currently
support text only; native-provider IDs and gateway IDs remain distinct.
Provider behavior notes
- Vox routes Gemini requests through Google's Interactions API when available, using it statelessly (
store=false) so Vox still owns conversation memory. Image inputs and failed Interactions attempts fall back togenerateContent; setVOX_GEMINI_USE_INTERACTIONS=falseto skip the Interactions path. - Gemini thinking controls differ by API surface. Gemini 3 uses
thinking_level; Gemini 2.x still has thinking support, but the Interactions path maps Vox'sthinking_modeto the levels that API accepts. - Vox omits temperature unless the caller explicitly supplies one. That preserves provider defaults for models where changing temperature is discouraged or unsupported.
Part of Research Memex
Vox integrates naturally with other Research Memex tools:
- Interpretive Orchestration Plugin — Multi-model triangulation during qualitative analysis
- Kimi Plugin for Claude Code — For full delegation/review jobs rather than one-shot consults
- Claude Code Setup Guide — Your primary research environment
- AI Model Reference Guide — Understanding which models to query for what
cite this page
Lin, X. (2026). Vox MCP: Multi-Model AI Gateway. Research Memex. https://research-memex.org/docs/toolkit/vox-mcp
@misc{docs-toolkit-vox-mcp-2026,
author = {Xule Lin},
title = {Vox MCP: Multi-Model AI Gateway},
year = {2026},
howpublished = {\url{https://research-memex.org/docs/toolkit/vox-mcp}},
note = {ORCID: 0000-0001-7885-4194}
}one renderingthe source remains