Attachment full-text
zotero_fulltextNot a search: to find which items contain a term, use zotero_search_items with qmode=everything. This reads, sets, or tracks one attachment's already-extracted full text by key.
Instructions
Not a search: to find which items contain a term, use zotero_search_items with qmode=everything. This reads, sets, or tracks one attachment's already-extracted full text by key. action: "get" returns the indexed text content plus indexing stats for an attachment item (only attachment items have full text; returns found:false if none); "set" stores extracted text for an attachment (provide content and the indexing counts); "since" returns the map of attachment keys whose full text changed after a given library version (useful for incremental indexing). Only attachment items support full text. All three go through the running Zotero desktop app when there is one (no cloud key needed; "set" needs Zotero 10+ and writes your personal library or a group library the app holds), otherwise the cloud Web API.
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": {
"action": "<action>"
},
"name": "zotero_fulltext"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Library version for "since" (default 0). | |
| action | Yes | What to do. "get" reads one attachment's indexed text (needs `item_key`); "set" stores extracted text for it (needs `item_key` + `content`); "since" lists attachment keys whose text changed after `since`. | |
| content | No | Extracted text (set). | |
| item_key | No | Attachment item key (get/set). | |
| 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. | |
| total_chars | No | Characters the document holds in total (set). | |
| total_pages | No | Pages the document holds in total (set); PDFs only. | |
| 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. | |
| indexed_chars | No | Characters of the document that were indexed (set); defaults to none reported. | |
| indexed_pages | No | Pages that were indexed (set); PDFs only. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many attachments that map holds. | |
| found | No | action:"get": whether Zotero holds extracted text for this attachment. | |
| length | No | Characters stored (action:"set"). | |
| target | No | Where the write went: "local" (Zotero desktop local API), "desktop" (connector protocol) or "cloud" (Zotero Web API). | |
| changed | No | action:"since": attachment key to the full-text version it changed at. | |
| content | No | The extracted text itself (action:"get"). | |
| item_key | No | The attachment this call addressed. | |
| totalChars | No | Characters the document holds in total. | |
| totalPages | No | Pages in the document (PDFs). | |
| indexedChars | No | Characters Zotero has indexed of the document. | |
| indexedPages | No | Pages indexed (PDFs). |