Home › Cloud & Monitoring › Iris

Iris

Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.

TypeScript CloudLocal macOSWindowsLinux
★ 10 stars Last pushed 2026-11-11 License: MIT

Topics: Monitoring

Connect

Review any command before running it. Package names and URLs come from the server's own registry entry.

Package (npm 0.21.0)

npx -y @iris-eval/[email protected]

Or add to your MCP client config:

{
  "mcpServers": {
    "mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@iris-eval/[email protected]"
      ],
      "env": {
        "IRIS_API_KEY": "<YOUR_VALUE>",
        "IRIS_ANTHROPIC_API_KEY": "<YOUR_VALUE>",
        "IRIS_OPENAI_API_KEY": "<YOUR_VALUE>",
        "IRIS_WEBHOOK_SECRET": "<YOUR_VALUE>"
      }
    }
  }
}
  • IRIS_API_KEY secret — 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
  • IRIS_API_KEY_FILE — Path to a file whose trimmed contents are the API key (the secret-file pattern Docker and Kubernetes mount). Set this or IRIS_API_KEY, not both; further keys and rotation are security.apiKeys in config.json
  • IRIS_ALLOW_UNAUTHENTICATED — 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)
  • IRIS_DB_PATH — SQLite database path
  • IRIS_SQLITE_DRIVER — Which SQLite driver holds the database: native (better-sqlite3, the default) or node (Node's built-in node:sqlite, Node 22.13+). Unset: native, falling back to node when the native module cannot load
  • IRIS_SEARCH_BUDGET_MS — How long one trace search may read before it answers with the matches found so far, in milliseconds (50-60000, default 1000)
  • IRIS_SEARCH_INDEX — on (default) or off. off keeps no full-text index of the traces: writes are cheaper, and a search reads the traces within its time budget
  • IRIS_LOG_LEVEL — Log level: debug, info, warn, error
  • IRIS_HOME — Directory for the database, custom rules and preferences (default ~/.iris)
  • IRIS_ANTHROPIC_API_KEY secret — Enables evaluate_with_llm_judge and verify_citations with an Anthropic model. Optional: the deterministic rules never need a key
  • IRIS_OPENAI_API_KEY secret — Enables evaluate_with_llm_judge and verify_citations with an OpenAI model. Optional: the deterministic rules never need a key
  • IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL — Hard cap on the worst-case cost of one LLM judge call (default 0.25); max_cost_usd can lower it for a call, never raise it
  • IRIS_RELEVANCE_JUDGE_MODEL — A priced judge model; answers_the_ask then asks it on every evaluation with input, sending that input and output to the model's provider, and gates on its verdict (off by default)
  • IRIS_LLM_JUDGE_DAILY_BUDGET_USD — What every judge call together may spend per UTC day, per tenant, in USD (default 1): the relevance judge, evaluate_with_llm_judge and verify_citations. Past it no judge call is made
  • IRIS_RELEVANCE_JUDGE_DAILY_BUDGET_USD — The name of IRIS_LLM_JUDGE_DAILY_BUDGET_USD before 0.21.0. Read when the new name is unset, and it then limits every judge call
  • IRIS_RELEVANCE_JUDGE_MAX_CALLS_PER_REQUEST — Relevance judge calls one request may make (default 20)
  • IRIS_RELEVANCE_JUDGE_REDACT — on (default) replaces the PII and credentials no_pii flags before the relevance judge sends input and output to its provider; off sends them as they are
  • IRIS_CITATION_ALLOW_FETCH — Let verify_citations fetch URLs (off by default); a tool argument can turn it off for a call, never on
  • IRIS_DASHBOARD — Start the dashboard alongside the server (same as --dashboard)
  • IRIS_DASHBOARD_PORT — Dashboard port (default 6920); IRIS_PORT is the MCP HTTP transport port (default 3000)
  • IRIS_PORT — MCP HTTP transport port (default 3000); only used with --transport http
  • IRIS_OTEL_ENDPOINT — OTLP/HTTP collector URL; when set, every stored trace is also exported as OpenTelemetry spans (best-effort, asynchronous)
  • IRIS_CITATION_DOMAINS — Comma-separated domain allowlist for verify_citations fetches (only consulted when IRIS_CITATION_ALLOW_FETCH is on); a tool argument can narrow it, never add to it
  • IRIS_CITATION_MAX_COST_USD_TOTAL — The most one verify_citations call may spend on judge calls, in USD (default 1); max_cost_usd_total can lower it, never raise it
  • IRIS_TRANSPORT — Transport: stdio (default) or http; same as --transport
  • IRIS_HOST — Bind host for the HTTP transport (default 127.0.0.1); only used with --transport http
  • IRIS_ALLOWED_ORIGINS — Comma-separated Origin allowlist for the HTTP transport and dashboard CORS (default http://localhost:*)
  • IRIS_MAX_INPUT_ELEMENTS — The most array elements and object keys one input may hold before it is validated (default 100000): a tool call's arguments, and a dashboard or OTLP JSON request body. A tool call over it gets an error result; a body, 413. OTLP protobuf has its own ceiling, one element per 5 bytes of the request size limit
  • IRIS_MAX_TOOL_INPUT_ELEMENTS — The name of IRIS_MAX_INPUT_ELEMENTS before 0.21.0, read when the new name is unset
  • IRIS_DASHBOARD_HOST — Bind host for the dashboard (default 127.0.0.1); same as --dashboard-host
  • IRIS_OTEL_HEADERS — Comma-separated key=value headers sent with every OTLP export (for example an auth token for your collector)
  • IRIS_OTEL_SERVICE_NAME — service.name resource attribute on exported spans (default iris-eval)
  • IRIS_OTEL_TIMEOUT_MS — Timeout in milliseconds for each OTLP export request
  • IRIS_WEBHOOK_URL — The receiver of the webhook that fires on a moment (docs/webhooks.md); merged over notify.webhook in config.json
  • IRIS_WEBHOOK_SECRET secret — The signing key of that webhook (any string, or whsec_ + base64); the iris format refuses to run without one

Package (mcpb 0.21.0)

Package: mcpb https://github.com/iris-eval/mcp-server/releases/download/v0.21.0/iris-eval.mcpb

Related servers

Listed in punkpeye/awesome-mcp-servers (MIT)

Data from the Official MCP Registry