Skip to main content
Glama
Feplus2

zotero-brain-slim

by Feplus2

zotero-brain-slim

Minimal Zotero MCP server(stdio):库检索、十源论文发现、全文证据语义检索(Sciverse)、多级全文获取瀑布(OA PDF / 出版社订阅 XML)、Zotero 导入。 不做解析与向量化——只负责「找到、下载、入库」。

工具面(7 个)

工具

说明

search_zotero_library

检索 Zotero 库(关键词/标题/DOI)

search_sciverse_evidence

【事实问答首选】Sciverse 语义检索全文证据片段(OpenDataLab,4.5 亿记录 + 3000 万 AI-Ready 全文;返回可引用的原文 chunk + doc_id/偏移/页码,expand=true 扩读原文上下文)。科研问答/高可信度作答优先用它;发现与下载文献才用 discover_papers

discover_papers

十源搜索(综合 5 + 分域 5),附在库标记

download_paper

9 级双格式瀑布全文获取(XML 趟优先、PDF 趟补档):缓存(任一格式命中即短路)→ XML 趟 Elsevier(订阅 XML,需 key)→ Springer(OA JATS XML,需 key)→ PDF 趟 Unpaywall → arXiv → S2 → CORE → OpenAlex → Sci-Hub(默认关闭;XML 已命中时 PDF 补档趟剔除该级);全败返回结构化 no_pdf + landing_page(Unpaywall → OpenAlex → doi.org 兜底)+ 人工指引(含接入校园网/机构 VPN 解锁订阅源提示)

import_to_zotero

建条目 + linked_file 附件(PDF/XML 均留本地)+ 入 Collection

list_collections

列 Collection(可选带条目数)

create_collection

创建 Collection(同名复用)

数据源分域建议(Agent 路由)

先分流:日常问答 / 基于事实与原文证据的作答 → search_sciverse_evidence(直接拿全文证据片段);发现文献 / 下载导入 → discover_papers(只回元数据/摘要)。

discover_paperssources 参数按提问方向只选 2-3 个相关源,避免十源全量轮询:

提问方向

建议源

综合 / 材料 / 工程 / 计算机

openalex + semantic_scholar(补充 crossref 核对元数据;配了 token 可加 sciverse

电子 / 电气 / 计算机 · IEEE 系

ieee(元数据级,需 key)+ openalex

物理 / 数学 预印本

arxiv + openalex

天文 · 天体物理 · 空间科学

ads(需 token)+ arxiv

生物医学 · 生命科学

europepmc + openalex

开放获取全文

doaj + openalex(OA 链接直给)

欧盟项目 / 数据集关联

openaire

不传 sources 默认 sciverse/openalex/arxiv/crossref/semantic_scholar 五综合源(sciverse 未配 token 时自动降级跳过)。

Related MCP server: zotero-mcp

配置(全部经环境变量 / MCP env 传入)

变量

必填

说明

ZOTERO_MODE

auto(默认)/ local / web。auto:配了 Web 凭据走 Web(读写全功能),无凭据回落本地(只读)

ZOTERO_USER_ID / ZOTERO_API_KEY

auto/web 模式需要

Zotero Web API 凭据(本地模式可免)

ZOTERO_LIBRARY_TYPE

user(默认)或 group

ZOTERO_LOCAL

兼容旧配置:true 等价于 ZOTERO_MODE=local

UNPAYWALL_EMAIL

Unpaywall 认证邮箱(unpaywall.org 免注册,填真实邮箱即可)。默认占位值zotero-brain-slim@example.com会使该下载级静默失效

OPENALEX_API_KEY

OpenAlex key(openalex.org 注册即得;不配走 mailto 礼貌池也能用)

CORE_API_KEY

CORE 下载级:core.ac.uk access API 申请(Academic key 免费;30 天轮换,到期 dashboard 点 Renew)

ELSEVIER_API_KEY

Elsevier ScienceDirect 全文 XML 级(级 7):dev.elsevier.com 自助注册(TDM click-through)。个人 key 不进仓库不分发;机构订阅按来源 IP 判定——校园网 / 机构 VPN 环境下带机构权限可取订阅内容,无权限时该级优雅跳过(提示接入机构网络),不阻塞后续级

SPRINGER_NATURE_API_KEY

Springer Nature OA 全文 XML 级(JATS,瀑布 XML 趟主力):dev.springernature.com 自助申请(免费 key 即取 OA 全文,无订阅/IP 限制)

IEEE_API_KEY

IEEE Xplore 检索源(十源之一,元数据级):developer.ieee.org 申请(即时发 key,可能 waiting 审批 1-2 天)

ADS_API_TOKEN

NASA ADS 源(天文/天体物理);免费申请

SCIVERSE_API_TOKEN

Sciverse 证据检索与检索源(search_sciverse_evidence 工具 + 十源之一):sciverse.space 控制台免费申请;不配则对应功能优雅降级

SCIHUB_ENABLED

Sci-Hub 级开关(默认关闭;设 true 开启。下载瀑布最后一级,前面各级命中——含 XML 趟命中——不会走到它)

PROXY_URL

应用级 HTTP 代理(如 http://127.0.0.1:7890),留空则按 env 代理 → 系统代理 → 直连自动选择

也支持同目录 .env 文件(本地调试用)。

快速上手:从申请 key 到接入 Better SageRead

第 0 步:什么都不配也能用(本地模式,3 分钟)

  1. Zotero 桌面端保持运行,并开启本地 API 开关(见下方「本地模式前置条件」);

  2. 在 Better SageRead:AI 中心 → MCP 服务器 → 添加服务器,按下表填写:

表单字段

填什么

类型

stdio(「请求头」是 HTTP 型服务器的字段,stdio 不需要也不会显示)

名称

zotero-brain(任意)

命令

uvx

参数(每行一个)

--fromgit+https://github.com/Feplus2/zotero-brain-slimzotero-brain-slim

环境变量

此步可全空

保存后卡片转绿即通。本地模式可搜库/查重/九源检索;写入类操作(导入条目、建 Collection)需要 Zotero Web key(zotero.org/settings/keys 创建,env 填 ZOTERO_USER_ID + ZOTERO_API_KEY)。

本地开发运行(不走 uvx 拉远端):命令填 uv,参数三行 --directoryF:\...\zotero-brain-slim(仓库绝对路径)/ run mcp_server.py

第 1 步:按需申请出版社 key(全部免费,且都不锁 IP

key

申请入口

用途

备注

SPRINGER_NATURE_API_KEY

dev.springernature.com

SN OA 全文 JATS XML(双格式瀑布 XML 趟主力)

自助即时;免费 key 即取 OA 全文

ELSEVIER_API_KEY

dev.elsevier.com

ScienceDirect 全文 XML(订阅刊)

自助即时;订阅全文按来源 IP 判机构权限(校园网/VPN 才放行,元数据与 OA 不受限)

IEEE_API_KEY

developer.ieee.org

IEEE 检索源(元数据级)

审批可能 waiting 1-2 天

CORE_API_KEY

core.ac.uk/services/api

CORE OA 下载级

30 天轮换,到期点 Renew

OPENALEX_API_KEY

openalex.org/users/me

OpenAlex 检索/下载级

不配也能用(mailto 礼貌池)

UNPAYWALL_EMAIL

无需申请

Unpaywall 下载级

env 填真实邮箱即可(占位值=该级静默失效)

ADS_API_TOKEN

ADS 设置页

天文/天体物理检索源

免费即时

SCIVERSE_API_TOKEN

sciverse.space 控制台

Sciverse 全文证据检索(问答首选)+ 综合检索源

免费 starter quota,超额 429

申请到的 key 逐条填进上一步表单的「环境变量」(或 .env 文件)。一个都不配也成立——瀑布只是少了对应级,OA 链路照常工作。

第 2 步:网络口径(重要)

  • 所有 key 均无 IP 锁,在哪都能调;唯一例外是 Elsevier 的订阅刊全文(按请求来源 IP 判定机构订阅,挂校园网/全隧道 VPN 后自动解锁)。

  • 若配置了 PROXY_URL:zbs 全部出网流量走它,代理进程没开会整体假死(各端点报 404/401 假象)。排障口诀:先查代理,再怀疑 key。

  • 「浏览市场」装的 npm 型 MCP(如 sageread-mcp)与本仓无关——zbs 是 Python 仓,经 uvx/本地 uv 运行。

本地模式前置条件(两个常见坑)

本地模式免 key、不限流,适合只读场景(搜库/查重);写入操作必须走 Web API。使用本地模式需同时满足:

  1. Zotero 桌面端必须正在运行——本地 API 由 Zotero 进程内的 HTTP server 提供, 未启动时连接直接失败;

  2. 必须手动开启本地 API 开关:Zotero 菜单 编辑 → 设置 → 高级 → 杂项, 勾选 「允许其他应用程序通过本地 API 通信」(Allow other applications to communicate with Zotero),否则请求返回 403 - Local API is not enabled

重要:Zotero 本地 API 是只读的POST/PATCH/DELETE 一律 400 "Endpoint does not support method",Zotero 的硬性设计)。因此凡涉及写入 (建文件夹、导入条目、挂附件)必须走 Web API + key。

ZOTERO_MODE=auto(默认)的策略:配置了 Web 凭据则整体走 Web(读写全功能, 避免"本地读、Web 写"的数据不一致观感);未配置凭据且本地 API 可用则回落本地 只读模式(搜库/查重可用,写入会报明确指引)。

运行

# uv / uvx(推荐)
uvx --from git+https://github.com/Feplus2/zotero-brain-slim zotero-brain-slim

# 本地开发
pip install -r requirements.txt
python mcp_server.py

作为 MCP server 注册(stdio,适用于 Claude Desktop 等通用 MCP 客户端):

{
  "command": "uvx",
  "args": ["--from", "git+https://github.com/Feplus2/zotero-brain-slim", "zotero-brain-slim"],
  "env": {
    "ZOTERO_USER_ID": "…",
    "ZOTERO_API_KEY": "…"
  }
}

在 Better SageRead 中使用

本服务是 Better SageRead 文献工作流的一环:在 SageRead 的 MCP 管理器中注册为 stdio MCP server 即可。SageRead 的 env 支持 {{secret:NAME}} 占位符——spawn 进程前由 Rust 侧从系统凭据管理器取出同名条目并替换注入,凭据不写入配置文件:

{
  "command": "uvx",
  "args": ["--from", "git+https://github.com/Feplus2/zotero-brain-slim", "zotero-brain-slim"],
  "env": {
    "ZOTERO_USER_ID": "{{secret:ZOTERO_USER_ID}}",
    "ZOTERO_API_KEY": "{{secret:ZOTERO_API_KEY}}",
    "UNPAYWALL_EMAIL": "{{secret:UNPAYWALL_EMAIL}}"
  }
}

其余可选变量(ZOTERO_MODEPROXY_URLSCIHUB_ENABLED 等)按需添加, 明文值与 {{secret:...}} 占位符可混用。

代理与网络环境

本服务全部流量为 HTTPS API 请求,应用级 HTTP 代理即可,无需 TUN。代理选择优先级: PROXY_URL 显式配置 > 宿主注入的 HTTP_PROXY/HTTPS_PROXY(httpx trust_env 自动遵循)

操作系统代理回退(Windows 注册表 / macOS 系统设置;兜底「宿主只注入 NO_PROXY 导致 trust_env 读不到系统代理」的场景)> 直连。 境外源不可达时,下载瀑布会返回人工下载指引。

免责声明

Sci-Hub 级默认关闭(作为下载瀑布最后一级,前面各级命中——含 XML 趟——时不会走到它)。需要时可设 SCIHUB_ENABLED=true 显式开启;开启前请了解你所在地区的法律法规,使用者自行承担责任 (Keep the laws of your locality in mind)。本项目仅提供检索/下载/入库的工程实现, 不对任何下载源的合法性背书。

出版社官方 API 级(Elsevier)走 TDM 政策 允许的正式接口,个人非商业研究用途;机构订阅按来源 IP 判定(校园网 / 学校 VPN), key 个人持有不进仓库不分发。使用图书馆电子资源请遵守所在机构规定(禁止连续、 系统、过量下载;禁止凭证自动登录;禁止私设代理供校外访问)。

贡献

PR 欢迎:修 bug / 加下载源 / 改工具面。请保持「不做解析与向量化」的边界。

Available Tools

6 tools
create_collectionA

在 Zotero 创建 Collection(文件夹);同名已存在时返回既有 key。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCollection 名称
parentNo父 Collection key(可选)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses a key behavioral trait: if a collection with the same name already exists, it returns the existing key. However, it does not specify the return value for new collections, handling of invalid parent keys, or potential error conditions, leaving notable gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence in Chinese, front-loaded with the action and including a meaningful edge case. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple create tool, the description covers the core action and an important edge case. However, it does not specify the return value on successful creation (only for duplicates), nor provide context on how this tool fits with siblings or handles the optional parent parameter. Adequate but incomplete given no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds minimal meaning beyond the schema, only indirectly referencing the 'name' parameter with '同名' (same name). It does not elaborate on the 'parent' parameter, but the schema already adequately describes both parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a Collection in Zotero, using a specific verb and resource. It also distinguishes itself by noting the idempotent behavior when a collection with the same name exists, which differentiates it from naive create tools and siblings like list_collections.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context through the idempotency note, suggesting it can be used to ensure a collection exists, but it does not explicitly state when to use this tool versus alternatives like list_collections or import_to_zotero. No exclusions or direct comparisons are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discover_papersA

在公开学术源搜索论文候选,返回元数据 + OA PDF 链接 + 是否已在 Zotero 库中。8 个源:openalex/arxiv/crossref/semantic_scholar(综合主力)/europepmc(生物医学·生命科学)/ads(天文·天体物理·空间科学,需 token)/doaj(开放获取期刊)/openaire(欧盟 OA 聚合)。按提问方向只选 2-3 个相关源(sources 参数),避免全量轮询:生物医学→europepmc+pubmed 语义的 openalex;天文物理→ads+arxiv;综合/材料/工程→openalex+semantic_scholar;期刊元数据核对→crossref;找 OA 全文→doaj+openalex。不传 sources 默认 openalex+arxiv+crossref+semantic_scholar。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo每源条数,默认 10
queryYes搜索关键词(英文效果更好)
sourcesNo数据源子集:openalex/arxiv/crossref/semantic_scholar/europepmc/ads/doaj/openaire。按方向选 2-3 个(见工具描述的分域建议),默认前四个综合源

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses significant behavior: the 8 sources, the need for a token for ADS ('需 token'), the default source set, and the return contents (metadata, OA PDF links, in-library status). It does not mention pagination or rate limits, but covers the key operational aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured: it starts with the core purpose, then lists sources, then provides usage patterns, and ends with the default behavior. Every sentence adds actionable information; there is no filler or tautology.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 sources, domain-specific recommendations, default routing) and the absence of annotations/output schema, the description is remarkably complete. It explains what the tool does, what it returns, how to choose sources, and what happens if sources are omitted. No critical information appears missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema already describes all parameters (100% coverage), the description adds meaning beyond it: 'limit' is clarified as per-source ('每源条数'), 'sources' is tied to the domain routing advice, and 'query' gets the hint that English works better. This enriches the bare schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action: '在公开学术源搜索论文候选' (search paper candidates in public academic sources), with explicit outputs ('返回元数据 + OA PDF 链接 + 是否已在 Zotero 库中'). It distinguishes itself from sibling tools like search_zotero_library (local library search) and import_to_zotero (import action) by focusing on external discovery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit domain-based source selection advice ('按提问方向只选 2-3 个相关源'), including mappings like '生物医学→europepmc+pubmed 语义的 openalex' and '天文物理→ads+arxiv'. It also specifies the default source set and warns against full polling ('避免全量轮询'), giving clear decision rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

download_paperA

按 DOI/arXiv/OA 链接走多级瀑布下载 PDF 到本地(不导入 Zotero)。全部失败时返回人工下载指引。

ParametersJSON Schema
NameRequiredDescriptionDefault
doiNo
urlNo论文页 URL(可选,用于兜底提取 arXiv id)
titleNo用于文件命名与 PDF 标题校验
arxiv_idNo如 2401.12345
open_access_pdfNo已知 OA PDF 直链(可选)

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the multi-level cascade behavior, local saving, non-import into Zotero, and the fallback of returning manual download guidance on total failure. It lacks details on partial failure behavior or return format, but key behaviors are transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the main action, and contains no redundant information. Every clause adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 optional parameters and no output schema. The description covers the core workflow and fallback, but lacks critical context such as requiring at least one identifier (DOI/arXiv/URL/OA), the order of the cascade, or the return value on success. This creates ambiguity for an agent deciding how to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80% (4/5 params have descriptions), so the baseline is 3. The description does not add significant parameter semantics beyond the schema; it only mentions DOI/arXiv/OA as sourcing methods, which aligns with params but does not explain how they interact or that at least one is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool downloads PDFs locally via DOI/arXiv/OA links using a multi-level cascade, and explicitly excludes Zotero import. This distinguishes it from sibling tools like import_to_zotero.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the tool is for local download without importing into Zotero, which serves as a clear usage boundary. However, it does not explicitly name alternative tools for import (e.g., import_to_zotero) or discovery (discover_papers), though the exclusion is implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_to_zoteroA

把论文导入 Zotero:建条目 + linked_file 附件(PDF 保留本地)+ 归入 Collection。DOI 已在库时复用既有条目。

ParametersJSON Schema
NameRequiredDescriptionDefault
doiNo
urlNo
yearNo
issueNo
pagesNo
titleYes
volumeNo
authorsNo
journalNo
abstractNo
pdf_pathNo本地 PDF 路径(可选,download_paper 的产物)
collection_nameNo目标 Collection 名(不存在自动创建)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses key behaviors: creating an item, adding a linked-file attachment, preserving the PDF locally, and reusing an existing item if the DOI is already present. However, it omits details about return values, error handling, or behavior when no DOI is provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the main action and then provides key details. It contains no fluff and is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 12 parameters, no annotations, and no output schema, the description is far too sparse. It does not explain the return value, detail the DOI reuse process, or provide any guidance on what metadata fields are expected. The tool is more complex than the description adequately covers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17%, so the description must compensate. It only hints at pdf_path and collection_name via mentions of PDF and Collection, while the other 10 parameters (title, authors, journal, etc.) receive no explanation. This leaves most parameter semantics unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the action: import a paper into Zotero, including creating an item, attaching a linked PDF file, and assigning it to a Collection. It also differentiates from siblings by bundling these operations and noting DOI-based reuse.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used for importing papers into Zotero, but it does not explicitly state when to prefer this over alternatives like create_collection or search_zotero_library. The context is clear enough but lacks explicit exclusions or alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_collectionsA

列出 Zotero 全部 Collection(文件夹),可附带条目数。

ParametersJSON Schema
NameRequiredDescriptionDefault
with_countsNo是否统计条目数(较慢),默认 false

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description should carry the burden of behavioral disclosure. It indicates a read-style operation ('列出'), but does not explicitly mention read-only status, return format, pagination, or performance caveats beyond what the schema's parameter note mentions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the main purpose and includes only one additional relevant detail (optional counts). No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with one optional parameter and no required fields, the description is largely sufficient. However, it does not specify the return format or any usage caveats, which would be beneficial given the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with with_counts already explained ('是否统计条目数(较慢),默认 false'). The tool description adds no extra meaning beyond echoing this feature, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action and target: '列出 Zotero 全部 Collection(文件夹)' (list all Zotero Collections). It also adds an optional feature (item counts), distinguishing it from sibling tools like search_zotero_library or create_collection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied: it lists collections. However, there is no explicit guidance on when to prefer this over sibling tools (e.g., search_zotero_library, create_collection). No exclusions or alternative references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_zotero_libraryA

检索 Zotero 文献库:按关键词/标题/DOI 搜索已有条目,返回元数据列表。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo最多返回条数,默认 20
queryYes关键词、标题片段或 DOI(10.xxx/yyy)
collection_keyNo限定 Collection key(可选)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It states the core action (search) and the return type (metadata list), which gives basic behavioral transparency. However, it does not mention read-only guarantees, error handling, or any other side effects, leaving room for more disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, complete sentence that front-loads the verb and resource. It contains no redundancy or filler, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool with a comprehensive input schema, the description covers the essential aspects: what the tool does, what it searches for, and what it returns. It does not explain pagination or edge cases, but the limit parameter description already addresses result count. Overall, it is sufficiently complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% description coverage for all parameters, so the baseline is 3. The description adds no additional parameter semantics beyond what is already in the schema—'keywords/title/DOI' is exactly the same as the schema's '关键词、标题片段或 DOI'. Therefore, it does not compensate for any gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb '检索' (search) and clearly identifies the resource as 'Zotero 文献库' (Zotero library). It mentions search by keyword/title/DOI and returning a metadata list, which distinguishes it from siblings like discover_papers by limiting scope to '已有条目' (existing items).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase '检索已有条目' (search existing items) clearly implies this tool should be used for finding already-stored items in the Zotero library. However, it does not explicitly name alternatives or state when not to use it, but the context is clear enough for an AI agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.1.0
    • First observedcreate_collection
    • First observeddiscover_papers
    • First observeddownload_paper
    • First observedimport_to_zotero
    • First observedlist_collections
    • First observedsearch_zotero_library

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct action and resource: listing collections, searching the local library, discovering external papers, downloading PDFs, importing into Zotero, and creating collections. There is no meaningful overlap, as search_zotero_library and discover_papers are clearly separated by local vs. external scope.

Naming Consistency5/5

All tool names follow a clear verb-first pattern with snake_case: list_collections, search_zotero_library, discover_papers, download_paper, import_to_zotero, create_collection. The only slight deviation is import_to_zotero (verb + preposition) but it still fits the predictable action-oriented convention.

Tool Count5/5

Six tools is well within the ideal 3-15 range and appropriately scoped for a focused Zotero paper management workflow. Each tool contributes a necessary step without redundancy or bloat.

Completeness4/5

The tool surface covers the core pipeline of discovery, download, and import, plus collection management. Minor gaps include lack of tools for updating or deleting entries/collections, and no direct listing of items within a collection, but these are workarounds via existing search functionality.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A lightweight MCP server that connects AI agents to a local Zotero library for paper management and metadata retrieval. It enables users to search titles and abstracts, browse collections, and automatically ingest papers via arXiv ID or DOI with PDF attachments.
    8
    15
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Read-only MCP server for your local Zotero library. Browse collections, inspect paper metadata, and extract full-text from PDFs via FastMCP tools.
    4
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Feplus2/zotero-brain-slim'

If you have feedback or need assistance with the MCP directory API, please join our Discord server