Zotero - Reference Library & Vetted Sources
The TABS project maintains a Zotero library of over 3,300 academic references organized across 199 collections. This library serves as the canonical, vetted source of truth for every citation in the Culminating Research Project (CRP). The Zotero integration gives AI agents direct, programmatic access to this archive - enabling citation verification, literature discovery, full-text PDF retrieval, and cross-referencing with external databases like Semantic Scholar.
Why Zotero
Academic research demands an auditable chain from claim to source. Every statistic, framework reference, and literature review assertion in the CRP traces back to a specific Zotero item with a persistent DOI or URL. By exposing this library to AI agents, the project ensures that AI-generated content, code comments, and documentation can be grounded in verified academic sources rather than hallucinated citations.
Integration Architecture
The integration uses pyzotero (v1.11.0), a production-stable Python client for the Zotero Web API v3 maintained by Stephan Hügel at Trinity College Dublin. The library operates in two modes:
- Local API - Connects to the Zotero desktop application at
localhost:23119. No API key required. Used during interactive development. - Cloud API - Connects to
api.zotero.orgwith an API key. Used in GitHub Actions via thezotero-prodenvironment.
| Platform | Access Method | Use Case |
|---|---|---|
| Claude Desktop | pyzotero MCP (10 tools) | Interactive research, literature review, Semantic Scholar |
| VS Code / Copilot Chat | pyzotero MCP (10 tools) | Citation lookup while writing code and documentation |
| Claude Code | pyzotero Python library (direct) | Programmatic library operations and automation |
| GitHub Actions | pyzotero + zotero-prod environment | CI/CD reference validation and bibliography sync |
MCP Server - AI Agent Access
The pyzotero MCP server exposes 10 tools to AI agents via the Model Context Protocol. When an AI agent needs to verify a citation, find related work, or retrieve a PDF, it calls these tools directly.
Zotero Library Tools
| Tool | Description |
|---|---|
| search | Query by content, item type, collection, or tag - with optional full-text PDF search |
| get_item | Retrieve a single item by key - full metadata including abstract, DOI, and creators |
| get_children | Get child items: PDF attachments, notes, and linked files |
| list_collections | Browse the full 199-collection hierarchy organized by course, topic, and research area |
| list_tags | List all tags in the library, optionally filtered by collection |
| get_fulltext | Extract full-text content from PDF attachments |
Semantic Scholar Integration
The MCP server also includes four Semantic Scholar tools that cross-reference external academic databases with the local Zotero library. When results are found, the server automatically checks whether each paper already exists in the local collection.
| Tool | Description |
|---|---|
| find_related | Find semantically similar papers to a given DOI using embeddings |
| get_citations | Papers that cite a given paper (forward citation graph) |
| get_references | Papers referenced by a given paper (backward citation graph) |
| search_semantic_scholar | Cross-database search with year, open-access, and citation count filters |
Library Overview
The Zotero library contains references accumulated across the full DBA program and CRP research, organized into three top-level collections:
- Smeal eDBA CBM Personal - Active research references organized by course, topic, and CRP chapter
- CBM Old DBA - Earlier coursework references from the program
- Exported Items - Cross-referenced and shared items
Within these top-level collections, subcollections mirror the CRP structure: technology adoption models, validated scales, survey methodology, industry-specific studies, and framework comparisons. This organization allows AI agents to scope searches to specific research domains.
Security & Access
- API key - Stored in the
zotero-prodGitHub environment asZOTERO_API_KEY, never committed to the repository - Local access - No API key needed when connecting to the Zotero desktop application (localhost only)
- Read + write permissions - The API key has full library access, notes access, and write access for collection management
- MCP configs gitignored - Only
.vscode/mcp.json.exampleis committed; the live config with credentials is excluded from version control