Lacuna Research

chính thức

Bản đồ chỉ đọc về nghiên cứu ML dành cho các tác nhân lập trình: bài báo, hướng nghiên cứu, tác giả, hội nghị, tổ chức và giả thuyết, mỗi mục đều liên kết đến nguồn. Được lưu trữ, không cần xác thực; đồng thời có gói PyPI.

Bạn có thể làm gì với Lacuna Research MCP?

  • Truy vết mã nguồn đến bài báo — Hỏi kho lưu trữ GitHub triển khai bài báo nào, rồi lần theo mối quan hệ official_code_for đã ghi nhận đến bài báo và các nguồn của bài báo.
  • Tìm kiếm tài liệu nghiên cứu — Thực hiện tìm kiếm bài báo bằng search_lacuna, sau đó mở một kết quả bằng get_paper để xem ngữ cảnh cô đọng gồm tóm tắt, tác giả và hình minh họa.
  • Tìm tài nguyên liên kết — Tìm kiếm cơ sở mã, bộ dữ liệu, mô hình hoặc bản demo bằng search_lacuna, rồi kiểm tra một tài nguyên bằng get_resource để xem các bài báo và khía cạnh liên kết.
  • Khám phá hướng nghiên cứu — Tra cứu phần tóm tắt của một hướng nghiên cứu và xem lần lượt các bài báo đính kèm bằng get_direction_papers.
  • Khảo sát các đề xuất được tạo — Tìm kiếm các đề xuất bằng search_type="hypothesis" và đọc một đề xuất được trả về bằng get_hypothesis như những ý tưởng cần nghiên cứu, không phải kết quả đã được xác nhận.
  • Lập hồ sơ nhà nghiên cứu và đơn vị xuất bản — Lấy thông tin ngữ cảnh, bài báo, hướng nghiên cứu hoặc các đối tượng lân cận của một tác giả, rồi so sánh các đơn vị xuất bản và tổ chức.

Máy chủ MCP được lưu trữ

npx add-mcp 'https://lacuna.tiptreesystems.com/api/mcp'

Cài vào Claude Code, Codex, Cursor và nhiều công cụ khác

Tài liệu

Lacuna Research MCP — Empower your coding agent for machine learning research

Python 3.11+ MCP server MIT license

Lacuna Research MCP

Lacuna, được xây dựng bởi Tiptree Systems, là bản đồ nghiên cứu về học máy: một đồ thị tri thức không đồng nhất liên kết các bài báo, hướng nghiên cứu, tác giả, địa điểm công bố, tổ chức và đề xuất nghiên cứu được tạo ra, với dấu vết nguồn từ mỗi đối tượng được suy ra trở về chính xác bài báo và trang đã tạo ra đối tượng đó.

Lacuna Research MCP cung cấp cho các tác nhân lập trình của nhà nghiên cứu AI:

  • Đề xuất nghiên cứu được tạo ra. Khám phá các ý tưởng nghiên cứu được tạo bằng The Alien Space of Science.
  • Hướng nghiên cứu. Điều hướng các cụm khái niệm có liên kết đến bài báo, tác giả và đề xuất.
  • Tài liệu nghiên cứu sẵn sàng cho tác nhân. Tìm kiếm các bài báo gần đây ở định dạng markdown kèm liên kết nguồn.
  • Thông tin chuyên sâu về nhà nghiên cứu. Theo dõi tác giả, ấn phẩm, hướng nghiên cứu, tác động và các nhà nghiên cứu liên quan.
  • Lập bản đồ toàn cảnh. So sánh địa điểm công bố, tổ chức, nhà nghiên cứu hàng đầu và hoạt động xuất bản.

Ví dụ, truy dấu một phần triển khai đến các mối quan hệ bài báo đã được ghi nhận:

Tìm bài báo đứng sau Dao-AILab/flash-attention. Cho biết mối liên hệ đã ghi nhận với kho lưu trữ và liên kết đến bài báo gốc.

Ví dụ này lần theo kho lưu trữ → mối quan hệ bài báo đã ghi nhận → bài báo và nguồn. Lacuna trả về mối quan hệ official_code_for đến FlashAttention, kèm liên kết đến kho lưu trữ và bài báo gốc. Kiểm tra các nguồn đó để xác minh mối liên hệ. Chạy ví dụ hoặc thực hiện theo notebook.

Cài đặt · Kỹ năng nghiên cứu · Sử dụng lần đầu · Công cụ · Tài liệu tham khảo API · Cấu hình

Cài đặt

Plugin tác nhân cho Cursor

Kho lưu trữ này cũng đóng gói kết nối MCP được lưu trữ và hai kỹ năng nghiên cứu dưới dạng Agent Plugin. Cursor hỗ trợ định dạng này.

Để thử cục bộ, sao chép kho lưu trữ này vào ~/.cursor/plugins/local/lacuna-research-mcp, tải lại Cursor và mở Customize để kiểm tra hai kỹ năng và kết nối MCP. Plugin kết nối đến https://lacuna.tiptreesystems.com/api/mcp; không cần cài Python cục bộ hoặc tài khoản Lacuna. Bật kết nối này hoặc máy chủ Lacuna được cấu hình thủ công để tránh trùng lặp công cụ.

Cursor và VS Code

Sử dụng máy chủ được lưu trữ mà không cần cài Python cục bộ hoặc tài khoản Lacuna:

Add to Cursor Add to VS Code

Các nút sẽ mở quy trình cài đặt MCP của trình soạn thảo. Xem lại URL máy chủ và xác nhận cài đặt. Sau khi kết nối, hãy đặt câu hỏi về FlashAttention ở trên; tác nhân của bạn sẽ sử dụng search_lacuna, get_resource và get_paper.

Cấu hình thủ công nếu liên kết cài đặt không mở

Trong Cursor, hợp nhất mục này vào mcpServers trong .cursor/mcp.json:

{
  "mcpServers": {
    "lacuna-research": {"url": "https://lacuna.tiptreesystems.com/api/mcp"}
  }
}

Trong VS Code, hợp nhất mục này vào servers trong .vscode/mcp.json:

{
  "servers": {
    "lacuna-research": {"type": "http", "url": "https://lacuna.tiptreesystems.com/api/mcp"}
  }
}

Giữ nguyên mọi mục máy chủ hiện có. Mở cài đặt MCP của trình soạn thảo để xác minh kết nối và bật các công cụ của Lacuna cho cuộc trò chuyện.

Máy chủ MCP được lưu trữ (kết nối Claude)

Sử dụng máy chủ MCP được lưu trữ của Lacuna với mọi ứng dụng khách hỗ trợ Streamable HTTP. Không cần cài đặt cục bộ.

https://lacuna.tiptreesystems.com/api/mcp

Trong Claude, mở Customize → Connectors → + Add → Add custom connector. Đặt tên là Lacuna Research, dán URL ở trên và chọn No sign in nếu được nhắc xác thực. Hoàn tất việc thêm kết nối, sau đó bật kết nối đó từ + → Connectors trong cuộc trò chuyện.

Với không gian làm việc Team và Enterprise, trước tiên phải thêm kết nối trong Organization settings → Connectors. Xem hướng dẫn thiết lập kết nối tùy chỉnh của Claude để biết chi tiết.

Cài đặt cục bộ

Cách dễ nhất để cài đặt Lacuna Research MCP là yêu cầu tác nhân lập trình của bạn, chẳng hạn như Codex hoặc Claude Code:

Cài đặt và cấu hình gói lacuna-research-mcp từ PyPI cho ứng dụng khách này.

Để thiết lập thủ công, hướng dẫn bên dưới sử dụng uvx để chạy bản phát hành mới nhất được gắn thẻ từ PyPI. Trước tiên hãy cài uv; Lacuna Research MCP yêu cầu Python 3.11 trở lên.

Codex

Thêm máy chủ bằng Codex CLI:

codex mcp add lacuna-research -- uvx lacuna-research-mcp

Hoặc thêm nội dung sau vào ~/.codex/config.toml (hoặc vào .codex/config.toml trong một dự án đáng tin cậy nếu chỉ thiết lập cho dự án):

[mcp_servers.lacuna-research]
command = "uvx"
args = ["lacuna-research-mcp"]

Chạy codex mcp list để xác minh máy chủ đã được cấu hình. Ứng dụng Codex, CLI và tiện ích mở rộng IDE dùng chung cấu hình này trên cùng một máy.

Claude Code

Thêm máy chủ cho tất cả dự án bằng Claude Code CLI:

claude mcp add --scope user lacuna-research -- uvx lacuna-research-mcp

Bỏ qua --scope user để chỉ thêm máy chủ cho dự án hiện tại. Hoặc thêm nội dung sau vào đối tượng cấp cao nhất mcpServers trong ~/.claude.json:

{
  "mcpServers": {
    "lacuna-research": {
      "type": "stdio",
      "command": "uvx",
      "args": ["lacuna-research-mcp"]
    }
  }
}

Chạy claude mcp get lacuna-research để xác minh máy chủ đã được cấu hình.

Claude Desktop

Mở Settings → Developer → Edit Config, sau đó thêm máy chủ bên dưới mcpServers trong claude_desktop_config.json:

{
  "mcpServers": {
    "lacuna-research": {
      "command": "uvx",
      "args": ["lacuna-research-mcp"]
    }
  }
}

Khởi động lại Claude Desktop sau khi lưu tệp.

Các ứng dụng khách MCP khác

Với mọi ứng dụng khách hỗ trợ máy chủ MCP stdio cục bộ, hãy dùng cấu hình tiêu chuẩn sau:

{
  "mcpServers": {
    "lacuna-research": {
      "command": "uvx",
      "args": ["lacuna-research-mcp"]
    }
  }
}

Lệnh độc lập

Cài đặt máy chủ MCP dưới dạng lệnh thường trực:

uv tool install lacuna-research-mcp
lacuna-research-mcp

Chạy máy chủ mà không cài đặt lệnh thường trực:

uvx lacuna-research-mcp

Nếu lệnh này thoát với lỗi bản phát hành tiền phát hành (ví dụ: "Python 3.14.0rc2 is a prerelease..."), uv của bạn đang dùng bản tiền phát hành Python 3.14 mà MCP SDK không hỗ trợ. Cập nhật uv (uv self update), cài đặt bản Python chính thức (uv python install 3.14), hoặc chạy uvx --python 3.13 lacuna-research-mcp.

Máy chủ HTTP tự lưu trữ

Để phục vụ các ứng dụng khách MCP từ xa qua Streamable HTTP thay vì stdio:

uvx lacuna-research-mcp --transport streamable-http --host 0.0.0.0 --port 8000

Điểm cuối là /mcp. Máy chủ không trạng thái và phản hồi bằng JSON, vì vậy có thể chạy phía sau bộ cân bằng tải mà không cần duy trì phiên. Với --host 127.0.0.1 mặc định, máy chủ chỉ chấp nhận các tiêu đề Host từ localhost, vì vậy hãy liên kết với địa chỉ không phải loopback khi proxy ngược chuyển tiếp tên máy chủ công khai.

Phiên bản phát triển mới nhất

PyPI chứa các bản phát hành được gắn thẻ. Để thử mã mới nhất từ nhánh main thay thế:

uvx --from git+https://github.com/tiptreesystems/lacuna-research-mcp.git lacuna-research-mcp

Phát triển cục bộ

Với uv:

git clone https://github.com/tiptreesystems/lacuna-research-mcp.git
cd lacuna-research-mcp
uv sync --extra dev
uv run lacuna-research-mcp

Với 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 .

Kỹ năng nghiên cứu

Máy chủ MCP cung cấp các công cụ. Các kỹ năng tùy chọn này hướng dẫn tác nhân cách sử dụng chúng cho hai tác vụ nghiên cứu:

Kỹ năngYêu cầu mẫu
Kiểm tra nghiên cứu trước đâyTrước khi triển khai gộp token cho một vision transformer, hãy tìm công trình gần nhất và một phương pháp cơ sở để đưa vào.
Truy dấu mã nguồn đến bài báoDao-AILab/flash-attention triển khai bài báo nào? Hãy cho biết mối quan hệ đã ghi nhận và các nguồn.

Trước tiên, hãy kết nối máy chủ MCP. Sau đó, khi đã cài Node.js 22.20 trở lên, chạy CLI kỹ năng từ dự án của bạn:

npx skills add tiptreesystems/lacuna-research-mcp

Chọn các kỹ năng và tác nhân bạn muốn dùng. Để chỉ cài quy trình truy dấu mã nguồn đến bài báo:

npx skills add tiptreesystems/lacuna-research-mcp --skill lacuna-code-to-paper

Theo mặc định, các kỹ năng được cài vào dự án hiện tại. Chúng không cài đặt hoặc cấu hình máy chủ MCP. Sau khi cài đặt, hãy bắt đầu phiên tác nhân mới nếu ứng dụng khách cần phiên đó để phát hiện các kỹ năng mới.

Sử dụng lần đầu

Đặt một trong các câu hỏi ở trên trong tác nhân đã kết nối, hoặc thử câu hỏi về danh sách tài liệu cần đọc:

Danh sách của tôi có FlashAttention và FlashAttention-2. Tôi nên đọc những phương pháp cơ sở hoặc hạn chế nào về attention ngữ cảnh dài?

Để chạy ví dụ có thể tái lập mà không cần khóa API mô hình, hãy sao chép kho lưu trữ này và chạy:

uv run examples/code_to_paper.py

Notebook giải thích từng bước và so sánh dấu vết nguồn với một lần tìm kiếm bài báo đơn lẻ. Để gọi công cụ trực tiếp, quy trình tương tự là:

  1. search_lacuna(query="FlashAttention", search_type="resource", resource_kind="codebase", limit=5)
  2. Kiểm tra danh tính kho lưu trữ, sau đó truyền ID được trả về cho get_resource(resource_id_or_url=...).
  3. Theo dõi publications[].paper_id được trả về bằng get_paper(artifact_id_or_url=..., view="context", figure_limit=0).

Để tìm kiếm tài liệu, hãy dùng search_lacuna(query="methods for detecting prompt injection attacks", search_type="paper", limit=5). Để tìm các đề xuất được tạo ra, hãy dùng search_lacuna(query="LLM jailbreak defense", search_type="hypothesis", limit=5) và theo dõi ID được trả về bằng get_hypothesis. Đề xuất được tạo ra là những ý tưởng cần nghiên cứu, không phải bằng chứng về các phát hiện đã công bố.

Giới thiệu về Lacuna

Quy trình của Lacuna đối chiếu các hồ sơ học thuật từ OpenAlex, OpenReview, DBLP và arXiv; trích xuất các yếu tố khái niệm từ nội dung bài báo rồi phân cụm chúng thành các hướng nghiên cứu (bài báo Lacuna); và lấy mẫu các đề xuất nghiên cứu mới từ những hướng đó bằng The Alien Space of Science. Bản đồ bao gồm hơn 2.29 triệu bài báo, 215,000+ hồ sơ tác giả, 28,000+ hướng nghiên cứu, 25,000+ đề xuất nghiên cứu và 5,300+ địa điểm công bố — đồng thời liên tục mở rộng khi các bài báo AI mới từ arXiv và những nguồn khác được nhập vào.

Phạm vi

Kho ngữ liệu bao quát nghiên cứu về học máy và AI: bài báo, hướng nghiên cứu, sản phẩm nghiên cứu của tác giả, địa điểm công bố, tổ chức, giả thuyết nghiên cứu được tạo ra và tài nguyên nghiên cứu (kho GitHub, tập dữ liệu và mô hình Hugging Face, hồ sơ Zenodo) được liên kết với bài báo. Kho ngữ liệu không chứa tiểu sử, tin tức hoặc nội dung web không thuộc nghiên cứu. Tác nhân nên trả lời các câu hỏi ngoài phạm vi đó bằng những nguồn khác.

Nội dung được cung cấp

  • search_lacuna Sử dụng điểm cuối công khai /api/v1/search của Lacuna để tra cứu hướng nghiên cứu, bài báo, tác giả, địa điểm xuất bản, tổ chức, giả thuyết và tài nguyên. Các lượt tìm kiếm bài báo tường minh (search_type="paper") sử dụng bộ xếp hạng từ vựng+kết hợp ngữ nghĩa trong môi trường production của máy chủ khi các đối số xếp hạng khác vẫn ở giá trị mặc định. Truyền search_type="hypothesis" để tìm kiếm giả thuyết. Truyền search_type="resource" để tìm kho mã, tập dữ liệu, mô hình và bản demo được liên kết với bài báo; có thể lọc tùy chọn bằng resource_kind (codebase, dataset, model, demo) và provider (github, huggingface, zenodo); ví dụ, resource_kind="dataset" tìm các tập dữ liệu benchmark. Tìm kiếm tài nguyên từ chối date_from/date_to, venue, sắp xếp theo năm và xếp hạng ngữ nghĩa (tài nguyên không có ngày tháng, địa điểm xuất bản hoặc embedding).
  • get_hypothesis(hypothesis_id_or_url, view="context") Giả thuyết/đề xuất. view="context" (mặc định) là ngữ cảnh đề xuất gọn, chỉ cần một lần truy xuất (tóm tắt, phần tóm lược, các hướng nghiên cứu được liên kết); view="full" trả về bản ghi phiên bản của máy chủ cùng lịch sử phiên bản và số lượng tín hiệu. Nội dung đề xuất nằm trong versions[].markdown.
  • get_direction(cluster_id_or_url, view="context") Hướng nghiên cứu/cụm. view="context" (mặc định) yêu cầu bản tóm tắt gọn, hướng đến tác nhân; view="full" trả về bản ghi cụm thô.
  • get_direction_papers(cluster_id_or_url, page, limit, view="compact") Các bài báo được phân trang và gắn với một hướng nghiên cứu. view="compact" (mặc định) trả về các hàng sẵn sàng trích dẫn (id, url, tiêu đề, năm, địa điểm xuất bản, một vài tác giả, đoạn trích phần tóm lược); view="full" trả về các bản ghi bài báo thô từ nguồn upstream.
  • get_paper(artifact_id_or_url, view="context", figure_limit=None, include_resources=True) Tra cứu bài báo cùng các phiên bản hiện có; dùng ID hiện vật của một phiên bản để đọc phiên bản đó. Các tài nguyên được liên kết (kho mã, tập dữ liệu, mô hình và bản demo) được đưa vào ngữ cảnh và chế độ xem đầy đủ theo mặc định; truyền include_resources=False để loại bỏ chúng. Các chế độ xem khác bỏ qua tùy chọn này. view="context" (mặc định) yêu cầu ngữ cảnh gọn, hướng đến tác nhân; các chế độ xem khác là "full", "preview", "blog", "figures", "concepts" hoặc "neighbors". Trong chế độ xem ngữ cảnh, figure_limit giới hạn số bản xem trước hình (mặc định của máy chủ là 3; truyền 0 để tắt bản xem trước nhưng vẫn giữ tín hiệu figures_truncated).
  • get_resource(resource_id_or_url) Tra cứu tài nguyên theo id (từ kết quả tìm kiếm tài nguyên hoặc danh sách resources của get_paper) hoặc URL /resource/... của Lacuna: URL bên ngoài, tóm tắt, các khía cạnh (tác vụ, phương thức, kích thước, giấy phép), chỉ số của nhà cung cấp, trích đoạn README/thẻ, các bài báo được liên kết trong publications (kèm paper_id và mối quan hệ như dataset_for), các hướng nghiên cứu liên quan và tài nguyên được đề cập.
  • Công cụ tác giả: get_author_context(…, view="context"), get_author_papers, get_author_directions và get_author_neighbors. Bắt đầu với get_author_context, chế độ này mặc định hiển thị dạng gọn, hướng đến tác nhân (giới hạn số bài báo và dùng danh sách impact_directions dễ đọc thay cho dữ liệu đo lường thô impact_clusters). Dùng các công cụ chuyên biệt về bài báo, hướng nghiên cứu và tác giả lân cận để phân trang qua các bộ sưu tập đó mà không lặp lại ngữ cảnh tác giả. view="full" trả về ngữ cảnh đầy đủ theo cấu trúc bị giới hạn bởi máy chủ (các bộ sưu tập vẫn bị giới hạn ở 100 mục). Truyền include_neighbors=true để chủ động đưa các tác giả tương tự vào kết quả; thao tác này có thể làm tăng đáng kể độ trễ của máy chủ.
  • Công cụ địa điểm xuất bản và tổ chức: get_venue_context(…, view="context"), get_institution_context(…, view="context"), get_institution_authors. Các công cụ ngữ cảnh mặc định dùng dạng gọn (danh sách bị giới hạn, loại bỏ các khối trùng lặp; địa điểm xuất bản giữ lại một phần hoạt động gần đây luôn bao gồm year được yêu cầu). Dùng get_institution_authors để phân trang qua danh sách tác giả đầy đủ của một tổ chức.

API được bao bọc

Công cụ MCPĐiểm cuối API của Lacuna
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 và provider được gửi dưới dạng các tham số truy vấn kind và provider lặp lại, đồng thời yêu cầu search_type="resource" hoặc "all". author_id_or_url giới hạn search_type="paper" ở một tác giả, chấp nhận ID tác giả thô hoặc URL trang tác giả của Lacuna. fields giới hạn/trọng số các trường văn bản dùng để xếp hạng từ vựng, ví dụ title^4,abstract, và chọn bộ xếp hạng từ vựng thử nghiệm; với lượt tìm kiếm bài báo được sắp xếp theo mức độ liên quan mặc định, tùy chọn này bỏ qua bộ xếp hạng từ vựng+kết hợp ngữ nghĩa trong môi trường production. Các trường được phép là title, abstract, summary, concepts, name, top_names, venue, description, topics, provider_key, paper_titles; mỗi trường chỉ hợp lệ với các loại có trường đó — title: bài báo/cụm/địa điểm xuất bản/giả thuyết/tài nguyên; description/topics/provider_key/paper_titles: tài nguyên; abstract/summary/concepts: bài báo; name: tác giả/tổ chức/địa điểm xuất bản; top_names: cụm/giả thuyết; venue: bài báo/địa điểm xuất bản (search_type="all" áp dụng cho tất cả). Trọng số phải thỏa mãn 0 < weight <= 100. Các trường không xác định, trọng số ngoài phạm vi, trường không tương thích với loại và fields kết hợp với ranking_profile="semantic" đều bị từ chối, vì nếu không máy chủ sẽ âm thầm loại bỏ, giới hạn hoặc bỏ qua chúng.)
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 (mặc định) hoặc ?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 (khi đặt &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; chế độ ngữ cảnh và đầy đủ gửi include_resources. URL trang Work (/work/<name>, /work/<slug>/wrk_…) hoặc id wrk_… dạng thuần được đọc qua GET /api/v1/context/work/{work_id_or_name} trước
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 chủ động yêu cầu các tác giả tương tự)
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" → cùng tuyến nhưng không có view
get_institution_context(institution_key_or_url, view="context")view="context" → GET /api/v1/context/institution/{ikey}?view=compact; view="full" → cùng tuyến nhưng không có view
get_institution_authors(institution_key_or_url, limit=50, offset=0)GET /api/v1/institutions/{ikey}/authors

Với các đối số id-hoặc-URL, hãy truyền id thô do search_lacuna trả về hoặc URL trang Lacuna tương ứng. MCP chuẩn hóa các trường url và *_url tương đối với Lacuna thành URL tuyệt đối, đồng thời chuyển các liên kết Lacuna thành URL tuyệt đối (bao gồm cả các trang /resource/...) bên trong các trường có tên summary_markdown, article_markdown, markdown, content hoặc description.

get_author_context bị giới hạn ở phía máy chủ trong cả hai chế độ xem. Chế độ xem gọn mặc định trả về bản tóm lược được tuyển chọn; view="full" trả về cấu trúc đầy đủ lớn hơn với các bộ sưu tập nhúng bị giới hạn ở 100 mục. Hãy dùng get_author_papers và get_author_directions thay vì cố phân trang các bộ sưu tập ngữ cảnh nhúng.

Mỗi lệnh gọi tìm kiếm bị giới hạn tối đa 50 kết quả; yêu cầu trang bài báo theo hướng nghiên cứu bị giới hạn tối đa 100 kết quả. Trong search_lacuna, date_from và date_to là các giới hạn ngày xuất bản bao gồm cả hai đầu mút. Các định dạng được chấp nhận là YYYY, YYYY-MM và YYYY-MM-DD; ví dụ, date_from="2020", date_to="2022-03" bao gồm các bài báo từ ngày 1 tháng 1 năm 2020 đến hết ngày 31 tháng 3 năm 2022.

search_lacuna cung cấp các cấu hình xếp hạng sau:

  • default / lexical Cấu hình mặc định cho mọi lượt tìm kiếm. Khi search_type="paper", sort="relevance" và fields chưa được đặt, cấu hình này sử dụng bộ xếp hạng từ vựng+kết hợp ngữ nghĩa trong môi trường production của máy chủ, với cơ chế dự phòng linh hoạt. Giá trị mặc định search_type="all" của MCP thay vào đó sử dụng xếp hạng từ vựng mặc định của máy chủ.
  • semantic Dùng để truy xuất bài báo dựa trên embedding. Truy vấn ngữ nghĩa bỏ qua nhánh xếp hạng từ vựng thông thường, nhưng máy chủ vẫn có thể bổ sung các kết quả khớp từ vựng chính xác với tiêu đề. Chỉ được hỗ trợ cho các lượt tìm kiếm paper và all (chỉ bài báo có embedding ngữ nghĩa), và không dùng cùng bộ lọc resource_kind/provider.
  • bm25_title_abstract / bm25 Dùng để khớp từ vựng, giới hạn trong tiêu đề và phần tóm lược. Bị từ chối đối với các lượt tìm kiếm author và institution (các bản ghi đó không có trường tiêu đề hoặc phần tóm lược).

Mọi lượt tìm kiếm đều dùng cấu hình mặc định của máy chủ trừ khi có ranking_profile. MCP từ chối các tổ hợp cấu hình/loại không được hỗ trợ vì nếu không máy chủ sẽ chuyển sang tìm kiếm chuỗi con và âm thầm bỏ qua cấu hình xếp hạng được yêu cầu.

sort chấp nhận relevance (mặc định), year_desc và year_asc. Không thể kết hợp sắp xếp theo năm với ranking_profile="semantic" — máy chủ sẽ âm thầm bỏ qua cách sắp xếp — nên MCP từ chối tổ hợp đó; với truy vấn vừa mới vừa liên quan, hãy giữ xếp hạng ngữ nghĩa và giới hạn độ mới bằng date_from/date_to.

Biến môi trường

  • LACUNA_SITE_URL Mặc định là https://lacuna.tiptreesystems.com
  • LACUNA_MCP_TIMEOUT Mặc định là 30
  • LACUNA_MCP_MAX_RETRIES Mặc định là 2; áp dụng cho thời gian chờ, lỗi truyền tải và các phản hồi HTTP 429, 502, 503 và 504.
  • LACUNA_MCP_USER_AGENT Mặc định là lacuna-research-mcp/{package_version}
  • LACUNA_MCP_BEARER_TOKEN Token bearer tùy chọn được gửi dưới dạng Authorization: Bearer ... cho các bản triển khai Lacuna riêng tư.
  • LACUNA_MCP_CLIENT_TOKEN Token tùy chọn được gửi dưới dạng X-Lacuna-Client-Token để máy chủ MCP được lưu trữ tự nhận diện với Lacuna nhằm áp dụng giới hạn tốc độ tìm kiếm riêng.
  • LACUNA_MCP_LOG_LEVEL Mặc định là WARNING (một trong các giá trị DEBUG, INFO, WARNING, ERROR, CRITICAL). Mặc định này giúp hoạt động thông thường không tạo nhiều log; chỉ hạ mức này khi gỡ lỗi, vì INFO/DEBUG cho phép HTTP client ghi toàn bộ URL yêu cầu — bao gồm cả chuỗi truy vấn tìm kiếm — ra stderr, nơi một số máy chủ MCP lưu lại.

Các biến môi trường được đọc một lần khi máy chủ MCP được tạo, hoặc trong lần gọi công cụ/API trực tiếp đầu tiên nếu mô-đun được nhập mà không gọi create_mcp().

Bố cục triển khai

Máy chủ là một bộ chuyển đổi MCP mỏng trên API HTTP của Lacuna. Phần triển khai được chia theo trách nhiệm:

  • lacuna_research_mcp/server.py Tạo ứng dụng MCPServer, đăng ký công cụ, dọn dẹp vòng đời và điểm vào CLI lacuna-research-mcp.
  • lacuna_research_mcp/tools.py Các hàm công cụ MCP. Mỗi công cụ chuẩn hóa đầu vào, gọi điểm cuối API Lacuna tương ứng thông qua các hàm trợ giúp client dùng chung và trả về dữ liệu tương thích với JSON.
  • lacuna_research_mcp/client.py Truy cập HTTP thời gian chạy tới Lacuna: httpx.AsyncClient gắn với event loop, xử lý thử lại, bọc lỗi, phân tích JSON, chuẩn hóa URL trong phản hồi và api_get/api_object/api_payload.
  • lacuna_research_mcp/config.py Hằng số thời gian chạy, RuntimeConfig, tạo user-agent cho gói và phân tích biến môi trường.
  • lacuna_research_mcp/ids.py Các hàm trợ giúp chấp nhận id thô hoặc URL trang Lacuna và trích xuất các đoạn đường dẫn API an toàn.
  • lacuna_research_mcp/normalize.py Xử lý hậu kỳ phản hồi cho URL Lacuna tương đối và liên kết Markdown.
  • lacuna_research_mcp/errors.py Loại ngoại lệ hướng đến người dùng dành cho các lỗi truy cập API Lacuna.

Ghi chú

  • get_paper và get_direction mặc định là view="context". Theo mặc định, các chế độ xem ngữ cảnh này yêu cầu các payload gọn nhẹ, hướng đến tác nhân của Lacuna để giữ cho phản hồi MCP nhỏ. Ngữ cảnh bài báo bao gồm summary_markdown khi có (nếu không thì dùng abstract), tác giả và hình; ngữ cảnh định hướng bao gồm summary_markdown, giới hạn số lượng bài báo/tác giả/định hướng liên quan và có dấu đánh dấu nội dung bị cắt bớt. Dùng view="full" khi bạn cần siêu dữ liệu thô, và các chế độ xem bài báo khác (preview, blog, figures, concepts, neighbors) khi bạn muốn xem riêng một tài nguyên con.
  • Một lượt tìm kiếm bài báo được sắp xếp theo mức độ liên quan, không có fields tùy chỉnh, sẽ mặc định dùng bộ xếp hạng từ vựng+kết hợp ngữ nghĩa trong môi trường production của máy chủ. Đặt ranking_profile="semantic" để truy xuất dựa trên embedding (có thể có lớp phủ tiêu đề chính xác) hoặc "bm25_title_abstract" để đối sánh từ vựng trên tiêu đề và tóm tắt.
  • Hầu hết các công cụ xem chi tiết đều chấp nhận ID được trả về từ tìm kiếm hoặc URL Lacuna tương ứng.
  • Các URL Lacuna tương đối trong trường phản hồi url/*_url và các trường có tên summary_markdown, article_markdown, markdown, content hoặc description được chuẩn hóa thành URL tuyệt đối.
  • Khóa địa điểm tổ chức và cơ sở là các mã băm không mang ý nghĩa hiển thị (d7bf22905bd6 là một ví dụ), không phải tên dễ đọc như icml. Trước tiên, hãy tìm khóa bằng search_lacuna(search_type="venue"), hoặc truyền URL trang /venue/....

Trích dẫn

Nếu bạn thấy công trình của chúng tôi hữu ích, hãy trích dẫn các bài báo làm nền tảng cho tính năng tạo đề xuất nghiên cứu và bản đồ nghiên cứu của Lacuna.

Tạo đề xuất nghiên cứu — 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}
}

Bản đồ nghiên cứu — 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}
}

Giấy phép

MIT. Xem LICENSE.