Agentspawnmcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Agentspawnmcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<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.
# 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 anthropicOr 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 toolname {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 anthropicFor 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.1Verify the registration:
codex mcp list
codex mcp get minimax-agentRestart 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:
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.
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_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 grokProviders 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_idat /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.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.