{"name":"io.github.oscardvs/zoteus","slug":"oscardvs-zoteus","title":"Zoteus","description":"Zotero MCP server for Claude and ChatGPT: search, citations, safe writes, PDF passages and pages.","url":"https://mcp.market/server/oscardvs-zoteus","rating":null,"grade":"B","score":78,"certified":false,"status":"active","category":"search","tags":["search"],"presence":{"score":39,"stars":41,"forks":4,"downloads_week":null,"last_push_at":"2026-09-17T12:40:55.000Z","license":"MIT"},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/oscardvs/zoteus","website":"https://zoteus.com","version":"1.20.2","remotes":[{"type":"streamable-http","url":"https://mcp.zoteus.com/mcp"}],"packages":[{"registryType":"npm","identifier":"@oscardvs/zoteus","version":"1.20.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"Zotero API key (writes/sync/groups; optional for local-only reads).","isSecret":true,"name":"ZOTERO_API_KEY"},{"description":"Use the Zotero desktop local API: auto | on | off.","name":"ZOTEUS_LOCAL"},{"description":"Set to true to enable permanent deletion (off by default).","name":"ZOTEUS_ALLOW_DELETE"}]}],"tools":[],"scan":{"score":78,"grade":"B","scanned_at":"2026-09-19T09:58:59.931Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T09:58:59.862Z","components":{"code":{"score":8,"max":25,"notes":["245 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 151ms (auth required)"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (endpoint requires auth); not counted"]},"auth":{"score":15,"max":15,"notes":["OAuth resource metadata advertised on 401"]},"maintenance":{"score":15,"max":15,"notes":["last push 2 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"net.raw-ip","severity":"medium","component":"code","title":"Network call to a raw IP address","evidence":"dist/api/local-writes.d.ts: …to the same local API the reads use * (http://127.0.0.1:23119/api/users/0/...), gated by a *local* API…"},{"id":"exec.shell-concat","severity":"high","component":"code","title":"Shell command built from a string (injection risk)","evidence":"dist/features/search/sqlite-index.js: …F EXISTS passages_fts'); db.exec(` CREATE VIRTUAL TABLE passages_fts USING fts5( text, content='passages', content_rowid='pid', tokenize='${FTS_TOKENIZER}' ); `); …"}],"inputs":{"probes":[{"url":"https://mcp.zoteus.com/mcp","reachable":true,"authRequired":true,"latencyMs":151,"authScheme":"oauth"}],"packages":[{"registryType":"npm","identifier":"@oscardvs/zoteus","version":"1.20.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":6,"publishedAt":"2026-09-16T14:39:25.349Z","repositoryUrl":"git+https://github.com/oscardvs/zoteus.git"}],"repo":{"found":true,"owner":"oscardvs","repo":"zoteus","archived":false,"pushedAt":"2026-09-17T12:40:55Z","stars":41,"forks":4,"openIssues":2,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/59517821?v=4","ownerCreatedAt":"2020-01-04T23:21:27Z","license":"MIT"},"icon":{"url":"https://zoteus.com/icon.svg?icon.0dmmqx~3bbabb.svg","source":"site"},"presence":{"stars":41,"forks":4,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-17T12:40:55.000Z","score":39}}}},"grade_history":[],"reviews":[]}