Claude and Zotero: Searching Your Library, Summarising Sources, Connecting to Research
Who this is for: Researchers with a Zotero library who want Claude to be able to search it, retrieve sources, and use them in research and writing workflows — without exporting anything manually.
What connecting Zotero gives you
Without Zotero integration, using your library with Claude means: find the paper, export or open it, copy metadata or paste text, give it to Claude. Every time.
With Zotero MCP connected, Claude can reach into your library directly:
> Search my Zotero library for sources on social networks in medieval heresy.
List the five most relevant with author, title, year, and a one-sentence description.
Claude searches your library, retrieves results, and responds — without you opening Zotero.
What Claude can do with your Zotero library:
-
Search by keyword, author, title, tag, or collection
-
Retrieve full metadata for any item
-
Read notes you have attached to items
-
Read PDF annotations (highlights, comments) you have made
-
Write new notes back into Zotero
-
Switch between your personal library and group libraries
-
Suggest connections between sources and your research question
Setup: connecting Zotero to Claude Code
Step 1 — Get your Zotero API key
- Log in at zotero.org
- Go to zotero.org/settings/keys
- Click "Create new private key"
- Give it a name (e.g. "Claude Code")
- Under permissions: allow Read Only access to your library (and group libraries if you use them)
- Click "Save Key" — copy the key immediately, it is only shown once
- On the same page, note your User ID (a number shown above the key list)
Step 2 — Install the Zotero MCP server
In your terminal (or WSL terminal on Windows):
npm install -g zotero-mcp
Step 3 — Configure it in Claude Code
For personal use (your own library), add to ~/.claude/settings.json:
{
"mcpServers": {
"zotero": {
"command": "zotero-mcp",
"env": {
"ZOTERO_API_KEY": "your-api-key-here",
"ZOTERO_USER_ID": "your-user-id-here"
}
}
}
}
For a group library (e.g. a shared DISSINET library), use ZOTERO_GROUP_ID instead:
{
"mcpServers": {
"zotero-dissinet": {
"command": "zotero-mcp",
"env": {
"ZOTERO_API_KEY": "your-api-key-here",
"ZOTERO_GROUP_ID": "your-group-id-here"
}
}
}
}
The group ID is the number in the URL when you view the group on zotero.org: zotero.org/groups/123456/groupname → group ID is 123456.
You can configure both (personal and group) as separate named servers:
{
"mcpServers": {
"zotero-personal": {
"command": "zotero-mcp",
"env": {
"ZOTERO_API_KEY": "your-key",
"ZOTERO_USER_ID": "your-user-id"
}
},
"zotero-dissinet": {
"command": "zotero-mcp",
"env": {
"ZOTERO_API_KEY": "your-key",
"ZOTERO_GROUP_ID": "446972"
}
}
}
}
Step 4 — Allow the tools in settings
Add to .claude/settings.local.json in your project (or globally):
{
"permissions": {
"allow": [
"mcp__zotero__*"
]
}
}
Step 5 — Verify it works
Launch Claude Code and ask:
> List my Zotero collections.
Or:
> Search my Zotero library for "heresy".
If Claude returns results from your library, the connection works.
Setup in Claude Desktop
In Claude Desktop, go to Settings → Integrations (or Developer → Add MCP Server) and add:
{
"command": "zotero-mcp",
"env": {
"ZOTERO_API_KEY": "your-api-key-here",
"ZOTERO_USER_ID": "your-user-id-here"
}
}
Practical prompts
Finding sources on a topic
> Search my Zotero library for sources on Cathar perfecti and their social role.
List the most relevant items with author, title, year.
> I am writing about belief transmission in heretical communities.
What sources in my library are most relevant to this topic?
For each, give me the main argument in one sentence.
> Find sources in my Zotero library published after 2015
that use social network analysis methods.
Exploring a collection
> List all items in my "Fournier Register" collection.
Which ones have notes attached?
> What are the most recent additions to my Zotero library?
Summarise what they cover.
Working with tags
> What tags do I use in my Zotero library?
List them and how many items each has.
> Find all items tagged "unread" in my library.
For each, give me the title, author, and year — I want to decide what to read next.
Reading your notes and annotations
> Retrieve my notes on [author, year] from Zotero.
What did I find most important when I read it?
> I highlighted passages in article.pdf and saved them to Zotero.
Retrieve those annotations and tell me what themes they cluster around.
Literature review assistance
> I am writing a literature review section on social networks in medieval heresy.
Search my Zotero library for relevant sources.
Group them by methodological approach (network analysis / prosopography / social history).
Identify any obvious gaps — approaches or time periods not covered by my library.
> I am citing sources in my draft. My draft is in draft.md.
For each claim in the draft that needs a citation, search my Zotero library
for the most relevant source and suggest the citation key.
Writing notes back to Zotero
> I just read [title] by [author]. Here are my rough notes: [paste notes].
Create a formatted note in Zotero attached to that item,
with sections: main argument, key evidence, relevance to my research.
Claude will create the note directly in Zotero. It appears in your library attached to the item.
Semantic search: finding what you do not know you have
One of the most valuable Zotero MCP capabilities is semantic search — finding sources that are conceptually related to a question, not just keyword-matching.
> Use semantic search in my Zotero library.
I am trying to understand how kinship networks shaped religious practice
in 13th-century southern France.
What sources do I have that relate to this, even if they don't use those exact words?
This can surface sources you filed under different tags, forgot you had, or did not think to look for.
> I am about to argue that economic ties and belief ties were structurally equivalent
in Cathar communities. Search my library semantically for anything that
supports or challenges this claim.
The Zotero + CLAUDE.md pattern
Put your Zotero context in your project CLAUDE.md so Claude knows your library without you explaining it each session:
## Zotero library
My Zotero personal library covers: Catharism, Waldensianism, medieval inquisition,
prosopography methods, social network analysis in history.
DISSINET group library (dissident_networks_project, ID: 446972) covers: inquisition registers, Languedoc,
Italy, Rhineland, 12th–14th century.
When I ask for citations: search Zotero first before suggesting anything from memory.
When you find a relevant source: give me the Zotero item key so I can use it directly.
Limitations
Claude cannot verify citations it generates from memory. Always use Zotero search to retrieve actual items rather than asking Claude to recall a citation — Claude will confabulate plausible-sounding but wrong author/year combinations. If Claude says "Smith (2019) argues...", verify that against your library or the actual source.
Full text is not always available. The MCP retrieves metadata and notes from Zotero. Full PDF text is available only if Zotero has the PDF stored and the full-text indexing is current. If you want Claude to read the actual paper content, point it to the PDF file directly (Claude Code file access) rather than relying on Zotero full-text retrieval.
Zotero must be synced. The MCP connects to Zotero's online API, not your local Zotero application. Items you have added locally but not yet synced to zotero.org will not be visible. Sync Zotero before a session where you want to use recently added items.
Group library requires membership. Your API key must have access to any group library you want to use. Check your key's permissions at zotero.org/settings/keys if group searches return no results.
Related
-
A.setup.settings-local — configuring MCP permissions
-
A.concept.global-vs-local — whether to configure Zotero globally or per-project
-
A2.desktop-basics — Zotero integration in Claude Desktop
-
A.workflows.notes-reading-writing — Zotero in the full reading/writing pipeline
-
A13.examples-dissinet-usecases — DISSINET-specific Zotero use cases
-
A.critical.limitations — hallucination in citations; always verify