Skip to main content
Glama

Lacuna Research MCP

๐Ÿ”ฌ Ground your coding agent in novel ideas, papers, and the ML landscape

Lacuna Research MCP gives AI researchers' coding agents:

  • Novel research proposals. Explore novel research ideas generated with Alien Science.

  • Research directions. Navigate concept clusters with linked papers, authors, and proposals.

  • Agent-ready literature. Search recent papers in markdown with source links.

  • Researcher intelligence. Trace authors, publications, directions, impact, and related researchers.

  • Landscape mapping. Compare venues, institutions, leading researchers, and publication activity.

Lacuna, built by Tiptree Systems, is a research map of machine learning: a heterogeneous knowledge graph linking papers, research directions, authors, venues, institutions, and generated research proposals, with a source trail from every derived object back to the exact paper and page that produced it. Its pipeline reconciles scholarly records from OpenAlex, OpenReview, DBLP, and arXiv; extracts concept elements from paper text and clusters them into research directions (Lacuna paper); and samples novel research proposals from those directions with Alien Science. The map spans more than 730,000 papers, 190,000+ author profiles, 38,000+ research directions, and 3,000+ research proposals built from over 15 million concept elements โ€” and it grows continuously as new arXiv and other AI papers are ingested.

Install ยท First use ยท Tools ยท API reference ยท Configuration

Install

The easiest way to install Lacuna Research MCP is to ask your coding agent, such as Codex or Claude Code:

Install and configure the lacuna-research-mcp package from PyPI for this client.

For manual setup, the instructions below use uvx to run the latest tagged release from PyPI. Install uv first; Lacuna Research MCP requires Python 3.11 or newer.

Codex

Add the server with the Codex CLI:

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

Alternatively, add the following to ~/.codex/config.toml (or to .codex/config.toml in a trusted project for project-only setup):

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

Run codex mcp list to verify the server is configured. The Codex app, CLI, and IDE extension share this configuration on the same machine.

Claude Code

Add the server for all of your projects with the Claude Code CLI:

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

Omit --scope user to add it only to the current project. Alternatively, add the following under the top-level mcpServers object in ~/.claude.json:

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

Run claude mcp get lacuna-research to verify the server is configured.

Claude Desktop

Open Settings โ†’ Developer โ†’ Edit Config, then add the server under mcpServers in claude_desktop_config.json:

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

Restart Claude Desktop after saving the file.

Other MCP clients

For any client that supports local stdio MCP servers, use this standard configuration:

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

Standalone command

Install the MCP server as a persistent command:

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

Run it without installing a persistent command:

uvx lacuna-research-mcp

Latest development version

PyPI contains tagged releases. To try the latest code from the main branch instead:

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

Local development

With uv:

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

With 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 .

Related MCP server: scholar-memory

First use

After connecting the server, call:

  1. search_lacuna(query="LLM jailbreak defense", search_type="hypothesis", limit=10)

  2. search_lacuna(query="methods for detecting prompt injection attacks", search_type="papers", limit=10) (production lexical+semantic paper ranking by default)

  3. get_hypothesis(hypothesis_id_or_url="bd35de182c2325ae")

  4. get_paper(artifact_id_or_url="art_79c57fbfec094f26b79c422cf08fed34") (defaults to view="context")

  5. get_direction(cluster_id_or_url=25108) (defaults to view="context")

Scope

The corpus covers machine learning and AI research: papers, research directions, authors' research output, venues, institutions, and generated research hypotheses. It does not contain biographies, news, or non-research web content. Agents should answer questions outside that scope from other sources.

What it exposes

  • search_lacuna Uses Lacuna's public /api/v1/search endpoint for directions, papers, authors, venues, institutions, and hypotheses. Explicit paper searches (search_type="paper") use the server's production lexical+semantic ranker when the other ranking arguments remain at their defaults. Pass search_type="hypothesis" (or "hypotheses" / "proposal" / "proposals") for hypothesis search.

  • get_hypothesis(hypothesis_id_or_url, view="context") Hypothesis/proposal. view="context" (default) is a compact single-fetch proposal context (summary, abstract, linked directions); view="full" returns the server's version record with version history and signal counts. Proposal bodies are in versions[].markdown.

  • get_direction(cluster_id_or_url, view="context") Research direction/cluster. view="context" (default) requests the compact agent-oriented summary; view="full" returns the raw cluster record.

  • get_direction_papers(cluster_id_or_url, page, limit, view="compact") Paginated papers attached to a direction. view="compact" (default) returns citation-ready rows (id, url, title, year, venue, a few authors, abstract snippet); view="full" returns the raw upstream paper records.

  • get_paper(artifact_id_or_url, view="context", figure_limit=None) Paper lookup. view="context" (default) requests the compact agent-oriented context; other views are "full", "preview", "blog", "figures", "concepts", or "neighbors". In context view, figure_limit caps the figure preview (server default 3; pass 0 to suppress previews while keeping a figures_truncated signal).

  • Author tools: get_author_context(โ€ฆ, view="context"), get_author_papers, get_author_directions, and get_author_neighbors. Start with get_author_context, which defaults to the compact agent-oriented view (capped papers plus a readable impact_directions list instead of raw impact_clusters telemetry). Use the dedicated papers, directions, and neighbors tools to page through those collections without repeating the author context. view="full" returns the server-bounded full-shape context (collections remain capped at 100). Pass include_neighbors=true to explicitly include similar authors; this may add significant server latency.

  • Venue and institution tools: get_venue_context(โ€ฆ, view="context"), get_institution_context(โ€ฆ, view="context"), get_institution_authors. Context tools default to compact (capped lists, duplicated blocks dropped; venue keeps a recent-activity slice that always includes the requested year). Use get_institution_authors to page through an institution's complete author list.

Wrapped APIs

MCP tool

Lacuna API endpoint

search_lacuna(query, search_type, limit, offset, date_from, date_to, venue, sort, ranking_profile, fields)

GET /api/v1/search (fields restricts/weights the text fields used for lexical ranking, e.g. title^4,abstract, and selects the experimental lexical ranker; for a default relevance-sorted paper search, this bypasses the production lexical+semantic ranker. Allowed fields are title, abstract, summary, concepts, name, top_names, venue, each valid only for the types that carry it โ€” title: paper/cluster/venue/hypothesis; abstract/summary/concepts: paper; name: author/institution/venue; top_names: cluster/hypothesis; venue: paper/venue (search_type="all" spans all). Weights must satisfy 0 < weight <= 100. Unknown fields, out-of-range weights, type-incompatible fields, and fields combined with ranking_profile="semantic" are rejected, since the server would otherwise silently drop, cap, or ignore them.)

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 (default) or ?view=complete

get_paper(artifact_id_or_url, view="context", figure_limit=None)

view="context" โ†’ GET /api/v1/context/paper/{artifact_id}?view=compact (&figure_limit=N when set); view="full" โ†’ GET /api/v1/papers/{artifact_id}; view="preview" โ†’ โ€ฆ/preview; view="blog" โ†’ โ€ฆ/blog; view="figures" โ†’ โ€ฆ/figures; view="concepts" โ†’ โ€ฆ/concepts; view="neighbors" โ†’ โ€ฆ/neighbors

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 explicitly requests similar authors)

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" โ†’ same route without view

get_institution_context(institution_key_or_url, view="context")

view="context" โ†’ GET /api/v1/context/institution/{ikey}?view=compact; view="full" โ†’ same route without view

get_institution_authors(institution_key_or_url, limit=50, offset=0)

GET /api/v1/institutions/{ikey}/authors

For id-or-URL arguments, pass either the raw id returned by search_lacuna or the corresponding Lacuna page URL. The MCP normalizes Lacuna-relative url and *_url fields to absolute URLs, and it also absolutifies Lacuna links inside fields named summary_markdown, article_markdown, markdown, content, or description.

get_author_context is bounded server-side in both views. The default compact view returns a curated briefing; view="full" returns the larger complete shape with embedded collections capped at 100. Use get_author_papers and get_author_directions rather than trying to page embedded context collections.

Search requests are capped at 50 results per call, and direction-paper page requests are capped at 100 results per call. In search_lacuna, date_from and date_to are inclusive publication-date bounds. Accepted formats are YYYY, YYYY-MM, and YYYY-MM-DD; for example, date_from="2020", date_to="2022-03" includes papers from January 1, 2020 through March 31, 2022.

search_lacuna exposes these ranking profiles:

  • default / lexical The default profile for all searches. With search_type="paper", sort="relevance", and fields unset, it uses the server's production lexical+semantic ranker with graceful fallback. The MCP's default search_type="all" uses the server's default lexical ranking instead.

  • semantic Use for embedding-based paper retrieval. The semantic query omits the normal lexical ranking leg, but the server can still overlay exact-title lexical matches. Only supported for paper and all searches (only papers have semantic embeddings).

  • bm25_title_abstract / bm25 Use for lexical matching constrained to title and abstract. Rejected for author and institution searches (those records have no title or abstract fields).

All searches use the server default unless ranking_profile is provided. The MCP rejects unsupported profile/type combinations because the server would otherwise fall back to substring search and silently ignore the requested ranking profile.

sort accepts relevance (default), year_desc, and year_asc. Year sorts cannot be combined with ranking_profile="semantic" โ€” the server would silently ignore the sort โ€” so the MCP rejects that combination; for recent-and-relevant queries, keep semantic ranking and constrain recency with date_from/date_to instead.

Environment variables

  • LACUNA_SITE_URL Defaults to https://lacuna.tiptreesystems.com

  • LACUNA_MCP_TIMEOUT Defaults to 30

  • LACUNA_MCP_MAX_RETRIES Defaults to 2; applies to timeouts, transport errors, and HTTP 429, 502, 503, and 504 responses.

  • LACUNA_MCP_USER_AGENT Defaults to lacuna-research-mcp/{package_version}

  • LACUNA_MCP_BEARER_TOKEN Optional bearer token sent as Authorization: Bearer ... for private Lacuna deployments.

  • LACUNA_MCP_LOG_LEVEL Defaults to WARNING (one of DEBUG, INFO, WARNING, ERROR, CRITICAL). The default keeps normal operation quiet; lower it only for debugging, since INFO/DEBUG let the HTTP client log full request URLs โ€” including the search query string โ€” to stderr, which some MCP hosts retain.

Environment variables are read once when the MCP server is created, or on the first direct tool/API call if the module is imported without calling create_mcp().

Implementation layout

The server is a thin MCP adapter over Lacuna's HTTP API. The implementation is split by responsibility:

  • lacuna_research_mcp/server.py MCPServer app creation, tool registration, lifespan cleanup, and the lacuna-research-mcp CLI entrypoint.

  • lacuna_research_mcp/tools.py MCP tool functions. Each tool normalizes its inputs, calls the matching Lacuna API endpoint through the shared client helpers, and returns JSON-compatible data.

  • lacuna_research_mcp/client.py Runtime HTTP access to Lacuna: the event-loop-bound httpx.AsyncClient, retry handling, error wrapping, JSON parsing, URL normalization on responses, and api_get/api_object/api_payload.

  • lacuna_research_mcp/config.py Runtime constants, RuntimeConfig, package user-agent construction, and environment parsing.

  • lacuna_research_mcp/ids.py Helpers that accept either raw ids or Lacuna page URLs and extract safe API path segments.

  • lacuna_research_mcp/normalize.py Response post-processing for relative Lacuna URLs and markdown links.

  • lacuna_research_mcp/errors.py User-facing exception type for Lacuna API access failures.

Notes

  • get_paper and get_direction default to view="context". These context views request Lacuna's compact agent-oriented payloads by default to keep MCP responses small. Paper context includes summary_markdown when available (otherwise abstract), authors, and figures; direction context includes summary_markdown, capped papers/authors/related directions, and truncation markers. Use view="full" when you need the raw metadata, and the other paper views (preview, blog, figures, concepts, neighbors) when you want one isolated sub-resource.

  • An explicit relevance-sorted paper search with no custom fields defaults to the server's production lexical+semantic ranker. Set ranking_profile="semantic" for embedding-based retrieval (with a possible exact-title overlay) or "bm25_title_abstract" for title-and-abstract lexical matching.

  • Search type aliases are normalized client-side, so papers, directions, and hypotheses are accepted and mapped to the server's singular values.

  • Most detail tools accept either the id returned by search or the corresponding Lacuna URL.

  • Relative Lacuna URLs in url/*_url response fields and fields named summary_markdown, article_markdown, markdown, content, or description are normalized to absolute URLs.

  • Venue and institution keys are opaque hashes (for example d7bf22905bd6), never human-readable names like icml. Find the key with search_lacuna(search_type="venue") first, or pass a /venue/... page URL.

Citation

If you find our work helpful, feel free to cite the papers behind Lacuna's research-proposal generation and research map.

Research-proposal generation โ€” Alien Science

@inproceedings{artiles2026alien,
  title     = {Alien Science: Sampling Coherent but Cognitively Unavailable Research Directions from Idea Atoms},
  author    = {Artiles, Alejandro H. and Weiss, Martin and Brinkmann, Levin and Goyal, Anirudh and Rahaman, Nasim},
  booktitle = {ICLR 2026 Workshop on Post-AGI Science and Society},
  year      = {2026},
  url       = {https://openreview.net/forum?id=XZWkDET1ia}
}

Research map โ€” 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}
}

License

MIT. See LICENSE.

Available Tools

12 tools
get_author_contextA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNocontext
author_id_or_urlYes
include_neighborsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate read-only, idempotent, non-destructive behavior. The description adds valuable context: caveats about affiliation data being incomplete/outdated, no biography/employment history, latency implications of include_neighbors, and server-side collection caps (100). This significantly exceeds what annotations alone provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a lead sentence, a data-caveat paragraph, and a bulleted view explanation. Every section earns its place, though the affiliation caveat could be slightly more concise without losing meaning. It is appropriately sized for the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for this tool's complexity: it explains response shape variants, data reliability limits, server caps, and neighbor latency. Since an output schema exists, it need not describe return fields in detail. No major gaps are evident.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate. It thoroughly explains the 'view' parameter with distinct response shapes and the 'include_neighbors' parameter with latency trade-offs. The 'author_id_or_url' parameter is self-explanatory but lacks format details, which is a minor gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Fetch agent-oriented context for a Lacuna author' with a specific verb and resource. It distinguishes from sibling tools by describing a composite context (papers, directions, impact) rather than a single aspect like papers or directions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool, especially through the view parameter choices ('context' recommended vs 'full') and the include_neighbors option. However, it does not explicitly name alternative sibling tools for specific needs, though the context implies this is the go-to for a holistic author profile.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_author_directionsA
Read-onlyIdempotent

Fetch one page of an author's named research directions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
author_id_or_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already communicate read-only, idempotent, non-destructive behavior. The description adds the useful behavioral detail that only one page is returned at a time, and that directions are 'named', which is not captured by annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with the verb first and no unnecessary words. It earns its place entirely, achieving high clarity in minimal space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple paginated read-only tool with a full output schema and robust annotations, the description covers the core purpose and pagination. Missing details include parameter clarification and explicit sibling differentiation, but the basic usage is clear enough for straightforward selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must compensate. It only hints at limit/offset via 'one page', adding some meaning, but does not explain author_id_or_url or the exact semantics of limit/offset beyond naming. This is minimal compensation for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches one page of an author's named research directions, using a specific verb and resource. It distinguishes itself from siblings like get_direction (a single direction) and get_author_papers (papers) by focusing on the author's directions with pagination.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The pagination hint 'one page' implies a use case for paging through results, but the description gives no explicit when-to-use vs alternatives, no exclusions, and does not mention sibling tools. Usage context is implied rather than directly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_author_neighborsA
Read-onlyIdempotent

Fetch one ranked page of neighboring/similar Lacuna authors.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
author_id_or_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds 'one ranked page' to indicate pagination and 'neighboring/similar' to clarify the concept, but it does not disclose additional behavioral traits such as ranking criteria or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence with the action verb first and no unnecessary words. It is concise, front-loaded, and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although the tool has an output schema and safety annotations, the description lacks details on what qualifies as a 'neighbor' or how ranking works. It also does not explain the required input parameter, leaving some contextual gaps for an agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the three parameters (author_id_or_url, limit, offset). While parameter names are somewhat self-explanatory, the description fails to compensate for the lack of schema descriptions, adding no extra meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch') and the resource ('neighboring/similar Lacuna authors'), distinguishing it from sibling tools like get_author_papers or get_author_context. The phrase 'one ranked page' also signals pagination, making the purpose specific and clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving similar authors but does not explicitly state when to use it or contrast with alternatives. No exclusions or alternative tool mentions are provided, so guidance is limited to the implied context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_author_papersA
Read-onlyIdempotent

Fetch one page of an author's papers, ordered from newest to oldest.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
author_id_or_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, non-destructive, and idempotent behavior. The description adds valuable behavioral context by specifying that results are paginated ('one page') and ordered newest-to-oldest, which is not captured in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. It efficiently conveys the action, resource, pagination scope, and ordering.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core purpose and one behavioral detail, but it lacks explicit usage guidelines and parameter explanations. The presence of an output schema and clear annotations partially offsets these gaps, making it minimally viable but not fully comprehensive for a tool with 3 parameters and several siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description needed to compensate by explaining the parameters. It only implies pagination ('one page') without naming limit/offset or explaining their semantics, and it does not clarify the format or valid values for author_id_or_url beyond its name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Fetch' and clearly identifies the resource as 'an author's papers', with pagination ('one page') and ordering ('newest to oldest'). This distinguishes it from sibling tools like get_paper (single paper) and get_direction_papers (papers for a direction).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that the tool is for retrieving an author's papers, but it does not explicitly state when to use it over alternatives such as get_author_directions or get_direction_papers. There is no when-not-to-use guidance or mention of alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_directionA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNocontext
cluster_id_or_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description details the two response shapes: 'context' contains summary_markdown and truncation markers, while 'full' is the raw cluster record and cheaper. This adds meaningful behavioral context about what the agent will receive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the core purpose, then structured with a clear explanation of the view parameter and its two distinct options. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and simple parameter set, the description covers the essential purpose, the only configurable parameter's behavior, and the trade-offs between views. It is sufficient for an agent to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description thoroughly explains the 'view' parameter, including the exact semantics and trade-offs of 'context' vs 'full'. The 'cluster_id_or_url' parameter is self-evident from its name and required status, so the description compensates well despite 0% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch a Lacuna research direction/cluster,' using a specific verb and resource. It differentiates from siblings by focusing on fetching a single direction vs search or related-entity tools, and further defines the view options that shape the response.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have a cluster_id_or_url and provides guidance on choosing view ('context' recommended, 'full' for basic metadata). However, it does not explicitly state when to prefer this tool over alternatives like search_lacuna or get_direction_papers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_direction_papersA
Read-onlyIdempotent

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.).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
viewNocompact
limitNo
cluster_id_or_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent, and the description adds valuable behavioral detail: payload shapes, size implications, and what the compact view discards (raw blob, cluster internals). This goes beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with a clear opening sentence, and uses bulleted view details. No redundant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only paginated fetch with an output schema, the description covers the two views and their tradeoffs, and mentions pagination. Minor gaps: no explicit discussion of default page/limit behavior, but those are in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description explains the view parameter in depth but leaves cluster_id_or_url, page, and limit to their schema names. The required parameter's semantics are implied by the tool name but not elaborated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches paginated papers for a Lacuna research direction/cluster, using a specific verb and resource. It distinguishes from siblings like get_paper (single paper) and get_author_papers (author-specific papers).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context for the view parameter, recommending compact by default and reserving full for raw metadata needs. It does not explicitly name alternative tools, but the purpose is unambiguous enough for an agent to infer when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_hypothesisA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNocontext
hypothesis_id_or_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral detail beyond the annotations by explaining what each view returns, including that the 'context' view drops the raw upstream record server-side and that 'full' includes version history and signal counts. It discloses side effects (dropping duplicate markdown) and the content shape, with no contradiction to the readOnlyHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: a one-sentence purpose, a usage note, and a bulleted list of views. Every sentence adds value, and the front-loaded structure makes it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only two parameters and an output schema, the description covers the essential decision points: what each view returns, which is default/recommended, and the scenario for 'full'. It is complete for an agent to select and invoke the tool correctly, and the output schema covers return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The 'view' parameter is thoroughly explained with its two enum values, default, and recommendation. The 'hypothesis_id_or_url' parameter is not explicitly described beyond its name and the note that it is used after search_lacuna, which is somewhat implicit given the 0% schema description coverage. However, the name is self-explanatory and the usage guidance fills in the context, so it is only slightly below full compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear, specific verb+resource statement: 'Fetch a generated novel ML/AI research proposal from Lacuna.' It distinguishes the tool from siblings by focusing on proposals and explicitly ties it to search_lacuna, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit when-to-use guidance: 'Use after search_lacuna(search_type="hypothesis") to inspect a proposal.' It also explains when to choose each view, recommending 'context' by default and reserving 'full' for cases needing versions or signals, which is strong usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_institution_authorsA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
institution_key_or_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavioral context beyond annotations: it discloses that results are one page at a time, ordered by paper count, and how pagination works via output fields. This is sufficient transparency for a read-only tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences, front-loaded with the core purpose. Every sentence earns its place: purpose, ordering, and pagination instructions. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (3 params, no nested objects, output schema present), the description covers the essential points: what it fetches, ordering, and pagination. It could add a note on what institution_key_or_url refers to, but the parameter name and sibling tools provide enough context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does provide pagination-related context but does not explicitly explain the limit/offset parameters or the form of institution_key_or_url. The parameter names are fairly self-explanatory, and the output-pagination fields indirectly imply usage, but the description could be more explicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Fetch') and resource ('one page of authors affiliated with a Lacuna institution'), clearly distinguishing it from sibling tools like get_institution_context or get_author_papers. The scope ('one page') and ordering ('by paper count') are also stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear in-tool guidance: it tells the user how to page through results using authors_total, authors_returned, authors_offset, and authors_truncated. It does not explicitly mention alternatives/exclusions, but given no sibling tool serves the same purpose, the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_institution_contextA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNocontext
institution_key_or_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly/openWorld/idempotent, and the description adds meaningful behavioral context: the 'context' view returns a 'capped top authors' list with 'the duplicated institution block dropped server-side,' while 'full' includes 'a bounded author list with explicit truncation metadata.' This goes beyond just stating the operation and clarifies response shape differences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the purpose in the first sentence. Bullet points efficiently explain the two views, and the final sentence directs to a sibling tool. No filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and annotations cover safety, the description is largely complete: it explains the two response shapes, provides an alternative for full author listing, and gives a default recommendation. The only gap is the lack of detail on the institution identifier parameter, but overall the tool is well-specified for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate. The 'view' parameter is thoroughly explained with enum meanings and recommendations, but the required 'institution_key_or_url' parameter lacks any detail (e.g., format or example) beyond its self-descriptive name. The description mentions 'a Lacuna institution' but does not explicitly define what a key or URL looks like.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb + resource: 'Fetch agent-oriented context for a Lacuna institution,' clearly distinguishing it from sibling tools like get_author_context and get_venue_context. It further differentiates this tool from get_institution_authors by noting that the latter is for paging through the complete author list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly recommends the default 'context' view and explains when to use it vs. the 'full' view. It also provides an explicit alternative: 'Use get_institution_authors to page through the complete author list,' which tells the agent when NOT to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_paperA
Read-onlyIdempotent

Fetch a Lacuna paper by artifact id or paper URL.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNocontext
figure_limitNo
artifact_id_or_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive. The description adds behavioral context beyond these: it details the response shapes for each view, explains the `figures_truncated` signal, and describes the effect of passing 0 to figure_limit. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with a clear lead sentence, a summary of view categories, and a bulleted list that makes each view self-explanatory. Every sentence adds value; no filler or redundancy. The length is justified by the complexity of the view options.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given three parameters, one enum, and an output schema, the description covers all relevant aspects: how to identify the paper, which view to use for what purpose, and how the optional parameter behaves. The presence of an output schema does not reduce the need for the view explanations, and the description provides them completely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden. It thoroughly explains `artifact_id_or_url` (paper identifier), enumerates and explains every `view` enum value, and defines `figure_limit` (caps figure preview, server default 3, 0 suppresses with signal). This goes far beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Fetch a Lacuna paper by artifact id or paper URL.' It clearly distinguishes from sibling tools by specifying the Lacuna paper entity and the identifier format, and enumerates distinct response views that clarify scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit usage guidance: 'Start here for almost everything' for context view, 'Cheaper than context when you only need basic metadata' for full view, and 'Use for citation-style display' for preview. This directly helps an agent select the appropriate view and implicitly when to use this tool (when an artifact ID/URL is available).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_venue_contextA
Read-onlyIdempotent

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNocontext
yearNo
venue_key_or_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), it discloses that venue keys are opaque hashes, that the context view drops duplicated venue blocks and full histogram, and that the requested year is always included. This adds meaningful behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and every sentence provides useful information, with the key format and view modes clearly explained. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers key sourcing, view differences, and year inclusion. The output schema presumably documents return fields, so it's not necessary to explain them. Minor ambiguity in 'agent-oriented context' and lack of explicit year range, but overall complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description compensates well: it explains venue_key_or_url format and how to find it, and details view options. Year gets partial treatment as 'optionally scoped to a year' but lacks explicit type/range, though schema provides the type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it fetches agent-oriented context for a Lacuna venue, with a specific verb and resource. It distinguishes itself from sibling tools by focusing on venue context, and provides guidance on venue keys.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains how to obtain the venue key via search_lacuna and recommends the 'context' view, but lacks explicit when-not-to-use or alternative tool pointers beyond that.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_lacunaA
Read-onlyIdempotent

Search Lacuna's ML/AI corpus for 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, paper, author, institution, venue, or hypothesis/proposal; singular and plural aliases are accepted. 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 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.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNorelevance
limitNo
queryYes
venueNo
fieldsNo
offsetNo
date_toNo
date_fromNo
search_typeNoall
ranking_profileNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses important behavioral details beyond annotations: ranking profiles (lexical vs semantic), restrictions on combining semantic ranking with year sorting, inclusive date format constraints, and field weighting syntax. It also explains that fields must exist on the selected search_type. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured in clear short paragraphs, each addressing a specific parameter group. It is dense but every sentence provides necessary operational detail, and the front-loaded main purpose ensures quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 10 parameters and zero schema descriptions, the description covers all parameter semantics and usage constraints. The existence of an output schema means return format need not be in the description. This is a complete and self-sufficient description for correct tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description fully compensates by explaining every parameter: search_type aliases, ranking_profile options, sort values, date formats, and fields syntax with examples. This is essential context that the schema lacks, making the description highly valuable for correct invocations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches Lacuna's ML/AI corpus for multiple entity types (papers, directions, authors, venues, institutions, hypotheses). It distinguishes itself from sibling tools like get_hypothesis and get_paper by focusing on search rather than retrieval of specific entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: use search_type='hypothesis' for novel research ideas and then call get_hypothesis. It also instructs to use other sources for biographies, news, and non-research content, clearly delimiting when this tool is appropriate versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updatesv0.2.0
    • First observedget_author_context
    • First observedget_author_directions
    • First observedget_author_neighbors
    • First observedget_author_papers
    • First observedget_direction
    • First observedget_direction_papers
    • First observedget_hypothesis
    • First observedget_institution_authors
    • First observedget_institution_context
    • First observedget_paper
    • First observedget_venue_context
    • First observedsearch_lacuna

TDQS

A4.4/5.0

Scored across 12 tools

Disambiguation5/5

Each tool targets a distinct resource or action: search, hypothesis, direction, paper, author context/papers/directions/neighbors, venue, and institution. Even related tools like get_direction and get_direction_papers are clearly separated by whether they return metadata or paginated papers. No two tools appear to do the same thing.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: search_lacuna, get_hypothesis, get_direction, get_paper, get_author_papers, get_venue_context, etc. The addition of contextual qualifiers like 'author_papers' vs 'author_context' is predictable and uniform. No mixing of camelCase or inconsistent verb styles.

Tool Count5/5

The 12 tools are well-scoped for a research corpus server, covering search, hypotheses, directions, papers, authors, venues, and institutions without unnecessary proliferation. Each tool serves a distinct need in the research retrieval workflow. This aligns with the expected range of 3-15 tools.

Completeness5/5

The tool surface covers the full lifecycle of research discovery: search across all entity types, then fetch detailed context, papers, directions, and related entities for each. Author, direction, and institution sub-resources (papers, neighbors, authors) are included, and the flexible search_type parameter fills any gaps. No obvious dead ends or missing operations for a read-only research API.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to search code by meaning, explore codebase structure, store and query knowledge with temporal facts, and read source code through a set of MCP tools.
    481
    7
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables scientific literature research through multi-agent search, analysis, and semantic memory, exposing 9 MCP tools for querying, storing, and retrieving research findings.
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to search and retrieve academic papers, author profiles, and citation data from the Scopus database via MCP tools.
    7
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables searching arXiv and top AI conferences, finding related papers, generating research insights, and managing a personal library via MCP tools.
    5
    51
    MIT