Lacuna Research
आधिकारिककोडिंग एजेंटों के लिए ML शोध का केवल-पठन मानचित्र: शोधपत्र, शोध दिशाएँ, लेखक, प्रकाशन स्थल, संस्थान और परिकल्पनाएँ—प्रत्येक अपने स्रोतों से जुड़ा हुआ। होस्टेड, प्रमाणीकरण की आवश्यकता नहीं; साथ ही एक PyPI पैकेज।
Lacuna Research MCP के साथ आप क्या कर सकते हैं?
- कोड से शोधपत्रों तक पहुँचें — पूछें कि GitHub रिपॉज़िटरी किस शोधपत्र को लागू करती है और दर्ज
official_code_forसंबंध के ज़रिए शोधपत्र और उसके स्रोतों तक पहुँचें। - साहित्य खोजें —
search_lacunaसे शोधपत्र खोजें, फिर सारांश, लेखकों और चित्रों के संक्षिप्त संदर्भ के लिएget_paperसे कोई परिणाम खोलें। - लिंक किए गए संसाधन खोजें —
search_lacunaसे कोडबेस, डेटासेट, मॉडल या डेमो खोजें और लिंक किए गए शोधपत्रों तथा पहलुओं को देखने के लिएget_resourceसे किसी एक का निरीक्षण करें। - शोध की दिशाएँ जानें — किसी दिशा का सारांश देखें और उससे जुड़े शोधपत्रों को
get_direction_papersसे पृष्ठ-दर-पृष्ठ देखें। - जनरेट किए गए प्रस्तावों का सर्वेक्षण करें —
search_type="hypothesis"से प्रस्ताव खोजें और लौटाए गए किसी प्रस्ताव कोget_hypothesisसे ऐसे विचारों के रूप में पढ़ें जिनकी जाँच की जानी है, न कि निष्कर्षों के रूप में। - शोधकर्ताओं और प्रकाशन-मंचों की प्रोफ़ाइल देखें — किसी लेखक का संदर्भ, शोधपत्र, दिशाएँ या निकटवर्ती शोधकर्ता देखें और प्रकाशन-मंचों तथा संस्थानों की तुलना करें।
होस्ट किया गया MCP सर्वर
npx add-mcp 'https://lacuna.tiptreesystems.com/api/mcp'Claude Code, Codex, Cursor और अन्य में इंस्टॉल होता है
दस्तावेज़
Lacuna Research MCP
Tiptree Systems द्वारा निर्मित Lacuna, मशीन लर्निंग का एक शोध मानचित्र है: एक विषम ज्ञान ग्राफ़, जो शोधपत्रों, शोध दिशाओं, लेखकों, प्रकाशन स्थलों, संस्थानों और तैयार किए गए शोध प्रस्तावों को जोड़ता है। इसमें हर व्युत्पन्न ऑब्जेक्ट से उस सटीक शोधपत्र और पृष्ठ तक स्रोत-श्रृंखला उपलब्ध है, जिससे वह बना है।
Lacuna Research MCP, AI शोधकर्ताओं के कोडिंग एजेंटों को ये सुविधाएँ देता है:
- तैयार किए गए शोध प्रस्ताव। The Alien Space of Science से तैयार किए गए शोध विचारों को देखें।
- शोध दिशाएँ। परस्पर जुड़े शोधपत्रों, लेखकों और प्रस्तावों वाले अवधारणा समूहों में जाएँ।
- एजेंट के लिए तैयार साहित्य। स्रोत लिंक सहित मार्कडाउन में हाल के शोधपत्र खोजें।
- शोधकर्ता संबंधी जानकारी। लेखकों, प्रकाशनों, दिशाओं, प्रभाव और संबंधित शोधकर्ताओं का पता लगाएँ।
- शोध परिदृश्य का मानचित्रण। प्रकाशन स्थलों, संस्थानों, अग्रणी शोधकर्ताओं और प्रकाशन गतिविधि की तुलना करें।
उदाहरण के लिए, किसी कार्यान्वयन को उसके दर्ज किए गए शोधपत्र संबंधों तक खोजें:
Dao-AILab/flash-attention के पीछे का शोधपत्र खोजें। रिपॉज़िटरी से उसका दर्ज संबंध दिखाएँ और मूल शोधपत्र का लिंक दें।
यह उदाहरण रिपॉज़िटरी → दर्ज शोधपत्र संबंध → शोधपत्र और स्रोतों का अनुसरण करता है।
Lacuna, official_code_for संबंध को
FlashAttention से जोड़कर लौटाता है,
जिसमें रिपॉज़िटरी और मूल शोधपत्र के लिंक शामिल हैं। संबंध की पुष्टि के लिए उन स्रोतों की जाँच करें।
उदाहरण चलाएँ या
नोटबुक में चरण-दर-चरण देखें।
इंस्टॉल करें · शोध कौशल · पहली बार उपयोग · टूल · API संदर्भ · कॉन्फ़िगरेशन
इंस्टॉल करें
Cursor के लिए एजेंट प्लगइन
यह रिपॉज़िटरी होस्ट किए गए MCP कनेक्शन और दो शोध कौशल को भी Agent Plugin के रूप में पैकेज करती है। Cursor इस फ़ॉर्मैट का समर्थन करता है।
स्थानीय रूप से इसे आज़माने के लिए, इस रिपॉज़िटरी को
~/.cursor/plugins/local/lacuna-research-mcp में कॉपी करें, Cursor को फिर से लोड करें और
Customize खोलकर दोनों कौशल और MCP कनेक्शन की जाँच करें। प्लगइन
https://lacuna.tiptreesystems.com/api/mcp से कनेक्ट होता है; स्थानीय Python इंस्टॉलेशन या
Lacuna खाते की आवश्यकता नहीं है। डुप्लिकेट टूल से बचने के लिए इस कनेक्शन या हाथ से कॉन्फ़िगर किए गए
Lacuna सर्वर में से किसी एक को सक्षम करें।
Cursor और VS Code
स्थानीय Python इंस्टॉलेशन या Lacuna खाते के बिना होस्ट किए गए सर्वर का उपयोग करें:
ये बटन आपके एडिटर का MCP इंस्टॉलेशन फ़्लो खोलते हैं। सर्वर URL की समीक्षा करें और
इंस्टॉलेशन की पुष्टि करें। कनेक्ट होने के बाद, ऊपर दिया गया FlashAttention प्रश्न पूछें;
आपके एजेंट को search_lacuna, get_resource, और get_paper का उपयोग करना चाहिए।
अगर इंस्टॉल लिंक नहीं खुलता है, तो मैन्युअल कॉन्फ़िगरेशन करें
Cursor में, इस प्रविष्टि को .cursor/mcp.json में मौजूद
mcpServers के साथ मर्ज करें:
{
"mcpServers": {
"lacuna-research": {"url": "https://lacuna.tiptreesystems.com/api/mcp"}
}
}
VS Code में, इस प्रविष्टि को .vscode/mcp.json में मौजूद
servers के साथ मर्ज करें:
{
"servers": {
"lacuna-research": {"type": "http", "url": "https://lacuna.tiptreesystems.com/api/mcp"}
}
}
मौजूदा सर्वर प्रविष्टियाँ बनाए रखें। कनेक्शन की पुष्टि करने और बातचीत के लिए Lacuna के टूल सक्षम करने हेतु अपने एडिटर की MCP सेटिंग खोलें।
होस्ट किया गया MCP सर्वर (Claude connector)
Streamable HTTP का समर्थन करने वाले किसी भी क्लाइंट के साथ Lacuna के होस्ट किए गए MCP सर्वर का उपयोग करें। स्थानीय इंस्टॉलेशन की आवश्यकता नहीं है।
https://lacuna.tiptreesystems.com/api/mcp
Claude में, Customize → Connectors → + Add → Add custom connector खोलें। इसका नाम Lacuna Research रखें, ऊपर दिया गया URL पेस्ट करें और प्रमाणीकरण पूछे जाने पर No sign in चुनें। इसे जोड़ना पूरा करें, फिर अपनी बातचीत में + → Connectors से इसे सक्षम करें।
Team और Enterprise वर्कस्पेस के लिए, कनेक्टर को पहले Organization settings → Connectors में जोड़ना होगा। विवरण के लिए Claude का कस्टम कनेक्टर सेटअप देखें।
स्थानीय इंस्टॉलेशन
Lacuna Research MCP इंस्टॉल करने का सबसे आसान तरीका है अपने कोडिंग एजेंट, जैसे Codex या Claude Code, से कहना:
इस क्लाइंट के लिए PyPI से
lacuna-research-mcpपैकेज इंस्टॉल और कॉन्फ़िगर करें।
मैन्युअल सेटअप के लिए, नीचे दिए गए निर्देश PyPI से नवीनतम टैग किए गए रिलीज़ को चलाने हेतु uvx का उपयोग करते हैं। पहले uv इंस्टॉल करें; Lacuna Research MCP के लिए Python 3.11 या नया संस्करण आवश्यक है।
Codex
Codex CLI से सर्वर जोड़ें:
codex mcp add lacuna-research -- uvx lacuna-research-mcp
वैकल्पिक रूप से, निम्नलिखित को ~/.codex/config.toml में जोड़ें (या केवल प्रोजेक्ट के लिए सेटअप करने हेतु किसी विश्वसनीय प्रोजेक्ट में .codex/config.toml में जोड़ें):
[mcp_servers.lacuna-research]
command = "uvx"
args = ["lacuna-research-mcp"]
सर्वर कॉन्फ़िगर है या नहीं, यह जाँचने के लिए codex mcp list चलाएँ। Codex ऐप, CLI और IDE एक्सटेंशन एक ही मशीन पर इस कॉन्फ़िगरेशन को साझा करते हैं।
Claude Code
Claude Code CLI से अपने सभी प्रोजेक्ट के लिए सर्वर जोड़ें:
claude mcp add --scope user lacuna-research -- uvx lacuna-research-mcp
इसे केवल मौजूदा प्रोजेक्ट में जोड़ने के लिए --scope user छोड़ दें। वैकल्पिक रूप से, ~/.claude.json में शीर्ष-स्तरीय mcpServers ऑब्जेक्ट के अंतर्गत निम्नलिखित जोड़ें:
{
"mcpServers": {
"lacuna-research": {
"type": "stdio",
"command": "uvx",
"args": ["lacuna-research-mcp"]
}
}
}
सर्वर कॉन्फ़िगर है या नहीं, यह जाँचने के लिए claude mcp get lacuna-research चलाएँ।
Claude Desktop
Settings → Developer → Edit Config खोलें, फिर claude_desktop_config.json में
mcpServers के अंतर्गत सर्वर जोड़ें:
{
"mcpServers": {
"lacuna-research": {
"command": "uvx",
"args": ["lacuna-research-mcp"]
}
}
}
फ़ाइल सहेजने के बाद Claude Desktop को पुनः आरंभ करें।
अन्य MCP क्लाइंट
स्थानीय stdio MCP सर्वर का समर्थन करने वाले किसी भी क्लाइंट के लिए, यह मानक कॉन्फ़िगरेशन उपयोग करें:
{
"mcpServers": {
"lacuna-research": {
"command": "uvx",
"args": ["lacuna-research-mcp"]
}
}
}
स्टैंडअलोन कमांड
MCP सर्वर को स्थायी कमांड के रूप में इंस्टॉल करें:
uv tool install lacuna-research-mcp
lacuna-research-mcp
स्थायी कमांड इंस्टॉल किए बिना इसे चलाएँ:
uvx lacuna-research-mcp
यदि यह प्रीरिलीज़ त्रुटि के साथ बंद हो (उदाहरण के लिए, "Python 3.14.0rc2 is a prerelease..."),
तो आपका uv Python 3.14 के शुरुआती प्रीरिलीज़ का उपयोग कर रहा है, जिसका MCP SDK समर्थन नहीं करता।
uv अपडेट करें (uv self update), जारी किया गया Python इंस्टॉल करें (uv python install 3.14),
या uvx --python 3.13 lacuna-research-mcp चलाएँ।
स्वयं होस्ट किया गया HTTP सर्वर
stdio के बजाय Streamable HTTP पर दूरस्थ MCP क्लाइंट को सेवा देने के लिए:
uvx lacuna-research-mcp --transport streamable-http --host 0.0.0.0 --port 8000
एंडपॉइंट /mcp है। सर्वर स्टेटलेस है और JSON के साथ जवाब देता है, इसलिए इसे सेशन एफिनिटी के बिना लोड बैलेंसर के पीछे चलाया जा सकता है। डिफ़ॉल्ट --host 127.0.0.1 के साथ, सर्वर केवल localhost Host हेडर स्वीकार करता है; इसलिए यदि रिवर्स प्रॉक्सी सार्वजनिक होस्टनेम फ़ॉरवर्ड करती है, तो नॉन-लूपबैक पता बाइंड करें।
नवीनतम विकास संस्करण
PyPI में टैग किए गए रिलीज़ उपलब्ध हैं। इसके बजाय main ब्रांच का नवीनतम कोड आज़माने के लिए:
uvx --from git+https://github.com/tiptreesystems/lacuna-research-mcp.git lacuna-research-mcp
स्थानीय विकास
uv के साथ:
git clone https://github.com/tiptreesystems/lacuna-research-mcp.git
cd lacuna-research-mcp
uv sync --extra dev
uv run lacuna-research-mcp
pip के साथ:
cd <path-to-lacuna-research-mcp>
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -U pip
python -m pip install -e .
शोध कौशल
MCP सर्वर टूल प्रदान करता है। ये वैकल्पिक कौशल आपके एजेंट को दो शोध कार्यों के लिए उनका उपयोग करना सिखाते हैं:
| कौशल | अनुरोध का उदाहरण |
|---|---|
| पूर्व कार्य की जाँच करें | विज़न ट्रांसफ़ॉर्मर के लिए टोकन मर्जिंग लागू करने से पहले, सबसे निकटवर्ती कार्य और शामिल करने के लिए एक बेसलाइन खोजें। |
| कोड से शोधपत्रों तक खोजें | Dao-AILab/flash-attention किस शोधपत्र को लागू करता है? दर्ज संबंध और स्रोत दिखाएँ। |
पहले MCP सर्वर से कनेक्ट करें। फिर, Node.js 22.20+ इंस्टॉल होने पर, अपने प्रोजेक्ट से skills CLI चलाएँ:
npx skills add tiptreesystems/lacuna-research-mcp
अपने उपयोग के कौशल और एजेंट चुनें। केवल कोड-से-शोधपत्र वर्कफ़्लो इंस्टॉल करने के लिए:
npx skills add tiptreesystems/lacuna-research-mcp --skill lacuna-code-to-paper
डिफ़ॉल्ट रूप से कौशल मौजूदा प्रोजेक्ट में इंस्टॉल होते हैं। वे MCP सर्वर को इंस्टॉल या कॉन्फ़िगर नहीं करते। यदि नए कौशल खोजने के लिए आपके क्लाइंट को नए एजेंट सत्र की आवश्यकता हो, तो इंस्टॉलेशन के बाद नया सत्र शुरू करें।
पहली बार उपयोग
अपने कनेक्ट किए गए एजेंट में ऊपर दिए गए प्रश्नों में से कोई एक पूछें, या पठन-सूची से जुड़ा यह प्रश्न आज़माएँ:
मेरी सूची में FlashAttention और FlashAttention-2 हैं। लंबे संदर्भ वाले attention के लिए मुझे किन बेसलाइन या सीमाओं के बारे में पढ़ना चाहिए?
मॉडल API कुंजी के बिना दोहराए जा सकने वाले उदाहरण के लिए, इस रिपॉज़िटरी को क्लोन करें और चलाएँ:
uv run examples/code_to_paper.py
नोटबुक हर चरण समझाती है और स्रोत-श्रृंखला की तुलना एकल शोधपत्र खोज से करती है। सीधे टूल का उपयोग करने के लिए, यही प्रक्रिया है:
search_lacuna(query="FlashAttention", search_type="resource", resource_kind="codebase", limit=5)- रिपॉज़िटरी की पहचान जाँचें, फिर उससे मिली ID को
get_resource(resource_id_or_url=...)में दें। - लौटाए गए
publications[].paper_idके साथget_paper(artifact_id_or_url=..., view="context", figure_limit=0)का उपयोग करें।
साहित्य खोजने के लिए search_lacuna(query="methods for detecting prompt injection attacks", search_type="paper", limit=5) का उपयोग करें।
तैयार किए गए प्रस्तावों के लिए search_lacuna(query="LLM jailbreak defense", search_type="hypothesis", limit=5) का उपयोग करें
और लौटाई गई ID को get_hypothesis के साथ आगे बढ़ाएँ। तैयार किए गए प्रस्ताव जाँचने योग्य विचार हैं,
प्रकाशित निष्कर्षों के प्रमाण नहीं।
Lacuna के बारे में
Lacuna की पाइपलाइन OpenAlex, OpenReview, DBLP और arXiv के विद्वत्तापूर्ण रिकॉर्ड का मिलान करती है; शोधपत्रों के पाठ से अवधारणा तत्व निकालकर उन्हें शोध दिशाओं में समूहित करती है (Lacuna शोधपत्र); और The Alien Space of Science की मदद से उन दिशाओं से नए शोध प्रस्ताव तैयार करती है। इस मानचित्र में 2.29 मिलियन से अधिक शोधपत्र, 215,000+ लेखक प्रोफ़ाइल, 28,000+ शोध दिशाएँ, 25,000+ शोध प्रस्ताव, और 5,300+ प्रकाशन स्थल शामिल हैं — और नए arXiv तथा अन्य AI शोधपत्रों के शामिल होने के साथ इसका विस्तार लगातार होता रहता है।
दायरा
इस कॉर्पस में मशीन लर्निंग और AI शोध शामिल हैं: शोधपत्र, शोध दिशाएँ, लेखकों के शोध-कार्य, प्रकाशन स्थल, संस्थान, तैयार की गई शोध परिकल्पनाएँ और शोध संसाधन (GitHub रिपॉज़िटरी, Hugging Face डेटासेट और मॉडल, Zenodo रिकॉर्ड), जो शोधपत्रों से जुड़े हैं। इसमें जीवनियाँ, समाचार या गैर-शोध वेब सामग्री शामिल नहीं है। इस दायरे से बाहर के प्रश्नों के उत्तर एजेंटों को अन्य स्रोतों से देने चाहिए।
यह क्या उपलब्ध कराता है
search_lacunaदिशाओं, शोधपत्रों, लेखकों, प्रकाशन स्थलों, संस्थानों, परिकल्पनाओं और संसाधनों के लिए Lacuna के सार्वजनिक/api/v1/searchएंडपॉइंट का उपयोग करता है। स्पष्ट शोधपत्र खोजें (search_type="paper") सर्वर के प्रोडक्शन lexical+semantic रैंकर का उपयोग करती हैं, जब रैंकिंग के अन्य तर्क अपने डिफ़ॉल्ट मानों पर हों। परिकल्पना खोज के लिएsearch_type="hypothesis"दें। शोधपत्रों से जुड़े कोड रिपॉज़िटरी, डेटासेट, मॉडल और डेमो खोजने के लिएsearch_type="resource"दें; चाहें तोresource_kind(codebase,dataset,model,demo) औरprovider(github,huggingface,zenodo) से फ़िल्टर करें; उदाहरण के लिए,resource_kind="dataset"बेंचमार्क डेटासेट खोजता है। संसाधन खोज मेंdate_from/date_to,venue, वर्ष-आधारित सॉर्ट और semantic रैंकिंग अस्वीकार किए जाते हैं (संसाधनों में तारीखें, प्रकाशन स्थल या एम्बेडिंग नहीं होते)।get_hypothesis(hypothesis_id_or_url, view="context")परिकल्पना/प्रस्ताव।view="context"(डिफ़ॉल्ट) एक संक्षिप्त, एकल-फ़ेच प्रस्ताव संदर्भ देता है (सारांश, एब्स्ट्रैक्ट, संबद्ध दिशाएँ);view="full"संस्करण इतिहास और सिग्नल गणनाओं वाला सर्वर का संस्करण रिकॉर्ड देता है। प्रस्ताव के मुख्य भागversions[].markdownमें हैं।get_direction(cluster_id_or_url, view="context")शोध दिशा/क्लस्टर।view="context"(डिफ़ॉल्ट) एजेंट-केंद्रित संक्षिप्त सारांश माँगता है;view="full"कच्चा क्लस्टर रिकॉर्ड देता है।get_direction_papers(cluster_id_or_url, page, limit, view="compact")किसी दिशा से जुड़े शोधपत्रों की पृष्ठांकित सूची।view="compact"(डिफ़ॉल्ट) उद्धरण के लिए तैयार पंक्तियाँ देता है (id, url, title, year, venue, कुछ लेखक, एब्स्ट्रैक्ट का अंश);view="full"कच्चे अपस्ट्रीम शोधपत्र रिकॉर्ड देता है।get_paper(artifact_id_or_url, view="context", figure_limit=None, include_resources=True)उपलब्ध संस्करणों सहित शोधपत्र लुकअप; किसी संस्करण को पढ़ने के लिए उसकी artifact ID का उपयोग करें। संबद्ध संसाधन (कोड रिपॉज़िटरी, डेटासेट, मॉडल और डेमो) डिफ़ॉल्ट रूप से context और full दृश्यों में शामिल होते हैं; उन्हें हटाने के लिएinclude_resources=Falseदें। अन्य दृश्य इस विकल्प को अनदेखा करते हैं।view="context"(डिफ़ॉल्ट) एजेंट-केंद्रित संक्षिप्त context माँगता है; अन्य दृश्य हैं"full","preview","blog","figures","concepts", या"neighbors"। context दृश्य में,figure_limitचित्र पूर्वावलोकनों की अधिकतम संख्या तय करता है (सर्वर डिफ़ॉल्ट 3; पूर्वावलोकन रोकते हुएfigures_truncatedसिग्नल बनाए रखने के लिए 0 दें)।get_resource(resource_id_or_url)id (संसाधन खोज याget_paperकीresourcesसूची से) या Lacuna/resource/...URL के आधार पर संसाधन लुकअप: बाहरी URL, सारांश, पहलू (कार्य, तौर-तरीके, आकार, लाइसेंस), प्रदाता मेट्रिक्स, README/कार्ड अंश,publicationsके अंतर्गत संबद्ध शोधपत्र (paper_idऔरdataset_forजैसे संबंध सहित), संबंधित दिशाएँ और उल्लिखित संसाधन।- लेखक टूल:
get_author_context(…, view="context"),get_author_papers,get_author_directions, औरget_author_neighbors। शुरुआतget_author_contextसे करें, जो डिफ़ॉल्ट रूप से एजेंट-केंद्रित संक्षिप्त दृश्य देता है (सीमित शोधपत्र और कच्चेimpact_clustersटेलीमेट्री के बजाय पढ़ने योग्यimpact_directionsसूची)। लेखक संदर्भ को दोहराए बिना इन संग्रहों के पृष्ठ देखने के लिए समर्पित शोधपत्र, दिशाएँ और पड़ोसी टूल का उपयोग करें।view="full"सर्वर द्वारा सीमित पूर्ण-आकार का संदर्भ देता है (संग्रह 100 तक सीमित रहते हैं)। समान लेखकों को स्पष्ट रूप से शामिल करने के लिएinclude_neighbors=trueदें; इससे सर्वर की विलंबता काफ़ी बढ़ सकती है। - प्रकाशन स्थल और संस्थान टूल:
get_venue_context(…, view="context"),get_institution_context(…, view="context"),get_institution_authors। संदर्भ टूल डिफ़ॉल्ट रूप से संक्षिप्त होते हैं (सीमित सूचियाँ, दोहराए गए ब्लॉक हटाए जाते हैं; प्रकाशन स्थल में हाल की गतिविधि का एक हिस्सा रहता है, जिसमें अनुरोधितyearहमेशा शामिल होता है)। किसी संस्थान की पूरी लेखक सूची के पृष्ठ देखने के लिएget_institution_authorsका उपयोग करें।
Wrapped APIs
| MCP tool | Lacuna API endpoint |
|---|---|
search_lacuna(query, search_type, limit, offset, author_id_or_url, date_from, date_to, venue, sort, ranking_profile, fields, resource_kind, provider) | GET /api/v1/search (resource_kind और provider को दोहराए गए kind और provider क्वेरी पैरामीटर के रूप में भेजा जाता है और इनके लिए search_type="resource" या "all" आवश्यक है। author_id_or_url search_type="paper" को एक लेखक तक सीमित करता है; इसमें कच्चा लेखक ID या Lacuna लेखक पेज URL स्वीकार किया जाता है। fields lexical रैंकिंग के लिए उपयोग किए जाने वाले टेक्स्ट फ़ील्ड को सीमित/भारित करता है, जैसे title^4,abstract, और प्रायोगिक lexical रैंकर चुनता है; डिफ़ॉल्ट प्रासंगिकता-सॉर्ट किए गए शोधपत्र खोज के लिए, यह प्रोडक्शन lexical+semantic रैंकर को बायपास करता है। अनुमत फ़ील्ड हैं title, abstract, summary, concepts, name, top_names, venue, description, topics, provider_key, paper_titles; इनमें से प्रत्येक केवल उन प्रकारों के लिए मान्य है जिनमें वह फ़ील्ड मौजूद हो — title: paper/cluster/venue/hypothesis/resource; description/topics/provider_key/paper_titles: resource; abstract/summary/concepts: paper; name: author/institution/venue; top_names: cluster/hypothesis; venue: paper/venue (search_type="all" सभी पर लागू होता है)। भारों को 0 < weight <= 100 की शर्तें पूरी करनी होंगी। अज्ञात फ़ील्ड, सीमा से बाहर भार, प्रकार के साथ असंगत फ़ील्ड, और fields को ranking_profile="semantic" के साथ जोड़ने पर अनुरोध अस्वीकार किए जाते हैं, क्योंकि अन्यथा सर्वर उन्हें चुपचाप हटा, सीमित या अनदेखा कर देगा।) |
get_hypothesis(hypothesis_id_or_url, view="context") | view="context" → GET /api/v1/context/hypothesis/{hypothesis_id}?view=compact; view="full" → GET /api/v1/hypotheses/{hypothesis_id} |
get_direction(cluster_id_or_url, view="context") | view="context" → GET /api/v1/context/direction/{cluster_id}?view=compact; view="full" → GET /api/v1/clusters/{cluster_id} |
get_direction_papers(cluster_id_or_url, page, limit, view="compact") | GET /api/v1/clusters/{cluster_id}/papers?view=compact (डिफ़ॉल्ट) या ?view=complete |
get_paper(artifact_id_or_url, view="context", figure_limit=None, include_resources=True) | view="context" → GET /api/v1/context/paper/{artifact_id}?view=compact (&figure_limit=N सेट होने पर); view="full" → GET /api/v1/papers/{artifact_id}; view="preview" → …/preview; view="blog" → …/blog; view="figures" → …/figures; view="concepts" → …/concepts; view="neighbors" → …/neighbors; context और full, include_resources भेजते हैं। Work पेज URL (/work/<name>, /work/<slug>/wrk_…) या bare wrk_… id को पहले GET /api/v1/context/work/{work_id_or_name} के माध्यम से पढ़ा जाता है |
get_resource(resource_id_or_url) | GET /api/v1/resources/{resource_id} |
get_author_papers(author_id_or_url, limit=50, offset=0) | GET /api/v1/authors/{author_id}/papers |
get_author_directions(author_id_or_url, limit=50, offset=0) | GET /api/v1/authors/{author_id}/directions |
get_author_context(author_id_or_url, view="context", include_neighbors=false) | view="context" → GET /api/v1/context/author/{author_id}?view=compact; view="full" → GET /api/v1/context/author/{author_id} (include_neighbors=true समान लेखकों को स्पष्ट रूप से अनुरोध करता है) |
get_author_neighbors(author_id_or_url, limit=8, offset=0) | GET /api/v1/authors/{author_id}/neighbors |
get_venue_context(venue_key_or_url, year, view="context") | view="context" → GET /api/v1/context/venue/{vkey}[/{year}]?view=compact; view="full" → वही रूट, लेकिन view के बिना |
get_institution_context(institution_key_or_url, view="context") | view="context" → GET /api/v1/context/institution/{ikey}?view=compact; view="full" → वही रूट, लेकिन view के बिना |
get_institution_authors(institution_key_or_url, limit=50, offset=0) | GET /api/v1/institutions/{ikey}/authors |
id-or-URL तर्कों के लिए, search_lacuna से मिला कच्चा id या संबंधित Lacuna पेज URL दें। MCP, Lacuna-सापेक्ष url और *_url फ़ील्ड को पूर्ण URL में सामान्यीकृत करता है; साथ ही, summary_markdown, article_markdown, markdown, content, या description नाम वाले फ़ील्ड के भीतर Lacuna लिंक (जिनमें /resource/... पेज भी शामिल हैं) को पूर्ण URL में बदलता है।
दोनों दृश्यों में get_author_context सर्वर-साइड पर सीमित है। डिफ़ॉल्ट संक्षिप्त दृश्य चुनी हुई जानकारी का सार देता है; view="full" एम्बेड किए गए संग्रहों को 100 तक सीमित रखते हुए अधिक बड़ा, पूर्ण आकार देता है। एम्बेड किए गए संदर्भ संग्रहों के पृष्ठ देखने की कोशिश करने के बजाय get_author_papers और get_author_directions का उपयोग करें।
प्रत्येक कॉल में खोज अनुरोध अधिकतम 50 परिणामों तक सीमित हैं, और दिशा-शोधपत्र पृष्ठ अनुरोध अधिकतम 100 परिणामों तक सीमित हैं।
search_lacuna में, date_from और date_to प्रकाशन-तिथि की समावेशी सीमाएँ हैं।
स्वीकार्य प्रारूप हैं YYYY, YYYY-MM, और YYYY-MM-DD; उदाहरण के लिए,
date_from="2020", date_to="2022-03" में 1 जनवरी, 2020 से
31 मार्च, 2022 तक के शोधपत्र शामिल हैं।
search_lacuna ये रैंकिंग प्रोफ़ाइल उपलब्ध कराता है:
default/lexicalसभी खोजों के लिए डिफ़ॉल्ट प्रोफ़ाइल। जबsearch_type="paper",sort="relevance", औरfieldsसेट न हों, तो यह सहज फ़ॉलबैक के साथ सर्वर के प्रोडक्शन lexical+semantic रैंकर का उपयोग करता है। MCP का डिफ़ॉल्टsearch_type="all"इसके बजाय सर्वर की डिफ़ॉल्ट lexical रैंकिंग का उपयोग करता है।semanticएम्बेडिंग-आधारित शोधपत्र पुनर्प्राप्ति के लिए उपयोग करें। semantic क्वेरी सामान्य lexical रैंकिंग चरण को छोड़ देती है, लेकिन सर्वर फिर भी सटीक शीर्षक वाले lexical मिलानों को ऊपर रख सकता है। यह केवलpaperऔरallखोजों के लिए समर्थित है (केवल शोधपत्रों में semantic embeddings होते हैं), औरresource_kind/providerफ़िल्टर के साथ समर्थित नहीं है।bm25_title_abstract/bm25शीर्षक और एब्स्ट्रैक्ट तक सीमित lexical मिलान के लिए उपयोग करें।authorऔरinstitutionखोजों के लिए अस्वीकार किया जाता है (उन रिकॉर्ड में शीर्षक या एब्स्ट्रैक्ट फ़ील्ड नहीं होते)।
जब तक ranking_profile न दिया जाए, सभी खोजें सर्वर के डिफ़ॉल्ट का उपयोग करती हैं। MCP असमर्थित प्रोफ़ाइल/प्रकार संयोजनों को अस्वीकार करता है, क्योंकि अन्यथा सर्वर substring खोज पर फ़ॉलबैक करके अनुरोधित रैंकिंग प्रोफ़ाइल को चुपचाप अनदेखा कर देगा।
sort में relevance (डिफ़ॉल्ट), year_desc, और year_asc स्वीकार किए जाते हैं। वर्ष-आधारित सॉर्ट को ranking_profile="semantic" के साथ नहीं जोड़ा जा सकता — सर्वर सॉर्ट को चुपचाप अनदेखा कर देगा — इसलिए MCP इस संयोजन को अस्वीकार करता है; हाल के और प्रासंगिक परिणामों के लिए, semantic रैंकिंग बनाए रखें और इसके बजाय date_from/date_to से हालिया अवधि सीमित करें।
Environment variables
LACUNA_SITE_URLडिफ़ॉल्टhttps://lacuna.tiptreesystems.comहैLACUNA_MCP_TIMEOUTडिफ़ॉल्ट30हैLACUNA_MCP_MAX_RETRIESडिफ़ॉल्ट2है; टाइमआउट, ट्रांसपोर्ट त्रुटियों और HTTP429,502,503, और504प्रतिक्रियाओं पर लागू होता है।LACUNA_MCP_USER_AGENTडिफ़ॉल्टlacuna-research-mcp/{package_version}हैLACUNA_MCP_BEARER_TOKENनिजी Lacuna डिप्लॉयमेंट के लिए वैकल्पिक bearer token, जिसेAuthorization: Bearer ...के रूप में भेजा जाता है।LACUNA_MCP_CLIENT_TOKENवैकल्पिक token, जिसेX-Lacuna-Client-Tokenके रूप में भेजा जाता है ताकि Lacuna अपने खोज दर-सीमा के लिए होस्ट किए गए MCP सर्वर की पहचान कर सके।LACUNA_MCP_LOG_LEVELडिफ़ॉल्टWARNINGहै (इनमें से एक:DEBUG,INFO,WARNING,ERROR,CRITICAL)। डिफ़ॉल्ट सेटिंग सामान्य संचालन को शांत रखती है; इसे केवल डीबगिंग के लिए कम करें, क्योंकिINFO/DEBUGHTTP क्लाइंट को stderr पर पूरे अनुरोध URL — खोज क्वेरी स्ट्रिंग सहित — लॉग करने देते हैं, जिन्हें कुछ MCP होस्ट सहेजकर रखते हैं।
पर्यावरण चर MCP सर्वर बनाते समय एक बार पढ़े जाते हैं, या यदि मॉड्यूल को create_mcp() कॉल किए बिना इंपोर्ट किया गया हो, तो पहली प्रत्यक्ष टूल/API कॉल पर पढ़े जाते हैं।
Implementation layout
सर्वर, Lacuna के HTTP API पर आधारित एक पतला MCP अडैप्टर है। कार्यानुसार कार्यान्वयन को इन हिस्सों में बाँटा गया है:
lacuna_research_mcp/server.pyMCPServer ऐप बनाना, टूल पंजीकरण, लाइफ़स्पैन सफ़ाई औरlacuna-research-mcpCLI एंट्रीपॉइंट।lacuna_research_mcp/tools.pyMCP टूल फ़ंक्शन। प्रत्येक टूल अपने इनपुट को सामान्यीकृत करता है, साझा क्लाइंट हेल्पर के माध्यम से संबंधित Lacuna API एंडपॉइंट को कॉल करता है और JSON-संगत डेटा लौटाता है।lacuna_research_mcp/client.pyLacuna तक रनटाइम HTTP पहुँच: इवेंट-लूप से बँधाhttpx.AsyncClient, पुनः प्रयास प्रबंधन, त्रुटि रैपिंग, JSON पार्सिंग, प्रतिक्रियाओं में URL सामान्यीकरण औरapi_get/api_object/api_payload।lacuna_research_mcp/config.pyरनटाइम कॉन्स्टेंट,RuntimeConfig, पैकेज user-agent निर्माण और पर्यावरण पार्सिंग।lacuna_research_mcp/ids.pyऐसे हेल्पर जो कच्चे id या Lacuna पेज URL स्वीकार करते हैं और सुरक्षित API पाथ सेगमेंट निकालते हैं।lacuna_research_mcp/normalize.pyसापेक्ष Lacuna URL और Markdown लिंक के लिए प्रतिक्रिया का पोस्ट-प्रोसेसिंग।lacuna_research_mcp/errors.pyLacuna API पहुँच विफलताओं के लिए उपयोगकर्ता-सामना करने वाला अपवाद प्रकार।
Notes
get_paperऔरget_directionका डिफ़ॉल्टview="context"है। MCP प्रतिक्रियाओं को छोटा रखने के लिए, ये संदर्भ दृश्य डिफ़ॉल्ट रूप से Lacuna के संक्षिप्त, एजेंट-केंद्रित पेलोड का अनुरोध करते हैं। पेपर संदर्भ में उपलब्ध होने परsummary_markdown(अन्यथाabstract), लेखक और चित्र शामिल होते हैं; दिशा संदर्भ मेंsummary_markdown, सीमित संख्या में पेपर/लेखक/संबंधित दिशाएँ और कटौती के संकेत शामिल होते हैं। कच्चा मेटाडेटा चाहिए तोview="full"का उपयोग करें, और किसी एक अलग उप-संसाधन के लिए अन्य पेपर दृश्य (preview,blog,figures,concepts,neighbors) का उपयोग करें।- बिना कस्टम
fieldsके स्पष्ट प्रासंगिकता-क्रमित पेपर खोज, सर्वर के प्रोडक्शन लेक्सिकल+सेमांटिक रैंकर का डिफ़ॉल्ट रूप से उपयोग करती है। एम्बेडिंग-आधारित पुनर्प्राप्ति (जिसमें सटीक शीर्षक का ओवरले संभव है) के लिएranking_profile="semantic"सेट करें, या शीर्षक और सार के लेक्सिकल मिलान के लिए"bm25_title_abstract"सेट करें। - अधिकांश विवरण टूल खोज से मिले आईडी या उससे संबंधित Lacuna URL—दोनों में से किसी को स्वीकार करते हैं।
url/*_urlप्रतिक्रिया फ़ील्ड औरsummary_markdown,article_markdown,markdown,contentयाdescriptionनाम वाले फ़ील्ड में मौजूद सापेक्ष Lacuna URL को पूर्ण URL में सामान्यीकृत किया जाता है।- वेन्यू और संस्थान की कुंजियाँ अपारदर्शी हैश होती हैं (उदाहरण के लिए
d7bf22905bd6), न किicmlजैसे मनुष्यों द्वारा पढ़े जा सकने वाले नाम। पहलेsearch_lacuna(search_type="venue")से कुंजी खोजें, या/venue/...पेज URL दें।
उद्धरण
यदि आपको हमारा काम उपयोगी लगे, तो Lacuna के शोध-प्रस्ताव निर्माण और शोध मानचित्र के पीछे के पेपरों का उद्धरण देने के लिए स्वतंत्र महसूस करें।
शोध-प्रस्ताव निर्माण — The Alien Space of Science
@inproceedings{artiles2026alien,
title = {The Alien Space of Science: Sampling Coherent but Cognitively Unavailable Research Directions},
author = {Artiles, Alejandro H. and Weiss, Martin and Brinkmann, Levin and Rahwan, Iyad and Sch{\"o}lkopf, Bernhard and Pal, Christopher and Larochelle, Hugo and Goyal, Anirudh and Rahaman, Nasim},
booktitle = {Advances in Neural Information Processing Systems},
year = {2026},
eprint = {2603.01092},
archivePrefix = {arXiv},
url = {https://arxiv.org/abs/2603.01092}
}
शोध मानचित्र — Lacuna
@misc{weiss2026lacunaresearchmapmachine,
title = {Lacuna: A Research Map for Machine Learning},
author = {Martin Weiss and Miles Q. Li and Alejandro H. Artiles and Yacine Mkhinini and Chris Pal and Hugo Larochelle and Nasim Rahaman},
year = {2026},
eprint = {2606.26246},
archivePrefix = {arXiv},
primaryClass = {cs.DL},
url = {https://arxiv.org/abs/2606.26246}
}
लाइसेंस
MIT. LICENSE देखें।