Iris
आधिकारिकMCP-नेटिव एजेंट मूल्यांकन और अवलोकन सर्वर जिसमें ट्रेस लॉगिंग, आउटपुट गुणवत्ता मूल्यांकन, लागत ट्रैकिंग, 12 अंतर्निहित मूल्यांकन नियम, रीयल-टाइम डैशबोर्ड और PII डिटेक्शन शामिल है
Iris MCP के साथ आप क्या कर सकते हैं?
- लॉग एजेंट रन —
log_traceके साथ एक निष्पादन रिकॉर्ड करने के लिए कहें, जिसमें स्पैन, टूल कॉल, टोकन उपयोग और USD में लागत शामिल हो। - आउटपुट गुणवत्ता स्कोर करें — 13 अंतर्निहित नियमों के विरुद्ध पूर्णता, प्रासंगिकता, सुरक्षा और लागत की जाँच करने के लिए
evaluate_outputका उपयोग करें। - ट्रेस इतिहास क्वेरी करें — समय सीमा, पेजिनेशन और अन्य मानदंडों द्वारा फ़िल्टर करते हुए,
get_tracesके साथ संग्रहीत रन प्राप्त करें। - कस्टम नियम प्रबंधित करें — स्कोरिंग को अनुकूलित करने के लिए
deploy_ruleके साथ नए eval नियम तैनात करें याdelete_ruleके माध्यम से उन्हें हटाएँ। - LLM-एज़-जज चलाएँ — पाँच टेम्पलेट्स में सिमेंटिक स्कोरिंग के लिए
evaluate_with_llm_judgeको आमंत्रित करें, जिसमें प्रति-मूल्यांकन हार्ड लागत सीमा हो। - उद्धरण सत्यापित करें — LLM जज के माध्यम से दावों के विरुद्ध उद्धृत स्रोतों को निकालने और तथ्य-जाँच करने के लिए
verify_citationsका उपयोग करें।
दस्तावेज़
Iris — एजेंटों को बिना ठोस आधार के शिप करना बंद करें
Iris आपके एजेंट के हर रन को गुणवत्ता, सुरक्षा और लागत के लिए स्कोर करता है — आपकी मशीन पर, बिना किसी SDK और बिना किसी खाते के। अधिकांश एजेंट प्रोजेक्ट गुणवत्ता की जाँच कुछ याद किए गए प्रॉम्प्ट चलाकर और आउटपुट को देखकर करते हैं। Iris उसकी जगह ऐसे नंबर देता है जिन्हें आप ऑडिट कर सकते हैं: आपके एजेंट के रन आपकी डिस्क पर SQLite डेटाबेस में जमा होते हैं, 13 अंतर्निहित नियम उन्हें निर्धारित रूप से स्कोर करते हैं — PII, प्रॉम्प्ट इंजेक्शन, हैल्यूसिनेशन मार्कर, लागत सीमाएँ — मुफ्त, बिना किसी LLM कॉल के, और एक वैकल्पिक LLM जज जिसकी प्रति-मूल्यांकन लागत की कड़ी सीमा है, सिमेंटिक प्रश्नों को संभालता है। हर नियम निरीक्षण योग्य और संपादन योग्य है, क्योंकि एक जज जिसे आप ऑडिट नहीं कर सकते, वह सिर्फ एक नंबर के साथ जुड़ी हुई अटकलें हैं। MIT लाइसेंस, कोई टेलीमेट्री नहीं; आपके ट्रेस कभी आपकी मशीन से बाहर नहीं जाते।
Node.js 20 या उससे नए संस्करण की आवश्यकता है। node --version से जाँचें।

60 सेकंड में स्क्रीन पर एक विफलता
कोई एजेंट वायरिंग नहीं, कोई कॉन्फ़िग नहीं — बस एक कमांड:
npx @iris-eval/mcp-server --demo
यह एक डेमो डेटाबेस सीड करता है — कुछ छोटे एजेंट जिनमें एक सप्ताह के रन हैं — और उसके विरुद्ध डैशबोर्ड को http://localhost:6920 पर सर्व करता है (पहले रन पर आपका ब्राउज़र स्वतः खुल जाता है)। डैशबोर्ड Failures पर खुलता है: क्या विफल रहा, पहले सबसे खराब और सबसे नए। इसमें क्लिक करना उचित है — सुरक्षा नियमों द्वारा पकड़ा गया PII लीक, एक फ़्लैग किया गया प्रॉम्प्ट-इंजेक्शन प्रयास, और उसके तर्क सहित एक विफल LLM-जज स्कोर।
डेमो डेटा अपने अलग डेटाबेस में रहता है (आपकी Iris होम डायरेक्टरी में demo.db — macOS/Linux पर ~/.iris, Windows पर %USERPROFILE%\.iris) और आपके वास्तविक ट्रेस के साथ कभी मिश्रित नहीं होता। इसे एक कमांड से पूरी तरह हटाएँ:
npx @iris-eval/mcp-server --demo-clear
अपना खुद का एजेंट कनेक्ट करें
अपने MCP कॉन्फ़िग में Iris जोड़ें। यह Claude Desktop, Claude Code, Cursor, Windsurf, Continue, VS Code, Cline, Zed, Codex CLI, Gemini CLI — और किसी भी अन्य MCP-संगत एजेंट के साथ काम करता है। एक ब्लॉक, डैशबोर्ड सहित:
{
"mcpServers": {
"iris-eval": {
"command": "npx",
"args": ["@iris-eval/mcp-server", "--dashboard"]
}
}
}
कनेक्ट होने पर आपका एजेंट Iris के नौ टूल खोज लेता है, और डैशबोर्ड http://localhost:6920. पर सर्व होता है। अब इसे अपने एजेंट में पेस्ट करें:
उस आखिरी कार्य को Iris में लॉग करें और आउटपुट का मूल्यांकन करें।
ट्रेस अपने स्कोर के साथ डैशबोर्ड पर पहुँच जाता है। MCP सर्वर को हेडलेस पसंद है? args से --dashboard हटाएँ — आप किसी भी समय npx @iris-eval/mcp-server --dashboard के साथ वही डैशबोर्ड खोल सकते हैं।
एक बात शुरू में जान लेना उचित है: MCP टूल तब कॉल होते हैं जब मॉडल उन्हें कॉल करने का निर्णय लेता है। Iris आपके एजेंट को इंटरसेप्ट नहीं करता, इसलिए ट्रेस तब लॉग होते हैं जब आपका एजेंट उन्हें लॉग करने के लिए कहता है — या तो क्योंकि आपने उसे बताया, या क्योंकि आपका कोड सीधे टूल को कॉल करता है। अपने एजेंट से कहें "इसे Iris में लॉग करें और मूल्यांकन करें" और वह करेगा। यदि आप ऐसा कैप्चर चाहते हैं जो मॉडल के चुनाव पर निर्भर न हो, तो POST /api/v1/traces बिल्कुल वही करता है — आपका कोड ट्रेस को सादे HTTP पर भेजता है, लूप में कोई मॉडल नहीं (देखें docs/http-ingest.md)। रोडमैप पर CLI और SDK उसी एंडपॉइंट के पतले क्लाइंट होंगे।
HTTP पर कैप्चर (लूप में कोई मॉडल नहीं)
डैशबोर्ड चल रहा हो, तो कोई भी चीज़ जो HTTP अनुरोध भेज सकती है, ट्रेस लॉग कर सकती है — और वैकल्पिक रूप से उसी अनुरोध में निर्धारित मूल्यांकन भी चला सकती है:
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"
}'
संग्रहीत trace_id और मूल्यांकन परिणाम के साथ 201 लौटाता है। एंडपॉइंट log_trace टूल के समान बॉडी स्वीकार करता है और डैशबोर्ड के बाकी हिस्सों की तरह उसी लूपबैक-ओनली मिडलवेयर स्टैक के पीछे रहता है। पूर्ण अनुबंध, फ़ील्ड संदर्भ और त्रुटि शब्दार्थ: docs/http-ingest.md।
इंस्टॉल जाँचें
npx @iris-eval/mcp-server --self-test
एक ऑफ़लाइन इंस्टॉल डायग्नोस्टिक: स्टोरेज राउंड-ट्रिप, निर्धारित मूल्यांकन, डैशबोर्ड + DNS-रीबाइंडिंग गार्ड — सब कुछ एक अलग अस्थायी होम के अंदर, ताकि आपका वास्तविक डेटाबेस कभी न खुले। एग्ज़िट कोड 0 = स्वस्थ, 1 = कोई जाँच विफल।
टूल के अनुसार सेटअप
Claude Desktop
अपनी MCP कॉन्फ़िग फ़ाइल संपादित करें:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
ऊपर दिया गया JSON कॉन्फ़िग जोड़ें, फिर Claude Desktop को पुनः आरंभ करें।
Claude Code
claude mcp add --transport stdio iris-eval -- npx @iris-eval/mcp-server
फिर टूल लोड होने के लिए सत्र पुनः आरंभ करें (/clear या फिर से लॉन्च करें)।
Windows नोट:
cmd /cरैपर का उपयोग न करें — इससे पाथ पार्सिंग समस्याएँ होती हैं।npxकमांड सीधे काम करता है।
Cursor / Windsurf
ऊपर दिए गए JSON कॉन्फ़िग का उपयोग करके अपने वर्कस्पेस .cursor/mcp.json या वैश्विक MCP सेटिंग्स में जोड़ें।
VS Code (नेटिव MCP)
अपने वर्कस्पेस में .vscode/mcp.json में जोड़ें (नोट: VS Code mcpServers नहीं, servers का उपयोग करता है):
{
"servers": {
"iris-eval": {
"command": "npx",
"args": ["@iris-eval/mcp-server"]
}
}
}
Cline
Cline का MCP Servers पैनल खोलें → Configure MCP Servers, और ऊपर दिया गया mcpServers JSON कॉन्फ़िग 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 कॉन्फ़िग ~/.gemini/settings.json में जोड़ें।
कोई और चीज़ जो MCP बोलती है
Iris एक मानक stdio MCP सर्वर है — एक npx @iris-eval/mcp-server कमांड, कोई SDK नहीं, कोई कोड परिवर्तन नहीं। यदि आपका क्लाइंट MCP का समर्थन करता है, तो वह Iris का समर्थन करता है। क्लाइंट कॉन्फ़िग प्रारूप बदलते रहते हैं; संदेह होने पर, अपने क्लाइंट के MCP दस्तावेज़ देखें और उसे उस कमांड की ओर इंगित करें।
अन्य इंस्टॉल विधियाँ
# 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
टिप: वैश्विक इंस्टॉल (
npm install -g) ट्रेस को~/.iris/iris.dbपर स्थायी रूप से संग्रहीत करता है।npxके साथ, ट्रेस उसी स्थान पर बने रहते हैं, लेकिन पैकेज रिज़ॉल्यूशन के कारण स्टार्टअप धीमा होता है।
आपको क्या मिलता है
| ट्रेस लॉगिंग | प्रति-टूल-कॉल विलंबता, टोकन उपयोग और USD में लागत के साथ पदानुक्रमित स्पैन ट्री। SQLite में संग्रहीत, तुरंत क्वेरी करने योग्य। |
| आउटपुट मूल्यांकन | 4 श्रेणियों में 13 अंतर्निहित नियम: पूर्णता, प्रासंगिकता, सुरक्षा, लागत। PII पहचान (19 पैटर्न: SSN, क्रेडिट कार्ड, फ़ोन, ईमेल, IBAN, DOB, MRN, IP, API कुंजी, पासपोर्ट, साथ ही AWS/Slack/SendGrid/GitHub/Google/npm/DigitalOcean टोकन, PEM प्राइवेट-की ब्लॉक और सीड फ्रेज़), प्रॉम्प्ट इंजेक्शन (37 पैटर्न, वाक्यांश + संरचनात्मक), स्टब-आउटपुट पहचान, हैल्यूसिनेशन पहचान (25 संदर्भ-आधारित निर्माण/विरोधाभास संकेत — उन्हें एजेंट के स्रोत सामग्री के विरुद्ध आधारित करने के लिए input पास करें)। Zod स्कीमा के साथ कस्टम नियम जोड़ें। |
| LLM-एज़-जज | Anthropic या OpenAI के माध्यम से वैकल्पिक सिमेंटिक स्कोरिंग — अपनी खुद की API कुंजी लाएँ। पाँच टेम्पलेट। प्रति-मूल्यांकन लागत की कड़ी सीमा (IRIS_LLM_JUDGE_MAX_COST_USD_PER_EVAL, डिफ़ॉल्ट $0.25), परिणाम में प्रति-मूल्यांकन मूल्य निर्धारण प्रकट किया जाता है। |
| लागत दृश्यता | किसी भी समय सीमा में सभी एजेंटों की कुल लागत। बजट सीमाएँ निर्धारित करें। एजेंटों द्वारा अधिक खर्च करने पर फ़्लैग प्राप्त करें। |
| वेब डैशबोर्ड | रीयल-टाइम डार्क-मोड UI जो विफलताओं पर खुलता है, पहले सबसे खराब और सबसे नए — ट्रेस विज़ुअलाइज़ेशन, मूल्यांकन परिणाम, लागत विवरण, और एक कमांड पैलेट (⌘K) जो आपके अपने नियमों, ट्रेस और मूल्यांकनों को खोजता है। |
| लोकल-फर्स्ट | सब कुछ आपकी डिस्क पर SQLite में रहता है। कोई खाता नहीं, कोई साइन-अप नहीं, कोई टेलीमेट्री नहीं। आउटबाउंड HTTP केवल वहीं होता है जहाँ आप ऑप्ट-इन करते हैं: आपकी अपनी LLM-जज कुंजी, साइटेशन फ़ेचिंग, या एक OTel एक्सपोर्टर जिसे आप कॉन्फ़िगर करते हैं। |
आगे कहाँ जा रहा है: रोडमैप।
MCP टूल
Iris नौ टूल पंजीकृत करता है जिन्हें कोई भी MCP-संगत एजेंट कॉल कर सकता है — पूर्ण नियम + ट्रेस जीवनचक्र + LLM-एज़-जज + सिमेंटिक साइटेशन सत्यापन:
log_trace— स्पैन, टूल कॉल, टोकन उपयोग और लागत के साथ एजेंट निष्पादन लॉग करेंevaluate_output— पूर्णता, प्रासंगिकता, सुरक्षा और लागत नियमों के विरुद्ध आउटपुट गुणवत्ता स्कोर करें (ह्यूरिस्टिक, निर्धारित, मुफ्त)get_traces— फ़िल्टरिंग, पेजिनेशन और समय-सीमा समर्थन के साथ संग्रहीत ट्रेस क्वेरी करेंlist_rules— तैनात कस्टम मूल्यांकन नियमों की सूची बनाएं (केवल-पठन)deploy_rule— एक नया कस्टम मूल्यांकन नियम पंजीकृत करें ताकि यह उस श्रेणी के हरevaluate_outputपर सक्रिय होdelete_rule— तैनात कस्टम नियम हटाएँ (विनाशकारी, आइडेम्पोटेंट)delete_trace— ID द्वारा एक संग्रहीत ट्रेस हटाएँ (विनाशकारी, टेनेंट-स्कोप्ड)evaluate_with_llm_judge— LLM के माध्यम से सिमेंटिक मूल्यांकन (Anthropic या OpenAI)। पाँच टेम्पलेट: सटीकता, सहायकता, सुरक्षा, शुद्धता, निष्ठा। लागत-सीमित, प्रति-मूल्यांकन मूल्य निर्धारण प्रकट। अपनी खुद की API कुंजी लाएँ (IRIS_ANTHROPIC_API_KEYयाIRIS_OPENAI_API_KEY) — Iris LLM कॉल को प्रॉक्सी या रिले नहीं करता।verify_citations— आउटपुट से साइटेशन निकालें (क्रमांकित, लेखक-वर्ष, URL, DOI), SSRF-गार्डेड + डोमेन-अनुमतिसूची वाले रिज़ॉल्वर के पीछे स्रोत फ़ेच करें, और यह जाँचने के लिए LLM जज का उपयोग करें कि प्रत्येक स्रोत वास्तव में उद्धृत दावे का समर्थन करता है या नहीं। ऑप्ट-इन आउटबाउंड HTTP।evaluate_with_llm_judgeके समान BYOK आवश्यकता।
जब IRIS_OTEL_ENDPOINT कॉन्फ़िगर होता है, तो log_trace कॉल किसी भी OpenTelemetry कलेक्टर (Jaeger, Grafana Tempo, Datadog OTLP, Honeycomb, आदि) को बेस्ट-एफ़र्ट OTLP/HTTP JSON एक्सपोर्ट भी उत्सर्जित करती हैं। देखें docs/otel-integration.md।
passed कैसे तय होता है
evaluate_output एक score और एक passed फ़्लैग दोनों लौटाता है — वे अलग-अलग प्रश्नों का उत्तर देते हैं:
score(0..1) चलाए गए नियमों का भारित औसत है — एक गुणवत्ता ग्रेडिएंट।passedशिप/नो-शिप निर्णय है:trueकेवल तब जब स्कोर पास थ्रेशोल्ड (डिफ़ॉल्ट 0.7) को पार करता है और कोई क्रिटिकल नियम विफल नहीं हुआ।
वास्तविक सुरक्षा उल्लंघन हार्ड-फेल होते हैं। no_pii, no_injection_patterns और no_blocklist_words क्रिटिकल नियम हैं: यदि एक भी विफल होता है, तो मूल्यांकन passed: false रिपोर्ट करता है चाहे अन्य नियमों ने कितना भी अच्छा स्कोर किया हो, और प्रतिक्रिया critical_failures में दोषियों के नाम बताती है। एक लीक हुआ SSN औसत से मिटाया नहीं जा सकता। severity: "high" या "critical" के साथ तैनात कस्टम नियम उसी तरह हार्ड-फेल होते हैं; low/medium गंभीरता केवल स्कोर को प्रभावित करती है। एक सीमा जान लें: एक क्रिटिकल नियम जो स्किप हुआ (लापता संदर्भ, या स्किप का कोई अन्य कारण) उसने आउटपुट का निर्णय नहीं किया है और वीटो नहीं करता — rule_results हर स्किप और उसका कारण दिखाता है, ताकि एक गेट जो गैर-निर्णयों पर फेल-क्लोज़ होना चाहिए, वह कर सके।
CI गेट्स के लिए एक चेतावनी: यदि आप eval_type छोड़ देते हैं, तो डिफ़ॉल्ट completeness बंडल चलता है — सुरक्षा नियम नहीं चलते। प्रतिक्रिया eval_type को प्रतिध्वनित करती है (साथ ही एक note जब यह डिफ़ॉल्ट किया गया था) ताकि आपका गेट सत्यापित कर सके कि वास्तव में कौन सा बंडल चला। निर्णय के लिए passed पर और कवरेज के लिए eval_type: "safety" पर ध्यान दें।
पूर्ण टूल स्कीमा और कॉन्फ़िगरेशन: iris-eval.com
होस्टेड सुविधाएँ
Iris आज पूरी तरह से आपकी मशीन पर चलता है, और यह जो कुछ भी करता है वह मुफ्त और MIT लाइसेंस के तहत है, बिना किसी सीमा और बिना किसी खाते के।
होस्टेड स्टोरेज, साझा टीम इतिहास और अलर्टिंग विचाराधीन हैं, निर्माणाधीन नहीं। कोई मूल्य निर्धारण नहीं है, और खरीदने के लिए कुछ भी नहीं है। यदि साझा इतिहास आपके लिए उपयोगी होगा, तो वेटलिस्ट यह पता लगाने का हमारा तरीका है कि क्या इसे बनाना उचित है — यह आपको किसी चीज़ के लिए प्रतिबद्ध नहीं करता।
दो प्रतिबद्धताएँ हर हाल में बनी रहती हैं: जो आज मुफ्त है वह कभी पेवॉल के पीछे नहीं जाएगा, और कोई अनुपालन प्रमाणन उसके प्राप्त होने से पहले दावा नहीं किया जाएगा।
उदाहरण
- Claude Desktop सेटअप — stdio और HTTP मोड के लिए MCP कॉन्फ़िग
- TypeScript — MCP SDK क्लाइंट — कनेक्ट करें और टूल इनवोक करें
- HTTP ट्रांसपोर्ट (TS + Python) — REST-शैली एकीकरण के लिए पूर्ण क्लाइंट कोड
- LangChain इंस्ट्रूमेंटेशन (Python, अवधारणात्मक) — आकार दिखाने वाला स्कैफोल्ड; चलाने योग्य होने के लिए आपके एजेंट कोड की आवश्यकता है
- CrewAI इंस्ट्रूमेंटेशन (Python, अवधारणात्मक) — स्कैफोल्ड; वही चेतावनी
समुदाय
- GitHub Issues — बग रिपोर्ट और फीचर अनुरोध
- GitHub Discussions — प्रश्न और विचार
- योगदान मार्गदर्शिका — योगदान कैसे करें
- HTTP Ingest —
POST /api/v1/tracesके माध्यम से डिटर्मिनिस्टिक ट्रेस कैप्चर - रोडमैप — आगे क्या आने वाला है
कॉन्फ़िगरेशन और सुरक्षा
CLI तर्क
| फ़्लैग | डिफ़ॉल्ट | विवरण |
|---|---|---|
--transport | stdio | ट्रांसपोर्ट प्रकार: stdio या http |
--port | 3000 | HTTP ट्रांसपोर्ट पोर्ट |
--db-path | ~/.iris/iris.db | SQLite डेटाबेस पथ |
--config | ~/.iris/config.json | कॉन्फ़िग फ़ाइल पथ |
--api-key | — | HTTP प्रमाणीकरण के लिए API कुंजी |
--dashboard | false | वेब डैशबोर्ड सक्षम करें |
--dashboard-port | 6920 | डैशबोर्ड पोर्ट |
--dashboard-host | 127.0.0.1 | डैशबोर्ड बाइंड पता। डिफ़ॉल्ट रूप से लूपबैक — जब तक --api-key सेट नहीं होता, डैशबोर्ड अप्रमाणित होता है, इसलिए लूपबैक से परे बाइंड करने से आपका पूरा ट्रेस इतिहास उजागर हो जाता है |
--demo | false | एक डेमो डेटाबेस सीड करें (आपके वास्तविक ट्रेस से अलग) और उसके विरुद्ध डैशबोर्ड परोसें |
--demo-clear | false | डेमो डेटाबेस हटाएँ और बाहर निकलें |
--self-test | false | एक अलग अस्थायी होम में ऑफ़लाइन इंस्टॉल डायग्नोस्टिक चलाएँ, फिर बाहर निकलें (0 = स्वस्थ, 1 = एक जाँच विफल रही) |
पर्यावरण चर
| वेरिएबल | विवरण |
|---|---|
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 डेटाबेस पथ (केवल DB के लिए IRIS_HOME को ओवरराइड करता है) |
IRIS_LOG_LEVEL | लॉग स्तर: debug, info, warn, error |
IRIS_DASHBOARD | वेब डैशबोर्ड सक्षम करें (true/false; false भी config.json में dashboard.enabled को ओवरराइड करता है) |
IRIS_DASHBOARD_PORT | डैशबोर्ड पोर्ट (डिफ़ॉल्ट 6920) |
IRIS_DASHBOARD_HOST | डैशबोर्ड बाइंड पता (डिफ़ॉल्ट 127.0.0.1) |
IRIS_API_KEY | HTTP प्रमाणीकरण के लिए API कुंजी |
IRIS_ALLOWED_ORIGINS | अल्पविराम से अलग किए गए अनुमत CORS मूल |
CLI फ़्लैग, पर्यावरण चरों पर प्राथमिकता लेते हैं जब दोनों सेट हों।
सुरक्षा
HTTP ट्रांसपोर्ट का उपयोग करते समय, Iris में शामिल है:
- टाइमिंग-सुरक्षित तुलना के साथ API कुंजी प्रमाणीकरण
- CORS डिफ़ॉल्ट रूप से localhost तक सीमित
- दर सीमा (600 अनुरोध/मिनट डैशबोर्ड API, 20 अनुरोध/मिनट MCP)
- Helmet सुरक्षा हेडर
- सभी रूट्स पर Zod इनपुट सत्यापन
- कस्टम eval नियमों के लिए ReDoS-सुरक्षित regex
- 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
या कैश समस्याओं से पूरी तरह बचने के लिए वैश्विक रूप से इंस्टॉल करें:
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"
वैश्विक इंस्टॉल के लिए, 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 में EOL तक पहुँच गया और समर्थित नहीं है।
node --version # Must be v20.x or v22.x+
Windows: cmd /c आवश्यक नहीं
Claude Code का /doctor 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 आपके लिए उपयोगी है, तो रिपो को स्टार करने पर विचार करें — इससे दूसरों को इसे खोजने में मदद मिलती है।
MIT लाइसेंस।