Skip to main content
Glama
mlava

Scholar Sidekick

Check Open Access

checkOpenAccess
Read-onlyIdempotent

Determines if a scholarly work is openly accessible and finds the best legal version by resolving identifiers like DOI, PMID, or arXiv to check open access status and location.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesA 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).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, the description adds significant behavioral context: the DOI resolution process, return value when no DOI found (doi=null, reason='no_doi'), rate limiting behavior, and authentication options. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is comprehensive but somewhat verbose. It includes all necessary information without redundancy. Front-loading the core purpose ('Check whether a single scholarly work is openly accessible...') followed by usage, behavior, and details. Could be slightly trimmed without loss, but earns its length with relevant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single parameter and no output schema, the description covers all necessary context: return format (with fields like isOa, oaStatus, bestLocation, locations), edge cases (null result when no DOI), authentication options, rate limits, and idempotency. No gaps identified for an AI agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

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

Schema coverage is 100% (the single parameter 'id' is described in schema). The description adds substantial meaning: accepted identifier types (DOI, PMID, PMCID, arXiv, ISBN, ADS bibcode), resolution behavior for non-DOI inputs, length constraints, and explicit prohibition of batching. This greatly enhances the schema's minimal description.

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 clearly states the tool checks open access status and best legal version. It uses specific verbs ('check whether') and identifies the resource ('single scholarly work'). It distinguishes from sibling tools by noting that no sibling overlaps this functionality, particularly differentiate from resolveIdentifier which returns metadata but not OA status.

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?

The description provides explicit usage scenarios ('user asks is this open access?', 'where can I read this for free?') and clear instructions to avoid batching ('loop one call per identifier'). It also mentions rate limits and API keys. However, it does not explicitly list when NOT to use this tool vs siblings, though it implies resolveIdentifier is for metadata only.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mlava/scholar-sidekick-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server