zotero-mcp
zotero-mcp is a capability-honest stdio adapter for Zotero 7, using Zotero's local API for reads and a companion extension for narrow writes. It exposes 15 tools for interacting with Zotero, with explicit error reporting when features are unsupported.
README
zotero-mcp
zotero-mcp is the Research Workbench's capability-honest stdio adapter for Zotero 7.
It uses Zotero's built-in, GET-only local API for reads and the separately installed
Research Workbench Zotero extension for authenticated writes. It never opens
zotero.sqlite or the Zotero data directory.
Requirements and setup
- Node.js 20 or newer
- Zotero 7 for live use
- The Research Workbench Zotero extension for write tools
npm install
npm run build
npm test
node dist/index.js
Configuration:
ZOTERO_MCP_BASE_URLdefaults tohttp://127.0.0.1:23119. Only plain-HTTP URLs using the exact loopback hostnames127.0.0.1,localhost, or[::1]are accepted; userinfo is rejected and redirects are never followed.ZOTERO_MCP_TOKEN_FILEdefaults to~/.research-workbench/zotero-bridge.json.
The server always starts and advertises all 15 contracted tools. When Zotero or the extension is unavailable, calls return the shared structured error envelope with an actionable code and message.
Capability notes
- Reads are local and read-only.
- Writes are narrow Zotero data-layer operations provided by the extension.
- Moving an item to trash is supported; permanent deletion is not exposed.
- Linked-URL attachments are supported; file-content upload is not.
- The item full-text endpoint is probed only when requested. Zotero on the target
machine currently returns 404 for
/api/users/0/items/<key>/fulltext, so the tool returnsunsupported_capabilityrather than claiming abstract metadata is full text. zotero_health.writeAuthis true only when extension health explicitly confirms the supplied token; the existence of a token file alone is not reported as valid auth.
Tests
npm test is fully offline. A mock HTTP server replays checked-in, synthetic local-API
fixtures and covers Zotero-down, token-missing, extension-absent, stale-version, and
full-text-unsupported behavior. No automated test writes to a real Zotero library.
License: MIT. See LICENSE.
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.