v2.2.0
list_creator_fields
Zotero's /creatorFields lists the name-shape fields (firstName,
lastName, name, ...) valid on a creators entry -- distinct from
list_item_creator_types, which lists creatorType roles (author,
editor, ...) for one item type. Nothing in this server previously
exposed it.
Idempotency-key + update_publication_status
delete_item_permanently, delete_collection, delete_tag,
delete_saved_search, and move_item_to_different_library now accept
an optional idempotency_key. A retry with the same key and arguments
replays the original outcome -- success or error -- instead of
running against Zotero again.
Caching failures, not just successes, is the point: it's what actually
closes move_item_to_different_library's documented duplicate-on-retry
risk. That tool recreates the item in the target library, then deletes
it from the source. If the create succeeds but the delete then fails,
a bare retry today redoes the whole thing -- since the source item's
version hasn't changed -- creating a second duplicate in the target
library. With idempotency_key, the retry replays the cached failure
instead of touching Zotero again.
Also new: update_publication_status, for "a preprint just got a
DOI." Same in-place, key-preserving patch machinery as update_item,
but the one tool allowed to change item_type too (e.g. preprint ->
journalArticle) -- update_item still forbids that, since changing
itemType changes which fields are valid and this is the one place
that's the deliberate point of the call. Idempotency-key-protected by
default.
export_bibliography
Formatted HTML bibliography/citation entries (in a given CSL style)
or portable export data (csljson, bibtex) for a list of item keys.
BibTeX comes back as one combined, ready-to-paste text blob rather than
a fragmented parsed structure. RIS isn't supported yet -- pyzotero's
response-format dispatch only recognizes it by exact Content-Type
header, and that path is unverified.