CiteNexus MCP
Allows searching and retrieving academic citation metadata from Google Scholar, including finding cluster IDs, generating BibTeX entries, and fetching paper metrics.
Click on "Deploy 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., "@CiteNexus MCPGet BibTeX for the paper 'Attention is all you need'"
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.
CiteNexus MCP
Scholarly discovery and citations with evidence you can trace.
CiteNexus connects research assistants to open scholarly metadata, specialist academic indexes, and optional commercial databases through the Model Context Protocol. Search without an API key, resolve stable identifiers, check references against their sources, and export citations without asking a language model to invent the missing fields.
This is a citation and metadata service for the assistant you already use. It works alongside reference managers such as Zotero and writing environments that support MCP.
CiteNexus 0.2.3 includes the MCP service and the cite-nexus-wtfp companion.
The WTF-P integration targets its separate 0.7.0 release. Marketplace listings and native
client plugin qualification are tracked independently.
Quick start · WTF-P integration · Provider guide · Troubleshooting · Release information
Useful without credentials: Crossref, DataCite and Europe PMC are the default search sources. arXiv and Semantic Scholar are also available without mandatory keys.
Optional specialist and commercial access: OpenAlex, Google Scholar through SerpAPI or SearchApi, Scopus and Web of Science Starter have explicit configuration and provider selection.
Source-backed records: namespaced identifiers, retrieval timestamps, field attribution, incomplete-author warnings and provider-specific citation counts.
Deterministic export: BibTeX, RIS and CSL-JSON from retrieved metadata. No model is required.
Current MCP: Python SDK 2.2, the 2026-07-28 specification, structured tool results, resources, prompts, progress, stdio and Streamable HTTP. Earlier clients remain supported by the SDK's legacy protocol path.
Quick start
Python 3.11+ and uv are required.
uvx --from cite-nexus-mcp==0.2.3 cite-nexus-mcp --version
uvx --from cite-nexus-mcp==0.2.3 cite-nexus-mcp --no-env-file --list-providersFor an MCP client with a mcpServers configuration:
{
"mcpServers": {
"cite-nexus": {
"command": "uvx",
"args": ["--from", "cite-nexus-mcp==0.2.3", "cite-nexus-mcp", "--no-env-file"]
}
}
}The client starts MCP over stdio. No API key or .env file is required. Running the server
command directly waits for a client; it is not an interactive search shell. If your client
cannot find uvx, use its absolute executable path. The first run downloads the package and
its dependencies.
For a persistent installation, including the WTF-P companion:
uv tool install cite-nexus-mcp==0.2.3
cite-nexus-wtfp --checkThe diagnostic starts the actual MCP service and lists providers without querying vendor APIs. See the WTF-P setup for the separate integration and executable-path setting.
For local HTTP clients:
uvx --from cite-nexus-mcp==0.2.3 cite-nexus-mcp --no-env-file --transport streamable-http --port 8000Connect to http://127.0.0.1:8000/mcp. The CLI binds only to loopback and serves a single trust
boundary. A public, multi-user deployment needs authentication, credential isolation and its
own deployment integration; the CLI does not supply those features.
Related MCP server: google-scholar-search-mcp
Sources and access
Provider ID | Coverage | Access | Setup |
| Publisher-deposited DOI metadata and citation counts | Free; default | Optional |
| Datasets, software and other DOI-registered research outputs | Free; default | None |
| Biomedical literature, PubMed/PMC records, references and citations | Free; default | None |
| Preprints in physics, mathematics, computing and related fields | Free | Select explicitly; paced to one request per three seconds |
| Academic Graph discovery and citation traversal | Free/shared anonymous limits; optional key | Optional |
| Multidisciplinary research graph | Free credits / metered account access |
|
| Google Scholar through SerpAPI vendor API | Commercial; account allowances vary |
|
| Google Scholar through SearchApi.io vendor API | Commercial; account allowances vary |
|
| Elsevier's curated literature index | Institutional/commercial entitlement |
|
| Clarivate Web of Science Starter | Institutional/commercial entitlement |
|
find-open-access can additionally enrich DOI records with Unpaywall when
UNPAYWALL_EMAIL is configured. It returns reported legal OA locations and licensing information;
it does not download PDFs or bypass access restrictions.
Free access is subject to provider rate limits and terms. Anonymous Semantic Scholar can be heavily throttled. OpenAlex access policies have changed over time; CiteNexus requires a key for that adapter even when an anonymous request happens to succeed. Institution keys do not by themselves guarantee subscription access or access outside an institution's network.
Commercial and metered adapters are called only when selected explicitly, when resolving their
own namespaced IDs, or when deliberately configured as search defaults. Setting a key alone does
not add a vendor to default searches. list-providers reports configuration, capabilities and
documentation links without testing access or revealing key values.
Research workflows
Use CiteNexus to build a literature shortlist, repair an uncertain reference, check the source behind a citation count, or prepare a bibliography for your writing tool. For a full writing workflow, the WTF-P companion connects discovery to evidence tables, outlines and manuscript work while keeping candidate references visible for review.
Ask your assistant to use the tools directly, or start with the literature-review and
bibliography-audit MCP prompts. Example tool arguments:
{"query": "reproducible machine learning benchmarks", "providers": ["crossref", "arxiv"], "limit": 5}{"identifier": "10.1038/nature14539", "format": "bibtex"}{"citation": "10.1038/nature14539", "expected_title": "Deep learning", "expected_year": 2015}{"identifier": "PMID:26017442", "direction": "references", "provider": "europe_pmc", "limit": 10}{"identifiers": ["10.1038/nature14539", "arxiv:1706.03762"], "format": "csl-json"}Tool | Purpose |
| Inspect source capabilities, access tiers and credential configuration |
| Concurrent federated search, conservative deduplication and per-source pagination |
| Retrieve and validate a DOI or namespaced identifier; optionally merge selected sources |
| Export one resolved record as |
| Check an identifier or single BibTeX entry, including supplied title and year |
| Resolve and export 1–20 identifiers with ordered results, partial failures and progress |
| Page through a source's citations or references |
| Return observed citation counts, separated by provider and index |
| Find source-reported OA locations, with optional Unpaywall enrichment |
| Normalize BibTeX formatting while preserving supplied bibliographic facts |
| Legacy Scholar discovery through SerpAPI or SearchApi; returns candidates for review |
search-papers defaults to 10 results per provider, not 10 overall. Results interleave each
provider's ranking, then merge compatible records. limit is 1–50, or at most 20 when using
SerpAPI or SearchApi. Use each provider's next_offsets with the same limit, selecting that provider for
the next call. Europe PMC search uses next_cursors instead: pass its token as cursor,
select only europe_pmc, keep the same query and limit, and leave offset at zero.
Offsets must be multiples of the limit, up to 10,000. year_from, year_to and
open_access_only filter the fetched page; unknown values are excluded. Abstracts are omitted
from search results by default; set include_abstract: true or resolve a record to retrieve them.
Search records are compact by default: field_sources is empty while sources still names every
provider. Set detail: "full" or resolve a record for per-field provenance.
Provider search languages differ: explicit advanced queries use that provider's syntax.
Supported identifiers include 10.1038/nature14539, arxiv:1706.03762, PMID:26017442,
PMC12345, openalex:W2919115771, s2:<paperId>, s2:CorpusId:<number>,
scholar:<numericClusterId>, scopus:<numericId>, and WOS:<recordId>. DOI, arXiv and PubMed
URLs are recognized. Arbitrary URLs are not fetched, and unprefixed numeric strings are not
assumed to be PubMed or Scholar IDs.
DOI resolution tries Crossref, DataCite and Europe PMC in order until a matching record is
retrieved. An explicit providers list instead checks each compatible selected source and
retains evidence and disagreements. Native identifiers route to their corresponding source.
A title search always returns candidates; it never silently declares the first result a match.
Read the MCP resources cite-nexus://methodology, cite-nexus://providers and
cite-nexus://workflows for machine-accessible guidance.
What “verified” means
Verification establishes that an identifier exists in retrieved metadata and checks any supplied
title and year. It does not establish that a paper's findings are correct, that every author
is present, that the paper supports a specific claim, or that no retraction exists. A provider
outage produces unavailable, rather than a claim that the citation is fabricated.
Exports omit unavailable metadata. Partial author lists generate warnings; BibTeX uses others
where appropriate. Citation counts retain their source, index and observation timestamp and are
never summed across databases. Counts from different providers are not directly interchangeable.
Metadata can contain errors or conflicting publication years, and an absent retraction flag is
not proof that a paper is unretracted.
CSL-JSON is structured bibliographic data. Use a CSL processor or your reference manager to render
APA, IEEE or a journal's house style. enhance-citation supports default and compact formatting;
it does not infer keywords, awards, impact factors or missing authors.
Configuration
Copy .env.example to .env only if you need optional settings. Existing process environment
variables take precedence. The CLI loads ./.env, or an explicit --env-file; it never searches
parent directories. Importing the Python package does not read .env or call external services.
Pass --no-env-file for clients that manage credentials themselves. The WTF-P companion and
plugin manifests always use this mode.
Variable | Default | Meaning |
|
| Explicit search source IDs, comma separated |
|
| Timeout in seconds for each HTTP request |
|
| Time budget for a provider operation or identifier resolution |
|
| Retries for transport failures, HTTP 429 and 5xx responses |
|
| Maximum simultaneous outbound requests |
|
| In-process response-cache lifetime in seconds; |
|
| Maximum cached responses; |
Cached records retain their original retrieval and citation-observation timestamps. The cache is
bounded and partitions responses by credentials. Responses larger than 8 MB are rejected. Long
Retry-After cooldowns return a provider issue instead of holding the call open. Keys and upstream
error bodies are excluded from tool errors. Local stderr logging keeps stdout clean for MCP.
See provider details, migration notes, and product direction for access nuances and boundaries.
Development and verification
To work from source:
git clone https://github.com/akougkas/cite-nexus-mcp.git
cd cite-nexus-mcp
uv sync --locked
uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run mypy src/cite_nexus_mcp
uv run python scripts/prepare_release.py --check
uv run python scripts/marketplaces.py --check
uv run pytest -q
uv buildThe automated suite uses synthetic provider fixtures and mock HTTP, plus real local stdio and Streamable HTTP processes. It requires no vendor credentials and blocks external network access from the test process. Paid and institutional adapters have fixture-based contract coverage; live entitlement testing requires an account with access.
An explicit public-API smoke test is available separately:
uv run python scripts/smoke_public.pyIt ignores account credentials and only contacts Crossref, DataCite, Europe PMC, arXiv and anonymous Semantic Scholar. Rate limits and network failures are reported as outcomes.
The official MCP Tasks extension is not advertised. SDK 2.2 does not implement it yet.
batch-citations is a bounded synchronous workflow with progress and cancellation, not a durable
job queue. The roadmap describes the criteria for adding persistent
tasks, local libraries and further licensed providers.
The launch kit includes positioning, listing copy, a demo script, and promotional drafts. The marketplace inventory tracks 41 channels and leads, including verified routes, duplicate channels and inactive or unresolved sites. Source metadata, portable plugin manifests and image assets are prepared for review. See data handling before configuring optional providers or hosting.
License
MIT. Provider content, API access and redistribution remain subject to each source's terms.
Available Tools
11 toolsbatch-citationsARead-onlyIdempotent
Resolve and export up to 20 identifiers, preserving order and per-item failures. Reports progress; no durable background task is created.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | bibtex | |
| providers | No | ||
| identifiers | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| failed | Yes | |
| completed | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/openWorld, so the safety profile is set. The description adds non-obvious behavior beyond them: per-item failures are preserved rather than failing the whole call, progress is reported, and no durable background task is created despite async-sounding 'progress'.
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 tight sentences, front-loaded with the core action and capped by the most important caveat (no durable task). No filler.
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?
An output schema exists, so return values need not be explained, and failure/progress semantics are covered. The main gap is silence on the format and providers parameters, which an agent must discover from the bare 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?
Schema coverage is 0%, so the description must compensate. It conveys the 20-identifier ceiling and order preservation, but says nothing about the 'format' enum (bibtex/ris/csl-json) or 'providers' selection, leaving two of three params semantically thin.
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 specific verbs (resolve, export) and the resource (identifiers→citations), plus a batch scope of up to 20. It is differentiable from single-item siblings like get-citation, though it doesn't name them explicitly.
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 'batch of up to 20' framing implies this is the multi-item counterpart to get-citation/enhance-citation, so batch usage is inferable. But there is no explicit when-to-use/when-not or named alternative, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enhance-citationARead-onlyIdempotent
Normalize BibTeX formatting while preserving supplied metadata. Does not invent authors, awards or keywords. Use verify-citation to check facts.
| Name | Required | Description | Default |
|---|---|---|---|
| bibtex | Yes | ||
| template | No | default |
Output Schema
| Name | Required | Description |
|---|---|---|
| bibtex | Yes | |
| warnings | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds a genuine content-fidelity guarantee beyond the annotations: metadata is preserved and authors/awards/keywords are never fabricated. It stops short of describing normalization scope (e.g., field ordering, escaping) or input size limits.
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?
Three short sentences, zero filler, with the core operation front-loaded and the limitation/alternative following in priority order. Every sentence carries distinct 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?
An output schema exists, so return values need no explanation, and annotations cover the safety profile. Scope, constraints and the verify-citation handoff are present; the remaining hole is the unexplained 'template' option, which is the one thing an agent must decide before invoking.
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 never mentions either parameter. The 'template' enum (default vs compact) and its formatting consequences are entirely unexplained, and the required 'bibtex' string's expected content/limits are left to inference. This is a clear case where the description should have compensated for the schema gap and did not.
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 gives a concrete verb+resource ('Normalize BibTeX formatting') and immediately bounds the operation ('while preserving supplied metadata'). It differentiates the tool from verify-citation by delegating fact-checking there. The only friction is the name 'enhance-citation' implying content addition, which the description partially counters with 'Does not invent authors, awards or keywords.'
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 explicitly routes the agent to a sibling: 'Use verify-citation to check facts,' which is a clear when-not condition. It does not, however, state when to reach for enhance-citation over batch-citations or get-citation, so the routing is one-directional rather than a full alternative map.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find-open-accessARead-onlyIdempotent
Find source-reported open-access locations, with optional Unpaywall enrichment. Returns links and licenses without downloading full texts.
| Name | Required | Description | Default |
|---|---|---|---|
| providers | No | ||
| identifier | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| paper | Yes | |
| issues | No | |
| locations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive semantics, so the safety profile is covered. The description adds meaningful context beyond that: results are 'source-reported', Unpaywall enrichment is optional, and only links/licenses are returned with no full-text download.
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, front-loaded with the core action and followed by the two most decision-relevant constraints (enrichment optionality, no full-text downloads). No filler.
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?
An output schema exists so return values need not be documented, and the annotations cover safety. However, for a tool whose only required input is an opaque 'identifier', the definition does not specify acceptable identifier forms or what 'providers' means, leaving a real gap 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?
Schema description coverage is 0% for two parameters. The description hints that Unpaywall enrichment is optional (pointing at 'providers') but never explains what identifier formats are accepted or what the providers list controls, leaving both parameters undocumented in structured data and prose.
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 ('Find') and resource ('source-reported open-access locations'), plus the distinctive behavior of returning links and licenses rather than full texts. It is clearly distinguishable from citation-centric siblings, though it never names an alternative tool.
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 'without downloading full texts' implies the use case (locating OA copies rather than retrieving content), but there is no explicit when-to-use statement, no prerequisites, and no routing to siblings like resolve-paper or search-papers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find-scholar-idARead-onlyIdempotent
Legacy Google Scholar discovery via paid SerpAPI or SearchApi. Returns candidates with namespaced cluster IDs; the first result is not identity proof. Requires SERPAPI_API_KEY or SEARCHAPI_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| issues | No | |
| papers | Yes | |
| returned | Yes | |
| warnings | No | |
| providers | Yes | |
| next_cursors | No | |
| next_offsets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, openWorld, non-destructive), and the description adds substantial context beyond them: required API keys (SERPAPI_API_KEY/SEARCHAPI_API_KEY), the paid-service cost model, and the critical caveat that the first result is not identity proof. That caveat is exactly the kind of reliability signal an agent needs.
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?
Three compact sentences, each front-loaded with a distinct fact: capability/legacy status, return-shape caveat, and auth requirement. No filler.
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?
An output schema exists, so return values need no explanation, and annotations plus the description cover safety, auth, and result trustworthiness. What remains missing is what the 'query' input should contain and how this differs concretely from sibling resolvers, which for a discovery tool is a real gap.
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 single required parameter 'query' has 0% schema description coverage, and the description never explains what belongs in it (author name, paper title, affiliation). With one undocumented param, the definition does not compensate for the schema 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?
States a specific verb+resource: discovering Google Scholar cluster IDs, with the qualifier 'legacy' and the paid provider (SerpAPI/SearchApi). An agent can distinguish it from generic search siblings like search-papers or resolve-paper, though it never names an alternative directly.
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?
'Legacy' implies this is a fallback, which hints at when-not-to-use, but no sibling is named and no explicit condition selects this tool over find-open-access or resolve-paper. Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-citationARead-onlyIdempotent
Resolve a DOI or namespaced ID and export deterministic BibTeX, RIS or CSL-JSON with provenance and missing-field warnings. Legacy scholar_id remains accepted.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | bibtex | |
| providers | No | ||
| identifier | No | ||
| scholar_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| paper | Yes | |
| format | Yes | |
| citation | Yes | |
| warnings | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructive behavior, so the safety profile is covered. The description adds genuine value beyond that by disclosing 'deterministic' output, provenance inclusion, and missing-field warnings, which tell the agent what to expect in the response.
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 compact sentences that front-load the core resolve/export action before the legacy compatibility note. Every clause carries information; no filler.
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?
An output schema exists, so return structure and missing-field warning format need not be restated. The description covers resolution, formats, and legacy input adequately; the only meaningful gap is the unexplained 'providers' parameter.
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 schema alone provides no parameter meaning. The description compensates for identifier (DOI/namespaced ID), format (three named encodings), and scholar_id (legacy), but says nothing about the 'providers' parameter, leaving one of four parameters unexplained.
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 specific verbs and resources: 'Resolve a DOI or namespaced ID' and 'export ... BibTeX, RIS or CSL-JSON'. It clearly distinguishes this as a resolve-and-export tool, though it doesn't explicitly contrast with siblings like enhance-citation or verify-citation.
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?
There is no explicit when-to-use guidance or named alternative among the ten siblings. Only the passing note that 'Legacy scholar_id remains accepted' hints at any invocation nuance, leaving the agent to infer when this tool is preferred over verify-citation or enhance-citation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-providersARead-onlyIdempotent
List sources, access tiers, configured availability, supported operations and setup variables. Does not call vendors or expose secrets.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| policy | Yes | |
| providers | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only profile (readOnlyHint, non-destructive, idempotent, closed-world). The description adds valuable context that it does not call vendors or expose secrets, which goes beyond the annotations and informs the agent about side effects and data sensitivity.
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, front-loaded sentences with zero waste. The first sentence clearly states what is listed; the second adds a useful safety caveat without verbosity.
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 no parameters, a rich output schema, and full annotation coverage, the description provides sufficient context about what the tool returns and its safety. It could be stronger by indicating when to use it relative to siblings, but for a parameterless listing tool it is largely 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?
The tool takes zero parameters, so the baseline score of 4 applies. The schema is empty, and no additional parameter semantics are needed or expected.
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 'List' and enumerates the resources (sources, access tiers, availability, operations, setup variables). However, it does not explicitly differentiate from the paper-focused sibling tools, and omits the term 'providers' from the description, leaving a slight gap in mapping to the tool name.
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?
No explicit when-to-use or when-not-to-use guidance is provided. The only sentence beyond the listing is a behavioral note ('Does not call vendors or expose secrets'), which does not help an agent decide between this and alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paper-metricsBRead-onlyIdempotent
Retrieve observed citation counts by provider and index, never an estimated impact factor or sample length. Select multiple providers to compare coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| providers | No | ||
| identifier | No | ||
| scholar_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| paper | Yes | |
| issues | No | |
| metrics | Yes | |
| interpretation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is covered. The description adds useful context that results are observed provider counts rather than estimates, but says nothing about rate limits, provider-specific behavior, or partial failures.
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 compact sentences with zero filler. The core action and its scope boundary are front-loaded before the multi-provider tip.
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?
An output schema exists, so return-value explanation isn't required. However, for a tool with two undocumented identifier parameters and no annotation-redundant guidance, the description leaves real gaps an agent must guess through.
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% across three parameters. The description hints at the 'providers' parameter but leaves 'identifier' and 'scholar_id' entirely undocumented — including which one to use and whether either is required. Two of three params get no semantic help from either surface.
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 and resource: 'Retrieve observed citation counts by provider and index.' The narrow scope ('never an estimated impact factor or sample length') further sharpens what this tool is and isn't. It does not explicitly name sibling tools like get-citation or batch-citations, so it falls short of a 5.
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?
'Select multiple providers to compare coverage' implies the compare-use case, but there is no explicit when-to-use vs alternatives guidance (e.g., when to use this vs get-citation or batch-citations). Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve-paperARead-onlyIdempotent
Resolve a DOI, arXiv ID, PMID, PMCID, OpenAlex, Semantic Scholar, Scholar, Scopus or WOS ID. Validates returned identifiers; use search-papers for titles.
| Name | Required | Description | Default |
|---|---|---|---|
| providers | No | ||
| identifier | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| paper | Yes | |
| issues | No | |
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive behavior, so the safety profile is covered structurally. The description adds one behavioral note, 'validates returned identifiers', which is useful but left vague (what gets validated, what happens on failure), with no mention of auth or rate limits.
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 tight sentences with no filler; the input enumeration comes first and the routing hint second. Every clause 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?
An output schema exists, so return values need not be described. The identifier vocabulary is complete for the main input; the only gap is any explanation of the optional 'providers' parameter's effect on resolution behavior.
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 0% and there are two parameters. The description richly documents the accepted values for 'identifier' (DOI, arXiv ID, PMID, PMCID, OpenAlex, Semantic Scholar, Scholar, Scopus, WOS), which compensates well for the required param, but the 'providers' parameter is never mentioned and its purpose must be inferred.
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?
Specific verb (resolve) plus an explicit enumeration of the identifier types accepted, so the agent knows exactly what inputs this tool consumes. It names search-papers as the tool for the adjacent case, giving partial sibling differentiation.
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?
Gives a clear routing rule: use search-papers for titles, implying this tool is for known identifiers. No exclusions or preconditions for the resolve path itself are stated, so it stops short of full when/when-not coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-papersARead-onlyIdempotent
Search scholarly sources concurrently (defaults: Crossref, DataCite, Europe PMC). Limit is per provider. Page one source at a time using next_offsets, or next_cursors as cursor for Europe PMC, with the same query and limit. Filters apply to fetched pages. Partial failures remain visible. detail=compact omits per-field field_sources; use full or resolve-paper for them.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| cursor | No | ||
| detail | No | compact | |
| offset | No | ||
| year_to | No | ||
| providers | No | ||
| year_from | No | ||
| include_abstract | No | ||
| open_access_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| issues | No | |
| papers | Yes | |
| returned | Yes | |
| warnings | No | |
| providers | Yes | |
| next_cursors | No | |
| next_offsets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial non-annotation context: concurrent querying, per-provider limit, pagination token usage, filters applying to fetched pages, partial failures remaining visible, and detail=compact omitting field_sources. Annotations cover read-only/idempotent safety, so this is rich supplementary behavior.
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?
Single dense paragraph front-loads purpose and defaults, then packs pagination, filter, failure, and detail guidance. Some terms like next_offsets assume output schema knowledge, but overall no wasted sentences.
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 10-param, multi-provider search with output schema, the description covers key non-obvious behaviors and routing to resolve-paper. It omits explicit semantics for several filter/boolean params, though their names are suggestive, leaving minor gaps.
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% with 10 parameters, so the description must carry parameter meaning. It clarifies limit scope, detail behavior, and cursor/offset paging, but leaves providers, year_from, year_to, open_access_only, include_abstract, and query constraints unexplained. Partial compensation only.
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 'Search' and resource 'scholarly sources', names default providers, and notes concurrent execution. It does not explicitly differentiate from sibling search tools like related-papers, but the core purpose is 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?
Explains pagination workflow (next_offsets vs next_cursors), notes limit is per provider, and directs to full or resolve-paper for field_sources. Lacks explicit when-not-to-use or broader alternatives beyond resolve-paper, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify-citationARead-onlyIdempotent
Verify an identifier or single BibTeX entry against sources and compare supplied title/year. Title-only input returns ambiguous candidates. Provider outages are distinct from missing records. Does not validate scientific claims.
| Name | Required | Description | Default |
|---|---|---|---|
| citation | Yes | ||
| providers | No | ||
| expected_year | No | ||
| expected_title | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| paper | No | |
| issues | No | |
| status | Yes | |
| candidates | No | |
| identifier | No | |
| differences | No | |
| explanation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world, and non-destructive behavior. The description adds useful behavioral context: title-only inputs yield ambiguous candidates, provider outages are not the same as missing records, and scientific claims are out of scope.
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?
Four short sentences, front-loaded with the core operation and then progressively adding behavioral qualifiers. Every sentence adds distinct information with no filler.
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?
With rich annotations and an output schema present, the description does not need to explain safety or return values. It covers purpose, input modes, ambiguity, outages, and scope, though it leaves the optional 'providers' parameter undocumented.
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 clarifies that 'citation' can be an identifier or single BibTeX entry and that expected title/year are compared, but it says nothing about the optional 'providers' parameter or accepted formats.
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 gives a specific verb ('Verify') and resource ('identifier or single BibTeX entry') plus the comparison scope ('supplied title/year'). It also clarifies scope boundaries ('Does not validate scientific claims') so the agent can distinguish this from citation retrieval or enhancement tools.
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 states input-mode behavior ('Title-only input returns ambiguous candidates') and operational distinctions ('Provider outages are distinct from missing records'), which help an agent set expectations. It lacks explicit when-to-use guidance versus sibling tools such as get-citation or enhance-citation.
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.
11 tool updates
v0.2.3- First observed
batch-citations - First observed
enhance-citation - First observed
find-open-access - First observed
find-scholar-id - First observed
get-citation - First observed
list-providers - First observed
paper-metrics - First observed
related-papers - First observed
resolve-paper - First observed
search-papers - First observed
verify-citation
TDQS
Scored across 11 tools
Most tools target clearly distinct actions such as searching, resolving, exporting, verifying, and enriching citations. Overlaps exist between get-citation and resolve-paper for identifier resolution, and between find-scholar-id and search-papers for discovery, but the descriptions provide enough distinction to guide selection.
All names use kebab-case consistently, which is the dominant convention here. Most follow a verb_noun pattern (find-open-access, resolve-paper, verify-citation), while a few are noun phrases (paper-metrics, related-papers), creating minor deviation but still readable and predictable.
With 11 tools, the set is well-scoped for a scholarly citation and metadata server. Each tool covers a meaningful operation such as search, resolve, export, verify, metrics, or provider listing, without excessive surface area.
The surface covers discovery, identifier resolution, citation export, verification, open-access lookup, metrics, and related-paper traversal. Minor gaps remain, such as no dedicated full-text retrieval or citation-style configuration beyond BibTeX, RIS, and CSL-JSON, but core workflows are well supported.
Maintenance
Related MCP Connectors
Web search, scraping, RAG answers with citations, and translation as MCP tools.
Google search, news, maps, scholar and public webpages for AI agents, with Markdown results.
YouTube transcripts, search, channel browsing, and playlists for AI agents via MCP.
Federated search of books and papers, BibTeX/RIS citations, open-access retrieval and reading.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenance🔍 Enable AI assistants to search and access Google Scholar papers through a simple MCP interface.413-
- AlicenseNot gradedqualityCmaintenanceAn MCP server for searching Google Scholar, enabling paper search, author lookup, citation tracking, and BibTeX export for AI assistants and automation workflows.2MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to search and analyze Google Scholar publications, authors, citations, and download papers.112MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search and access academic papers from Google Scholar via MCP protocol, with support for keyword, author, and year filtering, CAPTCHA handling, and BibTeX retrieval.3MIT