mcpField
L
Lacuna Research MCP

Lacuna Research MCP

远程服务
lacuna.tiptreesystems.com搜索与检索85 天前更新

关于 Lacuna Research MCP

Lacuna Research MCP 提供机器学习研究图谱的访问,连接论文、作者、 venue、机构、研究方向和假设。它面向探索文献与研究主题的研究人员和编码 Agent,并提供来源链接及相关研究资源。

主要功能

  1. 01搜索论文、研究方向和假设
  2. 02浏览作者、venue 和机构记录
  3. 03获取论文上下文、图表和版本
  4. 04查找代码、数据集、模型和演示
  5. 05追踪研究图谱实体间的关联

适用场景

  1. 01查找机器学习主题的论文
  2. 02探索某位作者的相关发表成果
  3. 03定位论文关联的数据集和代码仓库

MCP 相关

MCP 服务提供 Lacuna 研究图谱的搜索和查询工具,涵盖论文、研究方向、作者、venue、机构、假设及关联资源。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://lacuna.tiptreesystems.com/api/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
pypilacuna-research-mcp0.6.7

工具

13
参数类型必填说明
sortstring否
limitinteger否
querystring是
venueany否
fieldsany否
offsetinteger否
date_toany否
providerany否
date_fromany否
search_typestring否
resource_kindany否
ranking_profileany否
author_id_or_urlany否

详细介绍

Lacuna Research MCP — 为编码 Agent 赋能,助力机器学习研究

Python 3.11+ MCP 服务 MIT 许可证

Lacuna Research MCP

🔬 让编码 Agent 掌握新颖创意、论文和机器学习领域动态

Lacuna Research MCP 为 AI 研究人员的编码 Agent 提供:

  • 新颖的研究提案。 借助 The Alien Space of Science 探索生成的新颖研究创意。
  • 研究方向。 浏览关联论文、作者和提案的概念集群。
  • 适用于 Agent 的文献。 以 Markdown 格式搜索近期论文,并附带来源链接。
  • 研究人员情报。 追踪作者、出版物、研究方向、影响力和相关研究人员。
  • 领域映射。 比较会议、机构、领军研究人员和出版活动。

Lacuna 由 Tiptree Systems 构建,是一张机器学习研究地图:一个异构知识图谱,连接论文、研究方向、作者、会议、机构和生成的研究提案,并为每个衍生对象提供来源链,追溯到生成该对象的确切论文和页面。其处理流程整合来自 OpenAlex、OpenReview、DBLP 和 arXiv 的学术记录;从论文文本中提取概念要素,并将其聚类为研究方向(Lacuna 论文);再借助 The Alien Space of Science 从这些方向中采样,生成新颖的研究提案。这张地图涵盖超过 229 万篇论文、21.5 万多个作者档案、2.8 万多个研究方向、2.5 万多个研究提案和 5,300 多个会议,并随着新 arXiv 论文和其他 AI 论文的收录而持续扩展。

安装 · 首次使用 · 工具 · API 参考 · 配置

安装

托管 MCP 服务(Claude 连接器)

可将 Lacuna 的托管 MCP 服务与任何支持 Streamable HTTP 的客户端配合使用。无需本地安装。

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 最简单的方法是让你的编码 Agent(例如 Codex 或 Claude Code)执行:

为此客户端安装并配置来自 PyPI 的 lacuna-research-mcp 软件包。

如需手动设置,以下说明使用 uvx 从 PyPI 运行最新的标记版本。请先安装 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 使用了 MCP SDK 不支持的早期 Python 3.14 预发布版本。 请更新 uv(uv self update)、安装正式发布的 Python 版本(uv python install 3.14), 或运行 uvx --python 3.13 lacuna-research-mcp。

可自托管的 HTTP 服务

如需通过 Streamable HTTP 而非 stdio 为远程 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 .

首次使用

连接服务后,请调用:

  1. search_lacuna(query="LLM jailbreak defense", search_type="hypothesis", limit=10)
  2. search_lacuna(query="methods for detecting prompt injection attacks", search_type="paper", limit=10)(默认使用生产级词法与语义论文排序)
  3. get_hypothesis(hypothesis_id_or_url="bd35de182c2325ae")
  4. get_paper(artifact_id_or_url="art_79c57fbfec094f26b79c422cf08fed34")(默认使用 view="context")
  5. get_direction(cluster_id_or_url=25108)(默认使用 view="context")
  6. search_lacuna(query="ImageNet", search_type="resource", resource_kind="dataset")(与论文关联的数据集;后续可调用 get_resource)

范围

语料涵盖机器学习和 AI 研究:论文、研究方向、作者的研究成果、学术会议、机构、生成的研究假设,以及与论文关联的研究资源(GitHub 仓库、Hugging Face 数据集和模型、Zenodo 记录)。其中不包含人物传记、新闻或非研究类网络内容。对于超出此范围的问题,Agent 应从其他来源查找答案。

暴露的功能

  • search_lacuna 使用 Lacuna 的公开 /api/v1/search 端点搜索方向、论文、作者、会议、机构、假设和资源。明确指定论文搜索(search_type="paper")时,如果其他排序参数保持默认值,则使用服务器的生产级词法 + 语义排序器。传入 search_type="hypothesis" 可搜索假设。传入 search_type="resource" 可搜索与论文关联的代码仓库、数据集、模型和演示项目,还可选用 resource_kind(codebase、dataset、model、demo)和 provider(github、huggingface、zenodo)进行筛选;例如,resource_kind="dataset" 可查找基准数据集。资源搜索不接受 date_from/date_to、venue、年份排序和语义排序(资源没有日期、会议或嵌入向量)。
  • get_hypothesis(hypothesis_id_or_url, view="context") 获取假设/提案。view="context"(默认值)通过单次紧凑请求返回提案上下文(摘要、论文摘要、关联方向);view="full" 返回服务器的版本记录,包括版本历史和信号计数。提案正文位于 versions[].markdown 中。
  • get_direction(cluster_id_or_url, view="context") 获取研究方向/集群。view="context"(默认值)请求面向 Agent 的紧凑摘要;view="full" 返回原始集群记录。
  • get_direction_papers(cluster_id_or_url, page, limit, view="compact") 获取关联到某个方向的分页论文。view="compact"(默认值)返回可用于引用的条目(ID、URL、标题、年份、会议、若干作者、摘要片段);view="full" 返回原始上游论文记录。
  • get_paper(artifact_id_or_url, view="context", figure_limit=None, include_resources=True) 查询论文及其可用版本;使用某个版本的工件 ID 读取该版本。默认情况下,上下文视图和完整视图都会包含关联资源(代码仓库、数据集、模型和演示项目);传入 include_resources=False 可将其省略。其他视图会忽略此选项。view="context"(默认值)请求面向 Agent 的紧凑上下文;其他视图包括 "full"、"preview"、"blog"、"figures"、"concepts" 或 "neighbors"。在上下文视图中,figure_limit 用于限制图表预览数量(服务器默认值为 3;传入 0 可隐藏预览,同时保留 figures_truncated 信号)。
  • 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 开始;其默认使用面向 Agent 的紧凑视图,提供数量受限的论文,以及易读的 impact_directions 列表,而不是原始的 impact_clusters 监测数据。使用专用论文、方向和邻近作者工具分页浏览这些集合,无需重复获取作者上下文。view="full" 返回服务器限制范围内的完整结构上下文(各集合仍限制为 100 条)。传入 include_neighbors=true 可显式包含相似作者;这可能显著增加服务器延迟。
  • 会议和机构工具: get_venue_context(…, view="context")、get_institution_context(…, view="context")、get_institution_authors。上下文工具默认返回紧凑结果(列表数量受限、删除重复区块;会议工具保留近期活动片段,并始终包含请求的 year)。使用 get_institution_authors 可分页浏览某机构的完整作者列表。

封装的 API

MCP 工具Lacuna API 端点
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 会限制/加权用于词法排序的文本字段,例如 title^4,abstract,并选择实验性词法排序器;对于默认按相关性排序的论文搜索,这会绕过生产环境的词法+语义排序器。允许的字段为 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。不支持的字段、超出范围的权重、与类型不兼容的字段,以及与 ranking_profile="semantic" 同时使用的 fields 都会被拒绝,因为否则服务端可能会静默丢弃、限制或忽略它们。)
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_…)或裸 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" 会包含 2020 年 1 月 1 日至 2022 年 3 月 31 日发表的论文。

search_lacuna 提供以下排序配置:

  • default / lexical 所有搜索的默认配置。对于 search_type="paper"、sort="relevance" 且未设置 fields 的情况,它会使用服务端的生产级词法 + 语义排序器,并在必要时进行平滑回退。MCP 默认的 search_type="all" 则使用服务端默认的词法排序。
  • semantic 用于基于嵌入的论文检索。语义查询不包含常规词法排序环节,但服务端仍可叠加精确标题的词法匹配。仅支持 paper 和 all 搜索(只有论文具有语义嵌入),且不能与 resource_kind / provider 过滤器同时使用。
  • bm25_title_abstract / bm25 用于限定在标题和摘要范围内进行词法匹配。author 和 institution 搜索不支持此配置,因为这些记录没有标题或摘要字段。

所有搜索均使用服务端默认配置,除非提供了 ranking_profile。MCP 会拒绝不受支持的配置 / 类型组合,因为否则服务端会回退到子字符串搜索,并静默忽略所请求的排序配置。

sort 接受 relevance(默认值)、year_desc 和 year_asc。年份排序不能与 ranking_profile="semantic" 组合使用,因为服务端会静默忽略排序;因此,MCP 会拒绝此组合。对于近期且相关的查询,请保留语义排序,并改用 date_from / date_to 限定时间范围。

环境变量

  • LACUNA_SITE_URL 默认值为 https://lacuna.tiptreesystems.com
  • LACUNA_MCP_TIMEOUT 默认值为 30
  • LACUNA_MCP_MAX_RETRIES 默认值为 2;适用于超时、传输错误以及 HTTP 429、502、503 和 504 响应。
  • LACUNA_MCP_USER_AGENT 默认值为 lacuna-research-mcp/{package_version}
  • LACUNA_MCP_BEARER_TOKEN 可选的 bearer token,通过 Authorization: Bearer ... 发送,用于访问私有 Lacuna 部署。
  • LACUNA_MCP_CLIENT_TOKEN 可选的 token,通过 X-Lacuna-Client-Token 发送,用于向 Lacuna 标识托管的 MCP 服务,以便 Lacuna 应用自身的搜索速率限制。
  • LACUNA_MCP_LOG_LEVEL 默认值为 WARNING(可选值为 DEBUG、INFO、WARNING、ERROR、CRITICAL)。默认设置可让正常运行保持安静;仅在调试时调低级别,因为 INFO / DEBUG 会让 HTTP 客户端将完整请求 URL(包括搜索查询字符串)记录到 stderr,而某些 MCP 宿主会保留这些日志。

环境变量会在创建 MCP 服务时读取一次;如果导入模块时未调用 create_mcp(),则会在首次直接调用工具 / API 时读取。

实现布局

该服务是 Lacuna HTTP API 上的轻量 MCP 适配器。实现按职责拆分:

  • lacuna_research_mcp/server.py 创建 MCPServer 应用、注册工具、清理生命周期资源,以及提供 lacuna-research-mcp CLI 入口。
  • lacuna_research_mcp/tools.py MCP 工具函数。每个工具都会规范化输入,通过共享客户端辅助函数调用相应的 Lacuna API 端点,并返回兼容 JSON 的数据。
  • lacuna_research_mcp/client.py 运行时访问 Lacuna 的 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.py 面向用户的 Lacuna API 访问失败异常类型。

备注

  • get_paper 和 get_direction 默认使用 view="context"。这些上下文视图默认请求 Lacuna 精简的、面向 Agent 的负载,以保持 MCP 响应较小。论文上下文包含 summary_markdown(如果可用;否则包含 abstract)、作者和图表;方向上下文包含 summary_markdown、数量受限的论文/作者/相关方向,以及截断标记。需要原始元数据时使用 view="full";需要单独的子资源时,使用其他论文视图(preview、blog、figures、concepts、neighbors)。
  • 明确指定按相关性排序的论文搜索,且未自定义 fields 时,默认使用服务端的生产级词法+语义排序器。设置 ranking_profile="semantic" 可使用基于嵌入的检索(可能叠加精确标题匹配),设置 "bm25_title_abstract" 可按标题和摘要进行词法匹配。
  • 大多数详情工具都可接受搜索返回的 ID 或对应的 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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。