Verify and repair BibTeX references with DOI-first MCP tools.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Verify bibliographic existence and metadata consistency without destructive edits.
Chinese Β· Install Β· Quick start Β· MCP Β· Development
Bibverify is a BibTeX metadata verification tool for researchers, editors, automation, and AI assistants. It starts with exact DOI, PMID, PMCID, or arXiv identifiers and then scores candidates from title, author, year, venue, and pagination evidence.
Bibverify evaluates whether a bibliographic record can be located in the queried sources and whether its metadata agrees. It does not prove that research findings are true, data is authentic, or a venue is reputable. A missing database record is not evidence that a reference is fabricated. By default, the source .bib file is never overwritten.
identifier_conflict instead of being hidden by title search.abstract, keywords, file, note, and custom fields that providers do not return; conflicting persistent identifiers are never overwritten automatically.Retry-After support for 429/5xx responses.GitHub Actions tests all three operating systems across all four supported Python versions.
The current published release is v0.3.0. This branch prepares v0.4.0; commands marked v0.4.0 become usable only after their linked npm, GHCR, or GitHub Release artifact has been published.
Run without a permanent installation:
Starting with v0.4.0, Node.js users can use the zero-dependency npm launcher. It downloads the
matching native release, verifies SHA256SUMS, and forwards every argument and exit code:
For a persistent CLI in an isolated Python environment, use uv tool or pipx:
Inside a virtual environment, regular pip also works:
Each release also provides smoke-tested native packages on GitHub Releases. Beginning with v0.4.0, the release matrix covers Windows x64 plus macOS and glibc 2.28+ Linux on both x64 and ARM64. musl-based Linux users should use the Python package or container image. Windows ARM64 is not published natively yet because an MCP runtime dependency does not currently provide Windows ARM64 wheels; npm automatically uses the tested x64 build under Windows 11 emulation, or you can use the ARM64 container instead.
The same release publishes a multi-architecture container:
Package-manager manifests are generated from the final release bytes, not from unverified build inputs. Homebrew, Scoop, and WinGet are not live catalog entries yet: v0.4.0 will attach submission- ready manifests to GitHub Release, after which each external catalog still requires onboarding or review. See Distribution channels for rollout status.
For a machine-readable response:
.bib fileCreate a starter configuration:
Place references.bib next to the configuration and run:
You can override the input and output paths from the command line:
Inspect results without writing any file:
After reviewing the report, explicitly apply high-confidence field updates. Bibverify creates a byte-for-byte backup first:
PowerShell example:
The v0.2 forms remain available for compatibility, although new scripts should use subcommands:
A minimal configuration looks like this:
See config_template.json for every commonly used option.
Path behavior is intentionally predictable:
bib_file and output_dir values are resolved from the directory containing config.json, not the shell's current directory.output_dir is omitted, output is written next to the input bibliography.encoding: "auto" tries UTF-8 with BOM, UTF-8, and GB18030. It does not fall back to Latin-1 and silently turn unknown bytes into mojibake.Keys can be stored in a local configuration, but environment variables are safer and harder to commit accidentally:
| Environment variable | Used for |
|---|---|
BIBVERIFY_EMAIL | Crossref polite pool and contact information |
BIBVERIFY_OPENALEX_API_KEY | OpenAlex |
BIBVERIFY_SEMANTIC_SCHOLAR_API_KEY | Semantic Scholar |
BIBVERIFY_PUBMED_API_KEY | PubMed/NCBI |
BIBVERIFY_CORE_API_KEY | CORE |
PowerShell:
Bash or Zsh:
connect_timeout and read_timeout separately bound connection setup and response reads; the compatibility timeout field remains available. match_threshold controls automatic candidate acceptance, ambiguous_threshold controls which plausible candidates enter review, and auto_update_threshold is an additional gate for field changes. Higher values are more conservative. Relative cache paths are resolved from the config directory.
The official bioRxiv details route does not provide arbitrary title search. Bibverify therefore calls bioRxiv only for an exact 10.1101/... DOI and leaves title-only discovery to providers whose contracts support it, such as Crossref and Europe PMC.
Exit codes:
| Code | Meaning |
|---|---|
0 | Verification completed and metadata is consistent |
1 | Runtime error reserved for uncategorized command failures |
2 | Metadata differences or high-confidence updates exist |
3 | Ambiguous, not-found, or identifier-conflict entries require review |
4 | A provider was unavailable and verification is incomplete |
5 | The input file, configuration, or entry is invalid |
With --json, stdout contains JSON only. Diagnostics go to stderr, which keeps the command safe for CI and scripts.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/bibverify)<a href="https://allmcps.com/mcp/bibverify"><img src="https://allmcps.com/api/badge/bibverify?style=directory" alt="Bibverify on AllMCPs" /></a>