Bibtex Reference Manager Mcp

io.github.AnonymousOnyx22由 GitHub 帳號 AnonymousOnyx22 發布v0.1.2更新於 Nov 3, 2026

BibTeX reference manager. Parse, convert, dedupe, lint BibTeX, RIS, CSL JSON and make cite keys.

已驗證STDIO僅桌面知識與記憶開發者工具

概覽

AI 產生的概覽

離線 MCP 伺服器,讓助理解析、轉換、去重、檢查並修復貼進對話的 BibTeX、RIS 與 CSL JSON 參考文獻清單。

可以做什麼
  • 把 BibTeX、RIS 或 CSL JSON 文字解析成正規化條目,欄位統一、作者拆成姓與名
  • 在 BibTeX、RIS、CSL JSON 與純文字(APA、MLA、IEEE)之間轉換參考文獻清單
  • 依 DOI、引用鍵或相似標題找出重複條目,並回傳移除多餘副本的清單
  • 檢查缺少欄位、頁碼格式錯誤、標題未大寫、無效 DOI、異常年份與重複鍵
  • 套用檢查中提示的安全修正,回傳整理後的 BibTeX
  • 產生如 smith2024deep 的一致引用鍵,重複時附加字母
適用情境
適合整理從 Zotero、Mendeley 或 EndNote 匯出的 .bib 或 RIS 檔、在不同文獻格式間轉換,或在繳交前整理論文參考文獻。它只處理貼上的文字,不用於搜尋或修改線上文獻庫。
執行需求
透過 npx 從 npm 套件 bibtex-reference-manager-mcp 以 stdio 在本機執行,需要 Node.js 20 或更新版本。不需帳號、API 金鑰、環境變數或網路連線。
安裝前請注意
所有工具皆為唯讀,資料不會外傳,主要注意事項是結果需由你自行貼回檔案。DOI 檢查只驗證格式而不確認是否存在,依標題去重屬啟發式判斷,可用 title_threshold 調整。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Bibtex Reference Manager Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

BibTeX Reference Manager MCP

[npm] [downloads] [license]

BibTeX Reference Manager MCP is a free, open source MCP server, published on npm as bibtex-reference-manager-mcp. It cleans, converts, dedupes and formats BibTeX, RIS and CSL JSON reference lists, so you stop fixing broken .bib files by hand. Paste a list into your AI app and ask it to read the entries, convert them to another format, find the duplicates, flag the problems or give every entry a tidy cite key.

It is made with students in mind. Writing a thesis in LaTeX? Ask it to fix a broken .bib file, clean up a Zotero export or a Mendeley export, turn an EndNote RIS file into BibTeX, and tidy your thesis bibliography before you hand it in.

Use it with Claude Desktop, Claude Code, Cursor, VS Code Copilot and any other app that supports MCP. It runs on your computer, needs no internet and no login, and your references never leave your machine.

Free forever. No account and no subscription.

Install

Run it straight from npm with npx. You need Node.js 20 or newer, see Node version for the details. There is nothing else to install, no account, no API key and no config file for the server itself.

bash
npx -y bibtex-reference-manager-mcp

Try these prompts

Paste your reference list into the chat first, or attach the file, then ask:

  1. "Here is my references.bib. Lint it and tell me what is broken, entry by entry."
  2. "Find the duplicates in this list and give me back a clean BibTeX file without them."
  3. "Convert these RIS entries from my library export to BibTeX, then rename the keys so they look like smith2024deep."

Add it to your AI app's MCP config so the app can start it for you:

All of them start the same server the same way. The only difference is where the config goes.

Claude Desktop

Add this to claude_desktop_config.json:

json
{  "mcpServers": {    "bibtex": {      "command": "npx",      "args": ["-y", "bibtex-reference-manager-mcp"]    }  }}

Restart Claude Desktop after you save the file.

Claude Code

Run this in a terminal:

bash
claude mcp add bibtex -- npx -y bibtex-reference-manager-mcp

Cursor

Cursor reads .cursor/mcp.json from the project folder, or ~/.cursor/mcp.json in your home folder if you want the server in every project.

json
{  "mcpServers": {    "bibtex": {      "type": "stdio",      "command": "npx",      "args": ["-y", "bibtex-reference-manager-mcp"]    }  }}

VS Code Copilot

Add this to .vscode/mcp.json in your workspace:

json
{  "servers": {    "bibtex": {      "type": "stdio",      "command": "npx",      "args": ["-y", "bibtex-reference-manager-mcp"]    }  }}

Why this server

Some MCP servers connect to a reference manager account and read your library online. This one does not. It works on text you paste in, so it is a different tool for a different job.

  • It needs no account, no API key and no internet. Nothing is sent anywhere.
  • It does not connect to Zotero or Mendeley. You export a file and paste it in, so it works with any reference manager that can write BibTeX, RIS or CSL JSON.
  • The work is done by code, not by the AI guessing. Converting, deduping, linting and renaming keys give the same result every time.
  • It is read only. It never edits your library or your files. You get the result back and decide what to keep.

If you want an assistant to search or change a live online library, you need a server that connects to that service. This one is for cleaning up an exported list.

Competitor comparison

Other MCP servers work with reference libraries too. Most connect to an online account or a web API, so your data leaves your computer and you need an account or an API key. This server works on text you paste in, so it needs no account, no API key and no internet, and nothing is sent anywhere.

ServerWorks offlineNeeds account or keyReads a live libraryRead onlyFormats
BibTeX Reference Manager MCPYesNoNoYesBibTeX, RIS, CSL JSON
zotero-mcpNoYesYesNoZotero, BibTeX
mendeley-mcpNoYesYesNoMendeley, BibTeX
bibtex-mcpNoOptionalNoYesBibTeX
reference-mcpNoNoNoYesBibTeX
CrossRef-MCPNoNoNoYesBibTeX
mcp_doi2bibNoNoNoYesBibTeX
Local-Zotero-MCPNoNoYesYesZotero
jabref-mcpNoNoYesNoBibTeX

zotero-mcp and mendeley-mcp connect to your online Zotero or Mendeley library and can change it. bibtex-mcp, reference-mcp, CrossRef-MCP and mcp_doi2bib fetch citations from web sources such as Semantic Scholar, OpenAlex, CiteAs, Google Scholar and CrossRef. Local-Zotero-MCP reads your local Zotero library through the Zotero desktop app. jabref-mcp reads a JabRef .bib file and can add entries through JabRef.

Pick this server when you want to clean, convert, dedupe, lint and rename an exported list without sending it anywhere. Pick one of the others when you want to search or change a live online library.

Export from Zotero or Mendeley

  1. In Zotero, right click a collection (or select some items), choose the export option and pick BibTeX or RIS. In Mendeley, select your references, choose Export and pick BibTeX or RIS. Menu names change between versions, so look for Export.
  2. Open the saved .bib or .ris file in any text editor and copy everything, or attach the file in an app that accepts attachments.
  3. Paste it into your AI app and ask, for example: "Lint this list, remove the duplicates and give me back clean BibTeX with tidy cite keys."
  4. Copy the result into your .bib file. To get it back into your reference manager, save it as a .bib or .ris file and import it.

The format is detected for you. If a file is not recognized, say which format it is.

Tools

ToolWhat it does
parse_bibliographyReads BibTeX, RIS or CSL JSON text and returns normalized entries: lower case field names, tidy spacing, bare DOIs, the year filled in from a date, and authors split into "Family, Given".
convert_bibliographyConverts between BibTeX, RIS, CSL JSON and plain text. The input format is detected unless you pass from. Page ranges become 12--15 in BibTeX. For plain text, pass style as apa (the default), mla or ieee to get a formatted reference list.
dedupe_entriesFinds duplicates by DOI, by the same cite key and by similar titles (the years must not clash). Says which entry to keep and returns a BibTeX list without the extra copies.
lint_entriesFlags missing required fields, bad page ranges, uncapitalized titles, invalid DOIs, odd years and repeated keys.
fix_entriesApplies the safe fixes from lint_entries and returns the cleaned BibTeX: double hyphen page ranges, capitalized titles and bare DOIs. It lists each change and does not guess missing fields.
generate_cite_keysMakes keys from the first author, the year and the first useful title word, like smith2024deep. Repeats get a letter, like smith2024deepa.

Every tool takes the reference list as text, and every tool returns both a readable answer and structured fields. All of them are read only. They never change a file, because you paste the text in and get the result back.

Formats

  • BibTeX: @string macros, quoted and braced values, # joins, and @comment blocks are handled.
  • RIS: the usual tags such as TY, AU, TI, T2, PY, SP, EP, DO and KW.
  • CSL JSON: a list of items, one item, or an object with an items list.

Common workflows

These show how the six tools fit together. All of them take the reference list as text and are read only.

Clean a Zotero or Mendeley export

  1. Run parse_bibliography to normalize the entries and fill in missing years.
  2. Run dedupe_entries to remove duplicates by DOI, cite key or title.
  3. Run lint_entries to see missing fields, bad page ranges and odd years.
  4. Run generate_cite_keys to give every entry a tidy key like smith2024deep.
  5. Run convert_bibliography to get back a clean BibTeX file.

Turn an EndNote RIS export into BibTeX

  1. Run parse_bibliography on the RIS text to check it parses.
  2. Run convert_bibliography with to set to BibTeX.
  3. Run generate_cite_keys if you want keys like smith2024deep.

Check a finished .bib before you hand it in

  1. Run parse_bibliography to normalize.
  2. Run lint_entries, then fix_entries to apply the safe fixes it can make.
  3. Run dedupe_entries to make sure nothing is listed twice.

Privacy

Everything runs on your computer. The server reads only the text your AI app passes to it. It makes no network requests, does not look up DOIs online, needs no API key and keeps nothing between calls. DOI checks only look at the shape of the DOI, they do not ask a website whether it exists.

FAQ

Does it check that a DOI really exists? No. It runs offline, so it only checks that the DOI has the right shape, like 10.1000/xyz123.

How does it decide two titles are the same? It lowercases the titles, drops punctuation and accents, and compares pairs of letters. The default match is 0.9 out of 1. Pass title_threshold to loosen or tighten that. Two entries with different years are not matched by title.

Will it change my protected capitals like {DNA}? No. Braces are kept in BibTeX output and only removed when you convert to RIS, CSL JSON or plain text.

Node version

You need Node.js 20 or newer to run the server. To work on it, use Node.js 22.12 or newer.

Development

bash
npm installnpm run buildnpm test

The code is in src. src/bib.ts reads and writes the formats, src/analyze.ts finds duplicates and lint problems, and src/tools.ts defines the six tools.

More free student MCP servers

All free, open source and read only where they touch your accounts. Browse the full list at brightspacemcp.com/more-mcps.

ServerWhat it does
Brightspace MCPD2L Brightspace for AI. Due dates with real submission status, grades, a target grade calculator and course files.
Canvas MCPCanvas LMS for AI, read only. Due dates, missing work, grades and announcements.
Moodle MCPMoodle for AI, read only. Due dates, overdue work, grades and announcements.
Google Classroom MCPGoogle Classroom for AI, read only. Todos, due dates, missing work and grades.
GPA Calculator MCPGPA, grade conversion and the grade you need on the final, for AI. Works offline, no account.
Citations MCPAPA, MLA and Chicago citations from a DOI, an ISBN or typed details. No account.
Study Planner MCPExam study schedules, spaced repetition dates, pomodoro plans and assignment milestones. Works offline.
Paper Finder MCPSearch scholarly papers, find open access copies and related work through OpenAlex. No key needed.
Open Textbook Finder MCPFind free legal copies of textbooks on OpenStax, DOAB and Open Library, look up editions by ISBN and suggest cheaper older ones.
STEM Calculator MCPChemistry and physics homework math: molar mass, balancing equations, grams to moles, unit conversion and significant figures. Works offline.
Essay Stats MCPOffline writing metrics for essays. Word and page counts, readability scores, passive voice, repeated openers, filler words, long sentences and word limit checks, so students can check their work against assignment requirements. No account, no network.
Syllabus to Calendar MCPSyllabus to calendar MCP server. Extract dates from syllabus text, build an ics calendar, expand recurring classes and merge calendars. Works offline, no account.
Job Application Tracker MCPJob application tracker MCP server. Track internships, jobs, interviews and deadlines offline, see what is coming up, and export your list as CSV or Markdown. No account and no API keys.

License

MIT, see LICENSE.

來源:README.md,提交 41fc237

工具

6

parse_bibliography

Parse a bibliography

Read BibTeX, RIS or CSL JSON text and return the entries in one normalized shape: lower case field names, tidy whitespace, bare DOIs, the year filled in from a date, and authors split into "Family, Given". Nothing is sent anywhere. Example: text "@article{k1, AUTHOR = {John Smith and Jane Doe}, title={Deep Learning for Graphs}, year={2024}}" returns one entry with authors ["Smith, John", "Doe, Jane"] and lower case field names. Leave format out unless auto picks the wrong one.

輸入參數text必填format

convert_bibliography

Convert a bibliography

Convert a reference list between BibTeX, RIS, CSL JSON and plain text (a simple reference list style, APA by default, or MLA or IEEE when you pass style). The input format is detected unless you pass it. Page ranges, DOIs and names are cleaned on the way. Example: text is a BibTeX entry and to is "ris", and output is the same reference as RIS. Set from only to override detection.

輸入參數to必填fromtext必填style

dedupe_entries

Find duplicate entries

Find duplicate references by matching DOI, by the same cite key, and by similar titles (the years must not clash). Each group says which entry to keep, the one with the most fields, and which to remove. Also returns the list as BibTeX with the extra copies dropped. Example: two entries with the same DOI, one with 3 fields and one with 6, give one group that keeps the entry with 6 fields and lists the other under remove. Your files are not changed.

輸入參數text必填formattitle_threshold

lint_entries

Lint entries

Check a reference list for problems: missing required fields for the entry type, bad page ranges, titles that are not capitalized, invalid DOIs, odd years and repeated keys. Each issue names the entry key, the field and a plain message. Example: an @article with no journal field gives an issue with the rule missing-field and the field journal. Pass the whole list as text so repeated keys can be found.

輸入參數text必填format

fix_entries

Fix entries

Apply the safe fixes that lint_entries points to and return the cleaned list as BibTeX: page ranges with one hyphen get a double hyphen, titles that start with a lower case letter or are all lower case get capitals (words inside braces are left alone), and DOIs written as a link or with a doi: prefix become bare DOIs. Missing fields, backwards page ranges and DOIs that are not valid are not guessed, so run lint_entries on the result. Example: pages "12-15" becomes "12--15". Your files are not changed.

輸入參數text必填format

generate_cite_keys

Generate cite keys

Create consistent cite keys from the first author's family name, the year and the first meaningful word of the title, like smith2024deep. Repeated keys get a letter added. Returns the old and new key for each entry and the list as BibTeX with the new keys. Example: an entry with key old1, author "Smith, John", year 2024 and title "Deep Learning for Graphs" gives old_key old1 and new_key smith2024deep, or smith2024 when include_title_word is false.

輸入參數text必填formatinclude_title_word

版本歷史

3
  1. v0.1.2最新Nov 1, 2026
  2. v0.1.1Oct 30, 2026
  3. v0.1.0Oct 29, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分