Comet Opik
आधिकारिकअपने Opik लॉग, ट्रेस, प्रॉम्प्ट और अपने LLMs से प्राप्त सभी अन्य टेलीमेट्री डेटा को प्राकृतिक भाषा में क्वेरी और विश्लेषण करें।
Comet Opik MCP के साथ आप क्या कर सकते हैं?
- अपने Opik कार्यक्षेत्र को ब्राउज़ और खोजें —
listके माध्यम से वैकल्पिक नाम फ़िल्टर और पेजिनेशन के साथ प्रोजेक्ट, प्रयोग, ट्रेस, स्पैन, प्रॉम्प्ट या टेस्ट सूट की सूची बनाएं। - किसी भी इकाई को ID, नाम या URI द्वारा निरीक्षण करें —
opik://URIs या UUIDs के साथreadका उपयोग करके पूर्ण विवरण प्राप्त करें (ट्रेस और प्रॉम्प्ट के लिए इनलाइन किए गए चिल्ड्रन सहित)। - ट्रेस, स्कोर, टिप्पणियाँ और प्रॉम्प्ट संस्करण लॉग करें —
writeके माध्यम से ट्रेस और स्पैन बनाएं या अपडेट करें, फीडबैक स्कोर संलग्न करें, प्रॉम्प्ट संस्करण सहेजें और टेस्ट सूट प्रबंधित करें। - अपने LLM ऑब्ज़र्वेबिलिटी डेटा के बारे में Ollie से जांच संबंधी प्रश्न पूछें — प्रयोगों की तुलना करने, रिग्रेशन का निदान करने या वैकल्पिक मिड-स्ट्रीम स्कोरिंग के साथ क्रॉस-एंटिटी अंतर्दृष्टि को संश्लेषित करने के लिए
ask_ollieको क्वेरी करें। - एंड-टू-एंड मूल्यांकन प्रयोग चलाएं — एक प्रॉम्प्ट, टेस्ट सूट और स्कोरर्स के साथ
run_experimentको ट्रिगर करें ताकि पूर्ण मूल्यांकन रन निष्पादित और लॉग किया जा सके। - राइट ऑपरेशन स्कीमा का निरीक्षण करें — पेलोड बनाने से पहले किसी भी राइट ऑपरेशन के लिए सटीक JSON आकार और आवश्यक फ़ील्ड प्राप्त करने के लिए
schemaका उपयोग करें।
दस्तावेज़
Opik MCP सर्वर
आधिकारिक मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) सर्वर Opik के लिए, जो ओपन-सोर्स LLM ऑब्ज़र्वेबिलिटी और मूल्यांकन प्लेटफ़ॉर्म है, Comet द्वारा निर्मित। अपने AI होस्ट (Claude Code, Cursor, VS Code Copilot, MCP Inspector) को सीधे अपने Opik कार्यक्षेत्र में प्लग करें: ट्रेस पढ़ें, स्कोर लॉग करें, प्रॉम्प्ट संस्करण सहेजें, और Ollie, Opik के इन-प्रोडक्ट AI सहायक, से जांच-पड़ताल वाले प्रश्न पूछें, सब कुछ चैट से।
उन LLM इंजीनियरों के लिए बनाया गया है जो पहले से Opik चलाते हैं और इसे उसी AI सहायक से संचालित करना चाहते हैं जिसके साथ वे कोड करते हैं।
पुराने
npx opik-mcpसे माइग्रेट कर रहे हैं? TypeScript सर्वर अब अप्रचलित है और 2026-11-15 को बंद हो जाएगा। अपने MCP क्लाइंट कॉन्फ़िग मेंnpx -y opik-mcpकोuvx opik-mcp@latestसे बदलें। पूर्ण गाइड:legacy/typescript/MIGRATION.md।
You: "Why did the experiment 'gpt-4o-rerank-v3' regress on factuality?"
Claude: → ask_ollie → reads experiment + traces → "Three traces failed because…"
You: "Score trace 7f2e… 0.9 on helpfulness with reason 'great recovery'."
Claude: → write(score.create) → done
इंस्टॉल करें
opik-mcp एक Python पैकेज है (Python 3.13+ आवश्यक)। इसे चलाने का अनुशंसित तरीका
uvx है, जो मांग पर नवीनतम प्रकाशित संस्करण प्राप्त करता है और चलाता है —
कोई वैश्विक इंस्टॉल नहीं, कोई वर्चुअलएन्व जुगलिंग नहीं।
uv एक बार इंस्टॉल करें:
curl -LsSf https://astral.sh/uv/install.sh | sh # macOS / Linux
# or: brew install uv
आपको अपने Opik कार्यक्षेत्र से दो चीज़ों की आवश्यकता होगी:
OPIK_API_KEY— इसेcomet.com/api/my/settings/से प्राप्त करें।OPIK_WORKSPACE— आपका कार्यक्षेत्र नाम (लोअरकेस, जैसा URL में दिखता है)। उदा.https://www.comet.com/acme-ai/...→OPIK_WORKSPACE=acme-ai। वैकल्पिक — डिफ़ॉल्टdefault(Opik SDK परंपरा) है, जो स्थानीय/OSS इंस्टॉल के लिए सही है; नामित कार्यक्षेत्र वाले क्लाउड उपयोगकर्ताओं को इसे सेट करना चाहिए।COMET_WORKSPACEएक अप्रचलित उपनाम के रूप में स्वीकार किया जाता है।
प्री-रिलीज़ नोट:
opik-mcp(Python) अभी तक PyPI पर प्रकाशित नहीं हुआ है। जब तक पहला PyPI रिलीज़ नहीं आ जाता, नीचे किसी भी स्निपेट मेंuvx opik-mcpको इससे बदलें:uvx --from git+https://github.com/comet-ml/opik-mcp.git opik-mcp
OPIK_WORKSPACEवैकल्पिक है। नीचे किसी भी स्निपेट मेंOPIK_WORKSPACEपंक्ति/कुंजी को छोड़ दें और सर्वरdefaultकार्यक्षेत्र का उपयोग करता है (स्थानीय/OSS इंस्टॉल के लिए सही)। इसे केवल तभी सेट करें जब आप किसी नामित क्लाउड कार्यक्षेत्र से कनेक्ट करते हैं।
Claude Code
एक कमांड से सर्वर जोड़ें:
claude mcp add --transport stdio opik-mcp \
--env OPIK_API_KEY=<your-key> \
--env OPIK_WORKSPACE=<your-workspace> \
-- uvx opik-mcp
या ~/.claude.json को सीधे संपादित करें:
{
"mcpServers": {
"opik-mcp": {
"type": "stdio",
"command": "uvx",
"args": ["opik-mcp"],
"env": {
"OPIK_API_KEY": "<your-key>",
"OPIK_WORKSPACE": "<your-workspace>"
}
}
}
}
Claude Code को पुनरारंभ करें। /mcp से सत्यापित करें — opik-mcp कनेक्टेड के रूप में दिखना चाहिए।
फिर, चैट में पूछें: "मेरे Opik प्रोजेक्ट सूचीबद्ध करें" — Claude list
टूल को कॉल करेगा और आपको अपने कार्यक्षेत्र के प्रोजेक्ट दिखाई देंगे।
Cursor
~/.cursor/mcp.json (वैश्विक) या .cursor/mcp.json (प्रोजेक्ट) संपादित करें, या
Cmd+Shift+J → Features → Model Context Protocol खोलें:
{
"mcpServers": {
"opik-mcp": {
"type": "stdio",
"command": "uvx",
"args": ["opik-mcp"],
"env": {
"OPIK_API_KEY": "<your-key>",
"OPIK_WORKSPACE": "<your-workspace>"
}
}
}
}
Cursor को पुनः लोड करें; MCP पैनल में opik-mcp के बगल में हरी बिंदी कनेक्शन की पुष्टि करती है।
चैट में पूछें: "मेरे Opik प्रोजेक्ट सूचीबद्ध करें"।
Cursor 60s टाइमआउट। Cursor एक हार्ड टूल-कॉल टाइमआउट लागू करता है जो प्रगति सूचनाओं पर रीसेट नहीं होता। लंबे
ask_ollieटर्न Cursor पर विफल हो जाएंगे। ज्ञात होस्ट सीमाएँ देखें।
VS Code Copilot
अपने कार्यक्षेत्र (या उपयोगकर्ता सेटिंग JSON) में .vscode/mcp.json:
{
"servers": {
"opik-mcp": {
"type": "stdio",
"command": "uvx",
"args": ["opik-mcp"],
"env": {
"OPIK_API_KEY": "<your-key>",
"OPIK_WORKSPACE": "<your-workspace>"
}
}
}
}
विंडो को पुनः लोड करें; सर्वर के पहुंच योग्य होने पर Copilot Chat MCP संकेतक opik-mcp दिखाता है।
चैट में पूछें: "मेरे Opik प्रोजेक्ट सूचीबद्ध करें"।
MCP Inspector (मैन्युअल परीक्षण)
OPIK_API_KEY=<your-key> OPIK_WORKSPACE=<your-workspace> \
npx @modelcontextprotocol/inspector uvx opik-mcp
स्व-होस्टेड Opik
अपने होस्ट कॉन्फ़िग में उसी env ब्लॉक में COMET_URL_OVERRIDE (और OPIK_URL यदि Opik गैर-डिफ़ॉल्ट पथ पर रहता है) जोड़ें:
{
"mcpServers": {
"opik-mcp": {
"type": "stdio",
"command": "uvx",
"args": ["opik-mcp"],
"env": {
"OPIK_API_KEY": "<your-key>",
"COMET_URL_OVERRIDE": "https://opik.your-company.com",
"OPIK_MCP_ANALYTICS_SOURCE": ""
}
}
}
}
ask_ollie और run_experiment केवल Comet Cloud पर उपलब्ध हैं — स्व-होस्टेड पर
वे कॉल डिस्पैच पर विफल हो जाएंगे, इसलिए सीधे read / list / write
का उपयोग करें। OPIK_MCP_ANALYTICS_SOURCE="" सेट करने से आपका इंस्टॉल टेलीमेट्री ईवेंट पर
क्लाउड-Comet स्रोत लेबल से बाहर हो जाता है।
उपकरण
opik-mcp एक छोटी, परिणाम-उन्मुख सतह प्रस्तुत करता है — छह उपकरण जो
पूर्ण जीवनचक्र को कवर करते हैं (पढ़ें → एनोटेट करें → क्यूरेट करें → लेखक करें → पुनरावृत्ति करें)।
| उपकरण | उद्देश्य |
|---|---|
read | आईडी / नाम / opik:// URI द्वारा सार्वभौमिक पठन |
list | वैकल्पिक नाम फ़िल्टर + पृष्ठांकन के साथ सार्वभौमिक सूची |
ask_ollie | Opik इन-प्रोडक्ट सहायक के माध्यम से जांच / संश्लेषण करें |
write | सार्वभौमिक लेखन — ट्रेस/स्पैन लॉग करें, स्कोर करें, टिप्पणी करें, प्रॉम्प्ट सहेजें, परीक्षण सूट और प्रयोग प्रबंधित करें |
schema | लेखन-संचालन स्कीमा का आत्मनिरीक्षण करें (मान्य पेलोड बनाने के लिए LLM द्वारा उपयोग किया जाता है) |
run_experiment | Ollie के माध्यम से एंड-टू-एंड मूल्यांकन प्रयोग चलाएँ |
read
किसी भी "मुझे X दिखाओ" प्रश्न के लिए एक उपकरण। एक entity_type और एक id
(UUID या, नाम योग्य प्रकारों के लिए, एक नाम) या एक पूर्ण opik:// URI लेता है। समग्र पठन
(trace, prompt) अपने चिल्ड्रन को इनलाइन करते हैं ताकि एक ही कॉल पूरी
तस्वीर लौटाए।
समर्थित इकाइयाँ: project, trace, span, test_suite, experiment,
prompt। नाम-आधारित लुकअप project, experiment, prompt,
test_suite के लिए उपलब्ध है (धीमा — दो API कॉल — और कई मिलान लौटा सकता है)।
read(entity_type="trace", id="7f2e3c8a-…")
read(entity_type="project", id="demo") # name lookup
read(entity_type="trace", id="opik://traces/7f2e3c8a-…")
list
वैकल्पिक नाम फ़िल्टर और पृष्ठांकन के साथ एक संग्रह ब्राउज़ करें। प्रोजेक्ट-स्कोप्ड
प्रकारों (trace, test_suite_item, prompt_version) को उनके मूल UUID की आवश्यकता होती है।
list(entity_type="experiment", page=1, size=25)
list(entity_type="experiment", name="rerank") # name substring filter
list(entity_type="trace", project_id="<project-uuid>") # traces of one project
ask_ollie
जांच-पड़ताल वाले प्रश्नों, क्रॉस-एंटिटी संश्लेषण, या किसी भी चीज़ के लिए जिसे Opik डोमेन विशेषज्ञता की आवश्यकता है। Ollie के पास आपके कार्यक्षेत्र तक सीधी पठन पहुंच है और पूछे जाने पर मिड-स्ट्रीम लेखन (स्कोर, टिप्पणियाँ, परीक्षण-सूट आइटम, प्रॉम्प्ट संस्करण) निष्पादित कर सकता है।
ask_ollie(query="Why are spans in project 'demo' slower this week than last?")
ask_ollie(query="Compare experiments A and B on factuality. Score the bottom 5 traces of A 0.2 with reason.")
सहायक का अंतिम पाठ और एक thread_id लौटाता है। संदर्भ बनाए रखने के लिए इसे
अनुवर्ती कार्रवाइयों पर वापस पास करें — Ollie के पास थ्रेड्स में कोई मेमोरी नहीं है।
YOLO मोड (डिफ़ॉल्ट)। Ollie मिड-स्ट्रीम जो लेखन करता है वह प्रति-क्रिया
पुष्टि के बिना निष्पादित होता है। प्रत्येक ऑटो-अनुमोदन opik_mcp.audit Python लॉगर पर
एक JSON ऑडिट पंक्ति के रूप में लॉग किया जाता है। इसके बजाय पुष्टि की आवश्यकता के लिए,
OPIK_MCP_AUTO_APPROVE=disabled सेट करें — Ollie के पुष्टि अनुरोध तब टाइप की गई त्रुटियों के रूप में सामने आते हैं
जिन्हें आप मैन्युअल रूप से पुनः जारी कर सकते हैं।
केवल Comet Cloud पर उपलब्ध।
write
सार्वभौमिक लेखन डिस्पैचर। operation + data पास करें और डिस्पैचर
पेलोड को मान्य करता है, सही REST क्रिया लागू करता है, और बैकएंड
प्रतिक्रिया लौटाता है।
संचालन:
| संचालन | यह क्या करता है |
|---|---|
trace.create | एकल ट्रेस (या एक बैच) लॉग करें। स्पैन / स्कोर / टिप्पणियों के लिए जनक। |
trace.update | मौजूदा ट्रेस को अंतिम रूप दें या संशोधित करें। |
span.create | मौजूदा ट्रेस पर एक स्पैन (या एक बैच) लॉग करें। |
score.create | ट्रेस, स्पैन, या थ्रेड पर एक संख्यात्मक फीडबैक स्कोर संलग्न करें। |
comment.create | ट्रेस, स्पैन, या थ्रेड पर एक मुक्त-पाठ टिप्पणी संलग्न करें। |
prompt_version.save | एक नया प्रॉम्प्ट संस्करण सहेजें (यदि अनुपलब्ध हो तो नाम से प्रॉम्प्ट बनाता है)। |
test_suite.create | एक मूल्यांकन परीक्षण सूट बनाएँ। |
test_suite_item.upsert | परीक्षण सूट में आइटम अपसर्ट करें (हमेशा लिफाफा आकार)। |
experiment.create | एक परीक्षण सूट के दायरे में एक प्रयोग बनाएँ। |
experiment_item.create | एक प्रयोग में ट्रेस + dataset_item पंक्तियाँ संलग्न करें। |
write(operation="score.create", data={
"target": "trace",
"target_id": "7f2e3c8a-…",
"name": "helpfulness",
"value": 0.9,
"reason": "great recovery"
})
schema
किसी भी लेखन संचालन का सटीक JSON आकार और आवश्यक फ़ील्ड का निरीक्षण करें, इससे पहले कि
आप इसे कॉल करें — उपयोगी जब आप सुनिश्चित नहीं हैं कि data कैसा दिखना चाहिए। स्कीमा,
OAuth स्कोप, और एक मान्य उदाहरण लौटाता है। शुद्ध लुकअप, कोई बैकएंड
कॉल नहीं।
schema(operation="score.create")
schema(operation="prompt_version.save")
run_experiment
Ollie के माध्यम से एंड-टू-एंड मूल्यांकन प्रयोग चलाएँ। एक एकल
experiment_config डिक्ट लेता है जो Opik के प्रयोग आकार (प्रॉम्प्ट, परीक्षण
सूट, स्कोरर) को दर्शाता है; Ollie रन निष्पादित करता है और परिणामों को Opik
प्रयोग के रूप में वापस लिखता है।
run_experiment(experiment_config={
"test_suite_name": "qa-eval-v2",
"prompt_name": "welcome-msg",
# … see `schema(operation="experiment.create")` for the full shape
})
केवल Comet Cloud पर उपलब्ध।
कॉन्फ़िगरेशन
प्रत्येक सेटिंग एक पर्यावरण चर है। आवश्यक बोल्ड में।
पहचान / एंडपॉइंट
| चर | डिफ़ॉल्ट | नोट्स |
|---|---|---|
OPIK_API_KEY | — | ask_ollie और किसी भी प्रमाणित पठन/लेखन के लिए आवश्यक। |
OPIK_WORKSPACE | default | कार्यक्षेत्र नाम। वैकल्पिक — default (Opik SDK परंपरा) पर वापस आता है। नामित कार्यक्षेत्र वाले क्लाउड उपयोगकर्ताओं को इसे सेट करना चाहिए। |
COMET_WORKSPACE | — | OPIK_WORKSPACE के लिए अप्रचलित उपनाम (पिछड़ा संगत)। यदि दोनों सेट हैं तो OPIK_WORKSPACE जीतता है। |
COMET_WORKSPACE_ID | — | वैकल्पिक कार्यक्षेत्र UUID। सेट होने पर एनालिटिक्स ईवेंट में मुहर लगाई जाती है ताकि BI एक स्थिर आईडी पर जुड़ सके न कि (परिवर्तनीय) कार्यक्षेत्र नाम पर। |
COMET_URL_OVERRIDE | https://www.comet.com | अपने स्व-होस्टेड Comet होस्ट पर सेट करें, या स्टेजिंग के लिए https://dev.comet.com। |
OPIK_URL | COMET_URL_OVERRIDE + /opik/api से व्युत्पन्न | केवल तभी ओवरराइड करें जब Opik Comet UI से भिन्न होस्ट/पथ पर रहता है। |
OPIK_DEFAULT_PROJECT_NAME | अनसेट | सेट होने पर, प्रति-सत्र instructions ब्लॉब LLM को बताता है कि इसे हर टूल कॉल पर project_name के रूप में पास करें जब तक कि उपयोगकर्ता कोई भिन्न प्रोजेक्ट नाम न दे। |
सर्वर / ट्रांसपोर्ट
| चर | डिफ़ॉल्ट | नोट्स |
|---|---|---|
OPIK_MCP_TRANSPORT | stdio | होस्ट-लॉन्च के लिए stdio, पोर्ट पर सुनने के लिए streamable-http। |
OPIK_MCP_HOST | 127.0.0.1 | uvicorn बाइंड होस्ट (केवल streamable-http)। |
OPIK_MCP_PORT | 8080 | uvicorn बाइंड पोर्ट (केवल streamable-http)। |
OPIK_MCP_RELOAD | false | uvicorn --reload सक्षम करने के लिए true (केवल देव)। |
OPIK_MCP_AS_URL | अनसेट | OAuth प्राधिकरण सर्वर URL, /.well-known/oauth-protected-resource (RFC 9728) में विज्ञापित और AS-डिस्कवरी जांच के लिए प्रॉक्सी लक्ष्य के रूप में उपयोग किया जाता है। MCP होस्ट के लिए HTTP पर OAuth नृत्य को बूटस्ट्रैप करने हेतु आवश्यक। |
OPIK_MCP_RESOURCE_URI | अनसेट | इस सर्वर का कैनोनिकल सार्वजनिक URI, संरक्षित-संसाधन मेटाडेटा में resource के रूप में विज्ञापित और WWW-Authenticate संकेत प्राप्त करने के लिए उपयोग किया जाता है। |
OPIK_MCP_LOG_LEVEL | INFO | stderr लॉगर थ्रेशोल्ड। |
ट्रांसपोर्ट चुनना
opik-mcp HTTP ट्रांसपोर्ट पर कोई स्थानीय क्रेडेंशियल सत्यापन नहीं करता है: कोई भी
सुगठित Authorization: Bearer … (एक Opik API कुंजी या एक opik_mcp_at_…
OAuth एक्सेस टोकन) शब्दशः opik-backend को अग्रेषित किया जाता है, जो
प्रमाणीकरण प्रवर्तन का एकल बिंदु है। परिनियोजन आकार द्वारा ट्रांसपोर्ट चुनें:
| परिदृश्य | ट्रांसपोर्ट |
|---|---|
| MCP क्लाइंट और Opik एक ही मशीन पर (स्थानीय OSS इंस्टॉल) | stdio (अनुशंसित — सबसे सरल, कोई पोर्ट नहीं, कोई OAuth सेटअप नहीं) |
| स्थानीय MCP क्लाइंट → दूरस्थ Opik (Comet cloud / स्व-होस्टेड) | OPIK_API_KEY के साथ stdio, या OAuth के साथ HTTP (OPIK_MCP_AS_URL बैकएंड की ओर इशारा करता हुआ) |
| होस्टेड opik-mcp opik-backend के समान किनारे के पीछे | HTTP — बियरर्स प्रति अनुरोध बैकएंड द्वारा मान्य किए जाते हैं |
स्थानीय OSS इंस्टॉल के लिए नोट: OSS बैकएंड अनुरोधों को प्रमाणित नहीं करता है,
इसलिए इसके सामने एक HTTP opik-mcp उतना ही खुला है जितना OSS REST API स्वयं।
साझा नेटवर्क पर डिफ़ॉल्ट 127.0.0.1 बाइंड रखें (और stdio को प्राथमिकता दें)।
Ollie / लंबी कॉल
| चर | डिफ़ॉल्ट | नोट्स |
|---|---|---|
OPIK_MCP_AUTO_APPROVE | enabled | Ollie के मिड-स्ट्रीम लेखन आगे बढ़ने से पहले प्रति-क्रिया अनुमोदन की आवश्यकता के लिए disabled। MCP elicitation क्षमता का विज्ञापन करने वाले होस्ट पर उपयोगकर्ता को हाँ/ना प्रॉम्प्ट दिखता है; कम बुद्धिमान होस्ट पर अनुरोध एक टाइप की गई त्रुटि के रूप में सामने आता है जिसे आप मैन्युअल रूप से पुनः जारी कर सकते हैं। |
OPIK_MCP_ELICIT_TIMEOUT_SECONDS | 60 | रद्द माने जाने से पहले Ollie का मिड-स्ट्रीम पुष्टि प्रॉम्प्ट उपयोगकर्ता के लिए कितनी देर प्रतीक्षा कर सकता है। 0 सीमा को अक्षम करता है (केवल डीबग)। |
OPIK_MCP_POD_READY_TIMEOUT_S | 120 | Ollie पॉड कोल्ड-स्टार्ट पोल कैप। |
OPIK_MCP_POD_READY_INTERVAL_S | 2 | कोल्ड-स्टार्ट पोल अंतराल। |
OPIK_MCP_HEARTBEAT_INTERVAL_S | 15.0 | वॉचडॉग ताल — जब पॉड शांत होता है तो notifications/progress टिक उत्सर्जित करता है, होस्ट टाइमआउट को दूर रखता है। |
OPIK_MCP_STREAM_IDLE_TIMEOUT_S | 300.0 | ask_ollie निरस्त होने से पहले पॉड मौन पर कठोर सीमा। 0 अक्षम करता है (केवल डीबग)। |
टेलीमेट्री
गुमनाम उपयोग घटनाएँ (केवल घटना प्रकार और समय — कोई क्वेरी सामग्री नहीं)। आपकी API कुंजी का SHA-256 डाइजेस्ट शामिल किया जाता है ताकि सहायता टीम आपका खाता ढूँढ सके; कच्ची कुंजी कभी भी प्रक्रिया से बाहर नहीं जाती। ऑप्ट आउट: OPIK_MCP_ANALYTICS_ENABLED=false।
| चर | डिफ़ॉल्ट | नोट्स |
|---|---|---|
OPIK_MCP_ANALYTICS_ENABLED | true | सभी टेलीमेट्री अक्षम करने के लिए false पर सेट करें। |
OPIK_MCP_ANALYTICS_URL | https://stats.comet.com/notify/event/ | स्टेजिंग के लिए ओवरराइड। |
OPIK_MCP_ANALYTICS_ENVIRONMENT | prod | हर घटना पर टैग (prod / staging / dev)। |
OPIK_MCP_ANALYTICS_SOURCE | comet.com | रिसीवर इसका उपयोग on_prem=False चिह्नित करने के लिए करता है। ऑन-प्रिमाइसेस इंस्टॉल को "" या अपने स्वयं के डोमेन पर ओवरराइड करना चाहिए। |
OPIK_MCP_ANALYTICS_CONNECT_TIMEOUT_S | 5.0 | HTTP कनेक्ट टाइमआउट। |
OPIK_MCP_ANALYTICS_TOTAL_TIMEOUT_S | 10.0 | HTTP कुल अनुरोध टाइमआउट। |
ज्ञात होस्ट सीमाएँ
MCP स्पेक होस्ट को notifications/progress पर अपने टूल-कॉल टाइमआउट को रीसेट करने देता है — opik-mcp प्रति Ollie SSE घटना एक उत्सर्जित करता है और साथ ही 15-सेकंड का वॉचडॉग हार्टबीट। वास्तविकता असमान है:
- Claude Code — कोई प्रलेखित टूल-कॉल टाइमआउट नहीं; हार्टबीट कॉल को
message_endतक जीवित रखता है। अनुशंसित। - Cursor — 60 सेकंड का कठोर टाइमआउट जो प्रगति पर रीसेट नहीं होता
(अपस्ट्रीम बग)।
लंबे Ollie टर्न विफल हो जाएँगे।
ask_ollieक्वेरीज़ को केंद्रित रखें। - MCP Inspector —
MAX_TOTAL_TIMEOUTकुल अवधि को सीमित करता है (डिफ़ॉल्ट 60 सेकंड)। लंबे संचालन के लिए इंस्पेक्टर UI में इसे बढ़ाएँ।
यदि कोई कॉल अटक जाती है, तो OPIK_MCP_LOG_LEVEL=DEBUG सेट करें — हार्टबीट विफलताएँ
(आमतौर पर होस्ट डिस्कनेक्ट) opik_mcp.ask_ollie पर डीबग स्तर पर लॉग की जाती हैं।
समस्या निवारण
OPIK_API_KEY is required to use ask_ollie — चर सर्वर प्रक्रिया तक नहीं पहुँच रहा है। Claude Code / Cursor / VS Code में, env चर केवल तभी लागू होते हैं जब MCP सर्वर कॉन्फ़िग के env ब्लॉक के अंदर हों, आपके शेल में नहीं। संपादन के बाद होस्ट को पुनरारंभ करें।
ask_ollie 2 मिनट के बाद "pod not ready" लौटाता है — Ollie पॉड कोल्ड-स्टार्ट OPIK_MCP_POD_READY_TIMEOUT_S से अधिक हो गया। पुनः प्रयास करें — दूसरी कॉल आमतौर पर एक गर्म पॉड पर लगती है।
ask_ollie / run_experiment स्व-होस्टेड Opik पर डिस्पैच त्रुटि के साथ विफल होता है — वे उपकरण केवल Comet Cloud पर उपलब्ध हैं। स्व-होस्टेड पर सीधे read / list / write का उपयोग करें।
Cursor कॉल 60 सेकंड पर टाइमआउट हो जाती है — Cursor का ज्ञात बग, opik-mcp नहीं। या तो Ollie क्वेरी को छोटा करें, या वही ऑपरेशन Claude Code पर चलाएँ जिसकी कोई कठोर सीमा नहीं है।
विकास
git clone git@github.com:comet-ml/opik-mcp.git
cd opik-mcp
make install # uv sync --extra dev
make check # lint + typecheck + test
make run-dev # uvicorn with --reload + DEBUG logs
make inspect # MCP Inspector against the running server
सामान्य लक्ष्य:
| लक्ष्य | यह क्या करता है |
|---|---|
make install | uv sync --extra dev |
make run | MCP सर्वर चलाएँ (डिफ़ॉल्ट रूप से stdio)। |
make run-dev | DEBUG लॉगिंग + uvicorn --reload के साथ चलाएँ। |
make dev | mcp dev (इंस्पेक्टर डेव-मोड रैपर) के माध्यम से चलाएँ। |
make inspect | चल रहे सर्वर के विरुद्ध MCP इंस्पेक्टर लॉन्च करें। |
make test | uv run pytest -q। |
make test-live | dev.comet.com के विरुद्ध लाइव एंड-टू-एंड (OPIK_API_KEY + OPIK_WORKSPACE सेट करें)। |
make lint | ruff check + प्रारूप जाँच। |
make format | ruff format + ruff check --fix। |
make typecheck | mypy। |
make check | lint + typecheck + test। |
रेपो लेआउट:
opik-mcp/
├── src/opik_mcp/ ← server, tools, ask_ollie, analytics
├── tests/ ← pytest suites
├── scripts/ ← live-BE smoke + MCP-session smoke
├── legacy/typescript/ ← deprecated v2 TS server
├── pyproject.toml
└── Makefile
सहायता प्राप्त करें
- बग और सुविधा अनुरोधों के लिए एक मुद्दा खोलें
- SDK / बैकएंड दस्तावेज़ीकरण के लिए Opik दस्तावेज़
- प्रश्नों के लिए Comet समुदाय Slack
v2 से अपग्रेड कर रहे हैं? लीगेसी TypeScript सर्वर अभी भी npm पर
opik-mcp@^2(npx -y opik-mcp) के रूप में शिप होता है; स्रोतlegacy/typescript/के अंतर्गत संरक्षित है। समर्थन नीति के लिएlegacy/typescript/DEPRECATED.mdदेखें।
लाइसेंस
Apache-2.0।