Record screening decisions on Zotero items
zotero_screen_itemsRecord systematic-review screening decisions as Zotero tags on item batches, letting group libraries sync final or reviewer-specific include/exclude/maybe choices.
Instructions
Record systematic-review screening decisions as Zotero tags on a batch of items, so the whole group library sees them. Decisions are Zotero tags of the form screen//[:][@], e.g. "screen/title-abstract/exclude:wrong-population@alice"; stage is title-abstract or full-text, decision is include, exclude or maybe, a reason goes only on exclude, and a tag with no @reviewer is the final (consensus) decision. They sync to the whole group and stay readable in Zotero without Zoteus. Pass reviewer to record your own independent decision (dual screening); omit it to record the final decision, e.g. after resolving a disagreement. Each item gets exactly one tag for this stage and reviewer: a decision recorded earlier for the same stage and reviewer is replaced, and every other tag (the user's own, other stages, other reviewers) is left as it was. Writes go to the running Zotero desktop app (Zotero 10+) for every library it holds, otherwise to the cloud Web API (requires ZOTERO_API_KEY with write access). Read the queue and the tallies with zotero_review.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"stage": "<stage>",
"decisions": "<decisions>"
},
"name": "zotero_screen_items"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| stage | Yes | Screening stage: "title-abstract" (first pass) or "full-text" (eligibility of the full report). | |
| confirm | No | Required to tag more items in one call than the server's bulk-write threshold. | |
| reviewer | No | Who is screening, e.g. "alice". Slugged into the tag ("Alice B." becomes "alice-b"). Omit to record the final decision. | |
| decisions | Yes | One entry per item, at most 100 per call. | |
| library_id | No | Numeric id of the library to address, e.g. 5234875 for a group (zotero_groups lists the ids you can reach). Omit to use the configured default library; an id given without library_type is read as a group id. | |
| library_type | No | Which library to address: "user" (a personal library) or "group" (a shared group library). Omit to use the library this server is configured for. "group" on its own is refused: pass library_id with it. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| stage | Yes | The stage recorded. | |
| failed | No | One entry per object the write could not land; absent or empty when all of them did. | |
| target | No | Where the write went: "local" (Zotero desktop local API), "desktop" (connector protocol) or "cloud" (Zotero Web API). | |
| recorded | Yes | The items that now carry the decision. | |
| reviewer | No | The reviewer slug, absent for final decisions. |