MCP Server (claude.ai / Claude Desktop / Code / Cursor) - Entity Enricher दस्तावेज़

MCP Server (Claude Desktop / Code / Cursor)

Entity Enricher /api/mcp पर एक एम्बेडेड Model Context Protocol सर्वर के साथ आता है — अपने स्कीमा सूचीबद्ध करें, किसी एंटिटी को समृद्ध करें, परिणाम का निरीक्षण करें, और किसी वर्गीकरण चेतावनी का समाधान करें सब कुछ एक ही Claude चैट के भीतर से। किसी वर्कफ़्लो एडिटर की आवश्यकता नहीं।

जब पहले से n8n + Make मौजूद हैं, तो MCP क्यों?

अलग आकार, अलग उपयोग केस। n8n और Make कनेक्टर API को वर्कफ़्लो ऑटोमेशन के लिए रैप करते हैं: ट्रिगर, शेड्यूल्ड रन, मल्टी-स्टेप पाइपलाइन, परसिस्टेंट स्टेट। MCP इसे इंटरैक्टिव चैट के लिए रैप करता है: तदर्थ प्रश्न, अन्वेषणात्मक एनरिचमेंट, फ़ॉलो-अप स्पष्टीकरण। वर्कफ़्लो बैच-आकार के होते हैं, चैट वार्तालाप-आकार की — सतह अलग होती है और UX भी।

वह किलर फ़ीचर जिसे केवल MCP अनलॉक करता है: इंटरैक्टिव क्लासिफिकेशन रिज़्यूम। जब प्री-फ़्लाइट क्लासिफ़ायर आपकी एंटिटी को रिजेक्ट करता है (उदा. आपने "Titan" को Planet स्कीमा के विरुद्ध एनरिच करने को कहा, लेकिन Titan एक चंद्रमा है), तो n8n/Make को अपने-आप कैंसल करना पड़ता है क्योंकि वे नॉन-इंटरैक्टिव हैं। MCP यह चेतावनी Claude के सामने लाता है, Claude आपसे पुष्टि माँगता है, और "yes" पर टूल क्लासिफ़ायर के बिना दोबारा चलता है। न बीच-पाइपलाइन फेल्योर, न शुरू से दोबारा चलाना।

त्वरित शुरुआत

विकल्प 1 — OAuth (अनुशंसित)

claude.ai, Claude Code, Cursor, और किसी भी ऐसे MCP क्लाइंट के लिए जो स्टैंडर्ड OAuth फ़्लो को सपोर्ट करता है। कोई API key बनाने या पेस्ट करने की ज़रूरत नहीं — क्लाइंट अपने आप ऑथराइज़ेशन सर्वर खोज लेता है।

  1. Entity Enricher को एक कनेक्टर के रूप में जोड़ें (claude.ai में: Settings → Connectors → Add custom connector, या इसे डायरेक्टरी से चुनें) URL https://entityenricher.ai/api/mcp/ के साथ।
  2. आपका ब्राउज़र Entity Enricher की सहमति स्क्रीन खोलता है — ज़रूरत हो तो साइन इन करें और Authorize पर क्लिक करें। यह कनेक्शन आपकी अपनी भूमिका के साथ आपकी ओर से काम करता है।
  3. कनेक्शन को कभी भी API Keys → Connected Apps के अंतर्गत मैनेज या रद्द करें — रद्द करने पर एक्सेस तुरंत बंद हो जाता है।

विकल्प 2 — API key (स्टैटिक JSON कॉन्फ़िगरेशन)

उन क्लाइंट्स के लिए जो इंटरैक्टिव साइन-इन के बजाय JSON फ़ाइल के ज़रिए कॉन्फ़िगर किए जाते हैं (Claude Desktop, Continue, Zed)।

  1. 1. एक API की बनाएँ
    Entity Enricher वेब UI में: Settings → API Keys → New organization access key। एक भूमिका चुनें (अधिकतर पढ़ने के लिए operator, schema बनाने/संपादित करने के लिए editor, पूर्ण नियंत्रण के लिए owner)। ent_… मान को कॉपी करें — यह केवल एक बार दिखाया जाता है।
  2. 2. अपने MCP क्लाइंट में रजिस्टर करें

    Claude Desktop के लिए, ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) या %APPDATA%\Claude\claude_desktop_config.json (Windows) संपादित करें:

    {
      "mcpServers": {
        "entityenricher": {
          "url": "https://entityenricher.ai/api/mcp/",
          "headers": { "X-API-Key": "ent_your_key_here" }
        }
      }
    }

    Claude Desktop को रीस्टार्ट करें। यही स्निपेट Claude Code, Cursor, Continue और Zed के लिए काम करता है — किसी भी MCP-संगत क्लाइंट के लिए।

आज़माएँ

किसी नई चैट में: "मेरी Entity Enricher schemas सूचीबद्ध करें, फिर Claude Sonnet का उपयोग करके pharmaceutical company schema के विरुद्ध Sanofi को enrich करें।" Claude tools को स्वचालित रूप से खोजता है, सही एक चुनता है, आपको model और schema विकल्प की पुष्टि करने के लिए कहता है, और परिणाम को इनलाइन स्ट्रीम करता है।

टूल

29 टूल पूरे संवर्धन और स्कीमा-ऑथरिंग सरफेस को कवर करते हैं। व्यवहार उन REST एंडपॉइंट्स के समान है जिन्हें वे रैप करते हैं (समान वैलिडेशन, बिलिंग, प्लान सीमाएँ) — जब वेब UI को कोई फिक्स मिलता है, तो MCP को भी मिलता है। लंबे समय तक चलने वाला काम (बैच संवर्धन, सैंपल जनरेशन, बेंचमार्क रन) एसिंक्रोनस है: स्टार्ट टूल एक job_id लौटाता है, Claude get_job_status पोल करता है, और जॉब पूरा होने पर आपके रिकॉर्ड से persisted आउटपुट प्राप्त करता है।

श्रेणीटूलविवरण
खोजlist_modelsउपलब्ध LLM मॉडल + आपके प्लान की profile_limits की सूची बनाएँ ताकि Claude HTTP 402 तक पहुँचने से पहले खुद को थ्रॉटल कर ले।
Schemalist_schemasआपके संगठन में सहेजे गए JSON स्कीमा की सूची बनाएँ, पिन किए गए पहले।
Schemaget_schemaUUID द्वारा किसी स्कीमा की पूरी सामग्री फ़ेच करें।
Schemagenerate_sampleकिसी entity-type विवरण से एक यथार्थवादी सैंपल एंटिटी जनरेट करें — स्कीमा जनरेशन से पहले स्वाभाविक पहला कदम। अटैचमेंट के साथ, एक इंटरैक्टिव प्लानर स्पष्टीकरण प्रश्नों के साथ रुक सकता है।
Schemacreate_schema_from_sampleLLM के माध्यम से किसी सैंपल एंटिटी dict से एक JSON स्कीमा जनरेट करें, वैकल्पिक रूप से अपलोड किए गए स्रोत दस्तावेज़ों (attachment_ids) पर आधारित। परिणाम स्वतः सहेजा जाता है।
Schemaedit_schemaकिसी मौजूदा schema का प्राकृतिक-भाषा में संशोधन। नई सामग्री + 5 फ़ॉलो-अप सुझाव लौटाता है।
Schemasave_schemaClaude द्वारा सीधे बनाई गई स्कीमा को persist करें — कोई LLM कॉल नहीं, कोई लागत नहीं, सर्वर-साइड वैलिडेटेड।
Schemaupdate_schemaकिसी सहेजी गई स्कीमा को LLM कॉल के बिना रीनेम करें, सामग्री बदलें, रीटैग करें, या पिन करें।
Schemadelete_schemaकिसी सहेजी गई स्कीमा को UUID द्वारा सॉफ्ट-डिलीट करें।
संवर्धनenrich_entityवैकल्पिक ऑटो-फ्यूज़न के साथ मल्टी-मॉडल एनरिचमेंट। एक वैकल्पिक attachment_ids सूची स्वीकार करता है। वर्गीकरण बेमेल होने पर नॉन-एरर रिस्पॉन्स लौटाया जाता है ताकि Claude यूज़र से पुष्टि करने और पुनः प्रयास करने को कह सके।
संवर्धनstart_batch_enrichment100 एंटिटी तक एसिंक्रोनस रूप से संवर्धित करें — प्रति एंटिटी पूर्ण पाइपलाइन के साथ स्वचालित फ्यूजन। एक job_id लौटाता है; परिणाम आपके रिकॉर्ड में आते हैं।
संवर्धनfetch_entitiesकिसी बाहरी REST API से एंटिटी का JSON array सर्वर-साइड फ़ेच करें (bearer / api_key / basic auth) — बैच संवर्धन के साथ जुड़ता है।
संवर्धनretry_expertisesकिसी रिकॉर्ड के केवल विफल विशेषज्ञता डोमेन को फिर से चलाएँ, पुनर्प्राप्त मानों को वापस मर्ज करते हुए — जो पहले ही सफल हो चुका है उसके लिए दोबारा भुगतान नहीं।
संवर्धनmerge_records2+ मौजूदा रिकॉर्ड को एक फ्यूज्ड परिणाम में मर्ज करें — नियम-आधारित या किसी LLM आर्बिट्रेशन मॉडल के साथ।
जॉब्सget_job_statusकिसी भी एसिंक्रोनस जॉब को पोल करें (बैच, सैंपल जनरेशन, बेंचमार्क रन): प्रगति काउंटर, टर्मिनल सारांश, और लंबित स्पष्टीकरण प्रश्न।
जॉब्सcancel_jobकिसी लंबित, चल रहे, या रुके हुए जॉब को रद्द करें।
जॉब्सanswer_job_questionकिसी रुके हुए जॉब के स्पष्टीकरण प्रश्नों का उत्तर दें और उसे फिर से शुरू करें — generate_sample का इंटरैक्टिव हिस्सा।
बेंचमार्कlist_benchmark_scenariosअपने सहेजे गए बेंचमार्क परिदृश्य सूचीबद्ध करें (पुन: प्रयोज्य संवर्धन टेस्ट)।
बेंचमार्कget_benchmark_scenarioएक परिदृश्य उसके प्रति-मॉडल स्कोर किए गए परिणामों के साथ (गुणवत्ता / लागत / गति)।
बेंचमार्कcreate_benchmark_scenarioएक परिदृश्य बनाएँ: स्कीमा + फिक्स्ड एंटिटी + रणनीति + स्कोरिंग जज। owner भूमिका + बेंचमार्क वाला प्लान आवश्यक।
बेंचमार्कupdate_benchmark_scenarioकिसी परिदृश्य की टेस्ट परिभाषा या स्कोरिंग कॉन्फ़िग अपडेट करें; मौजूदा परिणाम बासी (stale) चिह्नित किए जाते हैं।
बेंचमार्कset_benchmark_referenceगोल्ड संदर्भ आउटपुट सहेजें और उसे सत्यापित के रूप में चिह्नित करें — किसी रन से पहले आवश्यक।
बेंचमार्कdelete_benchmark_scenarioकिसी परिदृश्य और उसके परिणामों को डिलीट करें।
बेंचमार्कrun_benchmarkकिसी परिदृश्य को एक स्पष्ट मॉडल सूची पर, चयनित प्रोवाइडर के हर सक्रिय मॉडल पर, या सभी सक्रिय मॉडल पर चलाएँ — प्रत्येक परिणाम संदर्भ के विरुद्ध स्वतः स्कोर किया जाता है।
रिकॉर्ड्सlist_recordsटाइप, सफलता, मॉडल, जॉब, फ्री-टेक्स्ट खोज के फ़िल्टर के साथ पिछले रिकॉर्ड देखें।
रिकॉर्ड्सget_recordएक रिकॉर्ड के लिए पूरा स्ट्रक्चर्ड आउटपुट + वैलिडेशन एरर।
रिकॉर्ड्सget_statsसमेकित संगठन आँकड़े: कुल योग, सफलता दर, टोकन, लागत।
अटैचमेंटupload_attachmentएक base64 फ़ाइल अपलोड करें (filename, content_base64, media_type?) और enrich_entity में उपयोग के लिए उसका attachment ID लौटाएँ।
अटैचमेंटdelete_attachmentID द्वारा एक attachment हटाएँ — enrichment के बाद सफ़ाई का एक सुविधाजनक चरण।

रिसोर्सेज़

रिसोर्स Claude को टूल कॉल खर्च किए बिना डेटा ब्राउज़ करने देते हैं — LLM क्लाइंट इन्हें फ़ाइलों की तरह मानता है। दोनों रिसोर्स प्रकार सस्ते इनलाइन डिस्प्ले के लिए Markdown के रूप में रेंडर होते हैं।

URI टेम्पलेटविवरण
enricher://schemas/{schema_id}Markdown के रूप में रेंडर किया गया एक सहेजा गया schema — मेटाडेटा हेडर + एक फेंस्ड JSON ब्लॉक के रूप में GeneratedJsonSchema।
enricher://records/{record_id}एक पिछला enrichment record जो Markdown के रूप में प्रस्तुत किया गया — metadata + संरचित output + validation errors।

किलर फ़ीचर: इंटरैक्टिव क्लासिफिकेशन रिज़्यूम

जब आप enrich_entity को किसी क्लासिफिकेशन मॉडल का उपयोग करने के लिए कहते हैं और एंटिटी स्कीमा प्रकार से मेल नहीं खाती, तो टूल संरचित विवरण के साथ एक गैर-त्रुटि प्रतिक्रिया लौटाता है। Claude इसे पढ़ता है, तर्क आपके सामने प्रस्तुत करता है, और (आपकी पुष्टि पर) force_after_classification_warning=true के साथ पुनः प्रयास करता है — जो पुनः प्रयास पर क्लासिफायर को हटा देता है।

{
  "success": false,
  "error_code": "classification_warning",
  "message": "Pre-flight classification rejected the entity. ...",
  "classification": {
    "status": "mismatch",
    "reasoning": "Titan is a moon of Saturn, not a planet.",
    "confidence": 0.97
  },
  "job_id": "..."
}

n8n और Make इस स्थिति पर स्वतः रद्द कर देते हैं क्योंकि वे पाइपलाइन के बीच उपयोगकर्ता से नहीं पूछ सकते। MCP पूछ सकता है, और यही एकमात्र अंतर है जिसके कारण कनेक्टर मौजूद है।

यही इंटरैक्टिविटी एक दूसरे फ्लो को शक्ति देती है: जब generate_sample स्रोत दस्तावेज़ों के साथ चलता है, तो इसका प्लानर संरचनात्मक स्पष्टीकरण प्रश्नों के साथ रुक सकता है। Claude उन्हें आप तक पहुँचाता है और answer_job_question के साथ जॉब को फिर से शुरू करता है — दौर-दर-दौर, जब तक सैंपल जनरेट नहीं हो जाता।

त्रुटि कोड

टूल त्रुटियों को error_code फ़ील्ड वाले स्ट्रक्चर्ड dicts में प्रस्तुत किया जाता है ताकि Claude फ्री टेक्स्ट पार्स करने के बजाय पैटर्न-मैच कर सके। HTTP लेयर साफ़-साफ़ मैप होती है: 402 → कोटा या क्रेडिट त्रुटि, 422 → क्लासिफ़िकेशन चेतावनी, 504 → टाइमआउट, 502 → अपस्ट्रीम LLM विफलता।

error_codeकब
invalid_requestविकृत UUID, परस्पर अनन्य आर्ग्युमेंट्स (schema_id + target_schema), या रिक्वेस्ट बॉडी सत्यापन विफल रहा।
prompt_limit_reachedदैनिक / साप्ताहिक / मासिक प्रॉम्प्ट कोटा समाप्त हो गया (HTTP 402)। बॉडी में period, limit, used, needed शामिल हैं।
insufficient_creditsसंगठन में बिलिंग सक्षम है लेकिन जॉब शुरू करने के लिए क्रेडिट बैलेंस बहुत कम है (HTTP 402)। बॉडी में बैलेंस और एक खरीद URL शामिल है।
model_limit_exceededप्लान की अनुमति से अधिक मॉडल के लिए अनुरोध किया गया (HTTP 402)। सीमा + अनुरोधित को दोहराता है।
language_limit_exceededप्लान की अनुमति से अधिक भाषाओं के लिए अनुरोध किया गया (HTTP 402)।
concurrent_job_limit_reachedइस org के लिए बहुत अधिक सक्रिय एनरिचमेंट जॉब। प्रतीक्षा करें या प्लान अपग्रेड करें।
classification_warning⚡ नॉन-एरर: प्री-फ्लाइट क्लासिफायर ने एंटिटी को अस्वीकार कर दिया। रिस्पॉन्स वर्गीकरण संदर्भ ले जाता है ताकि Claude उपयोगकर्ता से पुष्टि करने के लिए कह सके और force_after_classification_warning=true के साथ पुनः प्रयास कर सके।
benchmarks_not_in_planबेंचमार्क टूल के लिए owner भूमिका और Model Benchmarks शामिल करने वाला प्लान आवश्यक है (HTTP 403)।
enrichment_timeoutJob ने timeout_seconds को पार कर लिया। कम models या entity को विभाजित करने का सुझाव दें।
schema_generation_timeoutस्कीमा जनरेशन ने timeout_seconds पार कर दिया।
schema_generation_failedस्कीमा जनरेशन के दौरान अपस्ट्रीम LLM त्रुटि (HTTP 502)।
cancelledJob रन के बीच में रद्द किया गया (HTTP 499)।
not_foundआपके संगठन में स्कीमा या रिकॉर्ड ID मौजूद नहीं है।
http_errorबिना स्ट्रक्चर्ड डिटेल बॉडी वाली HTTP त्रुटियों के लिए कैच-ऑल।

जानबूझकर छोड़ी गई बातें

यह भी देखें