Noodle Biomedical Literature Discovery MCP
OfficialThis server is a read-only MCP adapter for discovering and exploring PubMed-derived biomedical literature.
Search the public biomedical corpus by natural language, PMID, DOI, or PMCID.
Retrieve complete publication records by PMID or by Noodle work ID.
Explore bounded citation and semantic neighborhoods around a PMID or work ID.
Continue graph traversal from returned work IDs while preserving edge types and provenance.
Get corpus summary metadata: size, sources, freshness, coverage, and graph information.
Use the separate opt-in support_helena action to learn about Helena's free scientific infrastructure.
Provides biomedical literature discovery from a PubMed-derived corpus, including natural language, PMID, DOI, and PMCID search, publication detail retrieval, and traversal of citation and semantic neighborhoods.
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., "@Noodle Biomedical Literature Discovery MCPFind source-linked papers about the role of the gut microbiome in Parkinson's disease."
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.
Noodle Biomedical Literature Discovery MCP
The official public, read-only Model Context Protocol adapter for biomedical literature discovery from Helena Bioinformatics. Agents can select it from a user task even when the user does not know the Noodle brand.
Public endpoint: https://api.helena.bio/noodle/v1/mcp
Official Registry identity: io.github.helena-bioinformatics/noodle
No account, API key, patient data, or private content is required or accepted.
What agents can do
search a public PubMed-derived biomedical corpus by natural language, PMID, DOI, or PMCID;
retrieve source-linked publication records by PMID or Noodle work ID;
traverse bounded citation and semantic neighborhoods from a publication;
continue graph exploration through returned work identifiers while preserving edge types and graph provenance;
inspect corpus size, sources, freshness, coverage, and active graph metadata.
The seven published tools are search_biomedical_literature,
get_publication_details, get_work_details,
get_publication_neighborhood, get_work_neighborhood,
get_corpus_summary, and the separate explicit opt-in support_helena
information action.
Related MCP server: NCBI Literature Search MCP Server
Connect
Any MCP client that supports remote Streamable HTTP can use the endpoint. Exact
recipes for ChatGPT, Claude, Codex, VS Code, Cursor, Windsurf, Gemini CLI,
Grok, Perplexity, Microsoft Copilot Studio, Biomni, and Biorouter live under
registry/platforms and integrations.
Ready-to-use ecosystem packages are included for:
Dify, including a reproducible
.difypkg;n8n, using the exact stateless MCP JSON-RPC contract supported by the hosted service;
Galaxy, with a Planemo-linted ToolShed wrapper; and
KNIME Analytics Platform, with a table-to-MCP Python Script node and prepared Hub listing; and
Google Colab and Kaggle notebooks, plus a Cytoscape GraphML workflow; and
the companion Galaxy Training Network tutorial for a Folklore-to-Noodle literature workflow.
The companion Agent Skill is in
skills/noodle-biomedical-literature-discovery. It enables implicit,
task-first selection for requests such as:
“Find source-linked papers about BRCA1 homologous recombination.”
“What publication is PMID 35008774?”
“Show papers related to this article through citations and semantic similarity.”
“Walk two bounded hops from this work ID and preserve the edge types.”
Build the deterministic skill archive with:
python3 ops/package_agent_skill.pyGraph boundary
Start from a resolved PMID or work ID and request one bounded neighborhood at a time. Report edges exactly as returned, keep a visited-ID set, and stop at a missing neighborhood. Search rank, citation proximity, semantic similarity, co-mention, and graph distance are discovery signals. They do not establish causality, scientific validity, diagnosis, or treatment.
Development
Python 3.12 is required.
python -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements-dev.lock
python -m pip install --no-deps -e .
pytest
ruff check .
ruff format --check .Run the brand-blind contract audit with:
python benchmarks/agent-discovery/audit_skill.pyThe benchmark contains 60 prompts that omit Noodle, Helena, and MCP.
It covers all six scientific routes plus negative and safety controls.
Agent Plugin and Kiro Power
This repository is also a portable Agent Plugin and Kiro Power. plugin.json
provides brand-blind activation keywords, the existing Agent Skill supplies the
scientific routing and safety boundary, and mcp.json connects directly to the
canonical hosted Streamable HTTP endpoint. The Power does not proxy, repackage,
or reimplement Noodle.
Privacy policy: https://noodle.helena.bio/privacy
Cite Noodle
The persistent Research Resource Identifier is
RRID:SCR_028920. Cite the resource in a
methods section as Noodle (RRID:SCR_028920). Use the
version DOI when a version-specific
software citation is also needed. The RRID identifies the resource across
publications, while the DOI identifies the archived 0.2.0 release.
Support: https://noodle.helena.bio/contact or contact@helena.bio
Public resources
Hands-on tutorial: https://github.com/helena-bioinformatics/noodle-mcp/blob/main/docs/tutorials/biomedical-literature-discovery-and-graph-traversal.md
Connector and agent-selection guide: https://noodle.helena.bio/mcp
Client integrations: https://noodle.helena.bio/integrations
Server Card: https://noodle.helena.bio/.well-known/mcp/server-card.json
Official Registry: https://registry.modelcontextprotocol.io/v0/servers?search=io.github.helena-bioinformatics%2Fnoodle
Citable release: https://doi.org/10.5281/zenodo.22166486
Software Heritage archive request: https://archive.softwareheritage.org/api/1/origin/save/2457442/
Software Heritage snapshot: https://archive.softwareheritage.org/swh:1:snp:09b8fb7c64de15487e873b4f77e3e4b57abc02fb/
Methodology: https://noodle.helena.bio/methodology
License and security
Apache License 2.0. Report vulnerabilities privately as described in
SECURITY.md. Do not submit patient, private case, clinical-record, credential,
or private uploaded content to the public service or issue tracker.
Available Tools
7 toolsget_corpus_summaryGet corpus summaryARead-onlyIdempotentInspect
Return public corpus coverage, source, freshness, and count metadata. Results are for literature discovery and professional review, not diagnosis or treatment.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| scope | Yes | |
| counts | Yes | |
| sources | Yes | |
| generated_at | Yes | |
| contract_version | Yes | |
| deduplication_keys | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not restate safety. It adds context by specifying the corpus is public and by setting an intended-use boundary, though it does not disclose additional behavioral details such as freshness guarantees or coverage semantics.
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 two sentences with no wasted words. The action and resource are front-loaded, and the second sentence adds a meaningful intended-use caveat without padding or 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?
For a zero-parameter, read-only, idempotent tool with an output schema, this description is complete: it states what is returned, that it is public corpus-level metadata, and the boundary of appropriate use. No additional operational details are needed for correct 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 input schema is empty with 0 parameters and 100% schema description coverage, so there is no parameter documentation burden on the description. The mention of metadata categories helps orient the agent to what the results describe, which is sufficient for a parameterless tool.
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 ('Return'), names the resource ('public corpus'), and enumerates the exact metadata dimensions returned: coverage, source, freshness, and count. This clearly distinguishes it from siblings like search_biomedical_literature or get_publication_details, which operate on searches or individual items.
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 intended-use context ('literature discovery and professional review') and an explicit exclusion ('not diagnosis or treatment'), but it does not explicitly state when to prefer this tool over alternatives. Usage is implied by the corpus-level scope rather than directly contrasted with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_publication_detailsGet publication details by PMIDARead-onlyIdempotentInspect
Retrieve one complete public bibliographic record by PMID after search. Results are for literature discovery and professional review, not diagnosis or treatment.
| Name | Required | Description | Default |
|---|---|---|---|
| pmid | Yes | One PubMed identifier to look up in Noodle's current public corpus, as 1 to 12 digits without a PMID prefix. |
Output Schema
| Name | Required | Description |
|---|---|---|
| publication | Yes | |
| usage_boundary | Yes | |
| contract_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful context about the record being 'complete' and 'public' and about the intended professional-review use case, but it does not add deeper behavioral details such as error handling or corpus freshness. No contradiction with annotations exists.
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 two short sentences with the core action front-loaded. The first sentence states exactly what the tool does, and the second adds a relevant use/limitation note. Every word earns its place.
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 single-parameter, read-only lookup tool with an output schema and strong annotations, the description is complete. It clarifies the workflow position ('after search'), the scope ('complete public bibliographic record'), and the intended use, leaving no material gap for an agent to safely invoke it.
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 fully documents the pmid parameter, including its format and meaning, so schema coverage is 100%. The description adds no additional parameter-level detail beyond what the schema already states, which is acceptable given the high 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 names a specific verb ('Retrieve'), a concrete resource ('one complete public bibliographic record'), and a precise lookup key ('by PMID'). It clearly distinguishes itself from the sibling search and neighborhood tools by focusing on a single-record lookup.
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 phrase 'after search' gives clear sequencing context: this tool is a follow-up to a search step, likely search_biomedical_literature. The disclaimer that results are not for diagnosis or treatment provides a relevant when-not-to-use boundary, though it does not explicitly name alternative sibling tools for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_publication_neighborhoodExplore a PMID literature neighborhoodARead-onlyIdempotentInspect
Retrieve the bounded citation and semantic neighborhood around one PMID. Results are for literature discovery and professional review, not diagnosis or treatment.
| Name | Required | Description | Default |
|---|---|---|---|
| pmid | Yes | One PubMed identifier, as 1 to 12 digits. | |
| from_work_id | No | Optional prior work ID for a reversible graph path. |
Output Schema
| Name | Required | Description |
|---|---|---|
| edges | Yes | |
| nodes | Yes | |
| freshness | Yes | |
| anchor_pmid | No | |
| stale_after | Yes | |
| generated_at | Yes | |
| graph_version | Yes | |
| anchor_node_id | Yes | |
| anchor_work_id | No | |
| policy_version | Yes | |
| usage_boundary | Yes | |
| release_channel | Yes | |
| contract_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the description does not need to restate safety. It adds useful behavioral context: the neighborhood is 'bounded', and results are intended for discovery/review rather than clinical decisions. 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?
Two short sentences with no filler. The main action is front-loaded, and the purpose/limitation sentence earns its place by clarifying the appropriate use context.
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, two-parameter tool with a full input schema and an output schema, the description is sufficient. It conveys the essential scope ('bounded neighborhood'), the intended use, and the non-clinical boundary. Missing sibling routing is a minor gap rather than a completeness failure.
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 100%, so the schema already documents pmid and from_work_id, including the pattern, optionality, default, and 'reversible graph path' semantics. The description adds no additional parameter detail beyond restating that the operation centers on one PMID.
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?
States a specific verb ('Retrieve'), a specific resource ('bounded citation and semantic neighborhood'), and a precise identifier ('one PMID'). The name and description together clearly distinguish this from sibling tools like get_work_neighborhood (work ID) and get_publication_details (details, not neighborhood).
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 the tool is for literature discovery and explicitly rules out diagnosis/treatment, but it does not name sibling alternatives or state when to choose this tool over get_work_neighborhood or get_publication_details. The primary usage context is clear, yet routing guidance is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_work_detailsGet publication details by work IDARead-onlyIdempotentInspect
Retrieve one complete public bibliographic record by Noodle work identifier. Results are for literature discovery and professional review, not diagnosis or treatment.
| Name | Required | Description | Default |
|---|---|---|---|
| work_id | Yes | Canonical Noodle Literature Corpus work identifier. |
Output Schema
| Name | Required | Description |
|---|---|---|
| publication | Yes | |
| usage_boundary | Yes | |
| contract_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds that the record is 'complete' and 'public' and restricts usage to discovery/review, but it does not disclose authentication, error behavior, or rate limits; given annotation coverage, this is adequate but not especially rich.
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?
Two sentences with no filler. The core retrieval behavior is front-loaded, and the second sentence provides a meaningful safety caveat. Every sentence earns its place.
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 one-parameter, read-only tool with an output schema, the description is nearly sufficient: it specifies single-record scope, public data, and intended use. The main gap is that it leaves the relationship to the similarly named get_publication_details implicit, which matters given the sibling 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 100%, and work_id is already documented as a 'Canonical Noodle Literature Corpus work identifier.' The description merely repeats 'Noodle work identifier' without adding formats, examples, or behavioral nuance, so the baseline 3 applies.
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 verb-object pair: 'Retrieve one complete public bibliographic record by Noodle work identifier,' which states exactly what the tool does and the resource it targets. It does not explicitly differentiate itself from the similar-looking sibling get_publication_details, so it stops just short of full sibling distinction.
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 a clear intended context ('literature discovery and professional review') and an explicit exclusion ('not diagnosis or treatment'). It does not mention when to prefer an alternative sibling tool, so it lacks explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_work_neighborhoodExplore a work literature neighborhoodARead-onlyIdempotentInspect
Retrieve the bounded citation and semantic neighborhood around one Noodle work identifier. Results are for literature discovery and professional review, not diagnosis or treatment.
| Name | Required | Description | Default |
|---|---|---|---|
| work_id | Yes | Canonical work identifier to place at the graph center. | |
| from_work_id | No | Optional prior work ID for a reversible graph path. |
Output Schema
| Name | Required | Description |
|---|---|---|
| edges | Yes | |
| nodes | Yes | |
| freshness | Yes | |
| anchor_pmid | No | |
| stale_after | Yes | |
| generated_at | Yes | |
| graph_version | Yes | |
| anchor_node_id | Yes | |
| anchor_work_id | No | |
| policy_version | Yes | |
| usage_boundary | Yes | |
| release_channel | Yes | |
| contract_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the behavioral detail that the neighborhood is 'bounded'—implying a constrained result set—and the caveat that results are for discovery/review rather than clinical use. 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 exactly two sentences with no wasted words. The action and resource are front-loaded, and the second sentence earns its place by providing a necessary usage limitation.
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?
Despite the presence of a sibling tool get_publication_neighborhood, the description sufficiently conveys the operation, scope, and intended use. With an output schema and safety annotations present, nothing critical is missing for an agent to 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?
Schema description coverage is 100%, so both work_id and from_work_id are already documented in the input schema. The description only loosely echoes the main parameter ('one Noodle work identifier') and adds no new semantic detail about parameters, resulting in the baseline score.
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 'Retrieve' and names the exact resource: 'the bounded citation and semantic neighborhood around one Noodle work identifier.' This clearly distinguishes it from sibling tools such as get_work_details (which fetches work details) and get_publication_neighborhood (which targets publications rather than works).
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 states the intended use case ('literature discovery and professional review') and an explicit non-use case ('not diagnosis or treatment'), giving agents clear context for when this tool is appropriate. However, it does not name sibling alternatives or give explicit routing conditions, so it stops short of full 'when to use instead' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_biomedical_literatureSearch biomedical literatureARead-onlyIdempotentInspect
Semantically search Noodle's public PubMed-derived biomedical corpus. Include known PMID, DOI, or PMCID identifiers in the query so they can act as exact anchors. Results are for literature discovery and professional review, not diagnosis or treatment.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Result ordering: relevance-ranked, newest publication first, or oldest publication first. | relevance |
| limit | No | Maximum number of publications to return, from 1 to 25. | |
| query | Yes | Natural-language literature question or exact PMID, DOI, PMCID, gene, variant, phenotype, HPO, or OMIM query. Include every known publication identifier when comparing or finding related papers. | |
| cursor | No | Opaque continuation cursor from the preceding response for the same query and sort order; omit for the first page. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| results | Yes | |
| has_more | No | |
| graph_used | No | |
| next_cursor | No | |
| graph_version | No | |
| returned_count | Yes | |
| usage_boundary | Yes | |
| contract_version | Yes | |
| searchable_fields | Yes | |
| semantic_index_used | No | |
| graph_degraded_reason | No | |
| semantic_degraded_reason | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds the semantic-search behavior and the identifier-anchoring effect, which complements annotations. It does not contradict them, and the additional context is modest but useful.
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?
Two sentences, no redundant phrasing. The core purpose leads, followed by actionable identifier advice and a clear scope disclaimer. Every sentence earns its place, and the structure is ideal for quick scanning.
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 search tool with a rich input schema (including cursor, sort, limit) and an output schema, the description covers the essential context: semantic nature, identifier anchoring, scope, and usage disclaimer. Nothing an agent needs to invoke it correctly is missing, given the structured annotations already carry safety information.
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 coverage is 100% with descriptive text for each parameter. The description essentially restates the query parameter's guidance about including identifiers, so it adds little beyond what the schema already provides. Baseline 3 is appropriate.
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 states a specific verb ('semantically search') and a specific resource ('Noodle's public PubMed-derived biomedical corpus'). This clearly distinguishes the tool from sibling detail/neighborhood tools, 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?
The description advises including known identifiers for exact anchoring, which gives concrete guidance on query formulation. However, it does not explicitly state when to use this tool over siblings (e.g., when you need details for a specific publication, use get_publication_details). The disclaimer about literature discovery implies a use case but lacks explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
support_helenaSupport Helena's free scientific infrastructureARead-onlyIdempotentInspect
Learn about the separate Helena Good MCP. This opt-in information action initiates no payment or outreach and changes no scientific result.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable context beyond those: the action is opt-in, involves no payment or outreach, and changes no scientific result. This meaningfully clarifies what the tool will and will not do.
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 short and front-loads the core purpose in the first sentence. The second sentence adds useful safety/behavioral context, though some phrasing like 'the separate Helena Good MCP' is slightly awkward and could be tighter.
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 zero-parameter informational tool with a provided output schema, the description is largely sufficient. It covers purpose, the informational nature, and the no-payment/no-outreach guarantee. It could be slightly more explicit about when a user would want this information, but nothing critical is missing.
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 tool has zero parameters, so the parameter-semantics burden is minimal. The description does not need to explain any inputs, and the baseline of 4 applies.
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 states a clear action — 'Learn about the separate Helena Good MCP' — and clarifies that this tool is informational, not a payment or outreach mechanism. It is easily distinguishable from the sibling search/get literature tools, though it does not explicitly name any sibling or contrast itself.
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 implies the tool is for users who want information about supporting Helena, and it explicitly says no payment or outreach occurs. However, it does not state when to use it versus alternatives or mention sibling tools, leaving the routing decision mostly to inference.
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. Dates show when Glama detected each change.
7 tool updates
v0.2.1- First observed
get_corpus_summary - First observed
get_publication_details - First observed
get_publication_neighborhood - First observed
get_work_details - First observed
get_work_neighborhood - First observed
search_biomedical_literature - First observed
support_helena
TDQS
Most tools have clear roles, but get_publication_details/get_work_details and get_publication_neighborhood/get_work_neighborhood overlap in purpose and are distinguished only by identifier type, which may confuse agents. support_helena is also unrelated to the biomedical literature domain and adds ambiguity about the server's scope.
All tool names follow a consistent lowercase snake_case verb_noun pattern, such as search_*, get_*. The naming is predictable and makes the tool surface easy to navigate.
Seven tools is a reasonable size for a literature discovery server and covers the core workflows. However, support_helena is an unrelated promotional action and slightly dilutes the focus of an otherwise well-scoped set.
The server covers the main read-only discovery lifecycle: search, retrieve details, explore neighborhoods, and inspect corpus metadata. Minor gaps exist, such as no direct DOI-to-record lookup and some ambiguity between work and publication identifiers, but agents can work around these with the search tool.
Maintenance
Related MCP Connectors
Search biomedical literature, get article details, find related articles, and explore MeSH terms
Search 36M+ PubMed biomedical articles and ClinicalTrials.gov studies.
Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms.
A public commons for agents to search and share reusable findings and open research questions.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to search and retrieve biomedical research articles from PubMed's database of over 35 million citations, including metadata, abstracts, MeSH terms, and full-text PDFs when available.11MIT
- FlicenseNot gradedqualityDmaintenanceProvides seamless access to over 35 million PubMed scientific articles through natural language queries for research discovery and analysis. It enables tools for advanced searches, retrieving article details, and exploring related research within the life sciences and biomedical fields.12-
- AlicenseAqualityCmaintenanceProvides structured PubMed literature data for LLM agents, supporting search, caching, and open-access full-text downloads via the MCP protocol.55811Apache 2.0
- AlicenseAqualityCmaintenanceEnables AI agents to search and read PubMed academic literature directly, without requiring an NCBI API key.21MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/helena-bioinformatics/noodle-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server