Crawler Summary

@xevos117/mcp-zotero answer-first brief

Unofficial MCP server for Zotero integration with citation management MCP Zotero **Note:** This is an unofficial community project and is not affiliated with, endorsed by, or supported by the Zotero team or the Corporation for Digital Scholarship. "Zotero" is a registered trademark of the Corporation for Digital Scholarship. A Model Context Protocol server for Zotero integration. It gives any LLM full access to your Zotero library: search, organize, add papers by DOI, import PDFs, read Capability contract not published. No trust telemetry is available yet. 2 GitHub stars reported by the source. Last updated 2/25/2026.

Freshness

Last checked 2/25/2026

Best For

@xevos117/mcp-zotero is best for mcp, model-context-protocol, zotero workflows where MCP compatibility matters.

Not Ideal For

Contract metadata is missing or unavailable for deterministic execution.

Evidence Sources Checked

editorial-content, GITHUB MCP, runtime-metrics, public facts pack

Agent DossierGitHubSafety: 89/100

@xevos117/mcp-zotero

Unofficial MCP server for Zotero integration with citation management MCP Zotero **Note:** This is an unofficial community project and is not affiliated with, endorsed by, or supported by the Zotero team or the Corporation for Digital Scholarship. "Zotero" is a registered trademark of the Corporation for Digital Scholarship. A Model Context Protocol server for Zotero integration. It gives any LLM full access to your Zotero library: search, organize, add papers by DOI, import PDFs, read

MCPself-declared

Public facts

5

Change events

1

Artifacts

0

Freshness

Feb 25, 2026

Verifiededitorial-contentNo verified compatibility signals2 GitHub stars

Capability contract not published. No trust telemetry is available yet. 2 GitHub stars reported by the source. Last updated 2/25/2026.

2 GitHub starsTrust evidence available

Trust score

Unknown

Compatibility

MCP

Freshness

Feb 25, 2026

Vendor

Xevos117

Artifacts

0

Benchmarks

0

Last release

1.0.6

Executive Summary

Key links, install path, and a quick operational read before the deeper crawl record.

Verifiededitorial-content

Summary

Capability contract not published. No trust telemetry is available yet. 2 GitHub stars reported by the source. Last updated 2/25/2026.

Setup snapshot

git clone https://github.com/Xevos117/mcp-zotero.git
  1. 1

    Setup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.

  2. 2

    Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Evidence Ledger

Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.

Verifiededitorial-content
Vendor (1)

Vendor

Xevos117

profilemedium
Observed Feb 25, 2026Source linkProvenance
Compatibility (1)

Protocol compatibility

MCP

contractmedium
Observed Feb 25, 2026Source linkProvenance
Adoption (1)

Adoption signal

2 GitHub stars

profilemedium
Observed Feb 25, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance
Integration (1)

Crawlable docs

6 indexed pages on the official domain

search_documentmedium
Observed Apr 15, 2026Source linkProvenance

Release & Crawl Timeline

Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.

Self-declaredagent-index

Artifacts Archive

Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.

Self-declaredGITHUB MCP

Extracted files

0

Examples

6

Snippets

0

Languages

typescript

Executable Examples

bash

curl -H "Zotero-API-Key: YOUR_API_KEY" https://api.zotero.org/keys/current

bash

# Create an API key at https://www.zotero.org/settings/keys
   # (enable library read/write + file access)
   # Then retrieve your user ID:
   curl -H "Zotero-API-Key: YOUR_API_KEY" https://api.zotero.org/keys/current

bash

export ZOTERO_API_KEY="your-api-key"
   export ZOTERO_USER_ID="user-id-from-curl"
   export UNPAYWALL_EMAIL="[email protected]"   # Optional: enables OA PDF lookup via Unpaywall
   export UNSAFE_OPERATIONS="none"           # Optional: "none" | "items" | "all" (see below)

json

{
  "mcpServers": {
    "zotero": {
      "command": "npx",
      "args": ["-y", "@xevos117/mcp-zotero"],
      "env": {
        "ZOTERO_API_KEY": "YOUR_API_KEY",
        "ZOTERO_USER_ID": "YOUR_USER_ID",
        "UNSAFE_OPERATIONS": "items"
      }
    }
  }
}

json

{
  "mcpServers": {
    "zotero": {
      "command": "npx",
      "args": ["-y", "@xevos117/mcp-zotero"],
      "env": {
        "ZOTERO_API_KEY": "YOUR_API_KEY",
        "ZOTERO_USER_ID": "YOUR_USER_ID",
        "UNPAYWALL_EMAIL": "YOUR_EMAIL"
      }
    }
  }
}

bash

claude mcp add-json "zotero" '{"command":"npx","args":["tsx","src/server.ts"],"env":{"ZOTERO_API_KEY":"...","ZOTERO_USER_ID":"..."}}'

Docs & README

Full documentation captured from public sources, including the complete README when available.

Self-declaredGITHUB MCP

Docs source

GITHUB MCP

Editorial quality

ready

Unofficial MCP server for Zotero integration with citation management MCP Zotero **Note:** This is an unofficial community project and is not affiliated with, endorsed by, or supported by the Zotero team or the Corporation for Digital Scholarship. "Zotero" is a registered trademark of the Corporation for Digital Scholarship. A Model Context Protocol server for Zotero integration. It gives any LLM full access to your Zotero library: search, organize, add papers by DOI, import PDFs, read

Full README

MCP Zotero

Note: This is an unofficial community project and is not affiliated with, endorsed by, or supported by the Zotero team or the Corporation for Digital Scholarship. "Zotero" is a registered trademark of the Corporation for Digital Scholarship.

A Model Context Protocol server for Zotero integration. It gives any LLM full access to your Zotero library: search, organize, add papers by DOI, import PDFs, read full-text content, and inject live citations into Word documents.

Originally based on mcp-zotero by Abhishek Kalia. This project has since been extensively rewritten with a new architecture, 15 tools (up from 5), citation injection, PDF management, and Claude skill support.

How it works

The server is designed to be usable by any LLM without external documentation. On connection, it sends workflow instructions via the MCP instructions field, and each tool description includes cross-references and usage guidance. An LLM that has never seen this server before can discover the full workflow — from adding papers to producing a cited Word document — directly from the tool listing.

For advanced use cases (PDF upload policy, citation style guidance, source transparency), a Claude skill is included for Claude.ai Projects. But the skill is optional: the MCP server is fully self-documenting.

Local vs Remote LLMs

| Scenario | MCP server | Skill needed? | |---|---|---| | Local LLM (Claude Code, LM Studio, etc.) | All 15 tools | No | | Remote/sandboxed LLM (Claude.ai Projects) | API tools (search, add, metadata) | Yes, for citation injection |

Local LLMs with filesystem access can use all tools directly, including inject_citations which reads and writes .docx files on disk.

Remote LLMs without filesystem access can use the included Claude skill (skills/zotero-skill-mcp-integrations/), which runs citation injection entirely inside the sandbox. MCP tools handle all Zotero API operations; the skill handles document assembly.

Setup

  1. Get your Zotero credentials:

    # Create an API key at https://www.zotero.org/settings/keys
    # (enable library read/write + file access)
    # Then retrieve your user ID:
    curl -H "Zotero-API-Key: YOUR_API_KEY" https://api.zotero.org/keys/current
    
  2. Set environment variables:

    export ZOTERO_API_KEY="your-api-key"
    export ZOTERO_USER_ID="user-id-from-curl"
    export UNPAYWALL_EMAIL="[email protected]"   # Optional: enables OA PDF lookup via Unpaywall
    export UNSAFE_OPERATIONS="none"           # Optional: "none" | "items" | "all" (see below)
    

Environment Variables

| Variable | Required | Description | |---|---|---| | ZOTERO_API_KEY | Yes | API key for Zotero Web API v3. Create one at zotero.org/settings/keys with library read/write and file access permissions. | | ZOTERO_USER_ID | Yes | Your Zotero numeric user ID. Retrieve it with curl -H "Zotero-API-Key: KEY" https://api.zotero.org/keys/current. | | UNPAYWALL_EMAIL | No | Email for Unpaywall API requests (rate-limit policy). Enables OA PDF lookup in add_items_by_doi and find_and_attach_pdfs. If not set, OA PDF features are silently skipped. | | UNSAFE_OPERATIONS | No | Controls destructive operations (deletion). See Unsafe Operations below. Default: none (all deletions blocked). |

Unsafe Operations

By default, the MCP server does not allow any deletion. This is a safety measure to prevent an LLM from accidentally deleting items or collections from your library.

To enable deletion, set the UNSAFE_OPERATIONS environment variable to one of the following values:

| Value | delete_items | delete_collection | Use case | |---|---|---|---| | none (default) | Blocked | Blocked | Safe mode — no deletions possible | | items | Allowed | Blocked | Allow deleting items but protect collection structure | | all | Allowed | Allowed | Full access — items and collections can be deleted |

Important notes:

  • If UNSAFE_OPERATIONS is not set, empty, or set to an unrecognized value, it defaults to none.
  • The value is case-insensitive (e.g. ALL, Items, NONE all work).
  • delete_items moves items to the Zotero trash (recoverable from the Zotero desktop client).
  • delete_collection removes the collection (folder) only — items inside it are not deleted and remain in your library.
  • The all value includes both item and collection deletion because managing collections inherently requires item-level access.

Configuration example:

{
  "mcpServers": {
    "zotero": {
      "command": "npx",
      "args": ["-y", "@xevos117/mcp-zotero"],
      "env": {
        "ZOTERO_API_KEY": "YOUR_API_KEY",
        "ZOTERO_USER_ID": "YOUR_USER_ID",
        "UNSAFE_OPERATIONS": "items"
      }
    }
  }
}

Integration with Claude Desktop

Add to your Claude Desktop configuration:

{
  "mcpServers": {
    "zotero": {
      "command": "npx",
      "args": ["-y", "@xevos117/mcp-zotero"],
      "env": {
        "ZOTERO_API_KEY": "YOUR_API_KEY",
        "ZOTERO_USER_ID": "YOUR_USER_ID",
        "UNPAYWALL_EMAIL": "YOUR_EMAIL"
      }
    }
  }
}

Integration with Claude Code

claude mcp add-json "zotero" '{"command":"npx","args":["tsx","src/server.ts"],"env":{"ZOTERO_API_KEY":"...","ZOTERO_USER_ID":"..."}}'

Available Tools

Library browsing

| Tool | Description | |---|---| | get_collections | List all collections (folders) with keys, names, and parent relationships | | get_collection_items | Get items in a specific collection with keys, titles, authors, dates | | search_library | Search by query, or list items sorted by field (date, title, etc.) | | get_items_details | Batch metadata retrieval for multiple items in a single call | | get_item_fulltext | Get full-text content of a PDF attachment via Zotero's fulltext index |

Adding content

| Tool | Description | |---|---| | add_items_by_doi | Add papers by DOI with automatic metadata resolution. Auto-attaches OA PDFs via Unpaywall | | add_items | Add items with direct metadata — supports all 37 Zotero item types (books, theses, reports, etc.), batch-capable | | create_collection | Create a new collection, optionally nested under a parent | | import_pdf_to_zotero | Download a PDF from URL, upload to Zotero storage, auto-index full text | | find_and_attach_pdfs | Batch OA PDF lookup and auto-attach via Unpaywall (by item keys or collection) | | add_linked_url_attachment | Attach a URL to an existing item or create a standalone link |

Deleting content

| Tool | Description | |---|---| | delete_items | Delete up to 50 items per call (moves to Zotero trash). Requires UNSAFE_OPERATIONS=items or all | | delete_collection | Delete a collection (folder). Items inside are kept. Requires UNSAFE_OPERATIONS=all |

Citation & documents

| Tool | Description | |---|---| | inject_citations | Inject live Zotero citations into a Word document. Supports APA, IEEE, Vancouver, Harvard, Chicago. Output is saved in the same folder as the input file with a _cited suffix (e.g. paper.docx → paper_cited.docx) | | get_user_id | Returns the configured Zotero user ID |

Development

npm install
npm run build          # Compile TypeScript
npm test               # Run tests (vitest, 377 tests)
npx tsx src/server.ts  # Run directly without building

Debug with MCP Inspector

npx @modelcontextprotocol/inspector npx tsx src/server.ts

License

MIT - see LICENSE for details.

Contract & API

Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.

MissingGITHUB MCP

Contract coverage

Status

missing

Auth

None

Streaming

No

Data region

Unspecified

Protocol support

MCP: self-declared

Requires: none

Forbidden: none

Guardrails

Operational confidence: low

No positive guardrails captured.
Invocation examples
curl -s "https://www.xpersona.co/api/v1/agents/mcp-xevos117-mcp-zotero/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/mcp-xevos117-mcp-zotero/contract"
curl -s "https://www.xpersona.co/api/v1/agents/mcp-xevos117-mcp-zotero/trust"

Reliability & Benchmarks

Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.

Missingruntime-metrics

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

Do not use if

Contract metadata is missing or unavailable for deterministic execution.
No benchmark suites or observed failure patterns are available.

Media & Demo

Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.

Missingno-media
No screenshots, media assets, or demo links are available.

Related Agents

Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.

Self-declaredprotocol-neighbors
Ard RegistryUpdated 3h agoRank 94

Brainiall NLP

Sentiment, toxicity, entity extraction, PII, translation, summary, QA, fraud scoring, safety audit.

MCPmcpmcp-registry
Ard RegistryUpdated 4h agoRank 94

Revuo

Agent-callable B2B SaaS directory: capability-structured, continuously verified listings.

MCPmcpmcp-registry
Ard RegistryUpdated 5h agoRank 94

Inferventis MCP Server

Loan & mortgage calculator, compound interest, ROI, crypto prices, FX conversion for AI agents.

MCPmcpmcp-registry
Ard RegistryUpdated 5h agoRank 94

ShortlistLens

Structured website and review evidence for AI-assisted local-business shortlisting.

MCPmcpmcp-registry
Machine Appendix

Contract JSON

{
  "contractStatus": "missing",
  "authModes": [],
  "requires": [],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": null,
  "outputSchemaRef": null,
  "dataRegion": null,
  "contractUpdatedAt": null,
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://www.xpersona.co/api/v1/agents/mcp-xevos117-mcp-zotero/snapshot",
    "contractUrl": "https://www.xpersona.co/api/v1/agents/mcp-xevos117-mcp-zotero/contract",
    "trustUrl": "https://www.xpersona.co/api/v1/agents/mcp-xevos117-mcp-zotero/trust"
  },
  "curlExamples": [
    "curl -s \"https://www.xpersona.co/api/v1/agents/mcp-xevos117-mcp-zotero/snapshot\"",
    "curl -s \"https://www.xpersona.co/api/v1/agents/mcp-xevos117-mcp-zotero/contract\"",
    "curl -s \"https://www.xpersona.co/api/v1/agents/mcp-xevos117-mcp-zotero/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "MCP"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "GITHUB_MCP",
      "generatedAt": "2026-10-09T23:25:54.684Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "MCP",
      "type": "protocol",
      "support": "unknown",
      "confidenceSource": "profile",
      "notes": "Listed on profile"
    },
    {
      "key": "mcp",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "model-context-protocol",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "zotero",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "zotero-api",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "citation",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "bibliography",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "reference-manager",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "claude",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "ai",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "cli",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    }
  ],
  "flattenedTokens": "protocol:MCP|unknown|profile capability:mcp|supported|profile capability:model-context-protocol|supported|profile capability:zotero|supported|profile capability:zotero-api|supported|profile capability:citation|supported|profile capability:bibliography|supported|profile capability:reference-manager|supported|profile capability:claude|supported|profile capability:ai|supported|profile capability:cli|supported|profile"
}

Facts JSON

[
  {
    "factKey": "docs_crawl",
    "category": "integration",
    "label": "Crawlable docs",
    "value": "6 indexed pages on the official domain",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  },
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Xevos117",
    "href": "https://github.com/Xevos117/mcp-zotero#readme",
    "sourceUrl": "https://github.com/Xevos117/mcp-zotero#readme",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-02-25T03:14:19.242Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "MCP",
    "href": "https://www.xpersona.co/api/v1/agents/mcp-xevos117-mcp-zotero/contract",
    "sourceUrl": "https://www.xpersona.co/api/v1/agents/mcp-xevos117-mcp-zotero/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-02-25T03:14:19.242Z",
    "isPublic": true
  },
  {
    "factKey": "traction",
    "category": "adoption",
    "label": "Adoption signal",
    "value": "2 GitHub stars",
    "href": "https://github.com/Xevos117/mcp-zotero",
    "sourceUrl": "https://github.com/Xevos117/mcp-zotero",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-02-25T03:14:19.242Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://www.xpersona.co/api/v1/agents/mcp-xevos117-mcp-zotero/trust",
    "sourceUrl": "https://www.xpersona.co/api/v1/agents/mcp-xevos117-mcp-zotero/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "docs_update",
    "title": "Docs refreshed: Sign in to GitHub · GitHub",
    "description": "Fresh crawlable documentation was indexed for the official domain.",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  }
]

Sponsored

Ads related to @xevos117/mcp-zotero and adjacent AI workflows.