Skip to main content
Glama

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-providers

For 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 --check

The 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 8000

Connect 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

crossref

Publisher-deposited DOI metadata and citation counts

Free; default

Optional CITE_NEXUS_CONTACT_EMAIL for the polite pool

datacite

Datasets, software and other DOI-registered research outputs

Free; default

None

europe_pmc

Biomedical literature, PubMed/PMC records, references and citations

Free; default

None

arxiv

Preprints in physics, mathematics, computing and related fields

Free

Select explicitly; paced to one request per three seconds

semantic_scholar

Academic Graph discovery and citation traversal

Free/shared anonymous limits; optional key

Optional SEMANTIC_SCHOLAR_API_KEY

openalex

Multidisciplinary research graph

Free credits / metered account access

OPENALEX_API_KEY

serpapi

Google Scholar through SerpAPI vendor API

Commercial; account allowances vary

SERPAPI_API_KEY

searchapi

Google Scholar through SearchApi.io vendor API

Commercial; account allowances vary

SEARCHAPI_API_KEY

scopus

Elsevier's curated literature index

Institutional/commercial entitlement

SCOPUS_API_KEY; optional SCOPUS_INSTTOKEN

wos

Clarivate Web of Science Starter

Institutional/commercial entitlement

WOS_API_KEY

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

list-providers

Inspect source capabilities, access tiers and credential configuration

search-papers

Concurrent federated search, conservative deduplication and per-source pagination

resolve-paper

Retrieve and validate a DOI or namespaced identifier; optionally merge selected sources

get-citation

Export one resolved record as bibtex, ris or csl-json

verify-citation

Check an identifier or single BibTeX entry, including supplied title and year

batch-citations

Resolve and export 1–20 identifiers with ordered results, partial failures and progress

related-papers

Page through a source's citations or references

paper-metrics

Return observed citation counts, separated by provider and index

find-open-access

Find source-reported OA locations, with optional Unpaywall enrichment

enhance-citation

Normalize BibTeX formatting while preserving supplied bibliographic facts

find-scholar-id

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

CITE_NEXUS_DEFAULT_PROVIDERS

crossref,datacite,europe_pmc

Explicit search source IDs, comma separated

CITE_NEXUS_TIMEOUT

12

Timeout in seconds for each HTTP request

CITE_NEXUS_OPERATION_TIMEOUT

40

Time budget for a provider operation or identifier resolution

CITE_NEXUS_RETRIES

1

Retries for transport failures, HTTP 429 and 5xx responses

CITE_NEXUS_CONCURRENCY

6

Maximum simultaneous outbound requests

CITE_NEXUS_CACHE_TTL

300

In-process response-cache lifetime in seconds; 0 disables it

CITE_NEXUS_CACHE_SIZE

256

Maximum cached responses; 0 disables caching

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 build

The 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.py

It 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 tools
batch-citationsA
Read-onlyIdempotent

Resolve and export up to 20 identifiers, preserving order and per-item failures. Reports progress; no durable background task is created.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNobibtex
providersNo
identifiersYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
failedYes
completedYes

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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-citationA
Read-onlyIdempotent

Normalize BibTeX formatting while preserving supplied metadata. Does not invent authors, awards or keywords. Use verify-citation to check facts.

ParametersJSON Schema
NameRequiredDescriptionDefault
bibtexYes
templateNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription
bibtexYes
warningsYes

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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

Schema description coverage is 0% and the description 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.

Purpose4/5

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.

Usage Guidelines4/5

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-accessA
Read-onlyIdempotent

Find source-reported open-access locations, with optional Unpaywall enrichment. Returns links and licenses without downloading full texts.

ParametersJSON Schema
NameRequiredDescriptionDefault
providersNo
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
paperYes
issuesNo
locationsYes

TDQS

A3.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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-idA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
queryYes
issuesNo
papersYes
returnedYes
warningsNo
providersYes
next_cursorsNo
next_offsetsNo

TDQS

A3.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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-citationA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNobibtex
providersNo
identifierNo
scholar_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
paperYes
formatYes
citationYes
warningsNo

TDQS

A3.5/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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-providersA
Read-onlyIdempotent

List sources, access tiers, configured availability, supported operations and setup variables. Does not call vendors or expose secrets.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
policyYes
providersYes

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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-metricsB
Read-onlyIdempotent

Retrieve observed citation counts by provider and index, never an estimated impact factor or sample length. Select multiple providers to compare coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
providersNo
identifierNo
scholar_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
paperYes
issuesNo
metricsYes
interpretationNo

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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-paperA
Read-onlyIdempotent

Resolve a DOI, arXiv ID, PMID, PMCID, OpenAlex, Semantic Scholar, Scholar, Scopus or WOS ID. Validates returned identifiers; use search-papers for titles.

ParametersJSON Schema
NameRequiredDescriptionDefault
providersNo
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
paperYes
issuesNo
identifierYes

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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-papersA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
cursorNo
detailNocompact
offsetNo
year_toNo
providersNo
year_fromNo
include_abstractNo
open_access_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
queryYes
issuesNo
papersYes
returnedYes
warningsNo
providersYes
next_cursorsNo
next_offsetsNo

TDQS

A4.1/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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-citationA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
citationYes
providersNo
expected_yearNo
expected_titleNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
paperNo
issuesNo
statusYes
candidatesNo
identifierNo
differencesNo
explanationYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 11 tool updatesv0.2.3
    • First observedbatch-citations
    • First observedenhance-citation
    • First observedfind-open-access
    • First observedfind-scholar-id
    • First observedget-citation
    • First observedlist-providers
    • First observedpaper-metrics
    • First observedrelated-papers
    • First observedresolve-paper
    • First observedsearch-papers
    • First observedverify-citation

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers