get_crossref_paper_by_doi
Retrieve academic paper metadata from CrossRef using a DOI identifier to access publication details for research purposes.
Instructions
Get a specific paper from CrossRef by its DOI.
Args: doi: Digital Object Identifier (e.g., '10.1038/nature12373'). Returns: Paper metadata in dictionary format, or empty dict if not found.
Example: get_crossref_paper_by_doi("10.1038/nature12373")
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| doi | Yes |
Implementation Reference
- paper_search_mcp/server.py:694-707 (handler)The handler implementation for the `get_crossref_paper_by_doi` tool, registered with `@mcp.tool()`. It uses `crossref_searcher` to fetch the paper and returns the result as a dictionary.
@mcp.tool() async def get_crossref_paper_by_doi(doi: str) -> Dict: """Get a specific paper from CrossRef by its DOI. Args: doi: Digital Object Identifier (e.g., '10.1038/nature12373'). Returns: Paper metadata in dictionary format, or empty dict if not found. Example: get_crossref_paper_by_doi("10.1038/nature12373") """ paper = await asyncio.to_thread(crossref_searcher.get_paper_by_doi, doi) return paper.to_dict() if paper else {}