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_ollieOpik इन-प्रोडक्ट सहायक के माध्यम से जांच / संश्लेषण करें
writeसार्वभौमिक लेखन — ट्रेस/स्पैन लॉग करें, स्कोर करें, टिप्पणी करें, प्रॉम्प्ट सहेजें, परीक्षण सूट और प्रयोग प्रबंधित करें
schemaलेखन-संचालन स्कीमा का आत्मनिरीक्षण करें (मान्य पेलोड बनाने के लिए LLM द्वारा उपयोग किया जाता है)
run_experimentOllie के माध्यम से एंड-टू-एंड मूल्यांकन प्रयोग चलाएँ

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_KEYask_ollie और किसी भी प्रमाणित पठन/लेखन के लिए आवश्यक।
OPIK_WORKSPACEdefaultकार्यक्षेत्र नाम। वैकल्पिक — default (Opik SDK परंपरा) पर वापस आता है। नामित कार्यक्षेत्र वाले क्लाउड उपयोगकर्ताओं को इसे सेट करना चाहिए।
COMET_WORKSPACEOPIK_WORKSPACE के लिए अप्रचलित उपनाम (पिछड़ा संगत)। यदि दोनों सेट हैं तो OPIK_WORKSPACE जीतता है।
COMET_WORKSPACE_IDवैकल्पिक कार्यक्षेत्र UUID। सेट होने पर एनालिटिक्स ईवेंट में मुहर लगाई जाती है ताकि BI एक स्थिर आईडी पर जुड़ सके न कि (परिवर्तनीय) कार्यक्षेत्र नाम पर।
COMET_URL_OVERRIDEhttps://www.comet.comअपने स्व-होस्टेड Comet होस्ट पर सेट करें, या स्टेजिंग के लिए https://dev.comet.com
OPIK_URLCOMET_URL_OVERRIDE + /opik/api से व्युत्पन्नकेवल तभी ओवरराइड करें जब Opik Comet UI से भिन्न होस्ट/पथ पर रहता है।
OPIK_DEFAULT_PROJECT_NAMEअनसेटसेट होने पर, प्रति-सत्र instructions ब्लॉब LLM को बताता है कि इसे हर टूल कॉल पर project_name के रूप में पास करें जब तक कि उपयोगकर्ता कोई भिन्न प्रोजेक्ट नाम न दे।

सर्वर / ट्रांसपोर्ट

चरडिफ़ॉल्टनोट्स
OPIK_MCP_TRANSPORTstdioहोस्ट-लॉन्च के लिए stdio, पोर्ट पर सुनने के लिए streamable-http
OPIK_MCP_HOST127.0.0.1uvicorn बाइंड होस्ट (केवल streamable-http)।
OPIK_MCP_PORT8080uvicorn बाइंड पोर्ट (केवल streamable-http)।
OPIK_MCP_RELOADfalseuvicorn --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_LEVELINFOstderr लॉगर थ्रेशोल्ड।

ट्रांसपोर्ट चुनना

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_APPROVEenabledOllie के मिड-स्ट्रीम लेखन आगे बढ़ने से पहले प्रति-क्रिया अनुमोदन की आवश्यकता के लिए disabled। MCP elicitation क्षमता का विज्ञापन करने वाले होस्ट पर उपयोगकर्ता को हाँ/ना प्रॉम्प्ट दिखता है; कम बुद्धिमान होस्ट पर अनुरोध एक टाइप की गई त्रुटि के रूप में सामने आता है जिसे आप मैन्युअल रूप से पुनः जारी कर सकते हैं।
OPIK_MCP_ELICIT_TIMEOUT_SECONDS60रद्द माने जाने से पहले Ollie का मिड-स्ट्रीम पुष्टि प्रॉम्प्ट उपयोगकर्ता के लिए कितनी देर प्रतीक्षा कर सकता है। 0 सीमा को अक्षम करता है (केवल डीबग)।
OPIK_MCP_POD_READY_TIMEOUT_S120Ollie पॉड कोल्ड-स्टार्ट पोल कैप।
OPIK_MCP_POD_READY_INTERVAL_S2कोल्ड-स्टार्ट पोल अंतराल।
OPIK_MCP_HEARTBEAT_INTERVAL_S15.0वॉचडॉग ताल — जब पॉड शांत होता है तो notifications/progress टिक उत्सर्जित करता है, होस्ट टाइमआउट को दूर रखता है।
OPIK_MCP_STREAM_IDLE_TIMEOUT_S300.0ask_ollie निरस्त होने से पहले पॉड मौन पर कठोर सीमा। 0 अक्षम करता है (केवल डीबग)।

टेलीमेट्री

गुमनाम उपयोग घटनाएँ (केवल घटना प्रकार और समय — कोई क्वेरी सामग्री नहीं)। आपकी API कुंजी का SHA-256 डाइजेस्ट शामिल किया जाता है ताकि सहायता टीम आपका खाता ढूँढ सके; कच्ची कुंजी कभी भी प्रक्रिया से बाहर नहीं जाती। ऑप्ट आउट: OPIK_MCP_ANALYTICS_ENABLED=false

चरडिफ़ॉल्टनोट्स
OPIK_MCP_ANALYTICS_ENABLEDtrueसभी टेलीमेट्री अक्षम करने के लिए false पर सेट करें।
OPIK_MCP_ANALYTICS_URLhttps://stats.comet.com/notify/event/स्टेजिंग के लिए ओवरराइड।
OPIK_MCP_ANALYTICS_ENVIRONMENTprodहर घटना पर टैग (prod / staging / dev)।
OPIK_MCP_ANALYTICS_SOURCEcomet.comरिसीवर इसका उपयोग on_prem=False चिह्नित करने के लिए करता है। ऑन-प्रिमाइसेस इंस्टॉल को "" या अपने स्वयं के डोमेन पर ओवरराइड करना चाहिए।
OPIK_MCP_ANALYTICS_CONNECT_TIMEOUT_S5.0HTTP कनेक्ट टाइमआउट।
OPIK_MCP_ANALYTICS_TOTAL_TIMEOUT_S10.0HTTP कुल अनुरोध टाइमआउट।

ज्ञात होस्ट सीमाएँ

MCP स्पेक होस्ट को notifications/progress पर अपने टूल-कॉल टाइमआउट को रीसेट करने देता है — opik-mcp प्रति Ollie SSE घटना एक उत्सर्जित करता है और साथ ही 15-सेकंड का वॉचडॉग हार्टबीट। वास्तविकता असमान है:

  • Claude Code — कोई प्रलेखित टूल-कॉल टाइमआउट नहीं; हार्टबीट कॉल को message_end तक जीवित रखता है। अनुशंसित।
  • Cursor — 60 सेकंड का कठोर टाइमआउट जो प्रगति पर रीसेट नहीं होता (अपस्ट्रीम बग)। लंबे Ollie टर्न विफल हो जाएँगे। ask_ollie क्वेरीज़ को केंद्रित रखें।
  • MCP InspectorMAX_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 installuv sync --extra dev
make runMCP सर्वर चलाएँ (डिफ़ॉल्ट रूप से stdio)।
make run-devDEBUG लॉगिंग + uvicorn --reload के साथ चलाएँ।
make devmcp dev (इंस्पेक्टर डेव-मोड रैपर) के माध्यम से चलाएँ।
make inspectचल रहे सर्वर के विरुद्ध MCP इंस्पेक्टर लॉन्च करें।
make testuv run pytest -q
make test-livedev.comet.com के विरुद्ध लाइव एंड-टू-एंड (OPIK_API_KEY + OPIK_WORKSPACE सेट करें)।
make lintruff check + प्रारूप जाँच।
make formatruff format + ruff check --fix
make typecheckmypy
make checklint + 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

सहायता प्राप्त करें


v2 से अपग्रेड कर रहे हैं? लीगेसी TypeScript सर्वर अभी भी npm पर opik-mcp@^2 (npx -y opik-mcp) के रूप में शिप होता है; स्रोत legacy/typescript/ के अंतर्गत संरक्षित है। समर्थन नीति के लिए legacy/typescript/DEPRECATED.md देखें।


लाइसेंस

Apache-2.0।