Skip to content

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

  1. Register new tools in src/projio/mcp/server.py:
  2. biblio_pool_promote (projio wrapper already in biblio.py)
  3. biblio_zotero_pull (projio wrapper already in biblio.py)
  4. biblio_zotero_push (projio wrapper already in biblio.py)
  5. biblio_zotero_status (projio wrapper already in biblio.py)

  6. Update CLAUDE.md (projio root):

  7. Add new tools to the mcp/biblio.py tool list
  8. Document the pool ecosystem briefly
  9. Document Zotero integration tools

  10. Update packages/biblio/CLAUDE.md:

  11. Add Zotero workflow documentation
  12. Add pool promote to the ingest pipeline
  13. Document new MCP tools

  14. Update .claude/settings.json:

  15. Ensure mcp__projio__biblio_pool_promote, mcp__projio__biblio_zotero_* are in allowed tools

  16. Verify imports work:

  17. Test that from biblio.mcp import pool_promote, zotero_pull, zotero_push, zotero_status succeeds
  18. Test that from biblio.zotero import ... works without pyzotero (graceful ImportError)

Key files

  • src/projio/mcp/server.py — tool registration
  • src/projio/mcp/biblio.py — already has wrappers (from background agent)
  • CLAUDE.md — projio root documentation
  • packages/biblio/CLAUDE.md — biblio documentation
  • .claude/settings.json — tool permissions

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