zotero-brain-slim
Server Quality Checklist
Latest release: v0.1.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/5All 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/5Six 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/5The 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.
Average 4/5 across 6 of 6 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 6 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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