# Pyzotero > Interactúa con bibliotecas de Zotero mediante el cliente pyzotero: recupera, crea, actualiza y elimina items, colecciones, tags y adjuntos vía la Zotero Web API v3; exporta citas y automatiza flujos de investigación. Fuente: https://skillsagentes.com/skills/k-dense-ai/scientific-agent-skills/pyzotero Markdown: https://skillsagentes.com/skills/k-dense-ai/scientific-agent-skills/pyzotero.md Repositorio: https://github.com/K-Dense-AI/scientific-agent-skills Autor: K-Dense-AI Licencia: MIT License Actualizado: el mes pasado Coste de contexto: 110 tok instalada, 1.4k tok al activarse, 10.5k tok con todos los archivos del bundle Bundle: 15 archivos, 41 KB Permisos que pide: read write edit bash ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add K-Dense-AI/scientific-agent-skills --skill pyzotero --agent claude-code # Cursor npx -y skills add K-Dense-AI/scientific-agent-skills --skill pyzotero --agent cursor # Codex npx -y skills add K-Dense-AI/scientific-agent-skills --skill pyzotero --agent codex # Gemini CLI npx -y skills add K-Dense-AI/scientific-agent-skills --skill pyzotero --agent gemini # Windsurf npx -y skills add K-Dense-AI/scientific-agent-skills --skill pyzotero --agent windsurf # Cline npx -y skills add K-Dense-AI/scientific-agent-skills --skill pyzotero --agent cline ``` ## Qué hace - Gestiona bibliotecas de Zotero de forma programática con el cliente pyzotero sobre la Zotero Web API v3 - Recupera, crea, actualiza y elimina items, colecciones, tags y adjuntos - Exporta citas en BibTeX, CSL-JSON y otros formatos de bibliografía - Sube adjuntos PDF y gestiona búsquedas guardadas y contenido de texto completo - Soporta modo local sin API key y CLI/MCP para Zotero 7 en local ## Cuándo usarla - El usuario trabaja con bibliotecas de Zotero de forma programática - Necesita gestionar referencias bibliográficas, exportar citas o buscar contenido de la biblioteca - Quiere subir adjuntos PDF o construir flujos de automatización de investigación integrados con Zotero - Va a usar el modo local o el CLI/MCP de Zotero 7 sin API key ## Qué la activa - "Busca en mi biblioteca de Zotero artículos sobre machine learning" - "Exporta mis últimas 50 referencias en BibTeX" - "Crea un item de tipo journalArticle en Zotero" - "Sube este PDF como adjunto al item ITEMKEY" ## Antes de instalar - Requiere Python 3.10+ y pyzotero 1.13+; el acceso por Web API necesita una API key de Zotero (ZOTERO_API_KEY, ZOTERO_LIBRARY_ID), y el modo local/CLI/MCP requiere Zotero 7 con API local activada. - Variables de entorno: ZOTERO_API_KEY, ZOTERO_LIBRARY_ID, ZOTERO_LIBRARY_TYPE - needs API credentials ## Archivos - SKILL.md — 6 KB - references/authentication.md — 3 KB - references/cli.md — 2 KB - references/collections.md — 2 KB - references/error-handling.md — 3 KB - references/exports.md — 3 KB - references/files-attachments.md — 3 KB - references/full-text.md — 2 KB - references/mcp.md — 3 KB - references/pagination.md — 2 KB - references/read-api.md — 3 KB - references/saved-searches.md — 2 KB - references/search-params.md — 3 KB - references/tags.md — 2 KB - references/write-api.md — 3 KB ## SKILL.md Reproducido tal cual desde K-Dense-AI/scientific-agent-skills bajo MIT License. Esta sección es el documento original y está en inglés. # Pyzotero Pyzotero is a Python wrapper for the [Zotero API v3](https://www.zotero.org/support/dev/web_api/v3/start). Use it to programmatically manage Zotero libraries: read items and collections, create and update references, upload attachments, manage tags, and export citations. **Current upstream:** pyzotero 1.13.0 (PyPI, May 2026). Docs: [pyzotero.readthedocs.io](https://pyzotero.readthedocs.io/en/latest/). ## Authentication Setup **Required credentials** — get from https://www.zotero.org/settings/keys: - **User ID**: shown as "Your userID for use in API calls" - **API Key**: create at https://www.zotero.org/settings/keys/new - **Library ID**: for group libraries, the integer after `/groups/` in the group URL Store credentials in environment variables or a `.env` file: ``` ZOTERO_LIBRARY_ID=your_user_id ZOTERO_API_KEY=your_api_key ZOTERO_LIBRARY_TYPE=user # or "group" ``` See [references/authentication.md](references/authentication.md) for full setup details. ## Installation ```bash uv add pyzotero # Web API client uv add "pyzotero[cli]" # + local CLI (Zotero 7) uv add "pyzotero[mcp]" # + MCP server for LLM clients (Zotero 7) ``` ## Quick Start ```python import os from pyzotero import Zotero zot = Zotero( library_id=os.environ['ZOTERO_LIBRARY_ID'], library_type=os.environ.get('ZOTERO_LIBRARY_TYPE', 'user'), api_key=os.environ['ZOTERO_API_KEY'], ) # Retrieve top-level items (returns 100 by default) items = zot.top(limit=10) for item in items: print(item['data']['title'], item['data']['itemType']) # Search by keyword results = zot.items(q='machine learning', limit=20) # Retrieve all items (use everything() for complete results) all_items = zot.everything(zot.items()) ``` ## Core Concepts - A `Zotero` instance is bound to a single library (user or group). All methods operate on that library. - Item data lives in `item['data']`. Access fields like `item['data']['title']`, `item['data']['creators']`. - Pyzotero returns 100 items by default (API default is 25). Use `zot.everything(zot.items())` to get all items. - Write methods return `True` on success or raise a `ZoteroError`. ## Reference Files | File | Contents | |------|----------| | [references/authentication.md](references/authentication.md) | Credentials, library types, local mode | | [references/read-api.md](references/read-api.md) | Retrieving items, collections, tags, groups | | [references/search-params.md](references/search-params.md) | Filtering, sorting, search parameters | | [references/write-api.md](references/write-api.md) | Creating, updating, deleting items | | [references/collections.md](references/collections.md) | Collection CRUD operations | | [references/tags.md](references/tags.md) | Tag access and management | | [references/files-attachments.md](references/files-attachments.md) | File download and attachment uploads | | [references/exports.md](references/exports.md) | BibTeX, CSL-JSON, bibliography export | | [references/pagination.md](references/pagination.md) | follow(), everything(), generators | | [references/full-text.md](references/full-text.md) | Full-text content indexing and access | | [references/saved-searches.md](references/saved-searches.md) | Saved search management | | [references/cli.md](references/cli.md) | Command-line interface (local Zotero 7) | | [references/mcp.md](references/mcp.md) | MCP server for LLM clients (local Zotero 7) | | [references/error-handling.md](references/error-handling.md) | Errors and exception handling | ## Common Patterns ### Fetch and modify an item ```python item = zot.item('ITEMKEY') item['data']['title'] = 'New Title' zot.update_item(item) ``` ### Create an item from a template ```python template = zot.item_template('journalArticle') template['title'] = 'My Paper' template['creators'][0] = {'creatorType': 'author', 'firstName': 'Jane', 'lastName': 'Doe'} zot.create_items([template]) ``` ### Export as BibTeX ```python zot.add_parameters(format='bibtex') bibtex = zot.top(limit=50) # bibtex is a bibtexparser BibDatabase object print(bibtex.entries) ``` ### Local mode (read-only, no API key needed) ```python zot = Zotero(library_id='123456', library_type='user', local=True) items = zot.items() ``` ### Local Zotero 7 (CLI or MCP, no API key) For searching a locally running Zotero desktop app (including full-text PDF search), use the CLI or MCP server instead of the Web API. Both require Zotero 7 with local API access enabled. See [references/cli.md](references/cli.md) and [references/mcp.md](references/mcp.md). ## Dónde encaja - Categoría: [Investigación](https://skillsagentes.com/categorias/investigacion.md) — Investigación estructurada, búsqueda de fuentes y síntesis. - Creador: [K-Dense-AI](https://skillsagentes.com/creators/k-dense-ai.md) — 163 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Citation Management](https://skillsagentes.com/skills/k-dense-ai/scientific-agent-skills/citation-management.md): Gestión integral de citas académicas: busca en OpenAlex, PubMed y Google Scholar, extrae metadatos precisos, valida citas y genera entradas BibTeX correctamente formateadas. - [Scientific Slides](https://skillsagentes.com/skills/k-dense-ai/scientific-agent-skills/scientific-slides.md): Crea decks de diapositivas y presentaciones para charlas de investigación: PowerPoint, presentaciones de conferencia, seminarios, defensas de tesis. Da estructura, plantillas, guía de tiempos y validación visual. - [Literature Review](https://skillsagentes.com/skills/k-dense-ai/scientific-agent-skills/literature-review.md): Realiza revisiones bibliográficas sistemáticas y completas usando varias bases académicas (PubMed, arXiv, bioRxiv, Semantic Scholar). Genera markdown y PDF con citas verificadas en varios estilos (APA, Nature, Vancouver). - [Infographics](https://skillsagentes.com/skills/k-dense-ai/scientific-agent-skills/infographics.md): Crea infografías profesionales con Nano Banana Pro AI y refinamiento iterativo inteligente. Usa Gemini 3.6 Flash para revisar la calidad e integra investigación con Perplexity Sonar. Soporta 10 tipos, 8 estilos y paletas para daltonismo. - [Latex Posters](https://skillsagentes.com/skills/k-dense-ai/scientific-agent-skills/latex-posters.md): Crea pósteres de investigación profesionales en LaTeX con beamerposter, tikzposter o baposter, para conferencias y comunicación científica: layout, colores, columnas múltiples e integración de figuras. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)