Lacuna Research MCP
Provides access to machine learning research papers and related metadata from arXiv, enabling search and retrieval of papers within the Lacuna research map.
Provides access to scholarly publication records from dblp, enabling search and retrieval of papers, authors, and venues within the Lacuna research map.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Lacuna Research MCPSearch for recent papers on large language model alignment"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-mcppackage 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-mcpAlternatively, 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-mcpOmit --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-mcpRun it without installing a persistent command:
uvx lacuna-research-mcpLatest 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-mcpLocal 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-mcpWith 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:
search_lacuna(query="LLM jailbreak defense", search_type="hypothesis", limit=10)search_lacuna(query="methods for detecting prompt injection attacks", search_type="papers", limit=10)(production lexical+semantic paper ranking by default)get_hypothesis(hypothesis_id_or_url="bd35de182c2325ae")get_paper(artifact_id_or_url="art_79c57fbfec094f26b79c422cf08fed34")(defaults toview="context")get_direction(cluster_id_or_url=25108)(defaults toview="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_lacunaUses Lacuna's public/api/v1/searchendpoint 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. Passsearch_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 inversions[].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_limitcaps the figure preview (server default 3; pass 0 to suppress previews while keeping afigures_truncatedsignal).Author tools:
get_author_context(โฆ, view="context"),get_author_papers,get_author_directions, andget_author_neighbors. Start withget_author_context, which defaults to the compact agent-oriented view (capped papers plus a readableimpact_directionslist instead of rawimpact_clusterstelemetry). 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). Passinclude_neighbors=trueto 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 requestedyear). Useget_institution_authorsto page through an institution's complete author list.
Wrapped APIs
MCP tool | Lacuna API endpoint |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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/lexicalThe default profile for all searches. Withsearch_type="paper",sort="relevance", andfieldsunset, it uses the server's production lexical+semantic ranker with graceful fallback. The MCP's defaultsearch_type="all"uses the server's default lexical ranking instead.semanticUse 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 forpaperandallsearches (only papers have semantic embeddings).bm25_title_abstract/bm25Use for lexical matching constrained to title and abstract. Rejected forauthorandinstitutionsearches (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_URLDefaults tohttps://lacuna.tiptreesystems.comLACUNA_MCP_TIMEOUTDefaults to30LACUNA_MCP_MAX_RETRIESDefaults to2; applies to timeouts, transport errors, and HTTP429,502,503, and504responses.LACUNA_MCP_USER_AGENTDefaults tolacuna-research-mcp/{package_version}LACUNA_MCP_BEARER_TOKENOptional bearer token sent asAuthorization: Bearer ...for private Lacuna deployments.LACUNA_MCP_LOG_LEVELDefaults toWARNING(one ofDEBUG,INFO,WARNING,ERROR,CRITICAL). The default keeps normal operation quiet; lower it only for debugging, sinceINFO/DEBUGlet 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.pyMCPServer app creation, tool registration, lifespan cleanup, and thelacuna-research-mcpCLI entrypoint.lacuna_research_mcp/tools.pyMCP 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.pyRuntime HTTP access to Lacuna: the event-loop-boundhttpx.AsyncClient, retry handling, error wrapping, JSON parsing, URL normalization on responses, andapi_get/api_object/api_payload.lacuna_research_mcp/config.pyRuntime constants,RuntimeConfig, package user-agent construction, and environment parsing.lacuna_research_mcp/ids.pyHelpers that accept either raw ids or Lacuna page URLs and extract safe API path segments.lacuna_research_mcp/normalize.pyResponse post-processing for relative Lacuna URLs and markdown links.lacuna_research_mcp/errors.pyUser-facing exception type for Lacuna API access failures.
Notes
get_paperandget_directiondefault toview="context". These context views request Lacuna's compact agent-oriented payloads by default to keep MCP responses small. Paper context includessummary_markdownwhen available (otherwiseabstract), authors, and figures; direction context includessummary_markdown, capped papers/authors/related directions, and truncation markers. Useview="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
fieldsdefaults to the server's production lexical+semantic ranker. Setranking_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, andhypothesesare 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/*_urlresponse fields and fields namedsummary_markdown,article_markdown,markdown,content, ordescriptionare normalized to absolute URLs.Venue and institution keys are opaque hashes (for example
d7bf22905bd6), never human-readable names likeicml. Find the key withsearch_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 toolsget_author_contextARead-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_directionslist (named research directions) in place of the raw numericimpact_clusterstelemetry, 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 | Required | Description | Default |
|---|---|---|---|
| view | No | context | |
| author_id_or_url | Yes | ||
| include_neighbors | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_directionsARead-onlyIdempotent
Fetch one page of an author's named research directions.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| author_id_or_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_neighborsARead-onlyIdempotent
Fetch one ranked page of neighboring/similar Lacuna authors.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| author_id_or_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_papersARead-onlyIdempotent
Fetch one page of an author's papers, ordered from newest to oldest.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| author_id_or_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_directionARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | context | |
| cluster_id_or_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_papersARead-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.).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| view | No | compact | |
| limit | No | ||
| cluster_id_or_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_hypothesisARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | context | |
| hypothesis_id_or_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_authorsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| institution_key_or_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_contextARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | context | |
| institution_key_or_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_paperARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | context | |
| figure_limit | No | ||
| artifact_id_or_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_contextARead-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
yearis 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 | Required | Description | Default |
|---|---|---|---|
| view | No | context | |
| year | No | ||
| venue_key_or_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_lacunaARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | relevance | |
| limit | No | ||
| query | Yes | ||
| venue | No | ||
| fields | No | ||
| offset | No | ||
| date_to | No | ||
| date_from | No | ||
| search_type | No | all | |
| ranking_profile | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
12 tool updates
v0.2.0- First observed
get_author_context - First observed
get_author_directions - First observed
get_author_neighbors - First observed
get_author_papers - First observed
get_direction - First observed
get_direction_papers - First observed
get_hypothesis - First observed
get_institution_authors - First observed
get_institution_context - First observed
get_paper - First observed
get_venue_context - First observed
search_lacuna
TDQS
Scored across 12 tools
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.
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.
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.
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
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
Search GitHub, npm, PyPI, StackOverflow, ArXiv from one MCP โ built for coding agents.
Knowledge Network for AI Agents and creators: Search, rate, and review programming guides via MCP
Shared, peer-validated knowledge archive for AI agents โ search, contribute, and validate via MCP
- WauldoOAuthcom.wauldo
Stateless agentic tools over MCP: concept extraction, long-context, knowledge graph, planning.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables 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.4817MIT
- AlicenseNot gradedqualityDmaintenanceEnables scientific literature research through multi-agent search, analysis, and semantic memory, exposing 9 MCP tools for querying, storing, and retrieving research findings.1MIT
- AlicenseAqualityBmaintenanceEnables AI agents to search and retrieve academic papers, author profiles, and citation data from the Scopus database via MCP tools.7MIT
- AlicenseAqualityBmaintenanceEnables searching arXiv and top AI conferences, finding related papers, generating research insights, and managing a personal library via MCP tools.551MIT