loading…
Search for a command to run...
loading…
A universal MCP server for spawning agents with any OpenAI-compatible LLM, supporting cloud and local models, and integrating with Claude Code, OpenCode, and Co
A universal MCP server for spawning agents with any OpenAI-compatible LLM, supporting cloud and local models, and integrating with Claude Code, OpenCode, and Codex CLI.
Universal MCP server for any OpenAI-compatible LLM. Supports OpenAI and Anthropic API formats, cloud providers (OpenAI, Grok, Claude, Minimax, DeepSeek) and local models (Ollama, LM Studio, Jan). Built on FastMCP with pure httpx.
# No install needed — run directly with uvx
export MINIMAX_TOKEN=your-token
uvx agent-spawn-mcp spawn \
--name minimax \
--url https://api.minimax.io/anthropic/v1 \
--token-env MINIMAX_TOKEN \
--model MiniMax-M2.7 \
--api-type anthropic
Or install globally:
pip install agent-spawn-mcp
agent-spawn-mcp spawn --name minimax --url https://api.minimax.io --token-env MINIMAX_TOKEN --model MiniMax-M2.7
--api-type openai (default) — OpenAI-compatible (chat/completions)--api-type anthropic — Anthropic API (v1/messages)Pass --url pointing directly at the API root. If your base URL already contains
a version segment (e.g. …/paas/v4), the client will not re-append v1/.
Examples:
| Provider | --url |
--api-type |
|---|---|---|
| OpenAI | https://api.openai.com/v1 |
openai |
| Grok | https://api.x.ai/v1 |
openai |
| z.ai (primary) | https://api.z.ai/api/paas/v4 |
openai |
| z.ai (coding) | https://api.z.ai/api/coding/paas/v4 |
openai |
| z.ai Anthropic | https://api.z.ai/api/anthropic |
anthropic |
| Anthropic | https://api.anthropic.com |
anthropic |
| Minimax | https://api.minimax.io/anthropic/v1 |
anthropic |
Add to your .mcp.json:
{
"mcpServers": {
"minimax-agent": {
"command": "uvx",
"args": ["agent-spawn-mcp", "spawn",
"--name", "minimax",
"--url", "https://api.minimax.io/anthropic/v1",
"--token", "your-minimax-token",
"--model", "MiniMax-M2.7",
"--api-type", "anthropic"]
},
"claude-agent": {
"command": "uvx",
"args": ["agent-spawn-mcp", "spawn",
"--name", "claude",
"--url", "https://api.anthropic.com",
"--token", "your-anthropic-token",
"--model", "claude-sonnet-4-20250514",
"--api-type", "anthropic"]
},
"glm-agent": {
"command": "uvx",
"args": ["agent-spawn-mcp", "spawn",
"--name", "glm",
"--url", "https://api.z.ai/api/paas/v4",
"--token", "your-zai-token",
"--model", "glm-5.1"]
},
"glm-turbo-agent": {
"command": "uvx",
"args": ["agent-spawn-mcp", "spawn",
"--name", "glm-turbo",
"--url", "https://api.z.ai/api/paas/v4",
"--token", "your-zai-token",
"--model", "glm-5-turbo"]
}
}
}
Gotchas:
.mcp.json must use a unique --name — it becomes the tool
name {name}_agent, and duplicates collide.--token on the command line is visible in ps output and some crash logs.
Prefer keeping the MCP config file read-protected (chmod 600).Codex can register stdio MCP servers with codex mcp add.
For a Minimax Anthropic-compatible agent:
export MINIMAX_TOKEN=your-minimax-token
codex mcp add minimax-agent -- \
uvx agent-spawn-mcp spawn \
--name minimax \
--url https://api.minimax.io/anthropic/v1 \
--token-env MINIMAX_TOKEN \
--model MiniMax-M2.7 \
--api-type anthropic
For z.ai GLM through the OpenAI-compatible API:
export ZAI_TOKEN=your-zai-token
codex mcp add glm-agent -- \
uvx agent-spawn-mcp spawn \
--name glm \
--url https://api.z.ai/api/paas/v4 \
--token-env ZAI_TOKEN \
--model glm-5.1
Verify the registration:
codex mcp list
codex mcp get minimax-agent
Restart Codex from a shell where the token env var is set. The tool exposed to
Codex is named from --name, for example minimax_agent or glm_agent.
If you need Codex to store the env var with the MCP server config, add
--env MINIMAX_TOKEN="$MINIMAX_TOKEN" before --. This is convenient, but it
stores the secret in Codex config. Passing --token directly also works, but
stores the token in the command args.
{name}_agent(task, model?, system_prompt?, temperature?, max_tokens?, timeout?) — Spawn agentagent_info() — Get provider infomax_tokens behaviourThe client imposes no cap. Behaviour when max_tokens is omitted depends
on --api-type:
openai — the field is simply not sent; the provider falls back to its
own default (usually the model's full output budget). Reasoning models like
GLM-5.x can burn huge amounts on chain-of-thought, so pass an explicit
limit for short tasks.
anthropic — the Anthropic API requires the field, so when you omit
it the client fills in a safe default of 16384. Override when you
need more or want to cap spend:
claude_agent(task="summarise this PR") # uses 16384
claude_agent(task="exhaustive review", max_tokens=64000) # bigger
claude_agent(task="ping", max_tokens=256) # cheaper
Typical values:
| Use case | max_tokens |
|---|---|
| Short answer / ping | 1024 |
| Summary / routine agent run | 4096 |
| Code generation / long task | 8192 |
| Default (if omitted) | 16384 |
| Exhaustive analysis | 32000+ |
Upper bound is model-specific (Claude Sonnet 4 — 64k, Opus 4 — 32k,
GLM-4.5-Air — 8k, etc.). Pass max_tokens explicitly up to that limit.
{
"result": "...", # Agent response text
"metadata": {
"provider": "minimax",
"model_used": "MiniMax-M2.7",
"usage": {"prompt_tokens": 100, "completion_tokens": 500},
"latency_ms": 2340
}
}
Full MCP server with all tools (chat, vision, files, search, agent). Requires git clone.
git clone https://github.com/sandsaber/AgentSpawnMCP
cd AgentSpawnMCP
uv sync
cp example.env .env
# Edit .env with your tokens
uv run python main.py main --provider grok
Providers auto-detected when env var is set:
| Env Var | Provider |
|---|---|
XAI_TOKEN |
Grok |
OPENAI_TOKEN |
OpenAI |
GROQ_TOKEN |
Groq |
DEEPSEEK_TOKEN |
DeepSeek |
ZAI_TOKEN |
z.ai (GLM) |
| Tool | Description |
|---|---|
list_providers |
All discovered providers |
list_models |
Models for the active provider |
chat |
Text completion with session history |
stateful_chat |
Server-side conversation |
chat_with_vision |
Analyze images (jpg/jpeg/png) |
generate_image |
Create or edit images (OpenAI-format only) |
upload_file / list_files / get_file_content / delete_file |
File management |
chat_with_files |
Chat with documents |
web_search |
Agentic web search |
code_executor |
Execute code |
agent |
Unified agent |
list_chat_sessions / get_chat_history / clear_chat_history |
Session history |
generate_image targets the OpenAI /images/generations request shape
(model / prompt / n / image_url). Providers that expose the same
shape (OpenAI dall-e-3, Grok grok-imagine-image) work out of the box.
Providers with custom image APIs are not currently supported:
glm-image, cogview-4-250304) expects quality / size / user_id
at /paas/v4/images/generations, not the OpenAI shape.For these, use the provider's native HTTP API directly.
MIT License. Copyright (c) 2026 Michael Makarov.
See LICENSE for the full license text.
Выполни в терминале:
claude mcp add agentspawnmcp -- npx Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.