Iris
ทางการเซิร์ฟเวอร์ประเมินและสังเกตการณ์เอเจนต์แบบ MCP-native พร้อมการบันทึก trace การประเมินคุณภาพผลลัพธ์ การติดตามต้นทุน กฎการประเมินในตัว 12 ข้อ แดชบอร์ดแบบเรียลไทม์ และการตรวจจับ PII
คุณทำอะไรได้บ้างด้วย Iris MCP?
- บันทึกการรันของเอเจนต์ — ขอให้บันทึกการดำเนินการด้วย
log_traceรวมถึง spans, การเรียกใช้เครื่องมือ, การใช้โทเค็น และต้นทุนเป็นดอลลาร์สหรัฐ - ให้คะแนนคุณภาพของผลลัพธ์ — ใช้
evaluate_outputเพื่อตรวจสอบความครบถ้วน ความเกี่ยวข้อง ความปลอดภัย และต้นทุนเทียบกับกฎในตัว 13 ข้อ - สอบถามประวัติ trace — ดึงข้อมูลการรันที่เก็บไว้ด้วย
get_tracesโดยกรองตามช่วงเวลา การแบ่งหน้า และเกณฑ์อื่นๆ - จัดการกฎที่กำหนดเอง — ปรับใช้กฎการประเมินใหม่ด้วย
deploy_ruleหรือลบออกผ่านdelete_ruleเพื่อปรับแต่งการให้คะแนน - รัน LLM-as-judge — เรียกใช้
evaluate_with_llm_judgeสำหรับการให้คะแนนเชิงความหมายในเทมเพลตห้าแบบ โดยมีเพดานต้นทุนต่อการประเมินที่เข้มงวด - ตรวจสอบการอ้างอิง — ใช้
verify_citationsเพื่อแยกและตรวจสอบแหล่งที่มาที่อ้างอิงเทียบกับข้อกล่าวอ้างผ่านผู้ตัดสิน LLM
เอกสาร
Iris — หยุดส่งเอเจนต์แบบมั่วๆ
Iris ให้คะแนนทุกการรันของเอเจนต์ในด้านคุณภาพ ความปลอดภัย และต้นทุน — บนเครื่องของคุณ ไม่ต้องใช้ SDK และไม่ต้องมีบัญชี โปรเจกต์เอเจนต์ส่วนใหญ่ตรวจสอบคุณภาพด้วยการรันพรอมต์ที่จำไว้สองสามอันแล้วดูผลลัพธ์ด้วยตา Iris แทนที่ด้วยตัวเลขที่คุณตรวจสอบได้: การรันของเอเจนต์ของคุณถูกเก็บในฐานข้อมูล SQLite บนดิสก์ของคุณ กฎในตัว 13 ข้อให้คะแนนแบบกำหนดตายตัว — PII, prompt injection, สัญญาณ hallucination, เกณฑ์ต้นทุน — ฟรี ไม่มีการเรียก LLM และมี LLM judge แบบเลือกใช้ได้พร้อมเพดานต้นทุนต่อการประเมินแบบตายตัวสำหรับคำถามเชิงความหมาย ทุกกฎตรวจสอบและแก้ไขได้ เพราะ judge ที่คุณตรวจสอบไม่ได้ก็แค่การเดาสุ่มที่มีตัวเลขกำกับ ใบอนุญาต MIT ไม่มี telemetry; traces ของคุณไม่เคยออกจากเครื่องของคุณ
ต้องใช้ Node.js 20 ขึ้นไป ตรวจสอบด้วย node --version

เห็นความล้มเหลวบนหน้าจอใน 60 วินาที
ไม่ต้องต่อเอเจนต์ ไม่ต้องตั้งค่า — คำสั่งเดียว:
npx @iris-eval/mcp-server --demo
นี่เป็นการสร้างฐานข้อมูลตัวอย่าง — เอเจนต์ขนาดเล็กสองสามตัวพร้อมการรันหนึ่งสัปดาห์ — และแสดง dashboard กับฐานข้อมูลนั้นที่ http://localhost:6920 (เบราว์เซอร์ของคุณเปิดอัตโนมัติในการรันครั้งแรก) Dashboard เปิดที่หน้า Failures: อะไรล้มเหลว เรียงจากแย่ที่สุดและใหม่ที่สุดก่อน คุ้มค่าที่จะคลิกเข้าไปดู — การรั่วไหลของ PII ที่กฎความปลอดภัยจับได้, ความพยายาม prompt-injection ที่ถูกแฟล็ก, และคะแนน LLM-judge ที่ล้มเหลวพร้อมเหตุผล
ข้อมูลตัวอย่างอยู่ในฐานข้อมูลของตัวเอง (demo.db ในโฟลเดอร์ home ของ Iris — ~/.iris บน macOS/Linux, %USERPROFILE%\.iris บน Windows) และไม่ปะปนกับ traces จริงของคุณ ลบทั้งหมดด้วยคำสั่งเดียว:
npx @iris-eval/mcp-server --demo-clear
เชื่อมต่อเอเจนต์ของคุณเอง
เพิ่ม Iris ในการตั้งค่า MCP ของคุณ ใช้ได้กับ Claude Desktop, Claude Code, Cursor, Windsurf, Continue, VS Code, Cline, Zed, Codex CLI, Gemini CLI — และเอเจนต์อื่นๆ ที่รองรับ MCP หนึ่งบล็อก รวม dashboard:
{
"mcpServers": {
"iris-eval": {
"command": "npx",
"args": ["@iris-eval/mcp-server", "--dashboard"]
}
}
}
เอเจนต์ของคุณค้นพบเครื่องมือเก้าอย่างของ Iris เมื่อเชื่อมต่อ และ dashboard แสดงที่ http://localhost:6920. ตอนนี้วางสิ่งนี้ให้เอเจนต์ของคุณ:
บันทึกงานล่าสุดนั้นไปที่ Iris และประเมินผลลัพธ์
trace ปรากฏบน dashboard พร้อมคะแนน ต้องการ MCP server แบบ headless ไหม? เอา --dashboard ออกจาก args — คุณสามารถเปิด dashboard เดียวกันได้ทุกเมื่อด้วย npx @iris-eval/mcp-server --dashboard
สิ่งหนึ่งที่ควรรู้ล่วงหน้า: MCP tools ถูกเรียกเมื่อโมเดลตัดสินใจเรียก Iris ไม่ได้สอด intercept เอเจนต์ของคุณ ดังนั้น traces จะถูกบันทึกเมื่อเอเจนต์ของคุณขอให้บันทึก — ไม่ว่าคุณจะบอกให้มันทำ หรือโค้ดของคุณเรียก tools โดยตรง ขอให้เอเจนต์ของคุณ "log this to Iris and evaluate it" แล้วมันจะทำ ถ้าคุณต้องการ capture ที่ไม่ขึ้นอยู่กับการตัดสินใจของโมเดล POST /api/v1/traces ทำแบบนั้นได้ — โค้ดของคุณส่ง trace ผ่าน HTTP ธรรมดา ไม่มีโมเดลอยู่ในวงจร (ดู docs/http-ingest.md) CLI และ SDKs ใน โรดแมป จะเป็น thin clients เหนือ endpoint เดียวกัน
Capture ผ่าน HTTP (ไม่มีโมเดลในวงจร)
เมื่อ dashboard ทำงานอยู่ อะไรก็ตามที่ส่ง HTTP request ได้ก็สามารถบันทึก trace ได้ — และเลือกเรียก deterministic evals ใน request เดียวกันได้:
curl -s -X POST "http://127.0.0.1:6920/api/v1/traces" \
-H "Content-Type: application/json" \
-d '{
"agent_name": "support-bot",
"input": "What is the refund policy?",
"output": "Refunds are available within 30 days of purchase.",
"evaluate": true,
"eval_type": "safety"
}'
คืนค่า 201 พร้อม trace_id ที่เก็บไว้และผลการประเมิน endpoint ยอมรับ body เดียวกับ tool log_trace และอยู่หลัง middleware stack แบบ loopback-only เดียวกับส่วนอื่นของ dashboard สัญญาเต็ม รายละเอียด field และ semantics ของ error: docs/http-ingest.md
ตรวจสอบการติดตั้ง
npx @iris-eval/mcp-server --self-test
การวินิจฉัยการติดตั้งแบบออฟไลน์: storage round-trip, deterministic evals, dashboard + DNS-rebinding guard — ทั้งหมดใน temp home ที่แยกออกมา ดังนั้นฐานข้อมูลจริงของคุณจะไม่ถูกเปิด exit code 0 = ปกติ, 1 = มีรายการตรวจสอบล้มเหลว
การตั้งค่าตามเครื่องมือ
Claude Desktop
แก้ไขไฟล์ MCP config ของคุณ:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
เพิ่ม JSON config ด้านบน แล้วรีสตาร์ท Claude Desktop
Claude Code
claude mcp add --transport stdio iris-eval -- npx @iris-eval/mcp-server
จากนั้นรีสตาร์ทเซสชัน (/clear หรือเปิดใหม่) เพื่อให้ tools โหลด
หมายเหตุสำหรับ Windows: อย่าใช้
cmd /cwrapper — มันทำให้เกิดปัญหา path parsing คำสั่งnpxใช้ได้โดยตรง
Cursor / Windsurf
เพิ่มใน .cursor/mcp.json ของ workspace หรือการตั้งค่า MCP ทั่วโลกโดยใช้ JSON config ด้านบน
VS Code (native MCP)
เพิ่มใน .vscode/mcp.json ใน workspace ของคุณ (หมายเหตุ: VS Code ใช้ servers ไม่ใช่ mcpServers):
{
"servers": {
"iris-eval": {
"command": "npx",
"args": ["@iris-eval/mcp-server"]
}
}
}
Cline
เปิดแผง MCP Servers ของ Cline → Configure MCP Servers และเพิ่ม mcpServers JSON config ด้านบนใน cline_mcp_settings.json
Zed
เพิ่มใน Zed settings.json:
{
"context_servers": {
"iris-eval": {
"command": {
"path": "npx",
"args": ["@iris-eval/mcp-server"]
}
}
}
}
OpenAI Codex CLI
เพิ่มใน ~/.codex/config.toml:
[mcp_servers.iris-eval]
command = "npx"
args = ["@iris-eval/mcp-server"]
Gemini CLI
เพิ่ม mcpServers JSON config ด้านบนใน ~/.gemini/settings.json
อื่นๆ ที่รองรับ MCP
Iris เป็น stdio MCP server มาตรฐาน — คำสั่ง npx @iris-eval/mcp-server เดียว ไม่มี SDK ไม่มีการเปลี่ยนแปลงโค้ด ถ้า client ของคุณรองรับ MCP มันรองรับ Iris รูปแบบ config ของ client เปลี่ยนไปเรื่อยๆ; เมื่อไม่แน่ใจ ตรวจสอบเอกสาร MCP ของ client แล้วชี้ไปที่คำสั่งนั้น
วิธีการติดตั้งอื่นๆ
# Global install (recommended for persistent data and faster startup)
npm install -g @iris-eval/mcp-server
iris-mcp --dashboard
# Docker — two servers, two ports: 3000 = MCP HTTP transport,
# 6920 = dashboard (which also serves the POST /api/v1/traces ingest endpoint)
docker run -p 3000:3000 -p 6920:6920 -v iris-data:/data ghcr.io/iris-eval/mcp-server
เคล็ดลับ: การติดตั้งแบบ global (
npm install -g) เก็บ traces อย่างถาวรที่~/.iris/iris.dbด้วยnpxtraces ยังคงอยู่ในตำแหน่งเดียวกัน แต่การเริ่มต้นช้าลงเนื่องจากการ resolve package
สิ่งที่คุณได้รับ
| การบันทึก Trace | ต้นไม้ span แบบลำดับชั้นพร้อม latency ต่อการเรียก tool, การใช้ token, และต้นทุนเป็น USD เก็บใน SQLite ค้นหาได้ทันที |
| การประเมินผลลัพธ์ | กฎในตัว 13 ข้อใน 4 หมวด: ความครบถ้วน, ความเกี่ยวข้อง, ความปลอดภัย, ต้นทุน การตรวจจับ PII (19 รูปแบบ: SSN, บัตรเครดิต, โทรศัพท์, อีเมล, IBAN, วันเกิด, MRN, IP, API key, พาสปอร์ต, รวมถึง AWS/Slack/SendGrid/GitHub/Google/npm/DigitalOcean tokens, PEM private-key blocks และ seed phrases), การตรวจจับ prompt injection (37 รูปแบบ, phrase + โครงสร้าง), การตรวจจับ stub output, การตรวจจับ hallucination (25 สัญญาณ fabrication/contradiction ที่อิงบริบท — ส่ง input เพื่อเทียบกับเนื้อหาต้นฉบับของเอเจนต์) เพิ่มกฎที่กำหนดเองด้วย Zod schemas |
| LLM-as-Judge | การให้คะแนนเชิงความหมายแบบเลือกใช้ผ่าน Anthropic หรือ OpenAI — ใช้ API key ของคุณเอง ห้าเทมเพลต เพดานต้นทุนต่อการประเมินแบบตายตัว (IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL, ค่าเริ่มต้น $0.25), เปิดเผยราคาต่อการประเมินในผลลัพธ์ |
| การมองเห็นต้นทุน | ต้นทุนรวมของเอเจนต์ทั้งหมดในช่วงเวลาใดก็ได้ ตั้งเกณฑ์งบประมาณ รับการแจ้งเตือนเมื่อเอเจนต์ใช้เกิน |
| Web Dashboard | UI โหมดมืดแบบเรียลไทม์ที่เปิดที่ความล้มเหลว เรียงจากแย่ที่สุดและใหม่ที่สุดก่อน — การแสดง trace, ผลการประเมิน, การแยกต้นทุน, และ command palette (⌘K) ที่ค้นหากฎ, traces, และ evals ของคุณเอง |
| Local-first | ทุกอย่างอยู่ใน SQLite บนดิสก์ของคุณ ไม่มีบัญชี ไม่ต้องสมัคร ไม่มี telemetry HTTP ขาออกเกิดขึ้นเฉพาะที่คุณเลือก: key LLM-judge ของคุณเอง, การดึง citation, หรือ OTel exporter ที่คุณตั้งค่า |
จุดหมายต่อไป: โรดแมป
MCP Tools
Iris ลงทะเบียนเครื่องมือเก้าอย่างที่เอเจนต์ที่รองรับ MCP ใดๆ สามารถเรียกได้ — วงจรชีวิตของกฎ + trace + LLM-as-judge + การตรวจสอบ citation เชิงความหมาย:
log_trace— บันทึกการทำงานของเอเจนต์พร้อม spans, tool calls, การใช้ token, และต้นทุนevaluate_output— ให้คะแนนคุณภาพผลลัพธ์เทียบกับกฎความครบถ้วน ความเกี่ยวข้อง ความปลอดภัย และต้นทุน (heuristic, deterministic, ฟรี)get_traces— ค้นหา traces ที่เก็บไว้พร้อมการกรอง การแบ่งหน้า และการรองรับช่วงเวลาlist_rules— แสดงรายการกฎ eval ที่กำหนดเองที่ใช้งานอยู่ (อ่านอย่างเดียว)deploy_rule— ลงทะเบียนกฎ eval ที่กำหนดเองใหม่เพื่อให้ทำงานทุกครั้งที่evaluate_outputของหมวดนั้นdelete_rule— ลบกฎที่กำหนดเองที่ใช้งานอยู่ (ทำลายล้าง, idempotent)delete_trace— ลบ trace ที่เก็บไว้หนึ่งรายการตาม ID (ทำลายล้าง, จำกัดตาม tenant)evaluate_with_llm_judge— การประเมินเชิงความหมายผ่าน LLM (Anthropic หรือ OpenAI) ห้าเทมเพลต: accuracy, helpfulness, safety, correctness, faithfulness จำกัดต้นทุน เปิดเผยราคาต่อการประเมิน ใช้ API key ของคุณเอง (IRIS_ANTHROPIC_API_KEYหรือIRIS_OPENAI_API_KEY) — Iris ไม่ proxy หรือ relay การเรียก LLMverify_citations— ดึง citations จากผลลัพธ์ (numbered, author-year, URLs, DOIs), ดึงแหล่งที่มาผ่าน resolver ที่ป้องกัน SSRF + อนุญาตเฉพาะ domain ที่กำหนด และใช้ LLM judge เพื่อตรวจสอบว่าแต่ละแหล่งสนับสนุนข้ออ้างที่อ้างอิงจริงหรือไม่ HTTP ขาออกแบบเลือกใช้ ข้อกำหนด BYOK เดียวกับevaluate_with_llm_judge
เมื่อตั้งค่า IRIS_OTEL_ENDPOINT แล้ว การเรียก log_trace จะส่งออก OTLP/HTTP JSON แบบ best-effort ไปยัง OpenTelemetry collector ใดๆ (Jaeger, Grafana Tempo, Datadog OTLP, Honeycomb, ฯลฯ) ดู docs/otel-integration.md
วิธีตัดสิน passed
evaluate_output คืนค่าทั้ง score และแฟล็ก passed — พวกมันตอบคำถามคนละข้อ:
score(0..1) คือค่าเฉลี่ยถ่วงน้ำหนักของกฎที่รัน — เกรเดียนต์ของคุณภาพpassedคือคำตัดสิน ship/no-ship:trueเฉพาะเมื่อคะแนนผ่านเกณฑ์ (ค่าเริ่มต้น 0.7) และไม่มีกฎวิกฤตใดล้มเหลว
การละเมิดความปลอดภัยจริง hard-fail no_pii, no_injection_patterns, และ no_blocklist_words เป็น กฎวิกฤต: ถ้าหนึ่งในนั้นล้มเหลว eval รายงาน passed: false ไม่ว่ากฎอื่นจะได้คะแนนดีแค่ไหน และการตอบสนองระบุตัวการใน critical_failures SSN ที่รั่วไม่สามารถเฉลี่ยให้หายไปได้ กฎที่กำหนดเองที่ใช้งานด้วย severity: "high" หรือ "critical" hard-fail ในลักษณะเดียวกัน; ความรุนแรง low/medium มีผลกับคะแนนเท่านั้น ขอบเขตหนึ่งที่ควรรู้: กฎวิกฤตที่ ข้าม (ไม่มีบริบท หรือสาเหตุอื่นของการข้าม) ไม่ได้ตัดสินผลลัพธ์และไม่ veto — rule_results แสดงทุกการข้ามและเหตุผล ดังนั้น gate ที่ต้อง fail closed กับ non-verdicts ทำได้
ข้อควรระวังสำหรับ CI gates: ถ้าคุณละเว้น eval_type ชุด completeness เริ่มต้นจะรัน — กฎความปลอดภัยไม่รัน การตอบสนองสะท้อน eval_type (บวก note เมื่อถูกตั้งเป็นค่าเริ่มต้น) เพื่อให้ gate ของคุณตรวจสอบได้ว่าชุดใดรันจริง ใช้ passed สำหรับคำตัดสินและ eval_type: "safety" สำหรับความครอบคลุม
schema และการตั้งค่า tool ทั้งหมด: iris-eval.com
ฟีเจอร์แบบ hosted
Iris รันบนเครื่องของคุณทั้งหมดในวันนี้ และทุกอย่างที่มันทำฟรีและเป็น MIT license โดยไม่มีขีดจำกัดและไม่มีบัญชี
Hosted storage, ประวัติทีมที่แชร์ และการแจ้งเตือน อยู่ระหว่างการพิจารณา ไม่ได้อยู่ระหว่างการสร้าง ไม่มีราคา และไม่มีอะไรให้ซื้อ ถ้าประวัติที่แชร์มีประโยชน์กับคุณ รายชื่อรอ คือวิธีที่เราจะรู้ว่าคุ้มค่าที่จะสร้างหรือไม่ — ไม่ผูกมัดคุณแต่อย่างใด
มีสองข้อผูกพันที่ไม่เปลี่ยนแปลง: สิ่งที่ฟรีในวันนี้จะไม่ถูกย้ายไปอยู่หลัง paywall และ จะไม่มีการอ้างใบรับรอง compliance ก่อนที่จะได้รับจริง
ตัวอย่าง
- การตั้งค่า Claude Desktop — MCP config สำหรับโหมด stdio และ HTTP
- TypeScript — MCP SDK client — เชื่อมต่อและเรียก tools
- HTTP transport (TS + Python) — โค้ด client เต็มรูปแบบสำหรับการรวมแบบ REST
- LangChain instrumentation (Python, conceptual) — โครงร่างที่แสดงรูปแบบ; ต้องใช้โค้ดเอเจนต์ของคุณที่รันได้
- CrewAI instrumentation (Python, conceptual) — โครงร่าง; ข้อควรระวังเดียวกัน
ชุมชน
- GitHub Issues — รายงานข้อบกพร่องและคำขอคุณสมบัติ
- GitHub Discussions — คำถามและแนวคิด
- Contributing Guide — วิธีมีส่วนร่วม
- HTTP Ingest — การจับ trace แบบกำหนดได้ผ่าน
POST /api/v1/traces - Roadmap — สิ่งที่จะเกิดขึ้นต่อไป
การกำหนดค่าและความปลอดภัย
CLI Arguments
| แฟล็ก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
--transport | stdio | ประเภทการขนส่ง: stdio หรือ http |
--port | 3000 | พอร์ตการขนส่ง HTTP |
--db-path | ~/.iris/iris.db | เส้นทางฐานข้อมูล SQLite |
--config | ~/.iris/config.json | เส้นทางไฟล์คอนฟิก |
--api-key | — | คีย์ API สำหรับการตรวจสอบสิทธิ์ HTTP |
--dashboard | false | เปิดใช้งานแดชบอร์ดเว็บ |
--dashboard-port | 6920 | พอร์ตแดชบอร์ด |
--dashboard-host | 127.0.0.1 | ที่อยู่ผูกแดชบอร์ด ค่าเริ่มต้นคือ loopback — แดชบอร์ดไม่มีการตรวจสอบสิทธิ์เว้นแต่ตั้งค่า --api-key ไว้ ดังนั้นการผูกเกิน loopback จะเปิดเผยประวัติ trace ทั้งหมดของคุณ |
--demo | false | สร้างฐานข้อมูลตัวอย่าง (แยกจาก trace จริงของคุณ) และให้บริการแดชบอร์ดจากฐานข้อมูลนั้น |
--demo-clear | false | ลบฐานข้อมูลตัวอย่างและออก |
--self-test | false | รันการวินิจฉัยการติดตั้งแบบออฟไลน์ในโฮมชั่วคราวที่แยกออกมา แล้วออก (0 = ปกติ, 1 = การตรวจสอบล้มเหลว) |
Environment Variables
| ตัวแปร | คำอธิบาย |
|---|---|
IRIS_TRANSPORT | ประเภทการขนส่ง (stdio หรือ http) |
IRIS_PORT | พอร์ตการขนส่ง HTTP |
IRIS_HOST | โฮสต์การขนส่ง HTTP (ค่าเริ่มต้น 127.0.0.1) |
IRIS_HOME | ไดเรกทอรีสำหรับไฟล์ต่อผู้ใช้ทั้งหมด: config.json, iris.db, custom-rules.json, audit.log, preferences.json (ค่าเริ่มต้น ~/.iris) |
IRIS_DB_PATH | เส้นทางฐานข้อมูล SQLite (แทนที่ IRIS_HOME สำหรับ DB เท่านั้น) |
IRIS_LOG_LEVEL | ระดับบันทึก: debug, info, warn, error |
IRIS_DASHBOARD | เปิดใช้งานแดชบอร์ดเว็บ (true/false; false ยังแทนที่ dashboard.enabled ใน config.json ด้วย) |
IRIS_DASHBOARD_PORT | พอร์ตแดชบอร์ด (ค่าเริ่มต้น 6920) |
IRIS_DASHBOARD_HOST | ที่อยู่ผูกแดชบอร์ด (ค่าเริ่มต้น 127.0.0.1) |
IRIS_API_KEY | คีย์ API สำหรับการตรวจสอบสิทธิ์ HTTP |
IRIS_ALLOWED_ORIGINS | ต้นทาง CORS ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค |
แฟล็ก CLI มีลำดับความสำคัญเหนือตัวแปรสภาพแวดล้อมเมื่อทั้งสองถูกตั้งค่า
ความปลอดภัย
เมื่อใช้การขนส่ง HTTP, Iris ประกอบด้วย:
- การตรวจสอบสิทธิ์ด้วยคีย์ API พร้อมการเปรียบเทียบที่ปลอดภัยต่อเวลา
- CORS จำกัดเฉพาะ localhost โดยค่าเริ่มต้น
- การจำกัดอัตรา (600 คำขอ/นาที สำหรับแดชบอร์ด API, 20 คำขอ/นาที สำหรับ MCP)
- ส่วนหัวความปลอดภัย Helmet
- การตรวจสอบอินพุตด้วย Zod บนทุกเส้นทาง
- regex ที่ปลอดภัยจาก ReDoS สำหรับกฎการประเมินที่กำหนดเอง
- ขีดจำกัดขนาดคำขอ 1MB
# Production deployment
iris-mcp --transport http --port 3000 --api-key "$(openssl rand -hex 32)" --dashboard
การแก้ไขปัญหา
ขั้นแรก: รันการทดสอบตัวเอง
npx @iris-eval/mcp-server --self-test
มันตรวจสอบพื้นที่จัดเก็บ การประเมินแบบกำหนดได้ และแดชบอร์ดในโฮมชั่วคราวที่แยกออกมา และพิมพ์ผลการตัดสินต่อขั้นตอน — ผลลัพธ์ที่ล้มเหลวจะระบุขั้นตอนที่เสีย รหัสออก 0 หมายถึงการติดตั้งปกติ
Iris ไม่เริ่มทำงาน / ERR_MODULE_NOT_FOUND
คุณอาจมีเวอร์ชันเก่าที่ถูกแคชไว้ ล้างแคช npx แล้วลองใหม่:
npx --yes @iris-eval/mcp-server@latest
หรือติดตั้งแบบ global เพื่อหลีกเลี่ยงปัญหาแคชทั้งหมด:
npm install -g @iris-eval/mcp-server@latest
เครื่องมือไม่แสดงใน Claude Code
เครื่องมือ MCP โหลดเฉพาะเมื่อเริ่มเซสชัน หลังจากเพิ่ม iris-eval ให้รีสตาร์ทเซสชันด้วย /clear หรือเปิดเทอร์มินัลใหม่
การตรวจสอบเวอร์ชัน
Iris บันทึกเวอร์ชันในบรรทัดเริ่มต้นแรก:
npx @iris-eval/mcp-server --dashboard
# First log line: "Starting Iris MCP server vX.Y.Z"
สำหรับการติดตั้งแบบ global, npm ls -g @iris-eval/mcp-server แสดงเวอร์ชันที่ติดตั้ง
การอัปเดต
# If using npx (clears cache and fetches latest)
npx --yes @iris-eval/mcp-server@latest
# If installed globally
npm update -g @iris-eval/mcp-server
เวอร์ชัน Node.js
Iris ต้องใช้ Node.js 20 ขึ้นไป Node 18 ถึงจุดสิ้นสุดการสนับสนุนในเดือนเมษายน 2025 และไม่ได้รับการสนับสนุน
node --version # Must be v20.x or v22.x+
Windows: cmd /c ไม่จำเป็น
/doctor ของ Claude Code อาจแนะนำให้ครอบ npx ด้วย cmd /c ซึ่งไม่จำเป็นและทำให้เกิดปัญหาในการแยกเส้นทาง ใช้ npx โดยตรง:
# Correct
claude mcp add --transport stdio iris-eval -- npx @iris-eval/mcp-server
# Wrong (causes /c to be parsed as a path)
claude mcp add --transport stdio iris-eval -- cmd /c "npx @iris-eval/mcp-server"
หาก Iris มีประโยชน์สำหรับคุณ พิจารณากดดาวให้ repo — มันช่วยให้ผู้อื่นค้นพบมัน
สัญญาอนุญาต MIT