{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.iris-eval/mcp-server","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","repository":{"url":"https://github.com/iris-eval/mcp-server","source":"github"},"version":"0.13.0","packages":[{"registryType":"npm","identifier":"@iris-eval/mcp-server","version":"0.13.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"API key for HTTP authentication. Required to bind the HTTP transport or the dashboard beyond loopback (0.0.0.0, a LAN address, a container): without it the server refuses to start","format":"string","isSecret":true,"name":"IRIS_API_KEY"},{"description":"Set to 1 to run a non-loopback bind with NO API key on purpose (lifts the startup refusal; the network is then your boundary)","format":"string","name":"IRIS_ALLOW_UNAUTHENTICATED"},{"description":"SQLite database path","format":"string","name":"IRIS_DB_PATH"},{"description":"Log level: debug, info, warn, error","format":"string","name":"IRIS_LOG_LEVEL"},{"description":"Directory for the database, custom rules and preferences (default ~/.iris)","format":"string","name":"IRIS_HOME"},{"description":"Enables evaluate_with_llm_judge and verify_citations with an Anthropic model. Optional: the deterministic rules never need a key","format":"string","isSecret":true,"name":"IRIS_ANTHROPIC_API_KEY"},{"description":"Enables evaluate_with_llm_judge and verify_citations with an OpenAI model. Optional: the deterministic rules never need a key","format":"string","isSecret":true,"name":"IRIS_OPENAI_API_KEY"},{"description":"Hard cap on the worst-case cost of one judge or citation call (default 0.25)","format":"string","name":"IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL"},{"description":"Let verify_citations fetch URLs (off by default)","format":"boolean","name":"IRIS_CITATION_ALLOW_FETCH"},{"description":"Start the dashboard alongside the server (same as --dashboard)","format":"boolean","name":"IRIS_DASHBOARD"},{"description":"Dashboard port (default 6920); IRIS_PORT is the MCP HTTP transport port (default 3000)","format":"number","name":"IRIS_DASHBOARD_PORT"},{"description":"MCP HTTP transport port (default 3000); only used with --transport http","format":"number","name":"IRIS_PORT"},{"description":"OTLP/HTTP collector URL; when set, every stored trace is also exported as OpenTelemetry spans (best-effort, asynchronous)","format":"string","name":"IRIS_OTEL_ENDPOINT"},{"description":"Comma-separated domain allowlist for verify_citations fetches (only consulted when IRIS_CITATION_ALLOW_FETCH is on)","format":"string","name":"IRIS_CITATION_DOMAINS"},{"description":"Transport: stdio (default) or http; same as --transport","format":"string","name":"IRIS_TRANSPORT"},{"description":"Bind host for the HTTP transport (default 127.0.0.1); only used with --transport http","format":"string","name":"IRIS_HOST"},{"description":"Comma-separated Origin allowlist for the HTTP transport and dashboard CORS (default http://localhost:*)","format":"string","name":"IRIS_ALLOWED_ORIGINS"},{"description":"Bind host for the dashboard (default 127.0.0.1); same as --dashboard-host","format":"string","name":"IRIS_DASHBOARD_HOST"},{"description":"Comma-separated key=value headers sent with every OTLP export (for example an auth token for your collector)","format":"string","name":"IRIS_OTEL_HEADERS"},{"description":"service.name resource attribute on exported spans (default iris-eval)","format":"string","name":"IRIS_OTEL_SERVICE_NAME"},{"description":"Timeout in milliseconds for each OTLP export request","format":"number","name":"IRIS_OTEL_TIMEOUT_MS"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-08T07:21:53.052211Z","publishedAt":"2026-09-08T07:21:53.052211Z","updatedAt":"2026-09-08T07:21:53.052211Z","isLatest":true}}}
