bibtex-mcp

bibtex-mcp

CLI and MCP server for fetching multiple BibTeX options from Google Scholar's visible citation export flow.

Category
Visit Server

README

bibtex-mcp

CLI and MCP server for fetching multiple BibTeX options from Google Scholar's visible citation export flow.

What Was Reverse Engineered

Google Scholar search results include a per-result Scholar id in the result container. The visible Cite button loads:

https://scholar.google.com/scholar?q=info:{scholarId}:scholar.google.com/&output=cite&scirp={rank}&hl=en

That citation dialog HTML contains a signed scholar.bib link on scholar.googleusercontent.com. This package follows that same two-step flow:

  1. Search Scholar for the paper title.
  2. Read the result ids from the Scholar result HTML.
  3. Follow All versions links for preprint/unknown rows so archival versions hidden behind an arXiv result can be found.
  4. Fetch the matching citation dialog HTML.
  5. Extract and fetch Scholar's BibTeX link.
  6. Rank options so archival conference/journal/publisher records come before preprints when Scholar exposes both.

The tool does not bypass CAPTCHA, paywalls, rate limits, or access controls.

Install

npm install
npm run build

CLI

npm run cli -- "Attention Is All You Need"
npm run cli -- --exact --json "Attention Is All You Need"
npm run cli -- --limit 20 --json "Attention Is All You Need"

After a global install or npm link:

scholar-bibtex "Attention Is All You Need"

MCP

Build first, then configure your MCP client to run:

node /absolute/path/to/bibtex-mcp/dist/mcp.js

Install With add-mcp

For a local checkout:

npm install
npm run build
npx add-mcp "node $(pwd)/dist/mcp.js" --name scholar-bibtex -a codex -y

For a published npm package:

npx add-mcp bibtex-mcp --name scholar-bibtex -a codex -y

Equivalently, use the explicit stdio command form:

npx add-mcp "npx -y bibtex-mcp" --name scholar-bibtex -a codex -y

You can also install directly from the public GitHub repo:

npx add-mcp "npx -y github:aryankeluskar/bibtex-mcp" --name scholar-bibtex -a codex -y

Change -a codex to another supported agent such as claude-code, cursor, vscode, or opencode.

The server exposes one tool:

google_scholar_bibtex

Input:

{
  "query": "Attention Is All You Need",
  "maxResults": 10,
  "exactTitle": false
}

Agent Skill

This repo includes an installable skill for agents that use the skills CLI:

npx skills add aryankeluskar/bibtex-mcp --skill google-scholar-bibtex-mcp --full-depth

From a local checkout, list or install it with:

npx skills add . --list --full-depth
npx skills add . --skill google-scholar-bibtex-mcp --full-depth -y

The skill tells agents how to install this MCP with add-mcp, call google_scholar_bibtex, and select archival records over preprints.

Stress Test

Run the deterministic stress test without hitting Google Scholar:

npm run stress

The stress test uses fixture mode to validate the CLI, stdio MCP concurrency, archival ranking, and add-mcp Codex project config generation.

Accuracy Notes

The BibTeX is sourced from Google Scholar's citation export, which is better than generated citations but still not infallible. Scholar can contain duplicate records, incomplete metadata, or venue variants.

By default the tool returns multiple options and ranks likely archival records above preprints. It also follows Scholar All versions clusters for non-archival rows so the conference or journal version can outrank a top-level preprint result. The ranking uses signals from the Scholar row, such as venue text and publisher/proceedings domains. For camera-ready bibliographies, pick the highest-ranked archival option whose title and venue match the paper PDF, proceedings page, DOI/Crossref, or publisher page.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured