Lacuna Research MCP
PYPI · LACUNA-RESEARCH-MCP · SCANNED SEP 21
Search Lacuna's ML research graph for papers, directions, authors, venues, and hypotheses.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs setuptools.build_meta at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
- 1 of 32 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency32
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: no license is declared. See how to fix → Fail
- Actively maintained (last published 6 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability60
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2305 tokens (~177/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
- Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 13 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the Lacuna Research MCP server?
Lacuna Research MCP runs locally as a PyPI package, launched with uvx lacuna-research-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · lacuna-research-mcp
claude mcp add tiptreesystems-lacuna-research-mcp -- uvx lacuna-research-mcp
{
"mcpServers": {
"tiptreesystems-lacuna-research-mcp": {
"command": "uvx",
"args": [
"lacuna-research-mcp"
]
}
}
} {
"servers": {
"tiptreesystems-lacuna-research-mcp": {
"command": "uvx",
"args": [
"lacuna-research-mcp"
]
}
}
} codex mcp add tiptreesystems-lacuna-research-mcp -- uvx lacuna-research-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"tiptreesystems-lacuna-research-mcp": {
"type": "local",
"command": [
"uvx",
"lacuna-research-mcp"
],
"enabled": true
}
}
} openclaw mcp add tiptreesystems-lacuna-research-mcp --command uvx --arg lacuna-research-mcp
mcp_servers:
tiptreesystems-lacuna-research-mcp:
command: "uvx"
args: ["lacuna-research-mcp"] {
"McpServers": {
"tiptreesystems-lacuna-research-mcp": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"lacuna-research-mcp"
]
}
}
} assistant mcp add tiptreesystems-lacuna-research-mcp -t stdio -c uvx -a lacuna-research-mcp
{
"mcpServers": {
"tiptreesystems-lacuna-research-mcp": {
"command": "uvx",
"args": [
"lacuna-research-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 21 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Sept 26 +15
- Malware scan: unverified → pass ▲ security
- 18 Sept 26 −14
- Malware scan: pass → unverified ▼ security
- 17 Sept 26 −3
- Stability: pass → 0.80 functional
- 16 Sept 26 +16
- Malware scan: unverified → pass ▲ security
- Stability: 0.97 → pass security
- 15 Sept 26 0
- Schema quality: 1971 → 2305 ▼ functional
- Package version: 0.2.0 → 0.3.0 functional
- 14 Sept 26 −15
- Malware scan: pass → unverified ▼ security
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 21 Sept 2026 · Analysed pypi/lacuna-research-mcp@0.3.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | setuptools.build_meta |
Background: Why install scripts are a supply-chain risk →
Dependencies 32 packages
| Packages resolved | 32 |
|---|---|
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
get_author_context ~222
Fetch agent-oriented context for a Lacuna author. Author profiles describe research output (papers, directions, impact). A free-text `affiliation` field may be present but can be incomplete or outdated and may not represent current employment; the corpus has no biography or employment history, so do not infer those from this data. view selects the response shape: - "context" (default, recommended): Lacuna's compact author context — capped readable papers and an `impact_directions` list (named research directions) in place of the raw numeric `impact_clusters` telemetry, with the duplicated nested author record dropped server-side. - "full": the bounded full-shape author context (raw `impact_clusters`, nested author record; server collections are capped at 100). Set include_neighbors=True to include similar authors as named, linkable records. Neighbor computation may add significant server latency.
| Name | Type | Req | Description |
|---|---|---|---|
| author_id_or_url | string | yes | – |
| include_neighbors | boolean | – | – |
| view | string | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_author_directions ~44
Fetch one page of an author's named research directions.
| Name | Type | Req | Description |
|---|---|---|---|
| author_id_or_url | string | yes | – |
| limit | integer | – | – |
| offset | integer | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_author_neighbors ~46
Fetch one ranked page of neighboring/similar Lacuna authors.
| Name | Type | Req | Description |
|---|---|---|---|
| author_id_or_url | string | yes | – |
| limit | integer | – | – |
| offset | integer | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_author_papers ~48
Fetch one page of an author's papers, ordered from newest to oldest.
| Name | Type | Req | Description |
|---|---|---|---|
| author_id_or_url | string | yes | – |
| limit | integer | – | – |
| offset | integer | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_direction ~116
Fetch a Lacuna research direction/cluster. view selects the response shape (`context` typically contains the fields `full` provides plus the agent-oriented summary content): - "context" (default, recommended): compact agent-oriented summary with summary_markdown, capped papers/authors/related_directions, and truncation markers. - "full": raw upstream cluster record only. Cheaper than context when you only need basic cluster metadata.
| Name | Type | Req | Description |
|---|---|---|---|
| cluster_id_or_url | – | yes | – |
| view | string | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_direction_papers ~145
Fetch paginated papers associated with a Lacuna research direction/cluster. view selects the per-paper shape: - "compact" (default, recommended): citation-ready rows (id, url, title, year, venue, a few authors, abstract snippet). Drops the raw upstream info blob and levels.cluster internals that otherwise dominate the payload. - "full": the complete upstream paper records. Much larger; use only when you need the raw metadata (openalex/dblp/arxiv ids, etc.).
| Name | Type | Req | Description |
|---|---|---|---|
| cluster_id_or_url | – | yes | – |
| limit | integer | – | – |
| page | integer | – | – |
| view | string | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_hypothesis ~146
Fetch a generated novel ML/AI research proposal from Lacuna. Use after search_lacuna(search_type="hypothesis") to inspect a proposal. view selects the response shape: - "context" (default, recommended): compact single-fetch proposal context — summary_markdown, abstract, and linked directions, with the raw upstream record (whose markdown duplicates summary_markdown) dropped server-side. - "full": the server's version record, including version history and signal counts. Proposal bodies are in versions[].markdown. Use only when you need versions or signals.
| Name | Type | Req | Description |
|---|---|---|---|
| hypothesis_id_or_url | string | yes | – |
| view | string | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_institution_authors ~76
Fetch one page of authors affiliated with a Lacuna institution. Results are ordered by paper count. Use authors_total, authors_returned, authors_offset, and authors_truncated to page through the complete list.
| Name | Type | Req | Description |
|---|---|---|---|
| institution_key_or_url | string | yes | – |
| limit | integer | – | – |
| offset | integer | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_institution_context ~111
Fetch agent-oriented context for a Lacuna institution. view selects the response shape: - "context" (default, recommended): compact institution context — capped top authors with the duplicated institution block dropped server-side. - "full": the complete institution context shape (duplicated institution record and a bounded author list with explicit truncation metadata). Use get_institution_authors to page through the complete author list.
| Name | Type | Req | Description |
|---|---|---|---|
| institution_key_or_url | string | yes | – |
| view | string | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_paper ~319
Fetch a Lacuna paper by artifact id or paper URL. For a Work search result, use get_work first; pass a version's artifact_id here to read that specific paper. include_resources adds public code repositories in context and full views by default. Pass False to omit them; other views ignore this option. view selects the response shape. `context` requests Lacuna's compact agent-oriented context by default, while the four single-field views (blog/figures/concepts/neighbors) return isolated sub-resources: - "context" (default, recommended): agent-oriented summary with summary_markdown, authors, and a small figure preview. Start here for almost everything. - "full": raw upstream paper record only. Cheaper than context when you only need basic metadata. - "preview": compact card with unique fields `excerpt`, `excerpt_kind`, `bookmarked`. Use for citation-style display. - "blog": just the summary_markdown content, without the rest of the context envelope. - "figures": just the figures list. - "concepts": just the concepts list. - "neighbors": just the related-papers list. figure_limit (context view only) caps the figure preview (server default 3). Pass 0 to suppress figure previews while keeping a `figures_truncated` signal.
| Name | Type | Req | Description |
|---|---|---|---|
| artifact_id_or_url | string | yes | – |
| figure_limit | – | – | – |
| include_resources | boolean | – | – |
| view | string | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_venue_context ~185
Fetch agent-oriented context for a Lacuna venue, optionally scoped to a year. Venue keys are opaque hashes (e.g. "d7bf22905bd6"), never human-readable names like "icml". Find the key first via search_lacuna(search_type="venue") or pass a /venue/... page URL. view selects the response shape: - "context" (default, recommended): compact venue context — capped top authors, non-placeholder top clusters, and a recent-activity slice (the requested `year` is always included), with the duplicated venue block and full year histogram dropped server-side. - "full": the complete venue context (full year histogram, all top authors/ clusters, duplicated venue record).
| Name | Type | Req | Description |
|---|---|---|---|
| venue_key_or_url | string | yes | – |
| view | string | – | – |
| year | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_work ~186
Fetch a Lacuna Work by Work ID or URL returned by search. A Work groups versions of the same research. Content comes from its selected version; versions lists the available papers and their artifact IDs. Use get_paper with a version's artifact_id to inspect that paper. include_resources adds public code repositories across all versions by default. Pass False to omit them. view="context" returns compact context with a summary, authors, figure preview, and versions. view="full" also includes concepts, related papers, all figures, and the selected paper record. figure_limit (context view only) caps the figure preview (server default 3). Pass 0 to suppress figure previews while keeping a figures_truncated signal.
| Name | Type | Req | Description |
|---|---|---|---|
| figure_limit | – | – | – |
| include_resources | boolean | – | – |
| view | string | – | – |
| work_id_or_url | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
search_lacuna ~416
Search Lacuna's ML/AI corpus for Works, papers, research directions, authors, venues, institutions, and novel research hypotheses. For novel ML/AI research ideas, use search_type="hypothesis", then get_hypothesis on promising results. search_type accepts all, cluster/direction, work, paper, author, institution, venue, or hypothesis/proposal; singular and plural aliases are accepted. Use work for research grouped across versions, then get_work for details. Paper searches can also return Work results. Use other sources for biographies, news, and non-research web content. ranking_profile accepts: - default / lexical (default): production ranking; relevance-sorted paper searches combine lexical and semantic retrieval when fields is unset. - semantic: conceptual paper retrieval; supported for work, paper, and all. - bm25_title_abstract / bm25: lexical paper matching over those fields. sort accepts relevance (default), year_desc, or year_asc. Semantic ranking cannot use year sorting; constrain recency with date_from/date_to instead. date_from and date_to are inclusive YYYY, YYYY-MM, or YYYY-MM-DD bounds. author_id_or_url constrains a paper search to one author. Pass an author ID or Lacuna author page URL; it requires search_type="paper". fields optionally restricts and weights lexical fields, for example "title^4,abstract". Supported names are title, abstract, summary, concepts, name, top_names, and venue. Fields must exist on the selected search_type, weights must be within 0 < weight <= 100, and fields cannot be combined with semantic ranking.
| Name | Type | Req | Description |
|---|---|---|---|
| author_id_or_url | – | – | – |
| date_from | – | – | – |
| date_to | – | – | – |
| fields | – | – | – |
| limit | integer | – | – |
| offset | integer | – | – |
| query | string | yes | – |
| ranking_profile | – | – | – |
| search_type | string | – | – |
| sort | string | – | – |
| venue | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
What is the Lacuna Research MCP server?
Lacuna Research MCP is listed in the public MCP registry as io.github.tiptreesystems/lacuna-research-mcp. Search Lacuna's ML research graph for papers, directions, authors, venues, and hypotheses. This page covers its PyPI package (lacuna-research-mcp).
Is the Lacuna Research MCP server safe to use?
Lacuna Research MCP scores 76 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Lacuna Research MCP server expose?
Lacuna Research MCP exposes 13 tools: search_lacuna, get_hypothesis, get_direction, get_direction_papers, get_work, and 8 more. Their descriptions and schemas cost roughly 2,060 tokens of context every time the server is loaded.
Is the Lacuna Research MCP server still maintained?
Lacuna Research MCP is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.