zotero-translator-mcp-server

zotero-translator-mcp-server

Enables LLMs to extract bibliographic metadata from URLs and identifiers like DOIs or ISBNs by wrapping the Zotero Translation Server. It supports importing, exporting, and converting metadata across various formats including BibTeX, RIS, and CSL-JSON.

Category
访问服务器

README

zotero-translator-mcp

A CLI and MCP server that exposes Zotero translators to LLMs and AI agents, enabling bibliographic metadata extraction from URLs, DOIs, ISBNs, and other identifiers — plus format conversion between BibTeX, RIS, CSL-JSON, and 14 other citation formats.

What are Zotero Translators?

Zotero translators are small JavaScript programs that know how to extract bibliographic metadata from specific websites and data sources. There are over 700 translators maintained in the zotero/translators repository, covering publishers (ACM, IEEE, Springer, Elsevier, Wiley, etc.), preprint servers (arXiv, bioRxiv, SSRN), library catalogs (WorldCat, Library of Congress), and databases (PubMed, Google Scholar, Web of Science).

These are the same translators that power the Zotero browser connector — the "save" button that extracts citation data when you visit an article page. The Zotero Translation Server packages these translators as a standalone REST API, and this MCP server wraps that API for use by AI agents.

Motivation

Several Zotero MCP servers already exist (e.g., 54yyyu/zotero-mcp, mcp-zotero), but they focus on managing an existing Zotero library — searching items, reading annotations, organizing collections. They all require Zotero API credentials and an existing library.

None of them provide standalone metadata extraction or citation format conversion.

This project fills that gap:

Capability Existing Zotero MCPs This project
Extract metadata from a URL Requires Zotero API key No account needed
Look up a DOI/ISBN/PMID Requires Zotero API key No account needed
Convert Zotero JSON to BibTeX/RIS Not available Yes
Convert BibTeX/RIS to Zotero JSON Not available Yes
Search/manage a Zotero library Yes Not the goal

This makes zotero-translator-mcp ideal for:

  • AI agents that need to extract citations from web pages without a Zotero account
  • Automated pipelines that convert between bibliography formats
  • Headless, server-side workflows where no Zotero desktop client is available

Zero-Setup Design

On first run, the server automatically:

  1. Clones the Zotero Translation Server to ~/.cache/zotero-translator-mcp/
  2. Installs its dependencies
  3. Starts it as a child process on port 1969

On subsequent runs, it pulls the latest translators via git pull before starting — so you always have up-to-date translators without manual intervention.

Prerequisites: git and node (v18+) must be available on your PATH.

Two Interfaces: CLI vs MCP

This package provides two ways to access Zotero's translation engine:

CLI (zotero-translator) MCP (zotero-translator-mcp)
Invocation npx github:jooyoungseo/zotero-translator-mcp search "DOI" MCP protocol over stdio
Best for AI agents with Bash access, scripts, pipelines MCP-native clients (Claude Code, VS Code, etc.)
Token cost Minimal — one Bash call, direct output Higher — JSON-RPC protocol overhead, tool schemas, handshake
Piping search ... | export -f bibtex Not applicable
Composability Unix pipes, shell scripts MCP tool chaining

For AI agents, the CLI is significantly more token-efficient. A single Bash tool call replaces the MCP initialization handshake, tool listing, schema transfer, and JSON-RPC wrapping — saving hundreds of tokens per interaction.

Installation

CLI (via npx)

No installation needed — run directly:

npx -y github:jooyoungseo/zotero-translator-mcp get "10.1145/3613904.3642743"

Or install globally:

npm install -g github:jooyoungseo/zotero-translator-mcp
zotero-translator get "10.1145/3613904.3642743"

MCP Server — Claude Code

claude mcp add --transport stdio --scope user zotero-translator -- npx -y -p github:jooyoungseo/zotero-translator-mcp zotero-translator-mcp-server

MCP Server — Claude Desktop / VS Code / other MCP clients

Add to your MCP configuration:

{
  "mcpServers": {
    "zotero-translator": {
      "command": "npx",
      "args": ["-y", "-p", "github:jooyoungseo/zotero-translator-mcp", "zotero-translator-mcp-server"]
    }
  }
}

CLI Usage

The get command auto-detects the input type — URL, DOI, ISBN, PMID, or arXiv ID:

# DOI
zotero-translator get "10.1145/3613904.3642743"

# URL (auto-detected by https:// prefix)
zotero-translator get "https://dl.acm.org/doi/10.1145/3613904.3642743"

# ISBN
zotero-translator get "978-0-13-468599-1"

# Pipe to BibTeX
zotero-translator get "10.1145/3613904.3642743" | zotero-translator export -f bibtex

# Convert BibTeX to Zotero JSON
cat refs.bib | zotero-translator import

# Other export formats
zotero-translator get "10.1145/3613904.3642743" | zotero-translator export -f ris
zotero-translator get "10.1145/3613904.3642743" | zotero-translator export -f csljson

Run zotero-translator --help for full usage.

MCP Tools

zotero_translate_url

Extract bibliographic metadata from a webpage URL using Zotero's translation engine.

Input:  { "url": "https://dl.acm.org/doi/10.1145/3613904.3642743" }
Output: Zotero JSON array with title, authors, DOI, abstract, etc.

zotero_search_identifier

Look up metadata by DOI, ISBN, PMID, or arXiv ID.

Input:  { "identifier": "10.1145/3613904.3642743" }
Output: Zotero JSON array with resolved metadata

zotero_export_bibliography

Convert Zotero JSON to a supported export format (BibTeX, RIS, CSL-JSON, etc.).

Input:  { "items": "[...]", "format": "bibtex" }
Output: Formatted BibTeX string

Supported export formats:

Format Value
BibTeX bibtex
BibLaTeX biblatex
Bookmarks (HTML) bookmarks
COinS coins
CSL-JSON csljson
CSV csv
EndNote XML endnote_xml
Evernote ENEX evernote
MODS mods
RDF/Bibliontology rdf_bibliontology
RDF/Dublin Core rdf_dc
RDF/Zotero rdf_zotero
Refer/BibIX refer
RefWorks Tagged refworks_tagged
RIS ris
TEI tei
Wikipedia Citation Templates wikipedia

zotero_import_bibliography

Convert data in any supported import format (BibTeX, RIS, etc.) to Zotero JSON.

Input:  { "data": "@article{seo2024, title={...}, ...}" }
Output: Zotero JSON array

Configuration

All configuration is optional. The server works out of the box with no environment variables.

Environment Variable Default Description
ZOTERO_TRANSLATION_SERVER_URL If set, connects to an external translation server instead of auto-starting one
ZOTERO_TRANSLATION_SERVER_PORT 1969 Port for the auto-started translation server
ZOTERO_TRANSLATION_SERVER_DIR ~/.cache/zotero-translator-mcp Directory where the translation server is cloned

License

AGPL-3.0-only — same license as the Zotero Translation Server it wraps.

Acknowledgments

This project wraps the Zotero Translation Server by the Corporation for Digital Scholarship.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选