Iris for VS Code
io.github.iris-eval/mcp-server
Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.
client:VS Code
transport:stdio
runtime:npm
Install Iris in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "iris-api-key",
"description": "IRIS_API_KEY",
"password": true
},
{
"type": "promptString",
"id": "iris-api-key-file",
"description": "IRIS_API_KEY_FILE",
"password": true
},
{
"type": "promptString",
"id": "iris-allow-unauthenticated",
"description": "IRIS_ALLOW_UNAUTHENTICATED",
"password": true
},
{
"type": "promptString",
"id": "iris-db-path",
"description": "IRIS_DB_PATH",
"password": true
},
{
"type": "promptString",
"id": "iris-sqlite-driver",
"description": "IRIS_SQLITE_DRIVER",
"password": true
},
{
"type": "promptString",
"id": "iris-log-level",
"description": "IRIS_LOG_LEVEL",
"password": true
},
{
"type": "promptString",
"id": "iris-home",
"description": "IRIS_HOME",
"password": true
},
{
"type": "promptString",
"id": "iris-anthropic-api-key",
"description": "IRIS_ANTHROPIC_API_KEY",
"password": true
},
{
"type": "promptString",
"id": "iris-openai-api-key",
"description": "IRIS_OPENAI_API_KEY",
"password": true
},
{
"type": "promptString",
"id": "iris-llm-judge-max-cost-usd-per-eval",
"description": "IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL",
"password": true
},
{
"type": "promptString",
"id": "iris-citation-allow-fetch",
"description": "IRIS_CITATION_ALLOW_FETCH",
"password": true
},
{
"type": "promptString",
"id": "iris-dashboard",
"description": "IRIS_DASHBOARD",
"password": true
},
{
"type": "promptString",
"id": "iris-dashboard-port",
"description": "IRIS_DASHBOARD_PORT",
"password": true
},
{
"type": "promptString",
"id": "iris-port",
"description": "IRIS_PORT",
"password": true
},
{
"type": "promptString",
"id": "iris-otel-endpoint",
"description": "IRIS_OTEL_ENDPOINT",
"password": true
},
{
"type": "promptString",
"id": "iris-citation-domains",
"description": "IRIS_CITATION_DOMAINS",
"password": true
},
{
"type": "promptString",
"id": "iris-transport",
"description": "IRIS_TRANSPORT",
"password": true
},
{
"type": "promptString",
"id": "iris-host",
"description": "IRIS_HOST",
"password": true
},
{
"type": "promptString",
"id": "iris-allowed-origins",
"description": "IRIS_ALLOWED_ORIGINS",
"password": true
},
{
"type": "promptString",
"id": "iris-dashboard-host",
"description": "IRIS_DASHBOARD_HOST",
"password": true
},
{
"type": "promptString",
"id": "iris-otel-headers",
"description": "IRIS_OTEL_HEADERS",
"password": true
},
{
"type": "promptString",
"id": "iris-otel-service-name",
"description": "IRIS_OTEL_SERVICE_NAME",
"password": true
},
{
"type": "promptString",
"id": "iris-otel-timeout-ms",
"description": "IRIS_OTEL_TIMEOUT_MS",
"password": true
},
{
"type": "promptString",
"id": "iris-webhook-url",
"description": "IRIS_WEBHOOK_URL",
"password": true
},
{
"type": "promptString",
"id": "iris-webhook-secret",
"description": "IRIS_WEBHOOK_SECRET",
"password": true
}
],
"servers": {
"mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@iris-eval/mcp-server"
],
"env": {
"IRIS_API_KEY": "${input:iris-api-key}",
"IRIS_API_KEY_FILE": "${input:iris-api-key-file}",
"IRIS_ALLOW_UNAUTHENTICATED": "${input:iris-allow-unauthenticated}",
"IRIS_DB_PATH": "${input:iris-db-path}",
"IRIS_SQLITE_DRIVER": "${input:iris-sqlite-driver}",
"IRIS_LOG_LEVEL": "${input:iris-log-level}",
"IRIS_HOME": "${input:iris-home}",
"IRIS_ANTHROPIC_API_KEY": "${input:iris-anthropic-api-key}",
"IRIS_OPENAI_API_KEY": "${input:iris-openai-api-key}",
"IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL": "${input:iris-llm-judge-max-cost-usd-per-eval}",
"IRIS_CITATION_ALLOW_FETCH": "${input:iris-citation-allow-fetch}",
"IRIS_DASHBOARD": "${input:iris-dashboard}",
"IRIS_DASHBOARD_PORT": "${input:iris-dashboard-port}",
"IRIS_PORT": "${input:iris-port}",
"IRIS_OTEL_ENDPOINT": "${input:iris-otel-endpoint}",
"IRIS_CITATION_DOMAINS": "${input:iris-citation-domains}",
"IRIS_TRANSPORT": "${input:iris-transport}",
"IRIS_HOST": "${input:iris-host}",
"IRIS_ALLOWED_ORIGINS": "${input:iris-allowed-origins}",
"IRIS_DASHBOARD_HOST": "${input:iris-dashboard-host}",
"IRIS_OTEL_HEADERS": "${input:iris-otel-headers}",
"IRIS_OTEL_SERVICE_NAME": "${input:iris-otel-service-name}",
"IRIS_OTEL_TIMEOUT_MS": "${input:iris-otel-timeout-ms}",
"IRIS_WEBHOOK_URL": "${input:iris-webhook-url}",
"IRIS_WEBHOOK_SECRET": "${input:iris-webhook-secret}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs