A clean, one-to-one MCP server for the Zotero API, just the API
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"zotero-api-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# zotero-api-mcp A clean, one-to-one MCP server for the Zotero API, just the API. ## Features - **22 MCP tools** covering the full Zotero API surface - **Local API** support (`ZOTERO_LOCAL=true`) — no API key needed - **Web API** support with interactive setup wizard - **Full CRUD**: create items by DOI, arXiv, ISBN; update metadata; delete to trash - **Collections**: create, add/remove items, search - **Notes & Annotations**: read, create - **Attachments**: add files or URLs, read metadata - **Library management**: stats, trash, groups, tags - **Secure by default**: API key stored with `SecretStr`, XML parsing via `defusedxml` - **Configuration**: `.env` file support with `ZOTERO_` prefix, `pydantic-settings` - **Multi-library support**: Query any group or user library per-call without reconfiguring ## Multi-Library Support All tools accept optional `library_id` and `library_type` keyword parameters to override the default library configured in your environment. This lets you query multiple Zotero group libraries without restarting the server or changing your `.env` file. **Example**: Query a group library from any tool: ``` zotero_search_items(query="machine learning", library_id="<group-id>", library_type="group") zotero_get_item("ABC12345", library_id="<group-id>", library_type="group") zotero_get_collection_items("XYZ99999", library_id="<group-id>", library_type="group") ``` - `library_id` — The Zotero library ID (user ID or group ID) - `library_type` — Either `"user"` or `"group"` - Both default to your configured `ZOTERO_LIBRARY_ID` / `ZOTERO_LIBRARY_TYPE` when omitted - Works with all 22 tools — search, items, collections, notes, annotations, and attachments - Stateless: each call is independent, no session-level switching needed ## Quick Start ```bash # Run directly (auto-installs) uvx zotero-api-mcp serve # Or install globally uv tool install zotero-api-mcp zotero-api-mcp serve ``` ### Local Mode (no API key) Set the environment variable and …
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.