Skip to main content
Glama
nmichaud0

DOI to BibTeX MCP Server

by nmichaud0

DOI to BibTeX MCP Server

An MCP (Model Context Protocol) server that converts DOIs to BibTeX format using the official DOI content negotiation API.

How It Works

This server uses DOI content negotiation to fetch BibTeX entries directly from doi.org. When you provide a DOI, it makes an HTTP request with the Accept: application/x-bibtex header to get the bibliographic data in BibTeX format.

Deployment Options

Railway offers a free tier perfect for hosting this MCP server:

  1. Create a Railway account at https://railway.app (free)

  2. Create a new project:

    • Click "New Project"

    • Select "Deploy from GitHub repo"

    • Connect your GitHub account

    • Push these files to a GitHub repo

    • Select your repository

  3. Railway will automatically:

    • Detect the Dockerfile

    • Build and deploy your server

    • Give you a public URL like https://your-app.up.railway.app

  4. Add to Claude Web:

    • Go to Settings > Integrations in Claude.ai

    • Click "+ Add Custom Integration"

    • Enter name: "DOI to BibTeX"

    • Enter URL: https://your-app.up.railway.app/sse

    • Click Connect

Railway Free Tier: $5/month credit, enough for thousands of DOI conversions

Option 2: Claude Desktop (Local)

  1. Install Python dependencies:

pip install -r requirements.txt
  1. Add to your MCP settings file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

{ "mcpServers": { "doi-to-bibtex": { "command": "python", "args": ["/absolute/path/to/doi-to-bibtex-mcp.py"] } } }
  1. Restart Claude Desktop

Usage

Once connected, ask Claude to convert DOIs:

Example requests:

  • "Convert DOI 10.1038/nature12373 to BibTeX"

  • "Get BibTeX for https://doi.org/10.1126/science.1157784"

  • "I need the BibTeX entry for doi:10.1103/PhysRevLett.104.198101"

The server accepts DOIs in multiple formats:

  • Just the identifier: 10.1234/example

  • With doi: prefix: doi:10.1234/example

  • Full URL: https://doi.org/10.1234/example

Files Included

  • server-http.py - HTTP/SSE version for Railway

  • doi-to-bibtex-mcp.py - stdio version for Claude Desktop

  • Dockerfile - Railway deployment configuration

  • requirements.txt - Python dependencies

Alternative Free Hosting Options

  • Render: https://render.com (free tier available)

  • Fly.io: https://fly.io (free tier available)

  • Replit: https://replit.com (free tier available)

All work similarly - push your code, get a public URL, add to Claude.

Data Source

This server uses the official DOI content negotiation service, which redirects to the appropriate registration agency (Crossref, DataCite, etc.) for each DOI. The data comes directly from publishers and registration agencies.

License

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

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/nmichaud0/mcp_doi2bib'

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