zotero-mcp

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.

Category
Visit Server

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_URL defaults to http://127.0.0.1:23119. Only plain-HTTP URLs using the exact loopback hostnames 127.0.0.1, localhost, or [::1] are accepted; userinfo is rejected and redirects are never followed.
  • ZOTERO_MCP_TOKEN_FILE defaults 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 returns unsupported_capability rather than claiming abstract metadata is full text.
  • zotero_health.writeAuth is 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured