zotero
11
总安装量
11
周安装量
#27924
全站排名
安装命令
npx skills add https://github.com/shoei05/claude-code-zotero-skill --skill zotero
Agent 安装分布
opencode
10
gemini-cli
10
github-copilot
10
kimi-cli
10
amp
9
codex
9
Skill 文档
Zotero API Skill
Zotero ã®ãã¼ã«ã« HTTP ãµã¼ãã¼ï¼localhost:23119ï¼ããã³ REST APIï¼api.zotero.orgï¼çµç±ã§æç®ç®¡çæä½ãè¡ãã
åææ¡ä»¶
ãã¼ã«ã« APIï¼Zotero èµ·åä¸ã®ã¿ï¼
Zotero ãèµ·åä¸ã§ã以ä¸ã®è¨å®ãæå¹ã§ãããã¨ï¼
- Zotero > ç°å¢è¨å® > 詳細 > ãAllow other applications on this computer to communicate with Zoteroãã«ãã§ãã¯
æ¥ç¶ç¢ºèª:
curl -s http://localhost:23119/connector/ping
REST APIï¼ã¯ã©ã¦ãæä½ï¼
ç°å¢å¤æ°ãè¨å®ããã¦ãããã¨:
ZOTERO_API_KEY: API ãã¼ï¼https://www.zotero.org/settings/keys ã§ä½æï¼ZOTERO_USER_ID: ã¦ã¼ã¶ã¼ ID
æ¥ç¶ç¢ºèª:
curl -s -H "Zotero-API-Key: $ZOTERO_API_KEY" "https://api.zotero.org/keys/current"
ã³ãã³ã
1. DOI 䏿¬ã¤ã³ãã¼ã (/zotero import)
/zotero import <DOI1> <DOI2> ...
/zotero import --file <doi_list.txt>
/zotero import --collection "ã³ã¬ã¯ã·ã§ã³å"
ã¤ã³ãã¼ãã¹ã¯ãªãã:
bash ~/.claude/skills/zotero/scripts/zotero_import.sh --dois "10.1038/xxx,10.2196/yyy" [--collection "åå"]
å¦çããã¼:
- Zotero èµ·å確èªï¼
/connector/pingï¼ - 対象ã³ã¬ã¯ã·ã§ã³ç¹å®ï¼æå®ãªããã°ç¾å¨é¸æä¸ã使ç¨ï¼
- å DOI â
doi.orgãã BibTeX åå¾ï¼å¤±ææ CrossRef ãã©ã¼ã«ããã¯ï¼ /connector/import?session=<unique_id>ã« POST- çµæãµããªã¼è¡¨ç¤º
2. æå BibTeX ã¤ã³ãã¼ã (/zotero bibtex)
DOI ã®ãªãæç®ç¨ãBibTeX ãã¡ã¤ã«ãç´æ¥ã¤ã³ãã¼ã:
bash ~/.claude/skills/zotero/scripts/zotero_import.sh --bibtex /path/to/file.bib
DOI 䏿æã¯ CrossRef API ã§æ¤ç´¢:
curl -s "https://api.crossref.org/works?query.bibliographic=èè
å+ãã¼ã¯ã¼ã&rows=5"
3. ã³ã¬ã¯ã·ã§ã³ä¸è¦§ (/zotero collections)
curl -s http://localhost:23119/api/users/0/collections | python3 -c "
import json, sys
for c in json.load(sys.stdin):
d = c['data']
print(f\"{d['key']} {d['name']}\")"
4. ã¢ã¤ãã ä¸è¦§ (/zotero list)
/zotero list # ç¾å¨é¸æä¸ã³ã¬ã¯ã·ã§ã³
/zotero list --collection "åå" # æå®ã³ã¬ã¯ã·ã§ã³
5. ã¢ã¤ãã æ¤ç´¢ (/zotero search)
/zotero search "AI psychosis"
REST API æä½
ã³ã¬ã¯ã·ã§ã³ä½æ
curl -s -X POST \
-H "Zotero-API-Key: $ZOTERO_API_KEY" \
-H "Content-Type: application/json" \
"https://api.zotero.org/users/$ZOTERO_USER_ID/collections" \
-d '[{"name": "ã³ã¬ã¯ã·ã§ã³å"}]'
ã³ã¬ã¯ã·ã§ã³æ´æ°
curl -s -X PUT \
-H "Zotero-API-Key: $ZOTERO_API_KEY" \
-H "Content-Type: application/json" \
-H "If-Unmodified-Since-Version: $VERSION" \
"https://api.zotero.org/users/$ZOTERO_USER_ID/collections/COLLECTION_KEY" \
-d '{"name": "æ°ããåå"}'
ã¢ã¤ãã ä½æï¼æå¤§50ä»¶/ãªã¯ã¨ã¹ãï¼
curl -s -X POST \
-H "Zotero-API-Key: $ZOTERO_API_KEY" \
-H "Content-Type: application/json" \
"https://api.zotero.org/users/$ZOTERO_USER_ID/items" \
-d '[{
"itemType": "journalArticle",
"title": "ã¿ã¤ãã«",
"creators": [{"creatorType": "author", "firstName": "å", "lastName": "å§"}],
"collections": ["COLLECTION_KEY"],
"tags": [{"tag": "ã¿ã°å"}]
}]'
ã¢ã¤ãã é¨åæ´æ°ï¼PATCHï¼
curl -s -X PATCH \
-H "Zotero-API-Key: $ZOTERO_API_KEY" \
-H "Content-Type: application/json" \
-H "If-Unmodified-Since-Version: $VERSION" \
"https://api.zotero.org/users/$ZOTERO_USER_ID/items/ITEM_KEY" \
-d '{"tags": [{"tag": "new-tag"}]}'
ã¢ã¤ãã åé¤
curl -s -X DELETE \
-H "Zotero-API-Key: $ZOTERO_API_KEY" \
-H "If-Unmodified-Since-Version: $VERSION" \
"https://api.zotero.org/users/$ZOTERO_USER_ID/items/ITEM_KEY"
ã¿ã°ä¸æ¬åé¤
curl -s -X DELETE \
-H "Zotero-API-Key: $ZOTERO_API_KEY" \
-H "If-Unmodified-Since-Version: $VERSION" \
"https://api.zotero.org/users/$ZOTERO_USER_ID/tags?tag=tag1+||+tag2"
ã°ã«ã¼ãã©ã¤ãã©ãª
ãã¹ã¦ã®ã¨ã³ããã¤ã³ã㯠/users/<userID> ã /groups/<groupID> ã«ç½®ãæããã ãã
# æå±ã°ã«ã¼ãä¸è¦§
curl -s -H "Zotero-API-Key: $ZOTERO_API_KEY" \
"https://api.zotero.org/users/$ZOTERO_USER_ID/groups"
æ¤ç´¢ï¼REST APIï¼
# ãã¼ã¯ã¼ãæ¤ç´¢
curl -s -H "Zotero-API-Key: $ZOTERO_API_KEY" \
"https://api.zotero.org/users/$ZOTERO_USER_ID/items?q=keyword&qmode=titleCreatorYear"
# ã¿ã°ãã£ã«ã¿ï¼AND: è¤æ° tagãOR: || åºåããNOT: - æ¥é è¾ï¼
curl -s -H "Zotero-API-Key: $ZOTERO_API_KEY" \
"https://api.zotero.org/users/$ZOTERO_USER_ID/items?tag=AI&tag=review"
API æ¦è¦
ãã¼ã«ã« API
| ã¨ã³ããã¤ã³ã | ã¡ã½ãã | ç¨é |
|---|---|---|
/connector/ping |
GET/POST | èµ·åç¢ºèª |
/connector/import?session=ID |
POST | BibTeX/RIS ã¤ã³ãã¼ã |
/connector/getSelectedCollection |
POST | 鏿ä¸ã³ã¬ã¯ã·ã§ã³ |
/api/users/0/collections |
GET | ã³ã¬ã¯ã·ã§ã³ä¸è¦§ |
/api/users/0/collections/:key/items |
GET | ã¢ã¤ãã ä¸è¦§ |
/api/users/0/items |
GET | å ¨ã¢ã¤ãã |
REST API (api.zotero.org)
| ã¨ã³ããã¤ã³ã | ã¡ã½ãã | ç¨é |
|---|---|---|
/users/<id>/collections |
GET/POST | ã³ã¬ã¯ã·ã§ã³ä¸è¦§/使 |
/users/<id>/collections/<key> |
PUT/DELETE | ã³ã¬ã¯ã·ã§ã³æ´æ°/åé¤ |
/users/<id>/items |
GET/POST | ã¢ã¤ãã ä¸è¦§/ä½æï¼æå¤§50ä»¶ï¼ |
/users/<id>/items/<key> |
PUT/PATCH/DELETE | ã¢ã¤ãã æ´æ°/åé¤ |
/users/<id>/tags |
GET | ã¿ã°ä¸è¦§ |
/users/<id>/tags?tag=... |
DELETE | ã¿ã°ä¸æ¬åé¤ |
/users/<id>/searches |
GET/POST | ä¿åæ¸ã¿æ¤ç´¢ |
/users/<id>/items/<key>/file |
GET/POST/PATCH | æ·»ä»ãã¡ã¤ã« |
/users/<id>/groups |
GET | ã°ã«ã¼ãä¸è¦§ |
/groups/<id>/... |
å種 | ã°ã«ã¼ãæä½ |
詳細: references/api-endpoints.md
éè¦ãªæ³¨æç¹
ãã¼ã«ã« API
- Local API (
/api/...) 㯠GET ã®ã¿ï¼èªã¿åãå°ç¨ï¼ - Connector API (
/connector/...) 㯠POST ã§èªã¿æ¸ãå¯è½ /connector/importã®sessionãã©ã¡ã¼ã¿ã¯æ¯åã¦ãã¼ã¯ã«ããï¼éè¤ã§ 409 ã¨ã©ã¼ï¼- BibTeX ã«ã·ã§ã«ç¹æ®æåãããå ´åã¯
--data-binary @file.bibã§ãã¡ã¤ã«çµç±éä¿¡ - ã¤ã³ãã¼ãå 㯠Zotero UI ã§é¸æä¸ã®ã³ã¬ã¯ã·ã§ã³ ã«ä¿åããã
REST API
- èªè¨¼:
Zotero-API-Key: <key>ãããã¼ï¼æ¨å¥¨ï¼ - æ´æ°/å餿ã¯
If-Unmodified-Since-Version: <version>ãå¿ é ï¼æªæå® â 428ï¼ - ãããä¸é: æå¤§ 50 ä»¶/ãªã¯ã¨ã¹ã
- ã¬ã¼ããªããã:
Backoff/429 + Retry-Afterãã¼ã¹ - éè¤éä¿¡é²æ¢:
Zotero-Write-Token: <token>ãããã¼