v0.13.0Found and fed
Open Source
Glama ScoreCursor Directorynpm versionnpm downloadsGitHub starsCI statusMIT License

See what your AI agents are

actually shipping.

Stop shipping agents on vibes. Install once. Every agent auto-discovers it. Zero SDK. Decision Moments classify what matters, so safety violations and cost spikes surface before happy-path passes.

$ npx @iris-eval/mcp-server
20 rules · regression-protected CI12 MCP tools · strict argument validation, any MCP client2396 tests · all green
Iris Dashboard
Example data
Total Traces
1,247
+12%
Avg Score
0.84
+0.03
Total Cost
$127.43
+8%
PII Alerts
3
-2
Recent TracesLast 24 hours
research-agentpass0.94$0.12
code-review-botpass0.87$0.04
support-agentfail0.32$0.47
data-pipelinepass0.91$0.08
content-writerwarn0.62$0.21

Works with any MCP-compatible agent

Claude DesktopCursorClaude CodeWindsurfLangChainCrewAIMCP SDKAutoGenClaude DesktopCursorClaude CodeWindsurfLangChainCrewAIMCP SDKAutoGen

The Problem

Your agents pass every health check.

Infrastructure monitoring tells you the request succeeded. It cannot tell you the answer was wrong. Your agents need a quality gate — something that scores every output for safety, accuracy, and cost before it reaches a user.

What your APM sees
Status200 OK
Latency143ms
Memory245 MB
CPU12%
Throughput847 req/min
HealthAll systems operational
What Iris sees
PII Detected
SSN pattern in output (***-**-6789)
Injection Risk
Prompt manipulation attempt detected
Cost: $0.47 / query
4.7x over $0.10 threshold
Hallucination Markers
Numbers the provided docs never stated
Tool call #3 error
database_lookup timed out (30s)
Quality Score
0.32 / 1.0 — FAIL

Product

12 tools. One quality standard.

Iris registers as an MCP server. Your agent discovers it and invokes its tools automatically. No SDK. No code changes.

Every execution. Every tool call. Every token.

log_trace captures full agent runs with hierarchical spans, per-tool-call latency, token usage, and cost in USD.

  • Hierarchical span tree with OpenTelemetry-compatible span kinds
  • Per-tool-call latency tracking
  • Token usage breakdown (prompt, completion, total)
  • Arbitrary metadata for custom attribution
Span Tree
AGENTresearch-agent2.3s
├─LLMsystem_prompt0.1s
├─TOOLweb_search0.8s
├─LLMsummarize_results0.4s
├─TOOLdatabase_query0.3s
├─LLMfinal_response0.7s

Built for

Three problems. One MCP server.

Every team building AI agents hits the same walls. Iris was built to tear them down — without touching your code.

Developers shipping MCP agents

You deployed an agent and you have no idea what it's doing.

Iris traces every execution, tool call, and token automatically. No SDK. No code changes. Add it to your MCP config and start seeing everything.

60s
to first trace
Teams monitoring agent costs

Your agent burned $0.47 on a single query and your APM showed 200 OK.

Iris tracks cost per trace, per agent, per time window. Set budget thresholds and get flagged when agents overspend — before finance finds out.

$0.07avg cost visibility per trace
Companies preventing PII leaks

Your agent leaked a Social Security number in its output and nobody noticed for 3 months.

Iris evaluates every output against 20 built-in rules including PII detection across 19 patterns (SSN, credit card, phone, email, IBAN, DOB, medical record number, IP address, API keys and vendor tokens, private key blocks, seed phrases), prompt injection (37 patterns), stub-output detection, and hallucination markers. Real-time, every trace.

20built-in eval rules

Join the community

12
MCP tools
Log, evaluate, query, deploy/delete rules, delete traces, LLM judge (BYOK), citation verify (BYOK)
20
Built-in eval rules
Completeness, relevance, safety, cost
1
Eval latency
Heuristic rules. Fast and deterministic.
0
Lines of code to integrate
Add to MCP config. You're done.

Open Source — Free Forever to Self-Host

60 seconds to first trace.

Install Iris locally and start seeing what your agents are doing. Works with Claude Desktop, Cursor, Windsurf, or any MCP-compatible agent. Free, MIT-licensed. Nothing leaves your machine unless you set IRIS_OTEL_ENDPOINT, which exports traces to the collector you name, or enable the LLM judge with your own key.

claude_desktop_config.json
{
  "mcpServers": {
    "iris-eval": {
      "command": "npx",
      "args": ["@iris-eval/mcp-server"]
    }
  }
}
Terminal
$ npx @iris-eval/mcp-server --self-test
✓ PASS — this install works
$ npm install -g @iris-eval/mcp-server
$ iris-eval --dashboard
✓ Dashboard running at http://localhost:6920
Cursor
Install Iris in Cursor

One-click install for Cursor IDE.
No config file needed.

Pricing

Free to self-host. Hosted, if it earns its place.

The open-source server is MIT licensed with no limits and no account. A hosted tier with shared team history is under consideration, not under construction — nothing below the first card is built or priced, and the waitlist is how we find out whether it should be.

Open Source

Self-Hosted

$0forever

Everything you need to evaluate your MCP agents in production. Your machine, your data, your eval rules.

  • 12 MCP tools — full lifecycle + LLM judge + semantic citation verify (SSRF-guarded)
  • LLM-as-judge + citation verify use your own Anthropic/OpenAI API key (BYOK, no proxy)
  • 20 built-in eval rules + custom rules
  • Web dashboard with trace visualization
  • SQLite storage — zero infrastructure
  • Production security (auth, rate limiting)
  • Cost tracking per trace
  • Docker + npm + npx install
  • Community support (GitHub + Discord)
PlannedNot built yet

Cloud Starter

Not yet priced

The same eval engine, hosted, so there is no local database to run. Not built yet — the waitlist is how we find out whether it is worth building.

  • Everything in Self-Hosted, plus:
  • Managed storage — nothing to run locally
  • Eval history that follows you across machines
  • Personal dashboard
PlannedNot built yet

Cloud Pro

Not yet priced

For teams that need shared eval results, alerting on quality regressions, and room to scale.

  • Everything in Starter, plus:
  • Longer eval history
  • Unlimited team members
  • Team dashboards with shared views
  • Alerting (webhook + email)
  • API key management
  • CSV / JSON data export
  • Priority support
PlannedNot built yet

Enterprise

Not yet priced

For organizations that would need audit-grade evaluation records, compliance support, and dedicated help. Not built yet, and no certification is held or claimed.

  • Everything in Pro, plus:
  • SSO / SAML (Okta, Azure AD, Google)
  • RBAC with custom roles
  • Audit logs with export
  • Custom retention policies
  • SLA with uptime guarantee
  • Dedicated support + onboarding
  • EU AI Act compliance support

The self-hosted server already includes unlimited eval rules, both transports (stdio + HTTP), and the full API.
Joining the waitlist commits you to nothing and locks in nothing — there is no price to lock in. It tells us whether shared history is worth building.

Would hosted, shared eval history help you?

No spam. One email if a hosted tier ships — none if it doesn't.

I kept running into the same problem building AI agents: once they're running, you have no visibility into what they're actually doing. Traditional monitoring tells you the request succeeded. It can't tell you the agent leaked PII, hallucinated an answer, or burned through your budget on a single query.

So I built Iris — an MCP server that any agent discovers and uses automatically. No SDK. No code changes. Just add it to your config and start seeing everything.

Ian Parent
Founder & Builder

Roadmap

Built in public. Shipping fast.

v0.1Released

Core MCP Server

3 tools, initial 12-rule library, SQLite storage, web dashboard, production security

v0.2Released

Eval Sensitivity + Security Hardening

Smart rule exclusion, configurable thresholds, SQL whitelist, CSP headers, accessibility

v0.3Released

Dashboard Phase-1 + Pricing

OKLCH palette, dark/light theme, trace-ID copy, eval sparkline, pricing page, MCP-native validation harness

v0.3.1Released

Rule Library Expansion

rule library grown to 13 (added no_stub_output), 10 PII patterns (IBAN, DOB, MRN, IP, API key, passport), 13 injection patterns, fabricated-citation heuristic, 55-case CI regression gate

v0.4Released

LLM-as-Judge + Citation Verify + OTel + 9-tool MCP Surface

9 MCP tools — full rule + trace lifecycle + LLM-as-judge + SSRF-guarded citation verification (list_rules, deploy_rule, delete_rule, delete_trace, evaluate_with_llm_judge, verify_citations added); LLM-as-judge eval (Claude/GPT-4o, cost-capped, 5 prompt templates); semantic citation verification (4 citation kinds — numbered/author-year/URL/DOI — SSRF-guarded fetch + per-claim LLM verdict); OpenTelemetry export; tenant-id scaffolding; SBOM + cosign signing; Playwright E2E; Lighthouse CI; v2.C chrome polish

v0.4.6Released

Security + Data Integrity

Dashboard bound to loopback with a DNS-rebinding guard; two ReDoS vectors closed (built-in PII patterns, and a deploy-time backtracking probe that catches what safe-regex2 misses); evaluations no longer dropped from time windows by a timestamp-format mismatch; the rule store no longer discards valid rules when one is unparseable; safety violations now counted even when the overall eval passes

v0.5.0Released

The Acceptance-Test Release

Critical-rule veto — a detected PII leak, prompt injection or blocklist hit forces passed:false regardless of the weighted score and names itself in critical_failures; ReDoS sandbox worker with a hard 100ms per-match deadline plus a 3-breach-per-evaluation circuit breaker; strict tool arguments, so an unrecognised key fails the call instead of silently changing what gets evaluated; the safety-rule family measured against a labeled corpus and rebuilt (vendor-credential detection, structural injection detectors, context-grounded hallucination signals); POST /api/v1/traces HTTP ingest; --demo and --self-test; failure-first dashboard, now started only when explicitly enabled

That corpus was private and in-sample — the public per-rule numbers live on the proof page

v0.6.0Released

The Correctness Release

Every open item from the v0.5.0 acceptance pass closed and proven by a 52-row pre-release acceptance run: evaluate_output eval_type "all" runs every bundle in one pass with a per-category breakdown; deployed rules can be paused and resumed without deleting them; a browser can sign in to an --api-key dashboard; --version and --purge; retention sweeps stored evaluations; same-name deploy_rule refused unless replace: true; impossible get_traces ranges refused naming the values; the release workflow publishes to the Official MCP Registry and verifies npm, GHCR, the GitHub release and the registry from outside before it reports green.

v0.7.0Released

The Proof Release

Every built-in rule got a public precision, recall and F1 with 95% confidence intervals, measured on a labelled corpus that ships in the repository and regenerates with one command — and a CI job that fails if the committed numbers stop matching the code. Acceptance ran 24 transcripts from an agent genuinely doing tasks against this codebase; nine defects surfaced and were fixed with regression tests before the cut. The judge and citation numbers stayed honestly marked pending, because measuring them needs a key we do not assume.

Every number on the proof page is regenerated by that command

v0.8.0Released

The Trajectory Release

The evaluator started reading the agent's tool calls, not only its answer: an answer written after a tool had silently failed, and a call repeated until it wasted the budget. Which rules VETO became the deployment's call rather than ours, matched by rule identity and reported on every response — because a precision lower bound of 77% cannot justify blocking everyone's work.

v0.9.0Released

Iris Explains Its Verdicts

Every rule result now says what kind of claim it makes, what it looked at, where it found what it found as offsets into the raw text, and how wrong that kind of finding tends to be. Every response carries which layer decided, which questions were judged and which were not, and the versions and hashes that produced it. The server describes itself to an agent on connection, nine of nine tools carry an output schema, and every error returns a code with recovery steps instead of a sentence.

v0.10.0Released

The Verdict

Iris stopped deciding by averaging. A composer reads each rule by the kind of claim it makes — a policy you configured gates, a high-precision detector vetoes, a critical check that was asked and could not answer makes the verdict UNKNOWN rather than clean, and the rest becomes one probability weighed against the loss ratio your deployment states. Measured before it shipped: right about shipping 57.7% of the time against the old 38.5%, at an identical false-block rate. Also: the critical text rules stopped being defeated by an invisible character, and the judge's own threshold decides instead of the model.

Both composers scored side by side on a held-out split

v0.11.0Released

The Act Layer

What the agent DID became evaluable, deterministically and without a model call: a call its own tool's schema rejects and the agent never retried, a file or URL cited that appears in nothing the agent read, an ask whose parts went unanswered, an instruction obeyed out of a tool result, and a step budget — plus action_policy, a custom rule type stating which tools an agent may call and with what arguments. Repetition is now caught as repeated sequences and as one target read through several tools, and a steady cadence is recognised as polling rather than a loop. One planned change was measured against a bar set beforehand, failed it, and was abandoned with both results published.

Including the change we measured and did not ship

Track 1In progress

Proof — measure our own evaluators

Shipped: per-rule precision, recall and F1 with 95% intervals on a labelled corpus that regenerates with one command and is byte-checked in CI (v0.7.0); a labelled corpus for the ship verdict itself with a frozen held-out split, calibration, a threshold sweep, adversarial transforms and precision at four field prevalences (with v0.10.0); the blind-sample instrument for human agreement (v0.8.0). Still open: the human label on that sample; the judge's and the citation verifier's own numbers, which run on a key you supply; chance-corrected agreement.

The proof page — every number there is regenerated by the command it names

Track 2In progress

Coverage — evaluate what actually fails

Shipped: the context-grounded hallucination rule (v0.5.0); the first trajectory rules — a silently failed tool call, a loop (v0.8.0); argument validity against the agent's own tool catalogue, grounding the output's file and URL citations in what the tools returned, multi-part ask coverage, injection compliance across a trajectory, a step ceiling and action_policy (v0.11.0). Still open: verification auditing (did the agent check its own work) and trace ingestion via OpenTelemetry GenAI semantic conventions.

Track 3In progress

Reach — use Iris from anywhere

Shipped: POST /api/v1/traces with optional evaluation on write (v0.5.0), so any language, runtime or CI job can send traces; server instructions, output schemas, structured errors and iris://capabilities (v0.9.0); runs, case keys and comparison — compare_runs, compare_traces and evaluate_runs (v0.12.0). Still planned: a CLI for quality gates and batch evaluation; host hooks and SDKs for guaranteed capture; named datasets; OpenTelemetry ingest. MCP stays the interactive path — under the protocol a tool call is always the model's decision, so anything that must be recorded needs a path that does not depend on it