AgentSpawnMCP
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.
README
AgentSpawnMCP
<p align="center"> <img src="docs/assets/agent-spawn-mcp-hero.png" alt="AgentSpawnMCP routing tasks to multiple model agents" width="100%"> </p>
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.
Quick Start — Spawn Agents
# 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 Types
--api-type openai(default) — OpenAI-compatible (chat/completions)--api-type anthropic— Anthropic API (v1/messages)
URL versioning
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 |
Claude Code / OpenCode Integration
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:
- Each entry in
.mcp.jsonmust use a unique--name— it becomes the tool name{name}_agent, and duplicates collide. --tokenon the command line is visible inpsoutput and some crash logs. Prefer keeping the MCP config file read-protected (chmod 600).
Codex CLI Integration
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.
Tools Exposed
{name}_agent(task, model?, system_prompt?, temperature?, max_tokens?, timeout?)— Spawn agentagent_info()— Get provider info
max_tokens behaviour
The 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) # cheaperTypical values:
Use case max_tokensShort 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_tokensexplicitly up to that limit.
Return Format
{
"result": "...", # Agent response text
"metadata": {
"provider": "minimax",
"model_used": "MiniMax-M2.7",
"usage": {"prompt_tokens": 100, "completion_tokens": 500},
"latency_ms": 2340
}
}
AgentSpawnMCP — Full Server
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
Auto-Discovery
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) |
Available Tools (Full Server)
| 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 |
Image generation support
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:
- z.ai (
glm-image,cogview-4-250304) expectsquality/size/user_idat/paas/v4/images/generations, not the OpenAI shape. - Anthropic-compat endpoints don't expose image generation at all.
For these, use the provider's native HTTP API directly.
License
MIT License. Copyright (c) 2026 Michael Makarov.
See LICENSE for the full license text.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.