Register Zotero + pool tools in MCP server and update docs¶
Goal¶
(promoted from note)
Context¶
(see source note)
Prompt¶
Fix the issue described below (source: /storage2/arash/projects/projio/docs/log/issue/issue-arash-20260404-014910-856339.md). Understand the problem, then implement the proposed fix.
Implement: Register Zotero + pool tools in MCP server and update CLAUDE.md¶
Wire up all the new biblio tools from today's session into the projio MCP server and update all documentation.
Tasks¶
- Register new tools in
src/projio/mcp/server.py: biblio_pool_promote(projio wrapper already in biblio.py)biblio_zotero_pull(projio wrapper already in biblio.py)biblio_zotero_push(projio wrapper already in biblio.py)-
biblio_zotero_status(projio wrapper already in biblio.py) -
Update
CLAUDE.md(projio root): - Add new tools to the
mcp/biblio.pytool list - Document the pool ecosystem briefly
-
Document Zotero integration tools
-
Update
packages/biblio/CLAUDE.md: - Add Zotero workflow documentation
- Add pool promote to the ingest pipeline
-
Document new MCP tools
-
Update
.claude/settings.json: -
Ensure
mcp__projio__biblio_pool_promote,mcp__projio__biblio_zotero_*are in allowed tools -
Verify imports work:
- Test that
from biblio.mcp import pool_promote, zotero_pull, zotero_push, zotero_statussucceeds - Test that
from biblio.zotero import ...works without pyzotero (graceful ImportError)
Key files¶
src/projio/mcp/server.py— tool registrationsrc/projio/mcp/biblio.py— already has wrappers (from background agent)CLAUDE.md— projio root documentationpackages/biblio/CLAUDE.md— biblio documentation.claude/settings.json— tool permissions
Related Notes¶
- issue-arash-20260403-210002-675833.md — Implements biblio_zotero_pull, one of the four tools being registered in this issue
- issue-arash-20260403-210020-146442.md — Implements biblio_zotero_push, one of the four tools being registered in this issue
- issue-arash-20260403-205942-590539.md — Implements biblio_pool_promote, one of the four tools being registered in this issue
- issue-arash-20260403-201609-055675.md — Spec for biblio ↔ Zotero integration model that these tools implement
- issue-arash-20260402-220237-298776.md — Same pattern: registering new MCP tools in server.py and updating CLAUDE.md documentation
Acceptance Criteria¶
- [ ]
Result¶
Completed in 181.8s (1 steps, model: opus)
Session: 0814e95f-6dc9-4ed7-8018-4f5aadc2120e
Result note: /storage2/arash/worklog/workflow/captures/20260405-014458-b95359/note.md
Output¶
Both tasks complete.
**Task 1** — Updated the biblio tool list in `CLAUDE.md` (added `biblio_pool_promote`, `biblio_zotero_pull`, `biblio_zotero_push`, `biblio_zotero_status`, `biblio_enrich`, `biblio_enrich_topic_tags`, `biblio_pdf_validate`, `biblio_pdf_fetch_oa_status`, `biblio_library_quality`) and updated `packages/biblio/CLAUDE.md` with Zotero + pool tool routing rows and workflow conventions. The tools were already registered in server.py and settings.json uses `mcp__projio__*` wildcards.
**Task 2** — All CLI commands (`biblio zotero pull/push/status`, `biblio pool promote`) were already implemented with full argparse definitions and handler logic. The Zotero config schema is handled in `zotero.py` via `load_zotero_config()`. No changes needed.
## Next Steps
(done)
Batch Result¶
- status: done
- batch queue_id:
af9c0e1ecc9e - session:
0814e95f-6dc9-4ed7-8018-4f5aadc2120e - batch duration: 181.8s