list_providers_toolLABSCO SUMMARY
The decision maker is what separates this from a multiplexer.
Fanning a prompt out to three models is easy and leaves you with three answers to read; having a named model evaluate them against each other and produce one document is the part that saves time. The persona tools chain naturally — a brief becomes a PRD becomes a spec — with each stage able to run through the same team-and-adjudicator pattern.
What it is
A Python server that wraps six LLM providers behind one interface and layers agile personas on top — Business Analyst, Product Manager, Spec Writer, and a Decision Maker that reads several models' answers and chooses. The point is not one more chat wrapper; it is asking three models the same question and having a fourth adjudicate.
What you get
prompt_toolsendstextto one or many models namedprovider:model;list_providers_toolandlist_models_toolshow what is available- Providers carry short prefixes:
ofor openai,afor anthropic,gfor gemini,qfor groq,dfor deepseek,lfor ollama — soa:claude-3-5-haikuworks as well as the full name prompt_from_file_toolreads the prompt from a file;prompt_from_file2file_toolalso writes each response out, withoutput_path,output_dirandoutput_extensionunder your controlpersona_dm_toolruns a prompt past a team of models and haspersona_dm_modelchoose between their answerspersona_ba_tool,persona_pm_toolandpersona_sw_toolapply the Business Analyst, Product Manager and Spec Writer personas — each takesuse_decision_makerto run the same team-and-adjudicator pattern- Model suffixes tune behaviour:
:4kand similar set a thinking token budget,:highraises reasoning effort on OpenAI list_mcp_assetsis a prompt that returns the whole capability overview — tools, providers, personas and workflows
Requirements
API keys for whichever providers you intend to use: OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, GROQ_API_KEY, DEEPSEEK_API_KEY, and OLLAMA_HOST for a local Ollama. Run it through uvx --from git+https://github.com/danielscholl/agile-team-mcp-server@main agile-team, or clone and uv sync then uv pip install -e .. DEFAULT_MODEL, DEFAULT_TEAM_MODELS and DEFAULT_DECISION_MAKER_MODEL set what runs when you don't name models explicitly. Prompts come from files, so the paths you pass must be readable by the server.
Setup effort
Build from source — git clone https://github.com/danielscholl/agile-team-mcp-server.git
USE CASES
Getting a decision instead of three opinions
Send the question to a team of models and let the decision maker pick.
Turning a rough concept into a project brief
Run it through the Business Analyst persona and write the result to a file.
Taking a brief through to a developer-ready spec
Chain the Product Manager and Spec Writer personas over the previous output.
Comparing how models handle the same prompt
Send one prompt to several and read the answers side by side.
Batch-processing prompts you keep in files
Read from a file and write each response to its own output file.
9 tools
Listed in project docs. Your client may show a different list.
list_models_toolprompt_toolprompt_from_file_toolprompt_from_file2file_toolpersona_dm_toolpersona_ba_toolpersona_pm_toolpersona_sw_toolBEFORE YOU INSTALL
What to know first
Tools you get
9 tools named in the project's documentation.
Requires
- uvx on PATH
- an API key for each LLM provider you use: OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, GROQ_API_KEY or DEEPSEEK_API_KEY (the default team models use OpenAI, Anthropic and Gemini)
Where it runs
All 4 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
# Clone and install
git clone https://github.com/danielscholl/agile-team-mcp-server.git
cd agile-team-mcp-server
uv sync
# Install
uv pip install -e .
# Run tests to verify installation
uv run pytestMCP Clients
Claude Desktop
{
"mcpServers": {
"agile-team": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/danielscholl/agile-team-mcp-server@main",
"agile-team"
],
"env": {
"OPENAI_API_KEY": "<YOUR_OPENAI_KEY>",
"ANTHROPIC_API_KEY": "<YOUR_ANTHROPIC_KEY>",
"GEMINI_API_KEY": "<YOUR_GEMINI_KEY>",
"GROQ_API_KEY": "<YOUR_GROQ_KEY>",
"DEEPSEEK_API_KEY": "<YOUR_DEEPSEEK_KEY>",
"OLLAMA_HOST": "http://localhost:11434",
"DEFAULT_MODEL": "openai:gpt-4o-mini",
"DEFAULT_TEAM_MODELS": "[\"openai:gpt-4.1\",\"anthropic:claude-3-7-sonnet\",\"gemini:gemini-2.5-pro\"]",
"DEFAULT_DECISION_MAKER_MODEL": "openai:gpt-4o-mini"
}
}
}
}Claude Code
{
"mcpServers": {
"agile-team-mcp-server": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/danielscholl/agile-team-mcp-server@main",
"agile-team"
],
"env": {
"DEFAULT_MODEL": "openai:gpt-4o-mini",
"DEFAULT_TEAM_MODELS": "[\"openai:gpt-4.1\",\"anthropic:claude-3-7-sonnet\",\"gemini:gemini-2.5-pro\"]",
"DEFAULT_DECISION_MAKER_MODEL": "openai:gpt-4o-mini"
}
}
}
}VS Code — uvx
Add this to .vscode/mcp.json. VS Code asks for each provider key when the server first starts; leave blank the providers you do not use.
{
"inputs": [
{
"id": "openai_key",
"type": "promptString",
"description": "OpenAI API Key",
"password": true
},
{
"id": "anthropic_key",
"type": "promptString",
"description": "Anthropic API Key",
"password": true
},
{
"id": "gemini_key",
"type": "promptString",
"description": "Google Gemini API Key",
"password": true
},
{
"id": "groq_key",
"type": "promptString",
"description": "Groq API Key",
"password": true
},
{
"id": "deepseek_key",
"type": "promptString",
"description": "DeepSeek API Key",
"password": true
}
],
"servers": {
"agile-team": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/danielscholl/agile-team-mcp-server@main",
"agile-team"
],
"env": {
"OPENAI_API_KEY": "${input:openai_key}",
"ANTHROPIC_API_KEY": "${input:anthropic_key}",
"GEMINI_API_KEY": "${input:gemini_key}",
"GROQ_API_KEY": "${input:groq_key}",
"DEEPSEEK_API_KEY": "${input:deepseek_key}",
"OLLAMA_HOST": "http://localhost:11434",
"DEFAULT_MODEL": "openai:gpt-4o-mini",
"DEFAULT_TEAM_MODELS": "[\"openai:gpt-4.1\",\"anthropic:claude-3-7-sonnet\",\"gemini:gemini-2.5-pro\"]",
"DEFAULT_DECISION_MAKER_MODEL": "openai:gpt-4o-mini"
}
}
}
}Any MCP client — In-repo
{
"mcpServers": {
"agile-team": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"agile-team"
],
"env": {}
}
}
}