Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Verify and repair BibTeX references with DOI-first MCP tools.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"bibverify": {
"command": "uvx",
"args": [
"bibverify",
"mcp"
]
}
}
}Run this in your terminal
claude mcp add bibverify -- uvx bibverify mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"bibverify": {
"command": "uvx",
"args": [
"bibverify",
"mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"bibverify": {
"type": "stdio",
"command": "uvx",
"args": [
"bibverify",
"mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account Hylouis233, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.3.0) reached the registry 3 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Excaliself
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Find, read, create, edit, and organize Excalidraw drawings in your self-hosted Excaliself instance.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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:
uvx bibverify --version
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:
npx --yes @hylouis233/bibverify --version
pnpm dlx @hylouis233/bibverify --version bunx --bun @hylouis233/bibverify --version
For a persistent CLI in an isolated Python environment, use uv tool or pipx:
uv tool install bibverify
pipx install bibverify
Inside a virtual environment, regular pip also works:
python -m pip install --upgrade bibverify
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:
docker run --rm ghcr.io/hylouis233/bibverify:0.4.0 --version
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.
bibverify doi 10.1038/nature12373 --key example2013
For a machine-readable response:
bibverify doi 10.1038/nature12373 --json
.bib fileCreate a starter configuration:
bibverify config init
Place references.bib next to the configuration and run:
bibverify check --config config.json
You can override the input and output paths from the command line:
bibverify check references.bib --config config.json --output-dir bibverify-output
Inspect results without writing any file:
bibverify check references.bib --dry-run --json
After reviewing the report, explicitly apply high-confidence field updates. Bibverify creates a byte-for-byte backup first:
bibverify check references.bib --apply
PowerShell example:
py -m bibverify check '.\Bibliography\references.bib' --output-dir '.\Verification results'
The v0.2 forms remain available for compatibility, although new scripts should use subcommands:
bibverify config.json
bibverify --doi 10.1038/nature12373 --key example2013
A minimal configuration looks like this:
{
"language": "EN", "bib_file": "references.bib", "encoding": "auto", "output_dir": "bibverify-output", "user_info": { "email": "your_email@example.com", "app_name": "Bibverify" } }
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:
$env:BIBVERIFY_EMAIL = 'you@example.com'
$env:BIBVERIFY_OPENALEX_API_KEY = '...' bibverify check --config config.json
Bash or Zsh:
export BIBVERIFY_EMAIL='you@example.com'
export BIBVERIFY_OPENALEX_API_KEY='...' bibverify check --config config.json
{
"query_settings": { "delay_between_requests": 0.5, "timeout": 10, "connect_timeout": 3.05, "read_timeout": 20, "max_retries": 3, "backoff_factor": 0.5, "stop_on_first_match": true, "match_threshold": 0.86, "ambiguous_threshold": 0.68, "auto_update_threshold": 0.92, "cache_enabled": true, "cache_ttl_hours": 168, "cache_path": ".bibverify-cache.sqlite3" } }
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.
bibverify check [BIB_FILE] [--config PATH] [--output-dir DIR] [--format txt|json|jsonl|csv] [--dry-run|--apply] [--json]
bibverify doi DOI [--key KEY] [--config PATH] [--json] bibverify config init [--output PATH] [--force] bibverify doctor [--config PATH] [--json] bibverify providers list [--json] bibverify cache clear [--config PATH] bibverify benchmark [--dataset PATH] bibverify mcp [--config PATH] [--workspace-root DIR] [--transport stdio|streamable-http] bibverify agent init [--target generic|codex|claude|cursor] [--output PATH] bibverify skill export [--target ...]
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.
For an input named references.bib, Bibverify may create:
bibverify_report_ . : complete states, candidates, provider errors, confidence, and field provenance in txt, json, jsonl, or csv.references_backup_ .bib: byte-for-byte copy of the source.references_updated_ .bib: complete bibliography after non-destructive merging; omitted when nothing changes.references_review_ .bib: ambiguous, not-found, unavailable-source, identifier-conflict, or invalid entries; omitted when nothing needs review.The report-level complete value is true only when every entry completed verification. A rate-limited or unreachable provider makes it false even if another source found a candidate. Each field_diffs record includes original/suggested values, source, confidence, normalized equivalence, action, and reason.
Each output can be disabled independently through output_settings. --dry-run overrides those settings and performs zero writes. The default command only writes proposals; only --apply changes the source after a backup.
Static priority is only the starting point:
identifier_conflict.Unpaywall is currently treated as open-access enrichment, not as a primary bibliographic metadata provider. Provider states distinguish matched, no_match, ambiguous, rate_limited, auth_error, network_error, parse_error, provider_error, and skipped.
Bibverify uses the official MCP Python SDK and supports local stdio and Streamable HTTP transports.
Start a stdio server:
bibverify mcp --config config.json --workspace-root .
MCP client configuration:
{
"mcpServers": {
Only the beginning is shown; read the rest in the repo