Scholar Sidekick
Server Details
Catch AI-fabricated citations (real DOI + fake title). Retraction, open-access, 10,000+ CSL styles.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- mlava/scholar-sidekick-mcp
- GitHub Stars
- 7
- Server Listing
- Scholar Sidekick
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.9/5 across 7 of 7 tools scored.
Each tool has a clearly distinct purpose: auditBibliography is the batch counterpart to verifyCitation, checkOpenAccess focuses on OA status, checkRetraction on retractions, resolveIdentifier returns raw metadata, formatCitation produces citation strings, and exportCitation produces files. Descriptions explicitly cross-reference each other to prevent confusion.
All tool names follow a consistent verb_noun camelCase pattern: audit, check, check, export, format, resolve, verify + object. There is no mixing of styles or vague verbs.
With 7 tools, the server is well-scoped for its purpose of citation verification and formatting. Each tool covers a distinct operational need (batch audit, single verify, OA, retraction, format, export, resolve) without bloat.
The toolset covers the full citation lifecycle: verifying a single citation, auditing entire bibliographies, checking retraction and open-access status, formatting citations, exporting to common bibliography formats, and resolving identifiers to metadata. No obvious gaps exist for the stated domain.
Available Tools
7 toolsauditBibliographyAudit BibliographyARead-onlyIdempotentInspect
Verify a WHOLE bibliography in one call — the batch counterpart to verifyCitation. Each entry runs the same fabrication check (real, resolvable identifier paired with a title that does NOT match the resolved paper; Topaz et al., Lancet 2026) plus a retraction lookup, and the tool returns a per-entry verdict table and a corpus summary. Use when the user pastes a reference list, a .bib / .ris file, or asks to 'check all these citations at once' / 'audit my bibliography' / 'which of these references are fake or retracted'. Input: EITHER bibliography (raw BibTeX / RIS / CSL-JSON text — format auto-detected) OR claims (an array of pre-parsed {title + identifier} objects), not both. Capped at 25 entries per call; excess is dropped and reported via truncated. checks defaults to ['retraction'] (pass [] to skip); screenWithLlm opt-in per entry (same auth gating as verifyCitation). Returns: { format, entries: [{ index, sourceKey?, status: 'ok'|'error', verdict: 'matched' | 'mismatch' | 'not_found' | 'ambiguous', confidence, matched, mismatches, retraction: { checked, doi, isRetracted, hasCorrections, hasConcern, notices } | null, provenance }], parseErrors: [{ index, error, message }], truncated, summary: { total, matched, mismatch, ambiguous, not_found, errored, retracted } }. Per-entry leniency: one entry that fails to resolve becomes status:'error' without failing the batch. This audits citation IDENTITY (does each identifier resolve to the claimed work, and is it retracted) — it does NOT check whether a source supports the claim it is cited for. Read-only and idempotent. Works anonymously for the non-LLM path; SCHOLAR_API_KEY (a free ssk key from https://scholar-sidekick.com/account) or a paid RapidAPI tier raises rate limits and enables the optional LLM screen.
| Name | Required | Description | Default |
|---|---|---|---|
| checks | No | Per-entry enrichment checks. Defaults to ['retraction'] (flags retracted / corrected / expression-of-concern works via Crossref + Retraction Watch, keyed on each resolved DOI). Pass [] to skip the retraction lookup. | |
| claims | No | Pre-parsed citations to audit — an alternative to `bibliography` for agents that already hold structured references. Each needs a `title` plus whatever identifiers the citation carries. | |
| format | No | Override format auto-detection for `bibliography`. | |
| bibliography | No | Raw bibliography text to parse and audit — BibTeX, RIS, or CSL-JSON. Provide EITHER this or `claims`, not both. Format is auto-detected from the content; override with `format`. Capped at 25 entries per call (excess is dropped and reported via `truncated`). | |
| screenWithLlm | No | Opt-in Stage 3 LLM screen applied per entry (same gating as verifyCitation: authenticated first-party key or paid RapidAPI tier). Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| format | No | Detected input format ('bibtex' | 'ris' | 'csl-json'), or null for the claims[] path. |
| entries | No | One result per verifiable entry: { index, sourceKey?, status: 'ok'|'error', verdict, confidence, matched, mismatches, retraction, _provenance }. |
| summary | No | Corpus roll-up: { total, matched, mismatch, ambiguous, not_found, errored, retracted }. |
| truncated | No | Count of entries dropped beyond the 25-entry cap. |
| parseErrors | No | Entries that could not be parsed or lacked a title: { index, error, message }. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/idempotent/destructive, and the description adds rich context: it is read-only and idempotent, works anonymously with key-based rate limits, mentions the 25-entry cap with excess dropped and reported, and clarifies what the tool does NOT check (source support for claims). This exceeds what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though long, every sentence serves a purpose: purpose, usage triggers, input alternatives, limits, checks, return summary, and caveats. It is front-loaded with the core action and structured logically, making it dense but scannable without waste.
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 complex batch tool with 5 parameters and an output schema, the description covers all key aspects: use cases, input formats, mutual exclusion, limits, defaults, authentication, return structure, and limitations. The output schema handles detailed return shapes, so the description's brief summary is sufficient and 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?
Schema coverage is 100%, but the description adds crucial semantic value beyond schemas: it explains the EITHER/OR relationship between `bibliography` and `claims`, the default for `checks`, the opt-in gating for `screenWithLlm`, and the cap behavior. This directly helps an agent choose and populate parameters correctly.
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 starts with 'Verify a WHOLE bibliography in one call — the batch counterpart to verifyCitation,' clearly stating the action, resource, and relationship to a sibling tool. It distinguishes itself by emphasizing the batch scope and lists concrete use cases, making it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('when the user pastes a reference list, a .bib / .ris file, or asks to...') and contrasts with verifyCitation as the single-entry alternative. It also gives example phrasings, giving an agent clear signals for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
checkOpenAccessCheck Open AccessARead-onlyIdempotentInspect
Check whether a single scholarly work is openly accessible and where to find the best legal version. Use when the user asks 'is this open access?', 'where can I read this for free?', or wants the OA license/version before reusing or redistributing. Sourced from Unpaywall. Resolves DOI/PMID/PMCID/arXiv/ISBN/ADS inputs to a DOI before lookup; inputs that don't map to a DOI return doi=null and reason='no_doi'. Single identifier per call — does NOT accept comma/newline batches; loop one call per identifier for multiple papers. Returns: { doi, resolvedFrom?, reason?, result } where result has isOa (boolean), oaStatus ('gold' | 'green' | 'hybrid' | 'bronze' | 'closed'), title, bestLocation ({url, hostType: 'publisher' | 'repository', license, version: 'submittedVersion' | 'acceptedVersion' | 'publishedVersion'} or null), and locations (array of the same shape); result is null when no DOI could be resolved and reason explains why ('no_doi'). No sibling tool overlaps this — resolveIdentifier returns metadata but not OA status. Read-only and idempotent — safe to retry. Works anonymously against the public Scholar Sidekick API (rate-limited free tier); set SCHOLAR_API_KEY (a free ssk_ key from https://scholar-sidekick.com/account) for higher limits, or RAPIDAPI_KEY for paid RapidAPI tiers. Rate limits follow your tier; Unpaywall is queried server-side with its own caching.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | A single scholarly identifier to check. 1–500 characters. Non-DOI inputs are resolved to a DOI server-side before the lookup; if no DOI can be derived, the tool returns doi=null with reason='no_doi'. Pass exactly one identifier — comma/newline batches are NOT accepted by this tool; loop one call per identifier for multiple papers. Accepted: DOI, PMID, PMCID, arXiv ID, ISBN, or NASA ADS bibcode (with or without prefixes). |
Output Schema
| Name | Required | Description |
|---|---|---|
| doi | Yes | |
| reason | No | |
| result | Yes | Open-access status, or null when no DOI resolved. |
| resolvedFrom | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly, idempotent, and non-destructive. The description goes far beyond these by disclosing Unpaywall as the source, the DOI resolution fallback with returned doi=null/reason='no_doi', rate-limit behavior, API key requirements, and the full output shape. There is no contradiction with annotations; the description adds substantial behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured and information-dense. It front-loads the core purpose, then covers usage, behavior, output, alternatives, and operational notes. Some details repeat schema content (accepted identifier types, no batches), but every sentence adds meaningful context or clarifies boundaries.
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 tool with one parameter, a rich output schema, and strong annotations, the description is exceptionally complete. It covers edge cases (non-resolvable DOI), output format, rate limits, API key setup, and relationship to siblings, leaving the agent fully equipped to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema's id parameter already documents accepted identifier types and the single-identifier constraint. The description reinforces this and adds operational meaning (e.g., non-DOI inputs resolved server-side, exactly one identifier per call, loop guidance) that helps the agent avoid batching mistakes. Slight redundancy with schema, but the added context justifies a score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Check whether a single scholarly work is openly accessible and where to find the best legal version.' It clearly distinguishes this tool from siblings by explicitly stating that resolveIdentifier returns metadata but not OA status, and explains the input resolution workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance with example user queries ('is this open access?', 'where can I read this for free?'). It also offers clear exclusions and alternatives: single identifier per call, no comma/newline batches, loop for multiple papers, and notes that no sibling tool overlaps this functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
checkRetractionCheck RetractionARead-onlyIdempotentInspect
Check whether a single scholarly work has been retracted, corrected, or had an expression of concern raised. Use when the user asks 'has this paper been retracted?' or wants to verify a paper's standing before citing it (clinical, regulatory, evidence-synthesis contexts). For multi-paper bibliography audits (clinical guidelines, systematic reviews), loop one call per identifier — the tool intentionally rejects batch input to keep retraction-status results unambiguous per work. Sourced from Crossref updated-by (which mirrors Retraction Watch). Resolves DOI/PMID/PMCID/arXiv/ADS inputs to a DOI before lookup; ISBN inputs always return doi=null and reason='no_doi' since books are not in the retraction graph. Single identifier per call — does NOT accept comma/newline batches; loop one call per identifier for multiple papers. Returns: { doi, resolvedFrom?, reason?, result } where result has isRetracted, hasCorrections, hasConcern (booleans), notices (array of {type, label, doi, date, source} where type is a raw Crossref update type such as 'retraction', 'correction', 'erratum' or 'expression_of_concern'), and title; result is null when no DOI could be resolved and reason explains why ('no_doi'). No sibling tool overlaps this — resolveIdentifier returns metadata but not retraction status. Read-only and idempotent — safe to retry. Works anonymously against the public Scholar Sidekick API (rate-limited free tier); set SCHOLAR_API_KEY (a free ssk_ key from https://scholar-sidekick.com/account) for higher limits, or RAPIDAPI_KEY for paid RapidAPI tiers. Rate limits follow your tier; Crossref is queried server-side with its own caching.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | A single scholarly identifier to check. 1–500 characters. Non-DOI inputs are resolved to a DOI server-side before the lookup; if no DOI can be derived, the tool returns doi=null with reason='no_doi'. Pass exactly one identifier — comma/newline batches are NOT accepted by this tool; loop one call per identifier for multiple papers. Accepted: DOI, PMID, PMCID, arXiv ID, or NASA ADS bibcode (with or without prefixes). ISBN inputs are accepted but always return doi=null since books are not in the retraction graph. |
Output Schema
| Name | Required | Description |
|---|---|---|
| doi | Yes | Resolved DOI, or null when none could be derived. |
| reason | No | Why result is null (e.g. 'no_doi'). |
| result | Yes | Retraction status, or null when no DOI resolved. |
| resolvedFrom | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint, idempotentHint, and destructiveHint; the description adds valuable context beyond these: data provenance (Crossref updated-by mirroring Retraction Watch), input resolution behavior (DOI/PMID/PMCID/arXiv/ADS resolved to DOI; ISBN returns doi=null), batch rejection rationale, and rate limits/auth. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured and front-loaded with the core purpose, then systematically addresses usage, batch behavior, output, and auth. Every sentence earns its place given the tool's edge cases, though it is more verbose than strictly necessary.
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 a single parameter, a complete output schema, and rich annotations, the description covers all contextual needs: purpose, usage constraints, data source, output shape, auth, rate limits, and sibling differentiation. There are no significant 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 coverage is 100% and the schema's 'id' description thoroughly documents accepted identifier types, batch rejection, and ISBN behavior, so baseline 3 applies. The tool description restates some of this but does not add parameter-level semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Check whether a single scholarly work has been retracted, corrected, or had an expression of concern raised.' It distinguishes itself from sibling tools by explicitly stating 'No sibling tool overlaps this — resolveIdentifier returns metadata but not retraction status.'
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?
Explicitly states when to use the tool ('has this paper been retracted?', verifying before citing in clinical/regulatory/evidence-synthesis contexts) and provides exclusions (multi-paper audits require looping; batch input rejected). It also names an alternative (resolveIdentifier) that does not provide retraction status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
exportCitationExport CitationARead-onlyIdempotentInspect
Export scholarly identifiers to a bibliography file format ready to write to disk or paste into a reference manager. Use when the user wants a file (.bib, .ris, .nbib, .xml, .rdf, .csv) for Zotero, Mendeley, EndNote, RefWorks, BibTeX/LaTeX, Pandoc, or Excel. Format parameter is required: bib (BibTeX — LaTeX), ris (RIS — most widely supported by reference managers), csl (CSL JSON — Pandoc/Quarto), endnote-xml, endnote-refer, refworks, medline (NBIB — PubMed round-trips, clinical workflows), zotero-rdf, csv (spreadsheet-friendly), or txt (plain-text bibliography rendered with the optional style parameter — txt is the only format that uses style; the others have their own structured shape and ignore it). Accepts the same identifier formats as resolveIdentifier (DOI/PMID/PMCID/ISBN/arXiv/ISSN/ADS/WHO IRIS, prefixes tolerated), single or comma/newline-separated batch — one round trip per call. Returns: { content: string, format: string } where content is the entire bibliography in the requested format as a single string — write it to a file (.bib/.ris/.nbib/etc.) or paste it directly into the target tool. Use formatCitation instead when the user wants in-line citation text (manuscript, slide); use resolveIdentifier when they want raw structured metadata. Read-only and idempotent — safe to retry. Works anonymously against the public Scholar Sidekick API (rate-limited free tier); set SCHOLAR_API_KEY (a free ssk_ key from https://scholar-sidekick.com/account) for higher limits, or RAPIDAPI_KEY for paid RapidAPI tiers. Rate limits follow your tier.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Locale for formatting (e.g. en-US) | |
| text | Yes | One or more identifiers (DOIs, PMIDs, ISBNs, etc.) separated by newlines or commas | |
| style | No | Citation style (used only for txt export) | |
| format | Yes | Export format |
Output Schema
| Name | Required | Description |
|---|---|---|
| format | Yes | The export format that was produced. |
| content | Yes | The entire bibliography in the requested format, as one string. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds substantial context: auth requirements (SCHOLAR_API_KEY, RAPIDAPI_KEY), rate limits, anonymous access, retry safety, and format-specific behavior (txt uses style; others ignore it). This goes well beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence provides necessary information: purpose, use cases, format semantics, identifier handling, return shape, alternatives, safety, auth, and rate limits. It is logically ordered and free of fluff, earning its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 formats, 4 params, auth, alternatives), the description covers all bases: input formats, return shape, alternative tools, rate limits, and API keys. It is even self-contained enough to guide an agent without needing to inspect the schema or output 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?
Although schema coverage is 100%, the description enriches each parameter. It explains every format enum value with use cases (BibTeX for LaTeX, RIS for reference managers, NBIB for PubMed), clarifies that style only applies to txt, and details the identifier formats accepted for the text parameter. This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Export scholarly identifiers to a bibliography file format'. It clearly distinguishes from siblings by stating when to use exportCitation (file generation) vs. formatCitation (in-line text) and resolveIdentifier (raw metadata).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Use when the user wants a file (.bib, .ris, .nbib, .xml, .rdf, .csv) for Zotero, Mendeley, EndNote...'. Also explicitly names alternatives: 'Use formatCitation instead when the user wants in-line citation text; use resolveIdentifier when they want raw structured metadata.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formatCitationFormat CitationARead-onlyIdempotentInspect
Format scholarly identifiers into a finished citation in a specific style. Use when the user wants a paste-ready citation string for a manuscript, slide, message, footnote, or in-line reference. Style defaults to vancouver if unspecified; ask the user before defaulting if any ambiguity exists (e.g. 'Harvard' and 'Chicago' have multiple variants — confirm which one). Supports five hand-tuned builtins (vancouver, ama, apa, ieee, cse) plus any of 10,000+ CSL style IDs (chicago-author-date, harvard-cite-them-right, modern-language-association, nature, bmj, the-lancet, etc.). Alias and dependent-style resolution apply, so 'harvard' resolves to 'harvard-cite-them-right' and the canonical ID is reported back as styleUsed. Output defaults to text; pass output=html for marked-up HTML or output=json for structured CSL items. Accepts the same identifier formats as resolveIdentifier (DOI/PMID/PMCID/ISBN/arXiv/ISSN/ADS/WHO IRIS, prefixes tolerated), single or comma/newline-separated batch — one round trip per call. Returns: one of { text, html, items } depending on the output parameter, followed by a metadata block ({formatter: 'builtin' | 'csl', styleUsed, requestId, warnings?}) appended as a second text content item — surface this to the user when they care about reproducibility. Use resolveIdentifier instead when the user wants raw metadata to inspect or transform; use exportCitation when they want a downloadable bibliography file. Read-only and idempotent — safe to retry. Works anonymously against the public Scholar Sidekick API (rate-limited free tier); set SCHOLAR_API_KEY (a free ssk_ key from https://scholar-sidekick.com/account) for higher limits, or RAPIDAPI_KEY for paid RapidAPI tiers. Rate limits follow your tier.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Locale for formatting (e.g. en-US, en-GB, fr-FR) | |
| text | Yes | One or more identifiers (DOIs, PMIDs, ISBNs, arXiv IDs, etc.) separated by newlines or commas | |
| style | No | Citation style: vancouver (default), ama, apa, ieee, cse, or any CSL style ID | |
| output | No | Output format (default: text) | |
| footnote | No | Format as footnotes instead of bibliography entries |
Output Schema
| Name | Required | Description |
|---|---|---|
| html | No | Formatted citation HTML (when output=html). |
| lang | No | Locale used for formatting. |
| text | No | Formatted citation text (when output=text). |
| items | No | Structured CSL items (when output=json). |
| warnings | No | |
| formatter | No | Which engine formatted: 'builtin' or 'csl'. |
| styleUsed | No | Canonical style ID after alias/dependent-style resolution. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations: it details read-only/idempotent behavior, rate limits, API key requirements, output format semantics, metadata block structure, and style resolution (e.g., 'harvard' resolves to 'harvard-cite-them-right'). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but every sentence carries essential information, with the purpose and usage front-loaded. It avoids redundancy and organizes complex details (style resolution, output formats, rate limits) into a coherent flow without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, output schema, many alternatives, and nuanced behavior), the description covers all aspects: return structure (text/html/items + metadata block), authentication tiers, rate limiting, style resolution, batch processing, and when-to-use alternatives. It is exceptionally 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?
Although the schema already covers all parameters at 100%, the description adds substantial meaning: style defaults, builtins vs. CSL, alias resolution, batch input format (newline/comma separated, one round trip), and the output parameter returning text/html/items. It enriches every parameter beyond schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool formats scholarly identifiers into a finished citation with a specific style. It distinguishes from siblings by contrasting with resolveIdentifier (raw metadata) and exportCitation (bibliography file), making its unique purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit use cases ('paste-ready citation string for a manuscript, slide, message, footnote, or in-line reference'), explicit alternatives, and even warns about style ambiguity ('Harvard' and 'Chicago' variants) requiring user confirmation before defaulting. This is exemplary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolveIdentifierResolve IdentifierARead-onlyIdempotentInspect
Resolve scholarly identifiers to structured CSL JSON metadata (title, authors, journal, year, identifiers). Use when the user wants raw bibliographic data to inspect, transform, or feed into another tool — not a formatted citation. Common single-shot conversions: PMID → PMCID, arXiv → DOI, ISBN → CSL JSON, WHO IRIS URL → structured metadata. Accepts DOI, PMID, PMCID, ISBN, arXiv ID, ISSN, NASA ADS bibcode, or WHO IRIS URL, with or without prefixes (PMID:, arXiv:, ISBN hyphens, https://doi.org/...). Pass a single identifier or a comma/newline-separated batch — one round trip per call. Returns: a JSON array of CSL items, each with id, type, title, author[], issued.date-parts, container-title, DOI/PMID/PMCID/ISBN/ISSN/URL when available. Use formatCitation instead when the user wants a finished citation string in a specific style; use exportCitation when they want a downloadable bibliography file. Read-only and idempotent — safe to retry. Works anonymously against the public Scholar Sidekick API (rate-limited free tier); set SCHOLAR_API_KEY (a free ssk_ key from https://scholar-sidekick.com/account) for higher limits, or RAPIDAPI_KEY for paid RapidAPI tiers. Rate limits follow your tier; the underlying REST API caches repeated identical requests and surfaces cache state in the x-scholar-cache response header.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | One or more identifiers to resolve (DOIs, PMIDs, PMCIDs, ISBNs, arXiv IDs, ISSNs, ADS bibcodes) separated by newlines or commas |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | Resolved CSL JSON items, one per identifier. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, etc.), the description discloses operationally significant behaviors: authentication options (SCHOLAR_API_KEY, RAPIDAPI_KEY), rate-limit tiers, REST API caching with x-scholar-cache response header, and the ability to batch requests in one round trip. This adds substantial value over the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured: purpose first, usage examples, output summary, alternatives, safety, and API details. Every sentence carries operational weight, and the front-loaded purpose sentence makes the tool's function immediately clear. Length is justified by the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's breadth (multiple identifier types, batching, API keys, and output schema), the description is remarkably complete. It covers purpose, usage, alternatives, auth, rate limits, caching, and output format without redundant explanation of return values (output schema exists). It positions the tool well relative to its siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers the 'text' parameter with 100% coverage, but the description enriches it by enumerating additional identifier types (WHO IRIS URL), prefix handling (PMID:, arXiv:, ISBN hyphens, https://doi.org/...), and batch semantics (comma/newline-separated, one round trip per call). This goes beyond the schema's basic listing of identifier kinds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource+output: 'Resolve scholarly identifiers to structured CSL JSON metadata (title, authors, journal, year, identifiers).' It also distinguishes from siblings by explicitly naming formatCitation and exportCitation as alternatives, making the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases: 'Use when the user wants raw bibliographic data to inspect, transform, or feed into another tool — not a formatted citation.' It also gives clear exclusions and alternatives: 'Use formatCitation instead when the user wants a finished citation string in a specific style; use exportCitation when they want a downloadable bibliography file.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verifyCitationVerify CitationARead-onlyIdempotentInspect
Verify a claimed citation against the resolved record at its identifier. Detects the dominant AI-driven fabrication pattern documented by Topaz et al. (Lancet 2026): a real, resolvable identifier (DOI / PMID / PMCID / arXiv / etc.) paired with a title that does NOT correspond to the paper at that identifier. Use when the user pastes a citation and asks 'is this real?' or 'check this DOI' — most fabricated citations resolve cleanly under doi.org but their cited title and the resolved title disagree. Single citation per call. Required: title plus exactly one identifier (doi, pmid, pmcid, isbn, arxiv, issn, ads, or whoIrisUrl). Optional refinements: author (first-author family name), year, container (journal). Set screenWithLlm: true to invoke the Stage 3 LLM screen on low-confidence mismatches (catches informal-abbreviation false positives); LLM access is gated to authenticated first-party keys and paid RapidAPI tiers — anonymous callers get 400 LLM_SCREEN_FORBIDDEN. Returns: { verdict: 'matched' | 'mismatch' | 'not_found' | 'ambiguous', confidence: 'high' | 'medium' | 'low', matched: , mismatches: [{field, claimed, resolved, similarity}], candidates: [{item, registries, score}] (when title-search ran), provenance: {stages_run, resolved_via, registries_searched, llm_screen} }. Verdict semantics: 'matched' = claim agrees with resolved record; 'mismatch' = identifier resolves but title does not match (Topaz fabrication pattern); 'ambiguous' = identifier resolves to one paper but the claimed title matches a DIFFERENT paper found via title-search (CITADEL 'citation error' subtype — wrong identifier for a real paper); 'not_found' = neither the identifier nor the title resolves anywhere. No sibling tool overlaps: resolveIdentifier returns metadata for a known-good identifier; verifyCitation is the only tool that cross-checks claimed title vs resolved metadata. Read-only and idempotent — safe to retry. Works anonymously for the non-LLM path; the Stage 3 LLM screen requires authentication — set SCHOLAR_API_KEY (a free ssk key from https://scholar-sidekick.com/account) or use a paid RapidAPI tier. SCHOLAR_API_KEY also raises your rate limit.
| Name | Required | Description | Default |
|---|---|---|---|
| ads | No | NASA ADS bibcode (19 chars). | |
| doi | No | DOI as cited (with or without https://doi.org/ prefix). Provide whichever identifier(s) the cited reference carries; the verifier uses the first one in priority order doi > pmid > pmcid > arxiv > ads > isbn > issn > whoIrisUrl. | |
| isbn | No | ISBN (10- or 13-digit, hyphens tolerated). | |
| issn | No | ISSN for journal-level resolution. | |
| pmid | No | PubMed ID as cited (digits only, or with 'PMID:' prefix). | |
| year | No | Publication year as cited. Wrong year alone does not flip the verdict, but >=2-year gap from the resolved record lowers confidence. | |
| arxiv | No | arXiv ID (e.g. '2301.08745' or 'arXiv:2301.08745'; old-style 'hep-ph/0501023' accepted). | |
| pmcid | No | PubMed Central ID (e.g. 'PMC1234567' or 'PMCID:1234567'). | |
| title | Yes | The title as it appears in the cited reference. This is the field the verifier cross-checks against the resolved record at the supplied identifier. Required. | |
| author | No | First-author family name as cited. Refines the verdict — a title-vs-resolved-title match plus an author mismatch raises suspicion of fabrication. Pass only the family name (e.g. 'Topaz', not 'Topaz, Maxim'). | |
| container | No | Journal or container name as cited (e.g. 'The Lancet', 'Neuroscience'). Soft signal — surfaced as a mismatch field but does not gate the verdict. | |
| whoIrisUrl | No | WHO IRIS URL (https://iris.who.int/...). | |
| screenWithLlm | No | Opt-in Stage 3 LLM screen. Fires only when the pre-LLM verdict is mismatch with low confidence (the informal-abbreviation false-positive bucket). Gated: requires an authenticated first-party API key or a paid RapidAPI tier; anonymous / free callers receive 400 LLM_SCREEN_FORBIDDEN. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| matched | No | The resolved record at the identifier, or null on not_found. |
| verdict | No | |
| candidates | No | |
| confidence | No | |
| mismatches | No | |
| _provenance | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, and the description reinforces those traits with 'Read-only and idempotent — safe to retry.' It adds substantial context: the Topaz fabrication pattern, verdict semantics, auth gating for LLM screen (400 LLM_SCREEN_FORBIDDEN for anonymous callers), and rate-limit note. These details go well beyond the annotations and meaningfully inform the agent of real-world 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?
The description is long but front-loaded: the first sentence states the core purpose. Every subsequent sentence adds unique information—detection pattern, usage triggers, parameter rules, LLM gating, return structure, verdict semantics, sibling differentiation, safety. No word is wasted; it is an appropriately sized, information-dense reference.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (13 parameters, multiple identifiers, gated LLM screen), the description is remarkably complete. It explains the full return object, every verdict meaning with example subtypes, authentication requirements, error codes, and idempotency. The output schema exists but is not shown in this definition; the description compensates fully by documenting the return structure and semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter baseline. The description adds value by clarifying the identifier priority order, the requirement of 'title plus exactly one identifier' (even though the schema only marks title as required), the soft-signal nature of container, and the gating of screenWithLlm. This is genuinely helpful, but not exceptional since many parameter details are already in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Verify a claimed citation against the resolved record at its identifier.' It immediately identifies the dominant AI-driven fabrication pattern and clearly distinguishes itself from resolveIdentifier by stating it is the only tool that cross-checks claimed title vs resolved metadata. This is unambiguous and differentiates from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit use-case guidance is provided: 'Use when the user pastes a citation and asks "is this real?" or "check this DOI".' It also states single citation per call, required fields, and explicitly names the alternative tool (resolveIdentifier) for known-good identifiers. The LLM screen usage and authentication requirements are clearly described, leaving no ambiguity about when to invoke this versus siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Flicense-qualityCmaintenanceFabrication-free, DOI-backed citations for AI content and agents, using openAlex public-domain data with resolvable DOIs. Includes an API and planned MCP server for agent-native citation retrieval.
- Alicense-qualityCmaintenanceVerifies citations in reference lists by checking DOIs against public registries to catch AI-hallucinated or mismatched citations.MIT
- AlicenseBqualityDmaintenanceAutomatically enriches BibTeX citations with missing metadata (DOI, venue, etc.) from arXiv, DBLP, and CrossRef via an MCP server for AI assistants.2MIT

CiteStamp MCP serverofficial
Alicense-qualityCmaintenanceGround citations before your agent emits them by checking references against public scholarly registries and flagging hallucinated or retracted ones.MIT
Your Connectors
Sign in to create a connector for this server.