MCPLow riskUnclaimed
legion
MCP-native LLM councils for debates, juries, blind panels, refinement, and custom deliberation.
faulkjfaulkj/legion
server.json
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.faulkj/legion",
"description": "MCP-native LLM councils for debates, juries, blind panels, refinement, and custom deliberation.",
"repository": {
"url": "https://github.com/faulkj/legion-mcp",
"source": "github"
},
"version": "0.8.0",
"packages": [
{
"registryType": "npm",
"identifier": "legion-mcp",
"version": "0.8.0",
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"description": "Run the installed package over MCP stdio (the binary defaults to HTTP).",
"isRequired": true,
"format": "string",
"value": "stdio",
"name": "MCP_TRANSPORT"
},
{
"description": "Default OpenAI Responses-compatible API root for model files that omit baseUrl.",
"format": "string",
"placeholder": "https://api.openai.com/v1",
"name": "DEFAULT_BASE_URL"
},
{
"description": "Default provider or gateway key for model files that omit apiKey.",
"format": "string",
"isSecret": true,
"name": "DEFAULT_API_KEY"
},
{
"description": "Boot without any config/models/*.json. The package ships only key-free examples, which the scanner ignores, so this must stay true until a real model file exists beside the working directory.",
"isRequired": true,
"format": "boolean",
"value": "true",
"name": "ALLOW_NO_MODELS"
},
{
"description": "Optional. A model file's apiKey may be \"env:VAR\" to read the key from an environment variable named VAR at startup; name those variables here as needed. The bundled gpt example reads this one.",
"format": "string",
"isSecret": true,
"name": "OPENAI_API_KEY"
},
{
"description": "Maximum discussion rounds accepted by a council run.",
"format": "number",
"default": "5",
"name": "MAX_ROUNDS"
},
{
"description": "Optional soft cumulative token budget for a council run.",
"format": "number",
"name": "TOKEN_BUDGET"
},
{
"description": "Allow callers to define ad-hoc council roles inline.",
"format": "boolean",
"default": "true",
"name": "DYNAMIC_ROLES"
},
{
"description": "Logging verbosity. Logs are written to stderr for stdio safety.",
"format": "string",
"default": "info",
"choices": [
"debug",
"info",
"warn",
"error"
],
"name": "LOG_LEVEL"
},
{
"description": "Run councils in the background: council tools return a job handle and poll/cancel tools are exposed. Jobs live in process memory only.",
"format": "boolean",
"default": "false",
"name": "ASYNC_TOOLS"
},
{
"description": "Bind async jobs to the caller named by X-MS-CLIENT-PRINCIPAL-* headers. Only safe behind an ingress that strips client-supplied copies.",
"format": "boolean",
"default": "false",
"name": "TRUST_PROXY_AUTH"
}
]
}
]
}Permissions
DeclaredDetected
Runs code—
nodeInstalls—
npm:legion-mcp@0.8.0Runs install scripts—None
NetworkNoneNone
Needs credentials
DEFAULT_API_KEYOPENAI_API_KEYDEFAULT_API_KEYOPENAI_API_KEYOutside the workspace—None
Agent tools—None
Checks
Low risk · Nothing worth a warning was found.
Not reviewed by a person · Checked by rules; the model review is not switched on yet.
Versions
- #10.8.0latestOct 7, 2026
legionOpen in Codeg