{"_id":"@iris-eval/mcp-server","_rev":"45-84f36b807f0cc24780352567078a2d59","name":"@iris-eval/mcp-server","dist-tags":{"latest":"0.19.0"},"versions":{"0.1.0":{"name":"@iris-eval/mcp-server","version":"0.1.0","keywords":["mcp","agent","evaluation","observability","tracing","llm"],"author":"","license":"MIT","_id":"@iris-eval/mcp-server@0.1.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://github.com/iris-eval/mcp-server#readme","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"82f45ea9bcd7c2267145d433f7747c1b845dfa3d","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.1.0.tgz","fileCount":83,"integrity":"sha512-00KYK1QTRmKVSNM445NB8DNr+JXf8Vz3yn7uMPztDa2bycv68L4DKlcPCYxqNm3ALcl57o00hzTZkSeVxN/RkQ==","signatures":[{"sig":"MEUCICS+1Ho+uOCsnkHVCUHfupPi0HBe/2tIfaRIRiCwgbsIAiEApjQfX6rgxqCu/Q/jGgb/o3pzeyQ9WIYYDGhmQpNLo/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":730601},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f40b0c77e44628d008946b35577c9b6d515e7b0a","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","test:coverage":"vitest run --coverage","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.4","description":"MCP-native agent evaluation and observability server","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^11.0.0","express-rate-limit":"^8.3.1","@modelcontextprotocol/sdk":"^1.27.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.0.0","vitest":"^3.0.0","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.57.0","@typescript-eslint/eslint-plugin":"^8.57.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.0_1773474535146_0.08268998366330682","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@iris-eval/mcp-server","version":"0.1.1","keywords":["mcp","agent","evaluation","observability","tracing","llm"],"author":"","license":"MIT","_id":"@iris-eval/mcp-server@0.1.1","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://github.com/iris-eval/mcp-server#readme","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"3460696af9234ca745f071eaac1a26589a525756","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.1.1.tgz","fileCount":84,"integrity":"sha512-wPIuNc/9pU9BXVdXTOlvfvB64zmGN7YiEhA8Kq7i3yZqUo9bxvJuH87jHwhfKoDK8nwUZmDI1rUrmu/oO3bS0Q==","signatures":[{"sig":"MEYCIQDphN+Q5KUT07Zl/HUmIVDEpNKTEBQXx3JJJJoE1qHMZQIhAIhoK2+HxoiPf2xB43FjezyJLdDlha0csg/MkPl/p2sc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":732534},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c28e9812442e2443f8a8d14fd8faae3b3d17d211","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","test:coverage":"vitest run --coverage","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.4","description":"MCP-native agent evaluation and observability server","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^11.0.0","express-rate-limit":"^8.3.1","@modelcontextprotocol/sdk":"^1.27.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.0.0","vitest":"^3.0.0","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.57.0","@typescript-eslint/eslint-plugin":"^8.57.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.1_1773480175516_0.45649919097559866","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@iris-eval/mcp-server","version":"0.1.2","keywords":["mcp","agent","evaluation","observability","tracing","llm"],"author":"","license":"MIT","_id":"@iris-eval/mcp-server@0.1.2","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://github.com/iris-eval/mcp-server#readme","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"0bd1aed25ffafe1ab08323cfb2a7438ca6d3221f","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.1.2.tgz","fileCount":84,"integrity":"sha512-CSy0CHj60gVuRvvu5BvSG2KqQ/kVzaK8P8Q7bGcy4uAm69k/yB22fXh4uRdGzZFkbZdkdpS9jizAP4sFlvstzw==","signatures":[{"sig":"MEUCIQCHPRu+cykgGxTclW6J0uMoSFCPRRvMMgJDhYhBWau4qQIgNIKllgs2xpJGvIJuap8T03DbBvw2mXHIpSfKHnAFtIM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":732591},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"291507d58ae84cd3dbdeb959a0ce9d1cfe79cebe","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","test:coverage":"vitest run --coverage","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.4","description":"MCP-native agent evaluation and observability server","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^11.0.0","express-rate-limit":"^8.3.1","@modelcontextprotocol/sdk":"^1.27.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.0.0","vitest":"^3.0.0","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.57.0","@typescript-eslint/eslint-plugin":"^8.57.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.2_1773481516991_0.18365395388840167","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@iris-eval/mcp-server","version":"0.1.3","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking"],"author":"","license":"MIT","_id":"@iris-eval/mcp-server@0.1.3","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://github.com/iris-eval/mcp-server#readme","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"53cdf88fd5ed5d1b16ce314dcfe330192105b8b0","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.1.3.tgz","fileCount":84,"integrity":"sha512-Y6Taa4zUmMO49Hzht4wMPVNxNz7hz8IOUnMN5DReSaeDwSKbW/kPQd4uS128bbJLKdoYDqnBTpKZ3iODMQw6Ww==","signatures":[{"sig":"MEQCIAPIX6c/yNCx/8LwAgbyGHGR2Cz7yD7JtXvzkYwPBjtGAiA50uWZLkt+JsGEclQivrairmRPiSVUiHMPHTxbOkv9Jg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":732133},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b5ba1ee37559b5e101d4fe1f8aaf8985b9801784","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","format:check":"prettier --check .","test:coverage":"vitest run --coverage","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.4","description":"MCP-native agent evaluation and observability server","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^11.0.0","express-rate-limit":"^8.3.1","@modelcontextprotocol/sdk":"^1.27.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.0.0","vitest":"^3.0.0","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.57.0","@typescript-eslint/eslint-plugin":"^8.57.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.3_1773610428629_0.409758450627552","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@iris-eval/mcp-server","version":"0.1.4","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":"","license":"MIT","_id":"@iris-eval/mcp-server@0.1.4","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"8785fa8d539117ab89a3b7a776510152e472e31d","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.1.4.tgz","fileCount":84,"integrity":"sha512-W2IOsKVH6+AGqNGKcm5dkwofpikqcETE0h0ai/R/1N9ro11/+J2OdD57hglKB8U9OKb8bmpfGeBDxV7FL9Z+8Q==","signatures":[{"sig":"MEUCIC5F3AGKpGJmICIIPFuOR+zdcoSN/Zb61Uh1zvnWgn9iAiEAtoeWrNhKcYqf2fzo0ocS2lGRRFx+VjoJJ76vzqJe614=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":761195},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"37472a16a96f0ac5134442b11c1d085128a7c585","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.4","description":"The agent eval standard for MCP — score output quality, catch safety failures, enforce cost budgets","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.1","@modelcontextprotocol/sdk":"^1.27.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.0.0","vitest":"^3.0.0","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.57.0","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.4_1773995452020_0.5906870550526941","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@iris-eval/mcp-server","version":"0.1.5","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":"","license":"MIT","_id":"@iris-eval/mcp-server@0.1.5","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"4674facbdd18f6d695fe3eb6bac8afcc2f48d30c","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.1.5.tgz","fileCount":84,"integrity":"sha512-H0abv+axr8oTS4Qz0WGK5i/6YEnizWr0xpz4rOdZoZ5vJKYzEjhaCEIcNwSPuvl82/CpbmmYjk9yeXDAlhSOiQ==","signatures":[{"sig":"MEYCIQDVyg0XeA8844CmOD3ghHb82Cdw4snM1/AQ1jwOl4vXqAIhAKgcHIXCwNFqp9kKC2wY8foN/CaiATZprc00Phns5lUf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":761538},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"784c59fd817e01a709f111705b051c24f59041dd","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.4","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.1","@modelcontextprotocol/sdk":"^1.27.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.0.0","vitest":"^3.0.0","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.57.0","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.5_1774148115613_0.4213005852233531","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@iris-eval/mcp-server","version":"0.1.6","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":"","license":"MIT","_id":"@iris-eval/mcp-server@0.1.6","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"c056274d301f873049912cead94e548f8092e1f7","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.1.6.tgz","fileCount":84,"integrity":"sha512-xKbyhWmU0tmfsPiQ34c/F9M5mtqRnyH90o39pq4k2YEMDwEcWLYVwY1Z6x46YU08LpC1G9wBVLSPjKQIuxnmAw==","signatures":[{"sig":"MEUCIQD3XjBh2A6IdC7GY7gaXu7J6Bnir8zh6s1jseWyy4Sd2gIgXUkjMyq2i+BIEMGnh0rH9I5Yf/pRLXmS13x/yRZOJMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":761579},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"4f60e9b4996de91a85dab6009ebfee299c10983b","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.4","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.1","@modelcontextprotocol/sdk":"^1.27.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.57.0","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.6_1774279710957_0.02309482283405817","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@iris-eval/mcp-server","version":"0.1.7","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":"","license":"MIT","_id":"@iris-eval/mcp-server@0.1.7","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"5d53fa9bd440887b79fd2a2e7982d6f142abd80d","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.1.7.tgz","fileCount":102,"integrity":"sha512-Mg8Zg/z1rZnh0zi7dz3L6GpXgRyeCulICLYjGNAfiX5zcAJBGkCYmdS1mlkjwi7OQnbZNsWHsKELrkIRnIyQbg==","signatures":[{"sig":"MEYCIQC8ZaKEaHsTHCSEWvNyiTMEC1QtmeQRuHo3TwzU6SunsAIhANTL/Mg+XPSF9CE0j/5jPFYiJHnLvsJA8BVnEpkiz3Da","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":764017},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"9298380d19f8dd0c48c43a2ace604eb8f7ef89dd","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.4","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.1","@modelcontextprotocol/sdk":"^1.27.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.57.0","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.7_1774485061978_0.6393312888160012","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@iris-eval/mcp-server","version":"0.1.8","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":"","license":"MIT","_id":"@iris-eval/mcp-server@0.1.8","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"8100b1b8cb55a72758b5820af99fd5fdcd2ec809","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.1.8.tgz","fileCount":102,"integrity":"sha512-LduR3PYHZbCk+ZRNvYei+47sN7g6BaEYShxNkGfGENSvAT6rsJKCwX8CbNZYD3RjM3zyP5pgdUzeq42BlZ7iMQ==","signatures":[{"sig":"MEYCIQDko56lboXOKQmm91VVYjIf29EMhRYaE0n8jedFAWMnHQIhANYqRY3CRASBNvTWpBWCP/vm7ZuxQZ6SZ2g+tSdFQ+pb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":767669},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"31b5e4a1713f5985138b6f08615cbe373f3fccfc","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.4","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.1","@modelcontextprotocol/sdk":"^1.27.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.1.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.57.0","@typescript-eslint/eslint-plugin":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.8_1774497311050_0.10826765457788068","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@iris-eval/mcp-server","version":"0.1.9","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":"","license":"MIT","_id":"@iris-eval/mcp-server@0.1.9","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"ccb8741e8aa1362dfde0d2b9828fa58034a97da0","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.1.9.tgz","fileCount":102,"integrity":"sha512-duBt/DuAdq++pJjNF4OyN5l4WZFH2uwvc9SbohhmbF44htan1CFUFjag8gYfAQLM9JAkCF4Ytq2UeiUcr8roRg==","signatures":[{"sig":"MEQCIFnMV6V1I7Qw13YIa/CLnwEg3ImndeOeNSZ/0Xb0GjcmAiAg9/ArlLOGvufsPnjwK4iyMb/rByqrSqjjCHqCotMMaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":721320},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"88b0d4d41d95417e7a961d0af60421990f26256a","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.2","@types/express":"^5.0.0","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.9_1775582677804_0.9118486934704126","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@iris-eval/mcp-server","version":"0.2.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"name":"Ian Parent"},"license":"MIT","_id":"@iris-eval/mcp-server@0.2.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"ba3e08b7e03ce2072c69f301794206e8c0a5d954","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.2.0.tgz","fileCount":104,"integrity":"sha512-rVuEewjUbgoGwOxKCVnBanfKQANYmbpo7OrK1rQEjxQH8CaBMxVQ2WTZWDoL1vUkhPwFABZ56Hic+m2oHlg16A==","signatures":[{"sig":"MEUCIQC0Yd4m6NZJS2ZsGX7Mg3QCwb1UF+KLWcsdpyWa2/P1zQIgA7PlYQfBOFcavaRmlutAwnicNLOL2+PT2/SQGPMZF9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":729581},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"e63f648a03f4f7599c3da392ce3181aa32bbf3d0","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.2","@types/express":"^5.0.0","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.0_1776199944891_0.3697680839701134","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@iris-eval/mcp-server","version":"0.2.1","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.2.1","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"5bd14c02e5b0f3e34264ff31acd58d67d7471026","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.2.1.tgz","fileCount":106,"integrity":"sha512-Bzht84a1XCxfFEjUhzYZPHPmnrdNfEX6hM1fIiyQ9YDAdkj++iMZdYHcBgCwhybI+jZejQYRwkXTT5SnQtr+sQ==","signatures":[{"sig":"MEUCIGA6yOvpPNG4wgQStUkK9uNLyktbgbS5Ef47sJ8bndH1AiEAnGyZuKBLAQOisQQKcFHoD1ruy3lSel/8/jr0IrG1jbo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":732276},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"c8fd08d10bb71b631dc29982ffc2292b985dcb20","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.2","@types/express":"^5.0.0","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.1_1776379017348_0.8917431345698472","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@iris-eval/mcp-server","version":"0.2.2","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.2.2","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"a3a063125be392b58c30c657fb76565967f7a785","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.2.2.tgz","fileCount":106,"integrity":"sha512-CGNfWhXtYLhOD+fOalOU/wJxTqhRii6mX/LcWgLTcBTkSFXh2N+JB3XE3m8GPSBuclgVaUDIFCwr4DvMbsJgtg==","signatures":[{"sig":"MEUCIQC/Yuyp2/ly+RI7TAjW88+JtjcjC1NY4vs2PiY5ifEUkwIgO3RaU9eriHETPRzj4XqS3pXGBRy1zYbnvy8MxHm2zfA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":733539},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"e1895685973c991cea3ce713de6a2ae2d2cd7ca9","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.2","@types/express":"^5.0.0","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.2_1776386216717_0.8082710596348619","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@iris-eval/mcp-server","version":"0.2.3","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.2.3","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"58a0e3d9216932f4a47dc316afce0648627b0e43","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.2.3.tgz","fileCount":106,"integrity":"sha512-2M8I8gSPT9rzl/bYI1486c0k39MukgPh8vt76sIdVnoQechYkTfjuv3to9l1Gc1/ddsAJ2yOmYXNjf2VS9sMaw==","signatures":[{"sig":"MEQCIFds0AkV95VKJ6vdHixVU61uziRbpvZdNswoXK07tqx3AiBQptFpKxKgdpfDCSkdjebL400ZdmP0IhH+tDsWn2BisA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":733539},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"f04bede72ab1f3c8cda4f017ab09f31aadec298a","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.2","@types/express":"^5.0.0","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.3_1776396429709_0.4290578954118738","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@iris-eval/mcp-server","version":"0.2.4","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.2.4","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"b155f40d03acaa55c57546ce4097e4800614ef66","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.2.4.tgz","fileCount":106,"integrity":"sha512-8K3rc3rlxqehBMTwicGygTHj7vQlUkz2MQbiiMEh0vsoN1leKvH/ScfMeqSMPv8aPgi8ChK9b5kxky5FWGC3JQ==","signatures":[{"sig":"MEYCIQCgRFv3VQsuY8iQlaDvpo17sceLE64ZLp5Y1v0GYCECVQIhAJzg5roxuA7KUWRKI6tniseQW7P9Btuy9uBSjzCnnBPC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":735675},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"d8a30cd153123d42506439494a5cb051e215fe4b","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.2","@types/express":"^5.0.0","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.4_1776397758529_0.06300378411455276","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@iris-eval/mcp-server","version":"0.3.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.3.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"597646b22e77280b909107aba09f08c66e96e915","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.3.0.tgz","fileCount":108,"integrity":"sha512-RrqWIj9TQ8kTXzOI3GUlWvTarod8CYbAIYl2267JYDwn2sN+AYTUCjpMUuWQFIN3uMZK8vSzCnhINFe/bFY7/Q==","signatures":[{"sig":"MEYCIQDDU/SV0kxDFk+ekUdzUO7HTasWLRPWLaXPaMQ+NE7uRQIhAMUlYOKyrMRZy4HQv2NXgv5r+Gvw+E6jco1vouivNFKd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":765170},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"f8ab755f5fa0519b67f926d7a62997a34faf7ec3","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.2","@types/express":"^5.0.0","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.3.0_1776831625429_0.24032179996102476","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@iris-eval/mcp-server","version":"0.3.1","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.3.1","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"a0744ed4085ff70c9fb375e1deec6fcacbbfbd69","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.3.1.tgz","fileCount":108,"integrity":"sha512-0NWMxGJcq45mJ2KpJ+JpVr4ERiFGEVHa8KLcbbenuo36XhdZSj5Y4xrTIHvTp7b+kr4hUXvBNi2bvotNPvmQ7Q==","signatures":[{"sig":"MEUCIQDW7CJHPwmP2IDE3d8yoyHR0H9Lqb43pmzC/3ppG4ffCgIgBNZE7e6i1Po7vBeFJLSHZZaJECdt/dBvROiqJe/UXJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":771616},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"836b14945f8cf03d164929afb5ad0fc5a1ac4323","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.2","@types/express":"^5.0.0","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.3.1_1776898145963_0.0336155767632198","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.1":{"name":"@iris-eval/mcp-server","version":"0.4.0-rc.1","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.4.0-rc.1","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"af2994151255e67e3e14feb9aa9db6325413bafb","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.4.0-rc.1.tgz","fileCount":170,"integrity":"sha512-/xMcq1jNDzBzE3PWAfRyQ101glFEJ+uxiSYBqZ8s056gOokle76lQ5J0teNgiLyPxcQY1EvnBjFPx4veX80vxQ==","signatures":[{"sig":"MEQCIAtwFJPXC1UQy5vgEzOqU62oZGf+0pBEeQwGW2i1oVOtAiBjC2TWfPQKR8wTZ5QMMjNK/Qq9Q1o53KGka6jt1AWMGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.4.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":834017},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"4c34d95592a8fff197072ca2a56c9d49e4cfd85b","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","test:e2e:ui":"playwright test --ui","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.2","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.0-rc.1_1777001132859_0.17461771978226492","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@iris-eval/mcp-server","version":"0.4.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.4.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"29902c8afce484f0278ac7da938f9c4931b04cbb","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.4.0.tgz","fileCount":170,"integrity":"sha512-HP27sJzXxBOQDAG+al/Zf6HALWVZZ7yy9BefEUbQG4jhFmv8tEwecufjQVwtKFvbMafcd2ErI/WyRkY2WSajPg==","signatures":[{"sig":"MEUCIQCilltkXBor8apF8KeDJmeyxItT7I69dYhLFrK996u0GwIgfAdiVDx1+d24xpe9ozCnlROoly4l6EUM8PIaISyEugE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":834002},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"1010b75244576a4ad1ebc0da10dc6771534af1f4","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","test:e2e:ui":"playwright test --ui","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","test:integration":"vitest run tests/integration/"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.2","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.0_1777002757744_0.10234783926297131","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@iris-eval/mcp-server","version":"0.4.1","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.4.1","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"a4b1ceb6c6f2bdaae84183020d8a00d16fde0989","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.4.1.tgz","fileCount":172,"integrity":"sha512-0QrnSUnCWMj47pfMoJRtFAF0KOXhBN8cuG/nbXBddJ+IsaPtzFTwamqnmvYBor/nkFAlWJ2Btz8WikmvNDuNcQ==","signatures":[{"sig":"MEUCIHE5/0chQUr8G3PIqsfKw7Ou7zypuNZL/mPkplHhf+0aAiEAvL9i8zzgTv5Jo3XQtnFu8glo0znSHxKCa4yNYnv+n9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":860938},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"1e5859ae652fc8951487e22b08286bdbf3b8e573","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.2","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.1_1778115796703_0.7317003783252418","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@iris-eval/mcp-server","version":"0.4.2","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.4.2","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"e97bd955f554bac1eeeeda743545489ff582849d","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.4.2.tgz","fileCount":170,"integrity":"sha512-xMdVWlrDQVhhIruqj9w2y4lpMx6KR2JYDKn8srddrhqeyfD5xI6aa1Xw1B3HNKrnsid9X/a+D8bYcX6h20U8EQ==","signatures":[{"sig":"MEUCIF7OhV9q/wfy9OEHOcsTCH/FrU/Q/HpD+foiHaT24iwJAiEA9243SyueFE1ghCNOix7Ll83Stt8OwnkhSSBK7xs/02g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":854321},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"47a3de2757c5162e406e33f87572e5f00d5c7cb8","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","postinstall":"echo \"\\n  ✅ Iris installed — the agent eval standard for MCP\\n  📖 Docs: https://iris-eval.com\\n  🎯 Try the playground: https://iris-eval.com/playground\\n  ⭐ Star us: https://github.com/iris-eval/mcp-server\\n\"","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.2","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.2_1778118272850_0.49102717396317996","host":"s3://npm-registry-packages-npm-production"}},"0.4.3-rc.0":{"name":"@iris-eval/mcp-server","version":"0.4.3-rc.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.4.3-rc.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"12e5f969d28c44f3b4535862f405d7402b5532a0","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.4.3-rc.0.tgz","fileCount":170,"integrity":"sha512-XFEwusZ20zWfT98XAemdclptkrH0nrlwx7wEj9vSDHlISSEoQawHWfamz98c0uN5hFkTiHYKjpKjl6BgQCrBYA==","signatures":[{"sig":"MEYCIQCKxz2Cb3dcyg61HFdG0VVS6iPmXXcgCYOoz+9VE3hnqgIhAIXCvxyE+MG6fPfMzEfjfT9aA0kTkjFnf3/jr31quAgE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.4.3-rc.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":854056},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"a6ac2a564affd132adcc1a78fd4abfaea5cfd3cb","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"irparet","email":"ian.r.parent@gmail.com"},"overrides":{"fast-uri":"^3.1.2"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"10.9.7","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.2","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.3-rc.0_1778897167681_0.6401575420660996","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@iris-eval/mcp-server","version":"0.4.4","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.4.4","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"187cacc9bbd0afb70e5bae82cc7fe30f6095eaeb","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.4.4.tgz","fileCount":170,"integrity":"sha512-4ypuZfDbH07MNmkmxtNTu/i4ZRzNf+AmEiAG1LuL+HWse+TCBoQVAOsvKrKsWyPvw0hkU/icCjwAz/6jtHOGUw==","signatures":[{"sig":"MEUCIDGqheg3BhtysJ+grt6iypQpM869Lg8QYPQz+yvPZgiNAiEA5eWPZ85JO3pjVQHHXPq6RHjXM4nZXWeBeFUQl4ZVmQw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":857221},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"d28bf24c6b7ea1bb8abf24c7453cdc973b88d090","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"fast-uri":"^3.1.2"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.17.0","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^3.25.0","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","typescript":"^5.7.0","@types/node":"^25.5.2","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.4_1781301586645_0.788195220877441","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@iris-eval/mcp-server","version":"0.4.5","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.4.5","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"20e773ed1446ca1d95b973bd7a53bfd93a83cd6f","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.4.5.tgz","fileCount":172,"integrity":"sha512-H/hFPalx2mbLMHcfRoRS7KuZbHUa44HaFomVuv4ILigiWQK0U34qExcL3qzvKrWetu9oLZ02REAQJ8bzip5ZSA==","signatures":[{"sig":"MEUCIQCf9ERNzq894TiPxjnvAgPle2UKU7Kh3CYHE3VcjsSqSgIgVutffdBRYkouNf0AlaGsfd9AIkCCsl/HUqpkfxhQ5tw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":870617},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"02029ff55edb88a6f9a275810024aba3933138ae","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.16.0","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.5_1786130043665_0.007099368860471245","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@iris-eval/mcp-server","version":"0.4.6","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.4.6","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"5f643d4901694f3929c6823c3a223ac92e6a7a09","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.4.6.tgz","fileCount":182,"integrity":"sha512-Sj5dw8oK5KjATId9XLWEfWDNTgeK6O205msWEqW656u/Gncivhc/tpInRptrgaAnbNJyr3eitYsn3H0AhIzYFQ==","signatures":[{"sig":"MEUCIEkOfJOm9sQBBSGcaiFaywXV+eUftBBTYd4WlotpzBwTAiEAvlRJbCGY7I2B9y4i4hfW0yqU+b7kIErgg1xoRq2tOy8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.4.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":894908},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"35348de68cff097b51789a995e2b70221c200bcf","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.16.0","description":"The agent eval standard for MCP. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.6_1786392615698_0.2201582110172584","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@iris-eval/mcp-server","version":"0.5.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.5.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"d028b45a36f091db2eb4403491186baede6da071","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.5.0.tgz","fileCount":209,"integrity":"sha512-c12EieXDBRPdi9XQ/puAYiEI9A2/zmp1suSJTsCqKFlFTYlPv5iEANAeInX9O58ehMePjJuqW7vHX6InbFmKlw==","signatures":[{"sig":"MEYCIQCZuAujK5z1N77WWeNraKtxI/WzK89Uk12N7yuFEJjaCQIhAKHoECnG1aDWITwz1CvKmQnqsoc/vtc1o8xeiy0u57zB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1323627},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"52c0498aeca8ceb78123ebfbcc7307e63cf5d4a6","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.16.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.5.0_1786555781722_0.05843660412603113","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@iris-eval/mcp-server","version":"0.5.1","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.5.1","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"d1f415728df0dab72174272a6438fa70a0de1fd7","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.5.1.tgz","fileCount":211,"integrity":"sha512-crRcJ0q1GfJnMIOFz+cmMmqP+Za1ICBER6myeljPf3r6APSYTP4VgWPte1Dk3X8ivhZDJnc4VFTE8a0CBIi7xg==","signatures":[{"sig":"MEUCIEtCwO2FLHYT6ThB9MxE3UpAhs0ytKUyNtLIwf00BoTmAiEAkCivb90+lR90EQ/k3GbkZ1ZLifSWq5gsEYjmxr/5IfA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDw3MbfrxZVy/lEkUm6jnuUNWGrdevSfPt1UiekSp14swIhAMUsw7MSGIJ2g/5IVUGmtE9DM5OAquJkAKCozWuma5kH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1343984},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"51e88a5c2ce4dae2563f6999556f72fbe82ffa60","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.17.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.5.1_1788419821659_0.9383571576586045","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@iris-eval/mcp-server","version":"0.6.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.6.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"9b62eb362cd29f298d8214c4b86291de5a8c91f3","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.6.0.tgz","fileCount":217,"integrity":"sha512-hRBrRQUFYgJapIhVHsHbuQBDQYSGGR4BEavn+/skk98YYo45MWpkSx4sVa5qvL7zPc9rUUuRx1xuYwrlCGd+ew==","signatures":[{"sig":"MEUCIQDc2pODv8giRvC/YFqp/w+wVAJ/VhcmTcy1mk8q9hSgbQIgR21ELn2+FNaF7jYkxBFk/GDFJs5ActpjeCkJRvO6POU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICeIl4UH5/4HS/6B5zFWQAMzx/y0Jk9kj6I5fmhbPEXPAiAUvQOKVulwoGogvl/wCLtdlG/+dpk9Sgwy8SfBKIgNkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1449210},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"de814cf2cc09439237b828657921e2a9d98a6d2c","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","test:watch":"vitest","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.6.0_1788465882673_0.12430728957931181","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@iris-eval/mcp-server","version":"0.7.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.7.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"9f3a4b8081bd80be4c0f3628754f2ce262fba410","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.7.0.tgz","fileCount":217,"integrity":"sha512-Xf0uFQw6MKk64ra3ddRdyd2mNRcSi71W9WTWx82sx02x6+5IZsDjncTo35rM8/Uh6CVMRloQSE8qwNneTDXnUA==","signatures":[{"sig":"MEQCICdXFj9A+5QtDSfo92z5UDXPwVi5hXs4RO85Jm9f6p9nAiBLl3ESsE0HAvo8Xtt5ujkPDWaHvWhm4fCqYepSVq4YgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDGqcrY3+WRePShRl0G21Dh79aDL7EaMOd10i3zCB/U4QIhANPd4EkPczAiZAjxxR/KJouJNVJC7GtZmkKmmE5zvpEA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1479790},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"4d680299052a60a75fd6bbb1ab49ce270c465c28","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"node scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","proof:typecheck":"tsc -p proof/tsconfig.json","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.17.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.7.0_1788532423584_0.38033111832874544","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@iris-eval/mcp-server","version":"0.8.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.8.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"e7ae2609349e6d68b396fac0dd52e64ec539177d","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.8.0.tgz","fileCount":221,"integrity":"sha512-EvB5xInO9v58wCFABTds1Wqg44NagjWn4HOx6UfekfvUDVsbgUpwQL7xmVN2KPE32WsEHJzbNt4Qojdaw8ZLmg==","signatures":[{"sig":"MEUCIQCDrTjds4rZmbPWQ2RlOnWMpF5G1I05hzQ9nG/MXmu+VAIgPdfI5jZPnVUcPn1KaJ0nUX4tVDSJwXCy8SUPgrr/sUA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDa+PMfmlxhO8JtPf+XgBpmLB+1U7zttBsYwENqzlgrcAIhALPJBLuZGLa8Vzt7c93tLUzEAn0euha69QxS65fjA/+P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1529625},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"15704446b03483f26041653b208772a144052b69","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"node scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","proof:typecheck":"tsc -p proof/tsconfig.json","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.8.0_1788539058214_0.6628354589942833","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@iris-eval/mcp-server","version":"0.8.1","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.8.1","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"56a568546e9e9cccaae03c1a3c58d35d80ccf0c8","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.8.1.tgz","fileCount":221,"integrity":"sha512-erEe6cf7wRq61+S5AUPnE2kL9CzYRSLi8fWy+kWJMCXAbWUUvkgSv94t4mqmPEVysn4RELUAmzoALSt+kRCCgQ==","signatures":[{"sig":"MEQCIHNGy65vILEUJ5vZYK8ZBWE1F9zawv8TacO72bsIBwkhAiAkRgtnzbtPyzp96xaQx6bFeSbMfoA37sMXtiSKuGuOVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDB4G873Omsuqz/B8IwY2ty4GzPTrDnmqn46vm9qsVxaQIgW7SJd+4ufvkIM96LNiK6rB6t+J7s7EhG54JTbobT3hQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1532258},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"b07ee1902bc0044d0d92e25241c9f86b87b44780","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"node scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","proof:review":"tsx proof/human-review.ts","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","proof:typecheck":"tsc -p proof/tsconfig.json","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.8.1_1788562864751_0.0811795969657827","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@iris-eval/mcp-server","version":"0.8.2","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.8.2","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"5327435933584722127225af3cdf91f5cf17c9f2","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.8.2.tgz","fileCount":221,"integrity":"sha512-WmXwSOUgHSQHBBUI+0VV5XJmcZ2VZzRr1Aqe2bQ804hcNuU1+Q/zTU1eup/eU1O9nNYr6nyzduWwTudvwnqHMA==","signatures":[{"sig":"MEQCIAZIdSSMyY9rnsB/f6EcL64+hVUDee+NLY9p7rtyVQa6AiAm07wXEomdYZDREe58Z8uNKBzF49jd7lmvgYL8hB2TDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCHP0wTUqgrMORlYUc8qCX/RoOU0+69BMRic7qu6WLmggIhAPBGelip+6G+YKixYCXHTVsQ13VrH4TODP4ChlJxXdP9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1535251},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"37da66c913c5be328022f74d4c6400a218ca956d","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"node scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","proof:review":"tsx proof/human-review.ts","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","proof:typecheck":"tsc -p proof/tsconfig.json","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.8.2_1788595078969_0.3888042952387878","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@iris-eval/mcp-server","version":"0.9.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.9.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"5d6b3b172517a874bffac2338a4b6837c7d6e9c4","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.9.0.tgz","fileCount":260,"integrity":"sha512-gZ5s3NhaSvxDijcSf0jzGZ4g+PBNis2Uxb70GmscEiE4uaN+W4zfG2KEssG4tSVYcg2i5cSdwUCCqLUhyw7mLQ==","signatures":[{"sig":"MEYCIQDAcaN+X0QpheUf2zCDqs5QIig+zzln6mca7dJOOwYe7QIhAOAEULO2xdWK0rphj3J4O6/Iih/jzlGuVwpujUhWFmOu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICZPAwFHxJYTPhVyuxc4YHzJeXyCRg8vhFBoDRsMhy3pAiEAhslkwhhyIJc5bMmqlgjT5dFlp8hB00aVo7RhoxZfM8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1687832},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"e746ce390341f6c084ea6141ce5df199203da1b5","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"node scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","proof:review":"tsx proof/human-review.ts","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","proof:typecheck":"tsc -p proof/tsconfig.json","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.9.0_1788603397640_0.3554465063609802","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@iris-eval/mcp-server","version":"0.10.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.10.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"c42debae8a6a1507d43e32db8b98ba3c5456ea9e","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.10.0.tgz","fileCount":272,"integrity":"sha512-+68GbBg2+B3WvkUNmlpAXbr6//T8bIBD6c+AEaD0JQ1gzCZ0wp6Fdi0PKn2uXA8U8ZF4cDhhl2suqKq0596Umw==","signatures":[{"sig":"MEQCIBpkYv2itj6v4d2ZUmBYwFBNjK7sNeSEQHDr5ct/4iCfAiA+P6+ApNL3AIQSG3lEUPYQKhFRpCdble3t5vcVK9iuBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID5w8pJA2tMAUwE9gVLja80qW2BPNgaABXxGnbqgU2ytAiARQWtLnvLH8lJB0trZiGSVZPVwH5JuriW10NY+TgLjbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1756428},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"56311b8bb3643253f08cbde24b6bbefb71115e3b","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"node scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","proof:review":"tsx proof/human-review.ts","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","proof:typecheck":"tsc -p proof/tsconfig.json","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.10.0_1788636426580_0.29280845083491003","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@iris-eval/mcp-server","version":"0.11.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.11.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"c9ae2de694a2f2c3cdd69286741e6ce2eb085b6a","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.11.0.tgz","fileCount":288,"integrity":"sha512-Uoaeh8JYv7e4QRsCTk/z7yvxF4NT+UlJvwaigzAkO9vENXSAcZiag9b772EGB4dFAcNcqEDidAnIliukuAI1rQ==","signatures":[{"sig":"MEYCIQCpZIKJ7TwzIFM4XBClI//DLGvZ/1lh6OJrFad05sBaFwIhAN/WPRAIEg028F79oV7MTWDYUJEIV+JCqwvYoiEETc4D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGdG+1XGdSrtZvkrQ72MRLVSbMSsIoNAOWn72ApoplC4AiEAxuX7FF0H6NjOaSufbG9P7hiOy5T5+7Q2bnnG9d8fu/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1998086},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"53eebb9418abec1246abd0be9a8b68b99bc90c4d","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"node scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","proof:review":"tsx proof/human-review.ts","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","proof:typecheck":"tsc -p proof/tsconfig.json","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ajv":"^8.17.1","zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.11.0_1788732981980_0.2562408826594873","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@iris-eval/mcp-server","version":"0.12.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.12.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"048f1b82844ac693f53abd4e0649bf0130ba10be","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.12.0.tgz","fileCount":302,"integrity":"sha512-2Bjg3zBA4COCCeAALl4C9ggVt/skWM4KERYsnrFg6atrcN3JniSKE/ZITCjovx+jzjvLqxe+ZU2sBPHTuGXpsg==","signatures":[{"sig":"MEUCIQCvCutBBEtPQMic49G5YAXb09gCwCLVzbT+2ztFOh/rwwIgZ0qD2HQmcKLeaTL/SIWVEWK78iDfYl9YpsAMa7xxLkE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAhFBscXPepV9z+RKN2ul8VtJYOzw35b760XQUkTUQpPAiBB+5FJFQgY3cwlAkOIFmO6A5roD0lSmnD++bpn0tlTYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2108371},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"00b100631acaf65c76f402a2129f5b222d58a8a9","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"node scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","proof:review":"tsx proof/human-review.ts","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","proof:typecheck":"tsc -p proof/tsconfig.json","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ajv":"^8.17.1","zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.12.0_1788814953647_0.49486974893082114","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"@iris-eval/mcp-server","version":"0.12.1","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.12.1","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js"},"dist":{"shasum":"e3a7520a2e6159fdef6f65ff11a401a567127b14","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.12.1.tgz","fileCount":302,"integrity":"sha512-iejeJeWgzCu4LV6tHDmJVnw5woUUJEGphm4wodtUoK1kY/LHkP0hLg7UhpPDBlgEKuzhtpvJBhd3MgFrk5BKVA==","signatures":[{"sig":"MEUCICrsMyvuzFq47wYgTtRSWuda/+v9u2fGP65srXNEz7fRAiEAlSj6oTnJCRWpg1hRkxNN7MjO/J5pofoW1BntqoW9egM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDva4jVK3EkaWfh16tjSLm3y/QyGCPKG0DPiuE3X+FYXgIgVjQkZLn2E+NVViFpVkfv7WvlWSTjAmNi4A1RFxf+22g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2109516},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"600a1792072d5afa72d0576269354f7d819fb0eb","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"node scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","proof:review":"tsx proof/human-review.ts","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","claims:generate":"node scripts/claims/generate.mjs","proof:typecheck":"tsc -p proof/tsconfig.json","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ajv":"^8.17.1","zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.12.1_1788837295192_0.7031209541128602","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@iris-eval/mcp-server","version":"0.13.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.13.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js","iris-eval":"dist/index.js"},"dist":{"shasum":"0be9f74a35d463cc63127ac24d13118d378f51f3","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.13.0.tgz","fileCount":314,"integrity":"sha512-ZT92pXhFQKBMyRlyehAyAUHWAUGfS0hnHY0RsfGEDqsPhxmG0D4DawrNgDP5tVa9XrHA6ZJRejoArTLBsraGPQ==","signatures":[{"sig":"MEUCIBKHP1smUMpPjDs4/muve6gytvsNSnTcp/bbtxBFI6eTAiEA8n2VrWVtLLLlNMvEY7oQk77v2OamUIGDUxG1pA21bVw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD83EH9UEfRRk1uEBPyMVN8OWpRt66qp9EMo0VwejQKNAIgSFeoC2txwDRoSKtDDzGJ/oPUOnlTLc+lRLe/Wnn8Too=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2166468},"main":"dist/index.js","pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"f0abd750cf5ec180e1734ec105ebfd31a322161c","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"npm run build:dashboard && npm run build:server","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","prepack":"node scripts/check-pack.mjs","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"node scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","build:server":"tsc -p tsconfig.build.json","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","proof:review":"tsx proof/human-review.ts","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","mcp-json:check":"tsx scripts/claims/render-mcp-json.ts --check","verify:release":"node scripts/verify-release.mjs","build:dashboard":"npm --prefix dashboard run build","claims:generate":"node scripts/claims/generate.mjs","mcp-json:render":"tsx scripts/claims/render-mcp-json.ts","proof:typecheck":"tsc -p proof/tsconfig.json","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ajv":"^8.17.1","zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.13.0_1788852106699_0.0817319432390271","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@iris-eval/mcp-server","version":"0.14.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.14.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js","iris-eval":"dist/index.js"},"dist":{"shasum":"1c82b75a714aa6d45d5c85e3574ee594f93daf31","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.14.0.tgz","fileCount":326,"integrity":"sha512-Zy2dcLqPbMFJxPiam0LVh8n8xnLe6R5JAWn7fJ2yjupaNUwv5tjk25Tt05LZn2aGEGqiIUvJBtBBYoleipxnwQ==","signatures":[{"sig":"MEYCIQCtYm6NfTbDDM+UXjOCJC9F/gjHT0AJvZd/YamKKD25fQIhALpSWc/yDYNqoCpGGKxYvmFA3fRkOprmVJNUvpov7uG9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQChBbm3RvIjNK7S4zV4uqO8Q6oKlhNuMMxBBpzUbQ2BJAIhAPrR/qwWzapSiJUwQawv/jJ8KamMiTKinTXrLyti+aNP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2346825},"main":"dist/index.js","pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"44afbf018df4ca051138b0e2ae915433395e5a3e","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"npm run build:dashboard && npm run build:server","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","prepack":"node scripts/check-pack.mjs","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"node scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","build:server":"tsc -p tsconfig.build.json","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","proof:review":"tsx proof/human-review.ts","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","mcp-json:check":"tsx scripts/claims/render-mcp-json.ts --check","verify:release":"node scripts/verify-release.mjs","build:dashboard":"npm --prefix dashboard run build","claims:generate":"node scripts/claims/generate.mjs","mcp-json:render":"tsx scripts/claims/render-mcp-json.ts","proof:typecheck":"tsc -p proof/tsconfig.json","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ajv":"^8.17.1","zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^4.1.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^4.1.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.14.0_1789941311381_0.7495531884677449","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@iris-eval/mcp-server","version":"0.15.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.15.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js","iris-eval":"dist/index.js"},"dist":{"shasum":"3ca997b9df7f59c9bec92a9ae58d8e9c2384a9c5","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.15.0.tgz","fileCount":350,"integrity":"sha512-hphL4hEDPgQ6cAXQMBMZ/hNgu8Xoss56th+lpFFc9kP9PP5dosRK5vqfkhC/zjkoSRd0GpLwLnHKEMLI27wqjg==","signatures":[{"sig":"MEUCIAS8Xbao3S20vNgl4zbJFSItkVdTzAvWU9qe4mntKDkAAiEAvjuG1ws1vu1b5kEnLrsQREt+cvMmCKiFQnRiwBw7wns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDoCVCW2E7x9fPKdx/0SCztQZ8zyDg5CychxEXi4GansAIgIMIuDFxA5jxh68pV5A/2lRNL2qDFnpBKXbjTvXS9ss4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2487837},"main":"dist/index.js","pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"./dist/*":"./dist/*","./engine":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"./server.json":"./server.json","./package.json":"./package.json"},"gitHead":"44a5bf0374eaddd10039d4dd9851adf35c1e7093","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"npm run build:dashboard && npm run build:server","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","prepack":"node scripts/check-pack.mjs","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"node scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","build:server":"tsc -p tsconfig.build.json","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","proof:review":"tsx proof/human-review.ts","version:sync":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","mcp-json:check":"tsx scripts/claims/render-mcp-json.ts --check","verify:release":"node scripts/verify-release.mjs","build:dashboard":"npm --prefix dashboard run build","changelog:check":"node website/scripts/render-changelog.mjs --check","claims:generate":"node scripts/claims/generate.mjs","mcp-json:render":"tsx scripts/claims/render-mcp-json.ts","proof:typecheck":"tsc -p proof/tsconfig.json","changelog:render":"node website/scripts/render-changelog.mjs","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ajv":"^8.17.1","zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^5.0.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^5.0.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.15.0_1789977500639_0.2869841723347504","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@iris-eval/mcp-server","version":"0.16.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.16.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js","iris-eval":"dist/index.js"},"dist":{"shasum":"df67ca3292f41cf12eb77004becc269bae9732a5","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.16.0.tgz","fileCount":380,"integrity":"sha512-QV9JGDouQGQwwT8SfKGxRH7//iAiNpajuyOC8mLQ5j4R2VwdJspsDasrdlYXds9VnZN1CNHMn6FUii2iuMzJYg==","signatures":[{"sig":"MEYCIQDR1ojeoKfBjauzZkY20hulQaJafqNw1DOlcZE35lzFIwIhAIbgT/PsHNO+HpeckQBkHtGCutioInxhs3JUXEy07X5y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAuuyPQK9hr766+APCgqX6KGY/pP0FlReXdRRpUUzGLMAiEAv7jM7hXKTJT+dIKEaDSxLqPxT4wgn5jF5IgQU/gBQx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2650124},"main":"dist/index.js","pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","types":"dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"./dist/*":"./dist/*","./engine":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"./server.json":"./server.json","./package.json":"./package.json"},"gitHead":"fc17324c0c4cbad069d89b99057485e5e2e36b8e","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"npm run build:dashboard && npm run build:server","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","prepack":"node scripts/check-pack.mjs","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"node scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","build:server":"tsc -p tsconfig.build.json","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","proof:review":"tsx proof/human-review.ts","schema:check":"tsx scripts/render-response-schema.mts --check","version:sync":"node scripts/sync-versions.mjs","schema:render":"tsx scripts/render-response-schema.mts","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","compare:verify":"node scripts/verify-compare-quotes.mjs","mcp-json:check":"tsx scripts/claims/render-mcp-json.ts --check","verify:release":"node scripts/verify-release.mjs","build:dashboard":"npm --prefix dashboard run build","changelog:check":"node website/scripts/render-changelog.mjs --check","claims:generate":"node scripts/claims/generate.mjs","mcp-json:render":"tsx scripts/claims/render-mcp-json.ts","proof:typecheck":"tsc -p proof/tsconfig.json","changelog:render":"node website/scripts/render-changelog.mjs","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ajv":"^8.17.1","zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^5.0.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^5.0.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.16.0_1790066099726_0.03429604365500438","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@iris-eval/mcp-server","version":"0.17.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.17.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js","iris-eval":"dist/index.js"},"dist":{"shasum":"10a3b071dd300a5f227848ab7eb71c4a74d05b79","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.17.0.tgz","fileCount":382,"integrity":"sha512-NEtp7N6+KJzNFFeKdGEMJAMV7tCkfjByWADklHza8ttOUFMTn80oxBNHVx6na92d4v9HXqjmqHwjjVkG3Pb5wg==","signatures":[{"sig":"MEUCIADgrOFxVFXWIpDKBrmb1QNjaul6kKS+xf0YReESXp7kAiEA8rL70XwD1EcoGiSzV5KuxDJwfQ/MlMaMPOdQHmzn54s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICzF7FsAEjFhoLv8xE2y+D8RVJs/W9CaNt0U2dggYBGCAiA2oMX3U4NHTv3adl2xXWSTr9+h18qHFN5FchmMYj3nmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2664602},"main":"dist/index.js","pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","_from":"file:iris-eval-mcp-server-0.17.0.tgz","types":"dist/index.d.ts","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"./dist/*":"./dist/*","./engine":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"./server.json":"./server.json","./package.json":"./package.json"},"mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"npm run build:dashboard && npm run build:server","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","prepack":"node scripts/check-pack.mjs","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"node scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"node scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","build:server":"tsc -p tsconfig.build.json","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","proof:review":"tsx proof/human-review.ts","schema:check":"tsx scripts/render-response-schema.mts --check","version:sync":"node scripts/sync-versions.mjs","schema:render":"tsx scripts/render-response-schema.mts","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","compare:verify":"node scripts/verify-compare-quotes.mjs","mcp-json:check":"tsx scripts/claims/render-mcp-json.ts --check","verify:release":"node scripts/verify-release.mjs","build:dashboard":"npm --prefix dashboard run build","changelog:check":"node website/scripts/render-changelog.mjs --check","claims:generate":"node scripts/claims/generate.mjs","mcp-json:render":"tsx scripts/claims/render-mcp-json.ts","proof:typecheck":"tsc -p proof/tsconfig.json","changelog:render":"node website/scripts/render-changelog.mjs","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"_resolved":"/home/runner/work/mcp-server/mcp-server/iris-eval-mcp-server-0.17.0.tgz","overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"_integrity":"sha512-NEtp7N6+KJzNFFeKdGEMJAMV7tCkfjByWADklHza8ttOUFMTn80oxBNHVx6na92d4v9HXqjmqHwjjVkG3Pb5wg==","repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ajv":"^8.17.1","zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^5.0.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^5.0.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.17.0_1790196468202_0.9914286385234601","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@iris-eval/mcp-server","version":"0.18.0","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","_id":"@iris-eval/mcp-server@0.18.0","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"homepage":"https://iris-eval.com","bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"bin":{"iris-mcp":"dist/index.js","iris-eval":"dist/index.js"},"dist":{"shasum":"1ec30357f0804506d6bf97641d4f5261f5f9f5f1","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.18.0.tgz","fileCount":388,"integrity":"sha512-QwnzV93U6F4ZlZZxwGwCO3WFRcQ78zOTR+MaayVJYlNkFM5/uWtzM3d3slA4r5T+ua/EXLOb38Ma4h1knUzgSg==","signatures":[{"sig":"MEUCIC8brB7K44mc+gbiD3D6bfHMjEVJ0wfpVM15Di31JXawAiEAnPBlWNncaIPLs2tnJgqp0qMQfCgrQFCkhC6Xh9SBVj8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD4u8VdGDR7vD2uy44w0C8OyiGsE0aja8BaVpppW7JNUAIgKEwsZzfwAjQY/SPnTq0EyFzMsx6AL17tik3sKwgLFos=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2711855},"main":"dist/index.js","pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","_from":"file:iris-eval-mcp-server-0.18.0.tgz","types":"dist/index.d.ts","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"./dist/*":"./dist/*","./engine":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"./server.json":"./server.json","./package.json":"./package.json"},"mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"npm run build:dashboard && npm run build:server","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","prepack":"node scripts/check-pack.mjs","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"tsx scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"tsx scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","build:server":"tsc -p tsconfig.build.json","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","proof:review":"tsx proof/human-review.ts","schema:check":"tsx scripts/render-response-schema.mts --check","version:sync":"node scripts/sync-versions.mjs","schema:render":"tsx scripts/render-response-schema.mts","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","compare:verify":"node scripts/verify-compare-quotes.mjs","mcp-json:check":"tsx scripts/claims/render-mcp-json.ts --check","verify:release":"node scripts/verify-release.mjs","build:dashboard":"npm --prefix dashboard run build","changelog:check":"node website/scripts/render-changelog.mjs --check","claims:generate":"node scripts/claims/generate.mjs","mcp-json:render":"tsx scripts/claims/render-mcp-json.ts","proof:typecheck":"tsc -p proof/tsconfig.json","changelog:render":"node website/scripts/render-changelog.mjs","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"_resolved":"/home/runner/work/mcp-server/mcp-server/iris-eval-mcp-server-0.18.0.tgz","overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"_integrity":"sha512-QwnzV93U6F4ZlZZxwGwCO3WFRcQ78zOTR+MaayVJYlNkFM5/uWtzM3d3slA4r5T+ua/EXLOb38Ma4h1knUzgSg==","repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"ajv":"^8.17.1","zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^5.0.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^5.0.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.18.0_1790259973784_0.8182217742848035","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"_id":"@iris-eval/mcp-server@0.19.0","bin":{"iris-mcp":"dist/index.js","iris-eval":"dist/index.js"},"bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"dist":{"shasum":"b299a27685c4e730254b24a7868ea14b60583ab9","tarball":"https://registry.npmjs.org/@iris-eval/mcp-server/-/mcp-server-0.19.0.tgz","fileCount":400,"integrity":"sha512-chBnXbh3IWouhI++l2+JsdCZtKcTiiPL8Xc5c6cSgShckARC8YDMIJNgaM4AeZs6FLGkLuBHAj1YAgrMiDQ3Jw==","signatures":[{"sig":"MEUCIFIibw5Vz1r6GoaYwDL9dmb3Vv2QI/veOIh6cuxkrqgaAiEA9rwxxFigJoPmHRKYkN1JKzYVUgraZuEHoahiKT+S2xI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIH35CLVXkcoZgUtsdY4v9jjfb2FgVh+QkVvpXetvr2MVAiAI6YZz/JU9BnoxVtwmKCMqFQYv3K3lYOt5jOfVOdn8Yw=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@iris-eval%2fmcp-server@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2822095},"main":"dist/index.js","name":"@iris-eval/mcp-server","pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild"]},"type":"module","_from":"file:iris-eval-mcp-server-0.19.0.tgz","types":"dist/index.d.ts","author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./client":{"types":"./dist/client.d.ts","default":"./dist/client.js"},"./dist/*":"./dist/*","./engine":{"types":"./dist/engine.d.ts","default":"./dist/engine.js"},"./server.json":"./server.json","./package.json":"./package.json"},"license":"MIT","mcpName":"io.github.iris-eval/mcp-server","scripts":{"dev":"tsx src/index.ts","demo":"tsx scripts/demo.ts","lint":"eslint src/ tests/","test":"vitest run","build":"npm run build:dashboard && npm run build:server","clean":"rm -rf dist coverage","proof":"tsx proof/run.ts","start":"node dist/index.js","format":"prettier --write .","prepack":"node scripts/check-pack.mjs","test:e2e":"playwright test","test:uat":"node tests/uat/run-uat.mjs","seed:demo":"tsx scripts/seed-demo-data.ts","typecheck":"tsc --noEmit","llms:check":"tsx scripts/claims/render-llms.mjs --check","test:watch":"vitest","llms:render":"tsx scripts/claims/render-llms.mjs","proof:judge":"tsx proof/judge/run.ts","test:e2e:ui":"playwright test --ui","build:server":"tsc -p tsconfig.build.json","claims:check":"node scripts/claims/generate.mjs --check","format:check":"prettier --check .","proof:review":"tsx proof/human-review.ts","schema:check":"tsx scripts/render-response-schema.mts --check","version:sync":"node scripts/sync-versions.mjs","schema:render":"tsx scripts/render-response-schema.mts","test:coverage":"vitest run --coverage","version:check":"bash scripts/check-version.sh","compare:verify":"node scripts/verify-compare-quotes.mjs","mcp-json:check":"tsx scripts/claims/render-mcp-json.ts --check","verify:release":"node scripts/verify-release.mjs","build:dashboard":"npm --prefix dashboard run build","changelog:check":"node website/scripts/render-changelog.mjs --check","claims:generate":"node scripts/claims/generate.mjs","mcp-json:render":"tsx scripts/claims/render-mcp-json.ts","proof:typecheck":"tsc -p proof/tsconfig.json","changelog:render":"node website/scripts/render-changelog.mjs","test:integration":"vitest run tests/integration/","claims:capture-tests":"node scripts/claims/capture-tests.mjs","claims:generate:live":"node scripts/claims/generate.mjs --live","proof:judge:typecheck":"tsc -p proof/judge/tsconfig.json","claims:check-hardcoded":"node scripts/claims/check-no-hardcoded.mjs"},"version":"0.19.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d0cf29d3-baa7-4904-aa5f-2436394b44a7"}},"homepage":"https://iris-eval.com","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"_resolved":"/home/runner/work/mcp-server/mcp-server/iris-eval-mcp-server-0.19.0.tgz","overrides":{"postcss":"^8.5.25","fast-uri":"^3.1.5","ip-address":"^10.4.0","brace-expansion":"^5.0.7","@hono/node-server":"^2.1.0"},"_integrity":"sha512-chBnXbh3IWouhI++l2+JsdCZtKcTiiPL8Xc5c6cSgShckARC8YDMIJNgaM4AeZs6FLGkLuBHAj1YAgrMiDQ3Jw==","repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"_npmVersion":"11.19.0","description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","directories":{},"maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"ajv":"^8.17.1","zod":"^4.4.3","pino":"^10.3.1","helmet":"^8.1.0","express":"^5.1.0","safe-regex2":"^5.1.0","better-sqlite3":"^12.8.0","express-rate-limit":"^8.3.2","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^10.2.0","vitest":"^5.0.1","prettier":"^3.0.0","fast-check":"^4.8.0","typescript":"^5.7.0","@types/node":"^26.1.1","@types/express":"^5.0.0","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^5.0.1","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.58.0","@typescript-eslint/eslint-plugin":"^8.58.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_0.19.0_1790371263084_0.47787194894872"}}},"time":{"created":"2026-03-14T07:48:55.030Z","modified":"2026-09-25T21:21:03.644Z","0.1.0":"2026-03-14T07:48:55.374Z","0.1.1":"2026-03-14T09:22:55.662Z","0.1.2":"2026-03-14T09:45:17.229Z","0.1.3":"2026-03-15T21:33:48.823Z","0.1.4":"2026-03-20T08:30:52.231Z","0.1.5":"2026-03-22T02:55:15.779Z","0.1.6":"2026-03-23T15:28:31.182Z","0.1.7":"2026-03-26T00:31:02.123Z","0.1.8":"2026-03-26T03:55:11.276Z","0.1.9":"2026-04-07T17:24:37.999Z","0.2.0":"2026-04-14T20:52:25.160Z","0.2.1":"2026-04-16T22:36:57.541Z","0.2.2":"2026-04-17T00:36:56.863Z","0.2.3":"2026-04-17T03:27:09.872Z","0.2.4":"2026-04-17T03:49:18.813Z","0.3.0":"2026-04-22T04:20:25.564Z","0.3.1":"2026-04-22T22:49:07.228Z","0.4.0-rc.1":"2026-04-24T03:25:33.070Z","0.4.0":"2026-04-24T03:52:37.957Z","0.4.1":"2026-05-07T01:03:16.858Z","0.4.2":"2026-05-07T01:44:33.212Z","0.4.3-rc.0":"2026-05-16T02:06:07.875Z","0.4.4":"2026-06-12T21:59:46.836Z","0.4.5":"2026-08-07T19:14:03.855Z","0.4.6":"2026-08-10T20:10:15.876Z","0.5.0":"2026-08-12T17:29:41.862Z","0.5.1":"2026-09-03T07:17:01.859Z","0.6.0":"2026-09-03T20:04:42.834Z","0.7.0":"2026-09-04T14:33:43.710Z","0.8.0":"2026-09-04T16:24:18.344Z","0.8.1":"2026-09-04T23:01:04.909Z","0.8.2":"2026-09-05T07:57:59.080Z","0.9.0":"2026-09-05T10:16:37.748Z","0.10.0":"2026-09-05T19:27:06.719Z","0.11.0":"2026-09-06T22:16:22.101Z","0.12.0":"2026-09-07T21:02:33.811Z","0.12.1":"2026-09-08T03:14:55.320Z","0.13.0":"2026-09-08T07:21:46.808Z","0.14.0":"2026-09-20T21:55:11.480Z","0.15.0":"2026-09-21T07:58:20.730Z","0.16.0":"2026-09-22T08:34:59.866Z","0.17.0":"2026-09-23T20:47:48.333Z","0.18.0":"2026-09-24T14:26:13.895Z","0.19.0":"2026-09-25T21:21:03.195Z"},"bugs":{"url":"https://github.com/iris-eval/mcp-server/issues"},"author":{"url":"https://github.com/iris-eval","name":"Iris","email":"hello@iris-eval.com"},"license":"MIT","homepage":"https://iris-eval.com","keywords":["mcp","mcp-server","model-context-protocol","agent","ai-agent","evaluation","observability","tracing","llm","claude","agent-evaluation","ai-observability","pii-detection","cost-tracking","agent-eval","output-quality","quality-gate"],"repository":{"url":"git+https://github.com/iris-eval/mcp-server.git","type":"git"},"description":"Stop shipping agents on vibes. Score every agent output for quality, safety, and cost.","maintainers":[{"name":"irparet","email":"ian.r.parent@gmail.com"}],"readme":"# Iris — stop shipping agents on vibes\n\n[![Glama Score](https://glama.ai/mcp/servers/iris-eval/mcp-server/badges/score.svg)](https://glama.ai/mcp/servers/iris-eval/mcp-server)\n[![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=iris-eval&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBpcmlzLWV2YWwvbWNwLXNlcnZlciJdfQ==)\n[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Iris-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect/mcp/install?name=iris-eval&config=%7B%22name%22%3A%22iris-eval%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40iris-eval%2Fmcp-server%22%5D%7D)\n[![npm version](https://img.shields.io/npm/v/@iris-eval/mcp-server)](https://npmjs.com/package/@iris-eval/mcp-server)\n[![npm downloads](https://img.shields.io/npm/dt/@iris-eval/mcp-server)](https://npmjs.com/package/@iris-eval/mcp-server)\n[![GitHub stars](https://img.shields.io/github/stars/iris-eval/mcp-server?style=social)](https://github.com/iris-eval/mcp-server)\n[![CI](https://github.com/iris-eval/mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/iris-eval/mcp-server/actions/workflows/ci.yml)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/iris-eval/mcp-server/badge)](https://securityscorecards.dev/viewer/?uri=github.com/iris-eval/mcp-server)\n[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/12849/badge)](https://www.bestpractices.dev/projects/12849)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/iris-eval/mcp-server/blob/main/LICENSE)\n[![Docker](https://img.shields.io/badge/Docker-ghcr.io-blue?logo=docker)](https://github.com/iris-eval/mcp-server/pkgs/container/mcp-server)\n[![PulseMCP](https://img.shields.io/badge/PulseMCP-Listed-blue?style=flat-square)](https://www.pulsemcp.com/servers/iris-eval)\n[![mcp.so](https://img.shields.io/badge/mcp.so-Listed-blue?style=flat-square)](https://mcp.so/servers/mcp-server-iris-eval)\n\n**Iris scores every agent run for quality, safety, and cost — on your machine, with no SDK and no account.** Most agent projects check quality by running a few remembered prompts and eyeballing the output. Iris replaces that with numbers you can audit: your agent's runs land in a SQLite database on your disk, 25 built-in rules score them deterministically — PII, prompt injection, hallucination markers, cost thresholds, and the agent's own tool calls — free, with no LLM calls, and an optional LLM judge with a hard per-eval cost cap handles the semantic questions. Every rule is inspectable and editable, because a judge you can't audit is just vibes with a number on it. MIT licensed, no telemetry. 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.\n\n**Requires Node.js 22.13 or later.** Check with `node --version`.\n\n![The demo: Failures, a failure opened, two runs compared](https://raw.githubusercontent.com/iris-eval/mcp-server/main/docs/assets/demo.gif)\n\n<sub>The demo database, recorded by `scripts/demo-media.mts`; the source is [`demo.mp4`](https://iris-eval.com/demo.mp4). A still: [`dashboard-overview.png`](https://raw.githubusercontent.com/iris-eval/mcp-server/main/docs/assets/dashboard-overview.png).</sub>\n\n## A failure on screen in 60 seconds\n\nNo agent wiring, no config — one command:\n\n```bash\nnpx @iris-eval/mcp-server --demo\n```\n\nThis seeds a demo database — five small agents, two weeks of runs, every verdict the engine's own — and serves the dashboard against it at **http://localhost:6920** (your browser opens automatically on first run). The dashboard lands on **Failures**: what failed, worst and newest first, each card naming the rule and its evidence. Worth clicking into — a PII leak caught by the safety rules, a hidden directive in a forum post that the summarizer complied with, a number the source document never said, two runs on the same twelve questions compared with an interval (**Runs**), a deployed custom rule and a paused one with their audit rows, and a failed LLM-judge score with its rationale.\n\nDemo data lives in its own database (`demo.db` in your Iris home directory — `~/.iris` on macOS/Linux, `%USERPROFILE%\\.iris` on Windows) and never mixes with your real traces. Remove all of it with one command:\n\n```bash\nnpx @iris-eval/mcp-server --demo-clear\n```\n\n## Hook up your own agent\n\nFirst, prove the install works on this machine — it runs offline and opens nothing of yours:\n\n```bash\nnpx @iris-eval/mcp-server --self-test   # exit 0 = healthy\n```\n\nThen add Iris to your MCP client. One command writes the client's own config file, keeps every other server in it, and pins the version you ran:\n\n```bash\nnpx -y @iris-eval/mcp-server install claude-code\n```\n\nThe clients: `claude-code`, `claude-desktop`, `cursor`, `windsurf`, `continue`, `vscode`, `cline`, `zed`, `codex`, `gemini`. `install --list` shows the ones found on this machine and the file each one reads; `install <client> --uninstall` takes Iris out again; after an upgrade, `install <client>` once more moves the pinned version. Restart the client to load it.\n\nIt runs in any MCP client, and every client it names has a row with what was actually checked. **Verified on every CI run: Claude Code, Gemini CLI** — the real client starts Iris from the config the installer wrote and reports it connected (`claude mcp list`, `gemini mcp list`), on Linux, macOS and Windows; Claude Code's capture plugin hooks are driven through the real scripts too. **Claimed from each client's own MCP documentation** — the installer writes the configuration shape the client documents, and that writer is tested on the shape; nobody on the Iris side has watched it connect: Claude Desktop, Cursor, Devin Desktop (Windsurf), Continue, VS Code, Cline, Zed, OpenAI Codex CLI. Every row with its source and the date it was read: https://iris-eval.com/clients. By hand instead, one block, dashboard included:\n\n```json\n{\n  \"mcpServers\": {\n    \"iris-eval\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@iris-eval/mcp-server\", \"--dashboard\"]\n    }\n  }\n}\n```\n\nYour client lists Iris's twelve tools on connect, and the dashboard serves at **http://localhost:6920**. Now paste this to your agent:\n\n> Log that last task to Iris and evaluate the output.\n\nThe trace lands on the dashboard with its scores. Prefer the MCP server headless? Drop `--dashboard` from the args — you can open the same dashboard any time with `npx @iris-eval/mcp-server --dashboard`.\n\n**One thing worth knowing up front:** MCP tools are called when the model decides to call them. Iris doesn't intercept your agent, so traces are logged when your agent asks it to log them — either because you told it to, or because your code calls the tools directly. Ask your agent to \"log this to Iris and evaluate it\" and it will. If you want capture that doesn't depend on the model choosing, `POST /api/v1/traces` does exactly that — your code sends the trace over plain HTTP, no model in the loop (see [docs/http-ingest.md](https://github.com/iris-eval/mcp-server/blob/main/docs/http-ingest.md)). The CLI and host hooks on the [roadmap](https://iris-eval.com/#roadmap) will be thin clients over the same endpoint.\n\n### Capture over HTTP (no model in the loop)\n\nThe ingest endpoint lives on the **dashboard port** — `6920` by default, not the MCP transport port — and it exists only while the dashboard is running. Pass `--dashboard` (or set `IRIS_DASHBOARD=true`); `--transport http` on its own does **not** start it, and a request to the transport port returns `404`. With the dashboard up, anything that can send an HTTP request can log a trace — and optionally run the deterministic evals in the same request. `GET /api/v1/capabilities` on the same port says what this server can judge, what each rule needs, the judge state with the steps that enable it, and the limits — the same object the MCP resource `iris://capabilities` serves — so an HTTP caller has the frame an MCP client gets at initialize:\n\n```bash\ncurl -s -X POST \"http://127.0.0.1:6920/api/v1/traces\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"agent_name\": \"support-bot\",\n    \"input\": \"What is the refund policy?\",\n    \"output\": \"Refunds are available within 30 days of purchase.\",\n    \"evaluate\": true,\n    \"eval_type\": \"safety\"\n  }'\n```\n\nReturns `201` with the stored `trace_id` and the evaluation result (in `--demo` mode the endpoint refuses writes with `403`, so demo data never mixes with yours). The endpoint accepts the same body as the `log_trace` tool and sits behind the same middleware stack as the rest of the dashboard: loopback bind and the DNS-rebinding guard by default, plus Bearer auth when you set one. **Two plain facts about it:** it accepts unauthenticated writes unless Iris was started with `--api-key` (or `IRIS_API_KEY`) — the loopback bind is what keeps it to your machine by default, so set a key before binding beyond loopback; and what it stores is verbatim — `input` and `output` land in `iris.db` exactly as sent, including any text `no_pii` goes on to flag. Full contract, field reference, and error semantics: [docs/http-ingest.md](https://github.com/iris-eval/mcp-server/blob/main/docs/http-ingest.md).\n\n### Capture every Claude Code turn (optional)\n\n```\n/plugin marketplace add iris-eval/mcp-server\n/plugin install iris-eval-capture@iris-eval\n```\n\nA second, separately installed plugin: three hooks record each turn's prompt, tool calls and final answer and hand them to `iris-eval ingest`, detached, with critical spans redacted in the stored evaluation text — capture that does not depend on the model deciding to call a tool. It never logs a turn the model already logged, never prints, never blocks, never sends anything anywhere. Installing `iris-eval` alone changes nothing about your turn loop. Limits and removal: [claude-plugin-capture/README.md](https://github.com/iris-eval/mcp-server/blob/main/claude-plugin-capture/README.md).\n\n### Python\n\n```bash\npip install iris-eval\n```\n\n```python\nfrom iris_eval import IrisClient\niris = IrisClient()                       # IRIS_URL, or the running dashboard's runtime.json\niris.evaluate_output(\"…\", input=\"…\", agent_name=\"support-bot\")[\"verdict\"]   # {\"state\": \"pass\", \"basis\": \"clean\", \"by\": []}\n```\n\nA thin client over the HTTP API of server 0.16.0 and later, versioned on its own — `iris_eval.__version__` and the PyPI page carry its number, which is not the server's: `log_trace()`, `evaluate_output()`, `get_traces()`, `get_trace()`, `health()`, `capabilities()`, sync and async, typed answers, the server's own sentence on a refusal — and a pytest plugin: an `iris` fixture and `assert_iris(output, expect=\"pass\")` that asserts on the verdict's state. [packages/python/README.md](https://github.com/iris-eval/mcp-server/blob/main/packages/python/README.md).\n\n### A CI gate, no server needed\n\n```bash\nnpx -y @iris-eval/mcp-server ingest --file traces.ndjson --evaluate --fail-on detector_veto\n```\n\nOr the GitHub Action (0.16.0), which fails the job on the verdicts you name, writes the receipt to the job summary and posts it as one pull-request comment updated in place: `uses: iris-eval/mcp-server/.github/actions/gate@v0.19.0` with `traces: traces.ndjson` — [docs/ci-gate.md](https://github.com/iris-eval/mcp-server/blob/main/docs/ci-gate.md#github-actions--the-action-0160).\n\nA fourth door (0.15.0): `POST /v1/traces` on the dashboard port takes the OTLP/HTTP JSON or protobuf your OpenTelemetry instrumentation already emits (the Python SDK's exporter speaks protobuf only, so this is the Python door too), and each OTLP trace becomes an Iris trace with its spans — [docs/otel-integration.md](https://github.com/iris-eval/mcp-server/blob/main/docs/otel-integration.md#traces-arrive-by-otlp); one recipe per framework, each proved by a fixture, in [docs/otel-recipes.md](https://github.com/iris-eval/mcp-server/blob/main/docs/otel-recipes.md). `ingest` reads one JSON trace (or NDJSON, one per line) from stdin or a file, stores it, evaluates it under exactly the rules `evaluate_output` runs, prints one JSON line per trace with the verdict and its basis, and exits 1 when a verdict matches `--fail-on`. `--dataset <id|label>` restricts that gate to the case keys in a dataset (`POST /api/v1/datasets` promotes a run's case keys into one), so a job fails only on the cases you chose. The full recipe, the exit codes and the eight bases are in [docs/ci-gate.md](https://github.com/iris-eval/mcp-server/blob/main/docs/ci-gate.md).\n\n### Write a rule as code\n\n`eval.plugins` in `config.json` loads rules you wrote — an ES module whose default export is `{ name, kind, mechanism, version, needs, evaluate(ctx) }` — pinned by the sha256 of the file, so a file that changed since you pinned it refuses startup rather than running. A loaded plugin fires like a built-in and shows on `list_rules` under `plugins`. The contract, the hash recipe and what a plugin may return: [docs/plugins.md](https://github.com/iris-eval/mcp-server/blob/main/docs/plugins.md).\n\n### Use the engine in your own process\n\nThe evaluation engine is importable — no server, no database, no model:\n\n```ts\nimport { EvalEngine, defaultConfig } from '@iris-eval/mcp-server/engine';\n\nconst engine = new EvalEngine(defaultConfig.eval.defaultThreshold, defaultConfig.eval.ruleThresholds, defaultConfig.eval);\nconst result = await engine.evaluateAll({ output: answer, input: prompt, toolCalls, costUsd });\nresult.verdict.state;       // 'pass' | 'fail' | 'unknown', with result.verdict.basis and result.interpretations\n```\n\nThe same engine, the same rules and the same composer the server runs; `builtInRules()`, `createCustomRule()`, `compose()` and the published-accuracy readers are exported beside it.\n\n### A typed client for the HTTP route\n\n```ts\nimport { createClient } from '@iris-eval/mcp-server/client';\n\nconst iris = createClient({ baseUrl: 'http://127.0.0.1:6920', apiKey: process.env.IRIS_API_KEY });\nconst { trace_id, evaluation } = await iris.logTrace({ agent_name: 'support-bot', input, output, tool_calls, evaluate: true });\nevaluation?.verdict?.state;  // the same object evaluate_output returns\n```\n\nOne body on every door: it is what `log_trace` and `iris-eval ingest` accept. A refusal throws `IrisClientError` with the server's own sentence and status. Both subpaths are checked from a packed tarball on every build.\n\n### Verify your install\n\n```bash\nnpx @iris-eval/mcp-server --self-test   # offline diagnostic; exit 0 = healthy, 1 = a check failed\nnpx @iris-eval/mcp-server --version     # prints the bare version, e.g. 0.5.1\n```\n\n`--self-test` first creates your Iris home if it is missing and checks that it is writable (exit 1, naming the path, if it is not), then runs its checks — storage round-trip, a planted SSN and a planted injection caught by the safety rules, dashboard boot, the DNS-rebinding guard — inside an isolated temp home, so your real database is never opened. Everything Iris writes lives under one directory, your **Iris home**: `~/.iris` by default (`%USERPROFILE%\\.iris` on Windows), or wherever `IRIS_HOME` points. That is where `iris.db`, `config.json`, `custom-rules.json`, `audit.log`, `preferences.json` and the demo files live; point `IRIS_HOME` at a scratch directory to try Iris without touching your real data.\n\n<details>\n<summary><strong>Setup by tool</strong></summary>\n\n<!-- iris:clients-table:start -->\n| Client | Status | What that means | Read |\n|---|---|---|---|\n| Claude Code | verified | a test drives the real client on every CI run | [2026-09-25](https://code.claude.com/docs/en/mcp) |\n| Claude Desktop | claimed | the installer writes the shape the client documents, and that writer is tested on the shape; nobody on the Iris side has watched it connect | [2026-09-25](https://modelcontextprotocol.io/docs/2026-07-28/develop/connect-local-servers) |\n| Cursor | claimed | the installer writes the shape the client documents, and that writer is tested on the shape; nobody on the Iris side has watched it connect | [2026-09-25](https://cursor.com/docs/mcp) |\n| Devin Desktop (Windsurf) | claimed | the installer writes the shape the client documents, and that writer is tested on the shape; nobody on the Iris side has watched it connect | [2026-09-25](https://docs.devin.ai/desktop/cascade/mcp) |\n| Continue | claimed | the installer writes the shape the client documents, and that writer is tested on the shape; nobody on the Iris side has watched it connect | [2026-09-25](https://docs.continue.dev/customize/deep-dives/mcp) |\n| VS Code | claimed | the installer writes the shape the client documents, and that writer is tested on the shape; nobody on the Iris side has watched it connect | [2026-09-25](https://code.visualstudio.com/docs/agent-customization/mcp-servers) |\n| Cline | claimed | the installer writes the shape the client documents, and that writer is tested on the shape; nobody on the Iris side has watched it connect | [2026-09-25](https://docs.cline.bot/getting-started/config) |\n| Zed | claimed | the installer writes the shape the client documents, and that writer is tested on the shape; nobody on the Iris side has watched it connect | [2026-09-25](https://zed.dev/docs/ai/mcp) |\n| OpenAI Codex CLI | claimed | the installer writes the shape the client documents, and that writer is tested on the shape; nobody on the Iris side has watched it connect | [2026-09-25](https://learn.chatgpt.com/docs/extend/mcp?surface=cli) |\n| Gemini CLI | verified | a test drives the real client on every CI run | [2026-09-25](https://geminicli.com/docs/tools/mcp-server/) |\n\nEvery row with what was checked: [iris-eval.com/clients](https://iris-eval.com/clients). No client is called supported without a row.\n<!-- iris:clients-table:end -->\n\n`npx -y @iris-eval/mcp-server install <client>` writes each of these for you. By hand, per client:\n\n#### Claude Desktop\n\nEdit your MCP config file:\n- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\n\nAdd the JSON config above, then restart Claude Desktop.\n\n#### Claude Code\n\n```bash\nclaude mcp add --transport stdio iris-eval -- npx -y @iris-eval/mcp-server\n```\n\nThen restart the session (`/clear` or relaunch) for tools to load.\n\n> **Windows note:** Do *not* use `cmd /c` wrapper — it causes path parsing issues. The `npx` command works directly.\n\n#### Cursor\n\nAdd the JSON config above to `~/.cursor/mcp.json` (every project) or `.cursor/mcp.json` in a workspace, with `\"type\": \"stdio\"` in the `iris-eval` entry — Cursor's docs mark it required.\n\n#### Devin Desktop (Windsurf)\n\nAdd the JSON config above to `mcp_config.json`: `~/.config/devin/mcp_config.json` on macOS and Linux, `%APPDATA%\\devin\\mcp_config.json` on Windows.\n\n#### Continue\n\nSave the JSON config above as its own file in Continue's `mcpServers` folder: `~/.continue/mcpServers/iris-eval.json` (every workspace) or `.continue/mcpServers/iris-eval.json` in one.\n\n#### VS Code (native MCP)\n\nAdd to `.vscode/mcp.json` in your workspace (note: VS Code uses `servers`, not `mcpServers`):\n\n```json\n{\n  \"servers\": {\n    \"iris-eval\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@iris-eval/mcp-server\"]\n    }\n  }\n}\n```\n\n#### Cline\n\nOpen Cline's MCP Servers panel → Configure MCP Servers, and add the `mcpServers` JSON config above to `cline_mcp_settings.json` (`~/.cline/data/settings/cline_mcp_settings.json`, shared by Cline in VS Code, JetBrains and the CLI).\n\n#### Zed\n\nAdd to Zed `settings.json`:\n\n```json\n{\n  \"context_servers\": {\n    \"iris-eval\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@iris-eval/mcp-server\"],\n      \"env\": {}\n    }\n  }\n}\n```\n\n#### OpenAI Codex CLI\n\nAdd to `~/.codex/config.toml`:\n\n```toml\n[mcp_servers.iris-eval]\ncommand = \"npx\"\nargs = [\"-y\", \"@iris-eval/mcp-server\"]\n```\n\n#### Gemini CLI\n\nAdd the `mcpServers` JSON config above to `~/.gemini/settings.json`. Gemini CLI connects to MCP servers only in folders it trusts: if `gemini mcp list` shows `iris-eval` as Disabled, run `/permissions` in that folder.\n\n#### Anything else that speaks MCP\n\nIris 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.\n\n</details>\n\n### Other Install Methods\n\n```bash\n# Global install (recommended for persistent data and faster startup)\nnpm install -g @iris-eval/mcp-server\niris-eval --dashboard\n\n# Docker — two servers, two ports: 3000 = MCP HTTP transport,\n# 6920 = dashboard (which also serves the POST /api/v1/traces ingest endpoint).\n# The image binds 0.0.0.0 inside the container, so a key is required (see Production).\ndocker run -p 3000:3000 -p 6920:6920 -v iris-data:/data \\\n  -e IRIS_API_KEY=\"$(openssl rand -hex 32)\" ghcr.io/iris-eval/mcp-server\n```\n\n> **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.\n\n## What You Get\n\n| | |\n|---|---|\n| **Trace Logging** | Hierarchical span trees with per-tool-call latency, token usage, and cost in USD. Stored in SQLite, queryable instantly. |\n| **Output Evaluation** | 25 built-in rules across 4 categories: completeness, relevance, safety, cost. PII detection (21 patterns: SSN, credit card, phone, email, IBAN, DOB, MRN, IP, API key, passport, plus AWS/Slack/SendGrid/GitHub/Google/npm/DigitalOcean tokens, credentials inside URLs, secret-named assignments, PEM private-key blocks and seed phrases), prompt injection (38 patterns, phrase + structural), stub-output detection, hallucination detection (25 context-grounded fabrication/contradiction signals — pass `input` to ground them against the agent's source material), and six trajectory rules that read what the agent DID: an unacknowledged failed tool call, a repeated one (by call, by repeated sequence, or by target once you send `tools`), a call whose arguments the tool's own JSON Schema rejects and the agent never retried, a file, directory or URL the answer cites that appears in nothing the agent read, an instruction that arrived inside a TOOL RESULT and was then obeyed by a later call, and a task that took more tool calls than your step budget. A trajectory can arrive as `tool_calls` or as OpenTelemetry TOOL spans. Add custom rules with Zod schemas. |\n| **LLM-as-Judge** | Optional semantic scoring via Anthropic or OpenAI — bring your own API key. Five templates. Hard per-eval cost cap (`IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL`, default $0.25), per-eval pricing disclosed in the result. |\n| **Cost Visibility** | Aggregate cost across all agents over any time window. Set budget thresholds. Get flagged when agents overspend. |\n| **Web Dashboard** | Real-time dark-mode UI that lands on the failures, worst and newest first — trace visualization, eval results, cost breakdowns, and a command palette (⌘K) that searches your own rules, traces, and evals. |\n| **Local-first** | Everything lives in SQLite on your disk. No account, no sign-up, no telemetry. Outbound HTTP happens only where you opt in: your own LLM-judge key, citation fetching, or an OTel exporter you configure. |\n\nWhere this is going next: [the capability map](https://iris-eval.com/capabilities) — every question Iris can be asked about every subject, with what it has and what it lacks — and [the three tracks](https://iris-eval.com/#roadmap).\n\n### Measured, not claimed\n\nEvery built-in rule has a published precision, recall and F1 with 95% confidence intervals, measured on a labelled corpus that lives in this repository (`proof/corpus/`) and regenerates with one command — `npm run proof` — offline, with no key and no model in the loop. Those numbers are two different kinds, and the page never adds them together: some rules are measured against labels a model gave by reading the failure itself, which measures detection; the rest are checked against their own documented definition, applied independently, which shows the code implements its formula and says nothing about whether the formula catches the failure. `proof/RESULTS.md` and the proof page mark each rule. CI re-runs the measurement on every pull request and fails if the committed numbers differ from what the code produces, so a rule cannot change without its numbers changing with it. The numbers are on [iris-eval.com/proof](https://iris-eval.com/proof) and in [`proof/RESULTS.md`](https://github.com/iris-eval/mcp-server/blob/main/proof/RESULTS.md); how the corpus was made, what it is not, and how to read an interval are in [docs/proof.md](https://github.com/iris-eval/mcp-server/blob/main/docs/proof.md). The corpus is synthetic and model-labelled — a human blind label is pending, and the page says so; `node proof/blind-sample.mjs` draws the reproducible sample that will settle it.\n\n## MCP Tools\n\nIris registers twelve tools that any MCP-compatible agent can invoke — trace and rule lifecycle, comparison across runs, LLM-as-judge and semantic citation verification:\n\n- **`log_trace`** — Log an agent execution with spans, tool calls, token usage, and cost; pass `evaluate: true` to score it in the same call\n- **`evaluate_output`** — Score output quality against completeness, relevance, safety, and cost rules (heuristic, deterministic, free)\n- **`get_traces`** — Query stored traces with filtering, pagination, and time-range support\n- **`list_rules`** — Enumerate deployed custom eval rules (read-only)\n- **`deploy_rule`** — Register a new custom eval rule so it fires on every `evaluate_output` of that category\n- **`delete_rule`** — Remove a deployed custom rule (destructive, idempotent)\n- **`delete_trace`** — Remove a single stored trace by ID (destructive, tenant-scoped)\n- **`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.\n- **`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`.\n- **`compare_runs`** — Did a change make the agent worse? Compares two runs of stored evaluations: a paired exact test when the runs share case keys, an interval on the difference otherwise, an honest \"cannot tell\" with the number of cases it would take, or \"equivalent within a margin\". Every rule carries its own one-sided test, corrected together (Benjamini–Hochberg) so twenty rules cannot manufacture a regression\n- **`compare_traces`** — How reliably does the agent answer the same question? Per-case pass rates with intervals, flaky cases first, and an overall rate that respects repeats\n- **`evaluate_runs`** — Re-score every trace in a run under today's rules into a new run, so a rules change is never read as an agent change\n\n**Enable the LLM judge (optional; the deterministic rules never need it)**\n1. Get an API key from Anthropic or OpenAI.\n2. Put it in the environment of the process that runs Iris, not only your shell. Claude Code, Claude Desktop, Cursor and most MCP clients: the \"env\" block of the iris-eval entry in your MCP config — \"iris-eval\": { \"command\": \"npx\", \"args\": [\"-y\", \"@iris-eval/mcp-server\"], \"env\": { \"IRIS_ANTHROPIC_API_KEY\": \"sk-ant-...\" } } (IRIS_OPENAI_API_KEY for an OpenAI key). Docker: -e IRIS_ANTHROPIC_API_KEY=... on the run command. HTTP or CI: export it before starting iris-eval.\n3. Restart the MCP session. A running process never sees a variable set after it started.\n4. Confirm from inside your client: read iris://capabilities — judge.enabled must be true there. A key exported in your shell is not passed to the process your client spawns unless its config lists it. On a machine, `npx @iris-eval/mcp-server --self-test` prints the judge line for that shell, and GET /api/v1/health reports judge.enabled on a running dashboard.\n5. Spend guard: each call is capped by IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL (default 0.25 USD) and refused before any spend if the worst case would exceed it. Iris calls the provider directly with your key and never proxies it.\n\nWhen `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](https://github.com/iris-eval/mcp-server/blob/main/docs/otel-integration.md).\n\n### How `passed` is decided\n\n`evaluate_output` returns both a `score` and a `passed` flag — they answer different questions:\n\n- **`score`** (0..1) is the weighted average across the rules that ran — a quality gradient.\n- **`passed`** is the ship/no-ship verdict, and the score is never consulted for it. A composer reads each rule by the kind of claim it makes: a policy you configured gates; a critical detector vetoes; a critical check that was asked and could not answer makes the verdict **unknown** (`passed: false`) rather than clean; every remaining detector combines into one probability that the output is bad, weighed against the loss ratio you state in `eval.falsePassCost` (default 1, so the cut is 0.5). `verdict.basis` names the layer that decided and `verdict.by` the rules; `interpretations[]` says why a rule that failed did not decide and which setting would change that, and names any question that was not judged and the input that would let it be.\n\nGenuine safety violations hard-fail. By default `no_pii`, `no_injection_patterns`, and `no_blocklist_words` are **critical rules**: if one fails, the eval reports `passed: false` no matter how well the other rules scored, and the response names the culprits in `critical_failures`. A leaked SSN can't be averaged away. Which built-in rules are critical is a deployment setting (`eval.criticalRules` / `eval.nonCriticalRules`); every rule result carries the effective `critical` flag and `criticalSource`, and `list_rules` reports the roster this server applies. Custom rules deployed with `severity: \"high\"` or `\"critical\"` hard-fail the same way; `low`/`medium` severities only affect the score. One boundary to know, stated the same way on every surface: a critical rule that **skipped** (missing context, a broken definition, or a regex killed at the sandbox budget) has not judged the output and does not veto — every such rule is named in `critical_skipped`. **A gate that must fail closed treats a non-empty `critical_skipped` as unknown, not clean**, and may treat any `budgetExceeded` skip in `rule_results` the same way.\n\nFor CI gates: if you omit `eval_type`, **every bundle runs** — completeness, relevance, safety, cost and any custom rules — and the response says `eval_type: \"all\"` with a `note` that the default ran, plus a per-bundle `categories` map. A bundle with nothing to judge (cost without `cost_usd`, relevance without `input`) reports `passed: null` there — not evaluated, not failing — and never counts toward the verdict. The response always echoes the `eval_type` that ran, so your gate can verify coverage; key on `passed` for the verdict and name a bundle only when you want a narrower run.\n\n### Authoring a custom rule\n\nTwo ways to add a rule. **Inline** rules ride along on one `evaluate_output` call (`custom_rules`, up to 10 per call); they fire alongside whatever `eval_type` bundle you chose, or alone with `eval_type: \"custom\"`. **Deployed** rules are registered once with `deploy_rule`, persist in `custom-rules.json` under your Iris home, and fire on every future `evaluate_output` of their `evalType`. The definition is the same shape either way:\n\n| Field | Required | What it is |\n|---|---|---|\n| `name` | yes | 1–80 characters; appears as `ruleName` in results |\n| `type` | yes | one of `regex_match` · `regex_no_match` · `min_length` · `max_length` · `contains_keywords` · `excludes_keywords` · `json_schema` · `cost_threshold` |\n| `config` | yes | the keys for that type: `pattern` (+ optional `flags`) for the two regex types · `min_length` / `max_length` (a character count) · `keywords` (+ optional `threshold`, 0–1, default `1` = all must appear) for the two keyword types · `{}` for `json_schema` · `max_cost` in USD for `cost_threshold` |\n| `weight` | no | weight in the score; default `1` |\n\n`deploy_rule` wraps the definition with `name`, an optional `description`, `evalType` (`completeness` · `relevance` · `safety` · `cost` · `custom`) and `severity`. Severity says what a **failure** means: `low`/`medium` only lower the score; `high`/`critical` hard-fail the evaluation — `passed: false`, the rule named in `critical_failures` — whatever the weighted score says. A rule that skips (a `cost_threshold` rule with no `cost_usd`, or a regex killed at the 100 ms sandbox budget) has not judged the output and is listed in `critical_skipped` instead. Deploy a critical rule that forbids internal hostnames in anything the agent says:\n\n```json\n{\n  \"name\": \"no_internal_hostnames\",\n  \"description\": \"Output must not mention internal hostnames.\",\n  \"evalType\": \"safety\",\n  \"severity\": \"critical\",\n  \"definition\": {\n    \"name\": \"no_internal_hostnames\",\n    \"type\": \"regex_no_match\",\n    \"config\": { \"pattern\": \"\\\\b[a-z0-9-]+\\\\.internal\\\\.example\\\\b\", \"flags\": \"i\" }\n  }\n}\n```\n\nThe response is the persisted rule — keep the `id` for `delete_rule`:\n\n```json\n{ \"rule\": { \"id\": \"rule-588823d0\", \"name\": \"no_internal_hostnames\", \"evalType\": \"safety\", \"severity\": \"critical\", \"enabled\": true, \"version\": 1, \"definition\": { \"…\": \"…\" } } }\n```\n\nFrom the very next `evaluate_output` with `eval_type: \"safety\"`, an output that mentions `db-primary.internal.example` comes back `passed: false` with `critical_failures: [\"no_internal_hostnames\"]` — even though all five built-in safety rules passed and the weighted score is 0.895. Regex patterns must pass a ReDoS check at deploy time and always run in a sandbox worker under a hard 100 ms deadline. `list_rules` shows what is deployed; the dashboard's rule composer builds the same shape from a failure you clicked on. Full reference, scoring per type, and worked examples: [docs/custom-rules.md](https://github.com/iris-eval/mcp-server/blob/main/docs/custom-rules.md).\n\nFull tool schemas and configuration: [iris-eval.com](https://iris-eval.com)\n\n## Hosted features\n\nIris runs entirely on your machine today, and everything it does is free and MIT licensed with no limits and no account.\n\nHosted storage, shared team history and alerting are **under consideration, not under construction**. There is no pricing, and nothing to buy. If shared history would be useful to you, [the waitlist](https://iris-eval.com#waitlist) is how we find out whether it's worth building — it commits you to nothing.\n\nTwo commitments hold regardless: **nothing that is free today will move behind a paywall**, and **no compliance certification will be claimed before it is held**.\n\n## Examples\n\n- [Claude Desktop setup](https://github.com/iris-eval/mcp-server/tree/main/examples/claude-desktop) — MCP config for stdio and HTTP modes\n- [TypeScript — MCP SDK client](https://github.com/iris-eval/mcp-server/blob/main/examples/typescript/basic-usage.ts) — connect and invoke tools\n- [HTTP transport (TS + Python)](https://github.com/iris-eval/mcp-server/tree/main/examples/http-transport) — full client code for REST-style integration\n- [LangChain instrumentation (Python, conceptual)](https://github.com/iris-eval/mcp-server/blob/main/examples/langchain/observe-agent.py) — scaffold showing the shape; needs your agent code to be runnable\n- [CrewAI instrumentation (Python, conceptual)](https://github.com/iris-eval/mcp-server/blob/main/examples/crewai/observe-crew.py) — scaffold; same caveat\n\n## Community\n\n- [GitHub Issues](https://github.com/iris-eval/mcp-server/issues) — Bug reports and feature requests\n- [GitHub Discussions](https://github.com/iris-eval/mcp-server/discussions) — Questions and ideas\n- [Contributing Guide](https://github.com/iris-eval/mcp-server/blob/main/CONTRIBUTING.md) — How to contribute\n- [HTTP Ingest](https://github.com/iris-eval/mcp-server/blob/main/docs/http-ingest.md) — Deterministic trace capture via `POST /api/v1/traces`\n- [Capability map](https://iris-eval.com/capabilities) — Every question Iris can be asked, and what it lacks\n- [Versioning policy](https://github.com/iris-eval/mcp-server/blob/main/VERSIONING.md) — What each version number promises, and what has to be true before 1.0\n\n<details>\n<summary><strong>Configuration & Security</strong></summary>\n\n### CLI Arguments\n\n| Flag | Default | Description |\n|------|---------|-------------|\n| `--transport` | `stdio` | Transport type: `stdio` or `http` |\n| `--port` | `3000` | HTTP transport port |\n| `--db-path` | `~/.iris/iris.db` | SQLite database path |\n| `--config` | `~/.iris/config.json` | Config file path |\n| `--api-key` | — | API key for HTTP authentication (transport and dashboard, including `POST /api/v1/traces`) |\n| `--dashboard` | `false` | Enable web dashboard. Also the only way the `POST /api/v1/traces` ingest endpoint starts — it never starts implicitly with `--transport http` |\n| `--dashboard-port` | `6920` | Dashboard port |\n| `--dashboard-host` | `127.0.0.1` | Dashboard bind address. Loopback by default — the dashboard is unauthenticated unless `--api-key` is set, so binding beyond loopback exposes your full trace history |\n| `--demo` | `false` | Seed a demo database (separate from your real traces) and serve the dashboard against it |\n| `--demo-clear` | `false` | Delete the demo database and exit |\n| `--self-test` | `false` | Run the offline install diagnostic in an isolated temp home, then exit (0 = healthy, 1 = a check failed) |\n| `--purge` | `false` | Delete **every** stored trace, span and evaluation from the configured database, compact the file and truncate the write-ahead log so the deleted text does not linger on disk, then exit. Deployed rules, the audit log and preferences are kept. Not reversible. Stop any running Iris server first — the file is compacted in place. Refuses to combine with `--demo`, `--demo-clear` or `--self-test` |\n| `--version` | — | Print the bare version (e.g. `0.5.1`) to stdout and exit 0. Reads nothing under your Iris home |\n\nTwo commands take their own arguments and exit: `iris-eval ingest` loads traces from a file or stdin ([A CI gate, no server needed](#a-ci-gate-no-server-needed)), and `iris-eval install <client>` writes Iris into an MCP client's config — `--uninstall` takes it out, `--list` shows the clients found on this machine ([Hook up your own agent](#hook-up-your-own-agent)). Neither starts a server.\n\n**`config.json` is validated when Iris starts.** A key Iris does not read — a typo such as `eval.critcalRules`, a key from another tool — or a value of the wrong type refuses startup with one sentence naming the full key, the key it most likely meant, or the type it wanted. Nothing in the file is silently ignored.\n\n### Environment Variables\n\nEvery variable `--help` documents. CLI flags take precedence over environment variables when both are set.\n\n| Variable | Description |\n|----------|-------------|\n| `IRIS_TRANSPORT` | Transport type (`stdio` or `http`) |\n| `IRIS_HOST` | HTTP transport bind address (default `127.0.0.1`) |\n| `IRIS_PORT` | HTTP transport port (1-65535, default `3000`) |\n| `IRIS_HOME` | Directory for all per-user files: `config.json`, `iris.db`, `custom-rules.json`, `audit.log`, `preferences.json` (default `~/.iris`) |\n| `IRIS_DB_PATH` | SQLite database path (overrides `IRIS_HOME` for the DB only) |\n| `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, and when the native module cannot load Iris warns once and falls back to the built-in |\n| `IRIS_LOG_LEVEL` | Log level: `debug`, `info`, `warn`, `error` |\n| `IRIS_DASHBOARD` | `true`/`1`/`yes`/`on` enables the web dashboard; `false`/`0`/`no`/`off` disables it (also overrides `dashboard.enabled` in `config.json`) |\n| `IRIS_DASHBOARD_PORT` | Dashboard port (1-65535, default `6920`) |\n| `IRIS_WEBHOOK_URL` | The receiver of the webhook that fires on a moment — merged over `notify.webhook` in `config.json` ([docs/webhooks.md](https://github.com/iris-eval/mcp-server/blob/main/docs/webhooks.md)) |\n| `IRIS_WEBHOOK_SECRET` | The webhook's signing key (any string, or `whsec_` + base64); the `iris` format refuses to run without one |\n| `IRIS_DASHBOARD_HOST` | Dashboard bind address (default `127.0.0.1`) |\n| `IRIS_API_KEY` | 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 |\n| `IRIS_API_KEY_FILE` | Path to a file whose trimmed contents are the API key — the secret-file pattern Docker and Kubernetes mount, so the key never sits in an environment block. Set this or `IRIS_API_KEY`, not both |\n| `IRIS_ALLOW_UNAUTHENTICATED` | Set to `1` to run a non-loopback bind with **no** key on purpose (lifts the refusal; the network is then your boundary) |\n| `IRIS_ALLOWED_ORIGINS` | Comma-separated origin allowlist. Dashboard: CORS headers (supports globs, e.g. `http://localhost:*`). HTTP transport: exact-match `Origin` allowlist for DNS-rebinding protection (globs ignored; the server's own loopback origins are always allowed) |\n| `IRIS_NO_AUTO_LAUNCH` | Set to `1` to disable the first-run dashboard auto-launch |\n| `IRIS_ANTHROPIC_API_KEY` | Required by `evaluate_with_llm_judge` + `verify_citations` with `provider=anthropic` |\n| `IRIS_OPENAI_API_KEY` | Required by `evaluate_with_llm_judge` + `verify_citations` with `provider=openai` |\n| `IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL` | Hard cost cap per LLM judge call (default `0.25`) |\n| `IRIS_CITATION_ALLOW_FETCH` | Set to `1` to permit outbound HTTP in `verify_citations` (off by default) |\n| `IRIS_CITATION_DOMAINS` | Comma-separated hostname allowlist for `verify_citations` (suffix match) |\n| `IRIS_OTEL_ENDPOINT` | Enable best-effort OTLP/HTTP JSON trace export to this collector URL |\n| `IRIS_OTEL_SERVICE_NAME` | `service.name` resource attribute for OTel export (default `iris-eval`) |\n| `IRIS_OTEL_HEADERS` | Comma-separated `k=v` headers for OTel export (e.g. `authorization=Bearer abc`) |\n| `IRIS_OTEL_TIMEOUT_MS` | Per-export timeout (default `15000`) |\n| `RATE_LIMIT_SALT` | Website waitlist API only — required when the iris-eval.com site is deployed; the server never reads it |\n\n### Security\n\nWhen using HTTP transport, Iris includes:\n\n- API key authentication with timing-safe comparison (Bearer for API clients; browser sign-in to the dashboard via `?key=`)\n- CORS restricted to localhost by default\n- Rate limiting (600 req/min dashboard API, 20 req/min MCP)\n- Helmet security headers\n- Zod input validation on all routes\n- ReDoS-safe regex for custom eval rules\n- One 1MB request size limit on every transport (`security.requestSizeLimit`): HTTP answers `413`, stdio answers a JSON-RPC error and keeps the session open\n\n```bash\n# Production deployment\niris-eval --transport http --port 3000 --api-key \"$(openssl rand -hex 32)\" --dashboard\n```\n\nWith a key set, API clients — MCP clients, capture SDKs, `POST /api/v1/traces` — send `Authorization: Bearer <key>`. To open the dashboard in a browser, append the key once to any dashboard URL, `http://localhost:6920/?key=<api key>`: Iris exchanges it for an HttpOnly, SameSite=Lax session cookie and redirects to the same page with the key removed from the address bar. A page opened without a session shows a sign-in form that does the same exchange. The key is never stored in the browser, and sessions live only in the server process (at most 256 live at a time; a sign-in that finds them all live is refused rather than evicting one).\n\n### Production\n\n**Several keys, and rotation without a gap.** `security.apiKeys` in `config.json` holds any number of further keys, each with an `id` and exactly one of `keyFile` (a file whose trimmed contents are the key) or `keyHash` (the `sha256` hex of the key, so the config file holds no secret — `printf %s \"$KEY\" | openssl dgst -sha256`), and an optional `expiresAt` (ISO 8601) after which it stops matching at that instant. To rotate: add the new key, restart, move your clients, remove the old key, restart. Every key authenticates until it is removed or expires, on the Bearer path and on the browser sign-in alike; the startup log names the ids. `security.rateLimit.mcpKeyBy: \"apiKey\"` counts the MCP endpoint's per-minute budget per key instead of per client address, so several agents behind one address each get their own minute.\n\nIris **refuses to start** when the HTTP transport or the dashboard is bound beyond loopback — `0.0.0.0`, a LAN address, a container — with no API key, and says so in one sentence naming `IRIS_API_KEY`. That includes a bare `docker run` of the image, which binds `0.0.0.0` inside the container because loopback is unreachable through a published port. Loopback without a key keeps working (with a warning on the HTTP transport): the machine boundary is the exposure control there.\n\n```bash\n# The image: pass a key\ndocker run -p 3000:3000 -p 6920:6920 -v iris-data:/data \\\n  -e IRIS_API_KEY=\"$(openssl rand -hex 32)\" ghcr.io/iris-eval/mcp-server\n\n# Compose: the file requires the variable and refuses before the container starts\nIRIS_API_KEY=\"$(openssl rand -hex 32)\" docker compose up\n\n# A network you have already fenced some other way: run open, on purpose\nIRIS_ALLOW_UNAUTHENTICATED=1 iris-eval --transport http --dashboard\n```\n\nOpen by design, on a keyed server: `GET /health` on the transport and `GET /api/v1/health` on the dashboard answer without a key and outside every rate limit, in one shape: status, version, uptime, the SQLite driver, `checks` for storage, the deployed-rules file and the migrations (applied against known), and whether a judge key is present — never the key, never a trace, never a count of them. `status` is `ok` only when every check is; otherwise it is `degraded` with HTTP 503, which the Docker image's own `HEALTHCHECK` reads. Everything else needs `Authorization: Bearer <key>` or a browser session. Retention runs on every server: traces and evaluations older than `retention.days` (default `30`) are deleted at startup and every `retention.sweepIntervalHours`; `--self-test` prints this install's policy, and `iris://capabilities` / `GET /api/v1/capabilities` carry it as `retention`.\n\nA webhook fires on a moment (0.16.0): `notify.webhook` in `config.json` (or `IRIS_WEBHOOK_URL` and `IRIS_WEBHOOK_SECRET`) names a receiver, and Iris posts one signed message when a verdict fails, a critical detection vetoes, a cost is an outlier, a rule's fail rate shifts, or a case is answered both ways for the first time — ids, the verdict, the rules and the numbers, never the agent's text. Signed the Standard Webhooks way and the GitHub way at once, retried with backoff, cooled down per agent and rule, never in the way of the evaluation; Slack and Discord bodies built in. [docs/webhooks.md](https://github.com/iris-eval/mcp-server/blob/main/docs/webhooks.md).\n\n### Your data on disk\n\nEverything Iris stores lives under your Iris home (`~/.iris`, or `IRIS_HOME`). `iris.db` keeps every trace's `input` and `output` **verbatim** — including any text `no_pii` goes on to flag; detection does not redact unless you ask it to: `storage.redact: \"critical_spans\"` in `config.json` stores each evaluation's output with the spans a critical detector flagged replaced by `[REDACTED:<pattern>]` (off by default; the evidence offsets still index the text the caller saw). At startup, and every `retention.sweepIntervalHours` (default `24`, `0` disables the timer) after that, traces and evaluations older than `retention.days` (default `30`, `0` disables, set in `config.json`) are deleted and the write-ahead log is checkpointed. Deleting a trace — by `delete_trace` or by the sweep — erases the text of every evaluation linked to it (the output, the expected text, and the rule messages) and stamps `erased_at`; the verdict, the scores and the evidence offsets stay. To remove everything now, stop the server and run `--purge`: it deletes every stored trace, span and evaluation, compacts the database and truncates the write-ahead log so the text is gone from disk, and keeps your deployed rules, audit log and preferences.\n\n</details>\n\n<details>\n<summary><strong>Troubleshooting</strong></summary>\n\n### First move: run the self-test\n\n```bash\nnpx @iris-eval/mcp-server --self-test\n```\n\nIt checks storage, the deterministic evals, and the dashboard in an isolated temp home and prints a per-step verdict — the failure output names the broken step. Exit code 0 means the install is healthy.\n\n### Iris won't start / `ERR_MODULE_NOT_FOUND`\n\nYou may have a cached older version. Clear the npx cache and retry:\n\n```bash\nnpx --yes @iris-eval/mcp-server@latest\n```\n\nOr install globally to avoid cache issues entirely:\n\n```bash\nnpm install -g @iris-eval/mcp-server@latest\n```\n\n### `npm install --ignore-scripts` broke the SQLite binding\n\nIris stores traces with `better-sqlite3`, a native module that fetches or compiles its binding in an install script. If that script was skipped — `--ignore-scripts` on the command line, `ignore-scripts=true` in an `.npmrc` (common on corporate machines), or a registry mirror that strips postinstall — startup fails with a long \"Could not locate the bindings file\" dump listing a dozen paths it tried. Rebuild that one module:\n\n```bash\nnpm rebuild better-sqlite3\n# for a global install:\nnpm rebuild -g better-sqlite3\n```\n\n### Tools not showing up in Claude Code\n\nMCP tools only load at session start. After adding iris-eval, restart the session with `/clear` or relaunch the terminal.\n\n### Version check\n\n```bash\nnpx @iris-eval/mcp-server --version\n```\n\nThe first startup log line also carries it (`Starting Iris MCP server vX.Y.Z`), and `--self-test` prints it in its summary. For a global install, `npm ls -g @iris-eval/mcp-server` shows the installed version.\n\n### Updating\n\n```bash\n# If using npx (clears cache and fetches latest)\nnpx --yes @iris-eval/mcp-server@latest\n\n# If installed globally\nnpm update -g @iris-eval/mcp-server\n```\n\n### The storage driver\n\nIris keeps everything in one SQLite file, opened by `better-sqlite3` — a native addon that is downloaded or compiled for your Node and platform. **When that module cannot load, Iris falls back to Node's built-in SQLite** (`node:sqlite`, Node 22.13 or later) with one warning on stderr, so a missing prebuild is a slower start rather than a dead one; `IRIS_SQLITE_DRIVER=node` chooses the built-in on purpose, `native` forbids the fallback. The built-in is opened with extension loading off and `trusted_schema` off; Node prints its own `ExperimentalWarning: SQLite is an experimental feature` line on stderr when it loads, and Iris does not silence it. `--self-test` and `GET /health` name the driver in use; every number on the proof page was measured on the native driver, and the test suite runs on both in CI.\n\n### Node.js version\n\nIris requires Node.js 22.13 or later. Node 20 reached end of life on 2026-04-30 and is not supported; Node 18 went in April 2025.\n\nThe floor is 22.13 rather than 22.0 because 22.13.0 is the first release that ships `node:sqlite`. That makes it the first version on which every supported Iris install has a *second* storage driver: when the native `better-sqlite3` addon will not load, Iris falls back to Node's built-in SQLite instead of failing to start. Below 22.13 — and on Node 20, for its whole life — there was only ever one driver, and a missing prebuild was a dead start.\n\n```bash\nnode --version  # Must be v22.13.0 or newer\n```\n\n### Windows: `cmd /c` not needed\n\nClaude Code's `/doctor` may suggest wrapping npx with `cmd /c`. This is not needed and causes path parsing issues. Use `npx` directly:\n\n```bash\n# Correct\nclaude mcp add --transport stdio iris-eval -- npx -y @iris-eval/mcp-server\n\n# Wrong (causes /c to be parsed as a path)\nclaude mcp add --transport stdio iris-eval -- cmd /c \"npx -y @iris-eval/mcp-server\"\n```\n\n</details>\n\n---\n\nIf Iris is useful to you, [consider starring the repo](https://github.com/iris-eval/mcp-server) — it helps others find it.\n\n[![Star on GitHub](https://img.shields.io/github/stars/iris-eval/mcp-server?style=social)](https://github.com/iris-eval/mcp-server)\n\nMIT Licensed.\n","readmeFilename":"README.md"}