zotero_semantic_searchLABSCO SUMMARY
Extracting your own annotations is the feature — the library metadata was never the hard part.
Titles and abstracts are searchable anywhere. What is trapped is the highlight you made on page fourteen three years ago, which is precisely the thing you are trying to find again. Pulling annotations out means a question can be answered from your own reading rather than from the paper's abstract. The local option matters for the same reason: the library is on your machine, and it does not need to leave it.
What it is
A connection to Zotero, the reference manager, reaching either the local application or the web API, and going into the documents rather than stopping at the metadata.
What you get
- Access through the local Zotero or the web API
- PDF annotation extraction — the highlights and notes you left in the papers
- Advanced search across the library
Requirements
Python, installed from PyPI. MIT licensed.
Setup effort
One command — uv tool install zotero-mcp-server
USE CASES
Finding what you already read
Search the library you built, not the whole literature.
Recovering your own notes
Annotations lifted out of the PDFs.
Keeping it local
The local application rather than the web API.
41 tools
Listed in project docs. Your client may show a different list.
zotero_update_search_databasezotero_get_search_database_statuszotero_search_itemszotero_advanced_searchzotero_get_collectionszotero_get_collection_itemszotero_get_tagszotero_get_recentzotero_search_by_tagzotero_get_item_metadatazotero_get_item_fulltextzotero_get_item_childrenzotero_get_annotationszotero_synthesize_annotationszotero_get_noteszotero_create_annotationzotero_manage_notezotero_get_page_layoutscite_enrich_itemscite_enrich_searchscite_check_retractionszotero_add_by_doizotero_add_by_urlzotero_add_by_isbnzotero_add_by_bibtexzotero_add_by_csl_jsonzotero_add_from_filezotero_attach_filezotero_set_item_parentzotero_create_collectionzotero_search_collectionszotero_manage_collectionszotero_update_itemzotero_find_duplicateszotero_merge_duplicateszotero_get_pdf_outlinezotero_search_by_citation_keyzotero_get_item_relatedzotero_add_item_relationzotero_remove_item_relationBEFORE YOU INSTALL
What to know first
Tools you get
41 tools named in the project's documentation.
Requires
- zotero-mcp on PATH
- Python 3.10+
INSTALLATION
Connect your client
Server setup
uv tool install zotero-mcp-serverMCP Clients
Claude Desktop, Claude Code
{
"mcpServers": {
"zotero": {
"command": "zotero-mcp",
"env": {
"ZOTERO_LOCAL": "true",
"ZOTERO_API_KEY": "<YOUR_ZOTERO_API_KEY>",
"ZOTERO_LIBRARY_ID": "<YOUR_ZOTERO_LIBRARY_ID>"
}
}
}
}Autohand Code
autohand mcp add zotero env ZOTERO_LOCAL=true zotero-mcpCherry Studio
{
"mcpServers": {
"zotero": {
"name": "zotero",
"type": "stdio",
"isActive": true,
"command": "zotero-mcp",
"args": [],
"env": {
"ZOTERO_LOCAL": "true"
}
}
}
}Chorus
Find your installation path: run zotero-mcp setup-info to get the exact path and configuration details
Open Chorus.sh preferences and set Command to the full path to your zotero-mcp installation
Leave Arguments empty
Under Environment (JSON), paste your environment configuration as a single line: {"ZOTERO_LOCAL": "true"}
ChatGPT — Developer Mode
Install ngrok from https://ngrok.com/download
Start the server over streamable HTTP, with your Zotero variables set first (for example ZOTERO_LOCAL=true), and leave this terminal open
zotero-mcp serve --transport streamable-http --port 8000In a second terminal, open the tunnel
ngrok http 8000Copy the HTTPS Forwarding URL ngrok prints
On chatgpt.com open Settings > Connectors, click Advanced and enable Developer Mode, then click Create
Set MCP Server URL to your ngrok URL followed by /mcp, set Authentication to No authentication, tick I trust this application and click Create
zotero-mcp serve has no authentication of its own: anyone with the tunnel URL can use every tool, so keep the URL private and stop the tunnel when you are not using it