Featured

Deploy OpenClaw in 60 seconds β€” 20% off logoDeploy OpenClaw in 60 seconds β€” 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger β†’
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger β†’
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free β†’
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now β†’
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data β€” no proxies, no parsers, no maintenance.

Start building free β†’
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it β€” secured from day one.

Get it set up for you β†’
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free β†’
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here β†’

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

iris-eval/mcp-server MCP server](https://glama.ai/mcp/servers/iris-eval/mcp-server/badges/score.svg)](https://glama.ai/mcp/servers/iris-eval/mcp-server) πŸ“‡ ☁️ 🏠 🍎 πŸͺŸ 🐧 - MCP-native agent evaluation and observability server with trace logging, output...

README.md

Iris β€” The Agent Eval Standard for MCP

![Glama Score](https://glama.ai/mcp/servers/iris-eval/mcp-server) ![Install in Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBpcmlzLWV2YWwvbWNwLXNlcnZlciJdLCJlbnYiOnsiSVJJU19MT0dfTEVWRUwiOiJpbmZvIn19) ![npm version](https://npmjs.com/package/@iris-eval/mcp-server) ![npm downloads](https://npmjs.com/package/@iris-eval/mcp-server) ![GitHub stars](https://github.com/iris-eval/mcp-server) ![CI](https://github.com/iris-eval/mcp-server/actions/workflows/ci.yml) ![OpenSSF Scorecard](https://securityscorecards.dev/viewer/?uri=github.com/iris-eval/mcp-server) ![OpenSSF Best Practices](https://www.bestpractices.dev/projects/12849) ![License: MIT](LICENSE) ![Docker](https://github.com/iris-eval/mcp-server/pkgs/container/mcp-server) ![PulseMCP](https://www.pulsemcp.com/servers/iris-eval) ![mcp.so](https://mcp.so/server/iris/iris-eval)

Know whether your AI agents are actually good enough to ship. Iris is an open-source MCP server that scores output quality, catches safety failures, and enforces cost budgets across all your agents. Any MCP-compatible agent discovers and uses it automatically β€” no SDK, no code changes.

!Iris Dashboard

The Problem

Your agents are running in production. Infrastructure monitoring sees 200 OK and moves on. It has no idea the agent just:

  • Leaked a social security number in its response
  • Hallucinated an answer with zero factual grounding
  • Burned $0.47 on a single query β€” 4.7x your budget threshold
  • Made 6 tool calls when 2 would have sufficed

Iris evaluates all of it.

What You Get

| | | |---|---| | Trace Logging | Hierarchical span trees with per-tool-call latency, token usage, and cost in USD. Stored in SQLite, queryable instantly. | | Output Evaluation | 13 built-in rules across 4 categories: completeness, relevance, safety, cost. PII detection (10 patterns: SSN, credit card, phone, email, IBAN, DOB, MRN, IP, API key, passport), prompt injection (13 patterns), stub-output detection, hallucination markers (17 hedging phrases + fabricated-citation heuristic). Add custom rules with Zod schemas. | | Cost Visibility | Aggregate cost across all agents over any time window. Set budget thresholds. Get flagged when agents overspend. | | Web Dashboard | Real-time dark-mode UI with trace visualization, eval results, and cost breakdowns. |

Requires Node.js 20 or later. Check with node --version.

Quickstart

Add Iris to your MCP config. Works with Claude Desktop, Claude Code, Cursor, Windsurf, Continue, VS Code, Cline, Zed, Codex CLI, Gemini CLI β€” and any other MCP-compatible agent.

{
  "mcpServers": {
    "iris-eval": {
      "command": "npx",
      "args": ["@iris-eval/mcp-server"]
    }
  }
}

That's it. Your agent discovers Iris and starts logging traces automatically.

Turn on the dashboard

Iris ships with a real-time web dashboard showing traces, eval results, cost breakdowns, and rule pass-rates. It's off by default so the MCP server stays lightweight β€” flip it on with a flag.

{
  "mcpServers": {
    "iris-eval": {
      "command": "npx",
      "args": ["@iris-eval/mcp-server", "--dashboard"]
    }
  }
}

Then open http://localhost:6920 after your agent runs a trace. The same dashboard is available via CLI:

npx @iris-eval/mcp-server --dashboard

<details> <summary><strong>Setup by tool</strong></summary>

Claude Desktop

Edit your MCP config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add the JSON config above, then restart Claude Desktop.

Claude Code

claude mcp add --transport stdio iris-eval -- npx @iris-eval/mcp-server

Then restart the session (/clear or relaunch) for tools to load.

Windows note: Do not use cmd /c wrapper β€” it causes path parsing issues. The npx command works directly.

Cursor / Windsurf

Add to your workspace .cursor/mcp.json or global MCP settings using the JSON config above.

VS Code (native MCP)

Add to .vscode/mcp.json in your workspace (note: VS Code uses servers, not mcpServers):

{
  "servers": {
    "iris-eval": {
      "command": "npx",
      "args": ["@iris-eval/mcp-server"]
    }
  }
}

Cline

Open Cline's MCP Servers panel β†’ Configure MCP Servers, and add the mcpServers JSON config above to cline_mcp_settings.json.

Zed

Add to Zed settings.json:

{
  "context_servers": {
    "iris-eval": {
      "command": {
        "path": "npx",
        "args": ["@iris-eval/mcp-server"]
      }
    }
  }
}

OpenAI Codex CLI

Add to ~/.codex/config.toml:

[mcp_servers.iris-eval]
command = "npx"
args = ["@iris-eval/mcp-server"]

Gemini CLI

Add the mcpServers JSON config above to ~/.gemini/settings.json.

Anything else that speaks MCP

Iris is a standard stdio MCP server β€” one npx @iris-eval/mcp-server command, no SDK, no code changes. If your client supports MCP, it supports Iris. Client config formats change; when in doubt, check your client's MCP docs and point it at that command.

</details>

Other Install Methods

# Global install (recommended for persistent data and faster startup)
npm install -g @iris-eval/mcp-server
iris-mcp --dashboard

# Docker
docker run -p 3000:3000 -v iris-data:/data ghcr.io/iris-eval/mcp-server

Tip: Global install (npm install -g) stores traces persistently at ~/.iris/iris.db. With npx, traces persist in the same location, but startup is slower due to package resolution.

MCP Tools

Iris registers nine tools that any MCP-compatible agent can invoke β€” full rule + trace lifecycle + LLM-as-judge + semantic citation verification:

  • log_trace β€” Log an agent execution with spans, tool calls, token usage, and cost
  • evaluate_output β€” Score output quality against completeness, relevance, safety, and cost rules (heuristic, deterministic, free)
  • get_traces β€” Query stored traces with filtering, pagination, and time-range support
  • list_rules β€” Enumerate deployed custom eval rules (read-only)
  • deploy_rule β€” Register a new custom eval rule so it fires on every evaluate_output of that category
  • delete_rule β€” Remove a deployed custom rule (destructive, idempotent)
  • delete_trace β€” Remove a single stored trace by ID (destructive, tenant-scoped)
  • evaluate_with_llm_judge β€” Semantic eval via LLM (Anthropic or OpenAI). Five templates: accuracy, helpfulness, safety, correctness, faithfulness. Cost-capped, per-eval pricing disclosed. Bring your own API key (IRIS_ANTHROPIC_API_KEY or IRIS_OPENAI_API_KEY) β€” Iris doesn't proxy or relay LLM calls.
  • verify_citations β€” Extract citations from output (numbered, author-year, URLs, DOIs), fetch sources behind an SSRF-guarded + domain-allowlisted resolver, and use an LLM judge to check whether each source actually supports the cited claim. Opt-in outbound HTTP. Same BYOK requirement as evaluate_with_llm_judge.

When IRIS_OTEL_ENDPOINT is configured, log_trace calls also emit a best-effort OTLP/HTTP JSON export to any OpenTelemetry collector (Jaeger, Grafana Tempo, Datadog OTLP, Honeycomb, etc). See docs/otel-integration.md.

Full tool schemas and configuration: iris-eval.com

Cloud Tier (Coming Soon)

Self-hosted Iris runs on your machine with SQLite. As your team's eval needs grow, the cloud tier adds PostgreSQL, team dashboards, alerting on quality regressions, and managed infrastructure.

Join the waitlist to get early access.

Examples

Community

<details> <summary><strong>Configuration & Security</strong></summary>

CLI Arguments

| Flag | Default | Description | |------|---------|-------------| | --transport | stdio | Transport type: stdio or http | | --port | 3000 | HTTP transport port | | --db-path | ~/.iris/iris.db | SQLite database path | | --config | ~/.iris/config.json | Config file path | | --api-key | β€” | API key for HTTP authentication | | --dashboard | false | Enable web dashboard | | --dashboard-port | 6920 | Dashboard port |

Environment Variables

| Variable | Description | |----------|-------------| | IRIS_TRANSPORT | Transport type (stdio or http) | | IRIS_PORT | HTTP transport port | | IRIS_HOST | HTTP transport host (default 127.0.0.1) | | IRIS_DB_PATH | SQLite database path | | IRIS_LOG_LEVEL | Log level: debug, info, warn, error | | IRIS_DASHBOARD | Enable web dashboard (true/false) | | IRIS_DASHBOARD_PORT | Dashboard port (default 6920) | | IRIS_API_KEY | API key for HTTP authentication | | IRIS_ALLOWED_ORIGINS | Comma-separated allowed CORS origins |

CLI flags take precedence over environment variables when both are set.

Security

When using HTTP transport, Iris includes:

  • API key authentication with timing-safe comparison
  • CORS restricted to localhost by default
  • Rate limiting (100 req/min API, 20 req/min MCP)
  • Helmet security headers
  • Zod input validation on all routes
  • ReDoS-safe regex for custom eval rules
  • 1MB request body limits
# Production deployment
iris-mcp --transport http --port 3000 --api-key "$(openssl rand -hex 32)" --dashboard

</details>

<details> <summary><strong>Troubleshooting</strong></summary>

Iris won't start / ERR_MODULE_NOT_FOUND

You may have a cached older version. Clear the npx cache and retry:

npx --yes @iris-eval/mcp-server@latest

Or install globally to avoid cache issues entirely:

npm install -g @iris-eval/mcp-server@latest

Tools not showing up in Claude Code

MCP tools only load at session start. After adding iris-eval, restart the session with /clear or relaunch the terminal.

Version check

Verify which version is running:

npx @iris-eval/mcp-server --help
# Shows "Iris β€” MCP-Native Agent Eval Server vX.Y.Z"

Updating

# If using npx (clears cache and fetches latest)
npx --yes @iris-eval/mcp-server@latest

# If installed globally
npm update -g @iris-eval/mcp-server

Node.js version

Iris requires Node.js 20 or later. Node 18 reached EOL in April 2025 and is not supported.

node --version  # Must be v20.x or v22.x+

Windows: cmd /c not needed

Claude Code's /doctor may suggest wrapping npx with cmd /c. This is not needed and causes path parsing issues. Use npx directly:

# Correct
claude mcp add --transport stdio iris-eval -- npx @iris-eval/mcp-server

# Wrong (causes /c to be parsed as a path)
claude mcp add --transport stdio iris-eval -- cmd /c "npx @iris-eval/mcp-server"

</details>

---

If Iris is useful to you, consider starring the repo β€” it helps others find it.

![Star on GitHub](https://github.com/iris-eval/mcp-server)

MIT Licensed.

See related servers & alternatives β†’

Related MCP servers

Browse all β†’

Related guides

Hand-picked reading to help you choose and use Observability servers.