Skip to main content
Glama

zotero-mcp

A small, read-only MCP server that exposes your Zotero library to Claude (or any MCP client) through Zotero's built-in local HTTP API. No API keys, no cloud — it talks to the Zotero desktop app running on your machine.

What it can do

All tools are read-only:

Tool

Purpose

zotero_search

Search the library (title/creator/year, or everything)

zotero_get_item

Full metadata for one item

zotero_get_children

Notes, attachments, and annotations of an item

zotero_get_item_fulltext

Extracted full text of a PDF/attachment

zotero_list_collections

Browse the collection tree

zotero_collection_items

Items in a collection

zotero_list_tags

List/filter tags

zotero_saved_searches

List saved searches

zotero_export_bibtex

Export items as BibTeX

zotero_export_citation

Formatted citation + bibliography in any CSL style

zotero_health

Check connectivity

Related MCP server: zotero-mcp

Prerequisites

  1. Zotero 7 or newer, running.

  2. Enable the local API: Zotero → Settings → Advanced → "Allow other applications on this computer to communicate with Zotero".

  3. uv installed.

Verify the API is up:

curl 'http://localhost:23119/api/users/0/items?limit=1'

Install & test

cd ~/zotero-mcp
uv sync
uv run pytest          # unit tests (no running Zotero needed)

Smoke-test against your live library (Zotero must be open):

uv run python -c "from zotero_mcp.client import ZoteroLocalClient as C; import json; print(json.dumps(C().search_items(q='', limit=3), default=str)[:600])"

Inspect the tools interactively:

uv run mcp dev src/zotero_mcp/server.py

Register with Claude Code

claude mcp add zotero -- uv --directory ~/zotero-mcp run zotero-mcp

Then ask Claude things like "search my Zotero for papers on diffusion models" or "give me the BibTeX for item ABCD1234".

Configuration

Environment variables (optional):

  • ZOTERO_BASE_URL — override the API base (default http://localhost:23119/api). Useful from WSL where Zotero runs on the Windows host, e.g. http://<windows-host-ip>:23119/api.

  • ZOTERO_USER_ID — override the local user id (default 0; almost always correct).

Notes

  • Read-only by design. Zotero's local API does not support writes; this server intentionally mirrors that. Citation/BibTeX formatting is delegated to Zotero itself.

  • If a tool returns {"error": "Could not reach the Zotero local API..."}, Zotero is closed or the local-API setting is off.

Available Tools

11 tools
zotero_collection_itemsC

List the top-level items in a collection.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
collection_keyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only states 'List the top-level items in a collection' without mentioning pagination (despite a 'limit' parameter), ordering, error handling, or access requirements. This leaves significant behavioral gaps.

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

Conciseness4/5

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

The description is a single concise sentence with no wasted words. However, it could be structured more helpfully (e.g., including parameter context), but given its brevity, it remains efficiently front-loaded.

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?

For a tool with 2 parameters, no annotations, and an output schema (not shown), the description should specify what 'top-level items' means (e.g., excluding items in subcollections), mention pagination behavior, and clarify the required 'collection_key'. It does not do enough to be complete for an agent.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain either parameter ('collection_key' or 'limit'). The input schema provides titles but no descriptions, and the tool description adds no meaning beyond the schema, failing to compensate for the coverage gap.

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

Purpose4/5

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

The description states 'List the top-level items in a collection,' which clearly identifies the action (list) and resource (top-level items in a collection). It distinguishes from siblings like 'zotero_get_children' (which lists children of an item) and 'zotero_get_item' (single item retrieval), though not explicitly.

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: when you need the top-level items of a specific collection. However, it does not provide explicit guidance on when to use this tool versus alternatives (e.g., 'zotero_search' or 'zotero_get_children'), nor does it state when not to use it.

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

zotero_export_bibtexC

Export one or more items as BibTeX (rendered by Zotero).

ParametersJSON Schema
NameRequiredDescriptionDefault
item_keysYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Does not disclose whether it is read-only, rate limits, authentication needs, or behavior on invalid item keys. Merely states export action without behavioral details.

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

Conciseness3/5

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

One sentence, front-loaded with primary verb and resource. However, it is under-specified and lacks structured details that would aid comprehension.

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?

Despite having only one parameter and an output schema, the description fails to provide essential context like how to get item keys or what the output contains. Lacks completeness for effective agent use.

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

Parameters1/5

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

Schema description coverage is 0%. The description does not explain what 'item_keys' are (presumably Zotero item keys) or how to obtain them. Adds no value beyond the raw schema.

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 verb 'export', the resource 'items', and the format 'BibTeX (rendered by Zotero)'. It distinguishes from sibling tools like zotero_export_citation which exports citations in other formats.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Does not mention prerequisites, when not to use, or any context for selection among siblings.

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

zotero_export_citationA

Return formatted citation + bibliography HTML for items, in the given CSL style.

Args: item_keys: Items to format. style: A CSL style id, e.g. "apa", "chicago-note-bibliography", "ieee".

ParametersJSON Schema
NameRequiredDescriptionDefault
styleNoapa
item_keysYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the output is HTML but does not disclose behavioral traits like read-only safety, side effects, or auth requirements. Minimal beyond purpose.

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 sentences plus a clear Args list. It is front-loaded with purpose and concise. No unnecessary 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?

Given an output schema exists (not provided), description need not explain return format. Parameters are covered adequately. Lacks prerequisites or usage context, but sufficient for a low-complexity tool.

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?

Schema coverage is 0%, so description must compensate. It explains both parameters: item_keys (required) and style (optional with examples like 'apa', 'chicago-note-bibliography'). This adds meaningful context beyond the schema.

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 verb 'Return' and the resource 'formatted citation + bibliography HTML for items', and specifies the CSL style context. It distinguishes from siblings like zotero_export_bibtex which exports in a different format.

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 for citation formatting but does not provide explicit when-to-use or when-not-to-use guidance. Alternatives are not mentioned, though sibling tools suggest differences.

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

zotero_get_childrenA

List the notes, attachments, and annotations belonging to an item.

Useful to find the attachment key needed for zotero_get_item_fulltext, or to read a paper's notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_keyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/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 does not disclose behavioral traits beyond the purpose (e.g., read-only, pagination). However, for a simple list operation, the description is minimally adequate but lacks depth.

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 concise with two sentences, front-loading the purpose. Every sentence adds value with 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?

Given the presence of an output schema, the description does not need to explain return values. It mentions the types of children (notes, attachments, annotations), which is sufficient context. However, it could clarify the nature of 'item_key' to improve completeness.

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?

The description does not explain the 'item_key' parameter beyond what is in the schema (title 'Item Key'). With 0% schema description coverage, the description should compensate but fails to add any meaning. The parameter's role is implied but not explicit.

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 that the tool lists notes, attachments, and annotations belonging to an item. The verb 'list' and the specific resources are explicit, and it distinguishes from siblings like zotero_get_item and zotero_get_item_fulltext.

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 provides explicit use cases: to find the attachment key needed for zotero_get_item_fulltext, or to read a paper's notes. This guides the agent on when to use this tool.

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

zotero_get_itemA

Get the full metadata for a single item by its key.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_keyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/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 accurately describes the tool as a read operation that returns full metadata. No side effects are mentioned, which is appropriate for a read tool. The description is clear and truthful.

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 sentence with no unnecessary words. It is front-loaded and efficient.

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?

Given the tool's simplicity (1 parameter, has output schema), the description is adequate. It conveys the core functionality. However, it could mention that the item key is a Zotero-specific identifier, but this is not critical.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning beyond the schema. The parameter 'item_key' is not explained (e.g., its format or where to obtain it). The description should compensate for low coverage but does not.

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 verb 'Get', the resource 'full metadata for a single item', and the method 'by its key'. It effectively distinguishes from sibling tools like zotero_collection_items (which lists items in a collection) and zotero_get_children (which gets children of an item).

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It implies use when you have an item key, but does not mention exclusions or alternative tools for other scenarios, leaving the agent without clear usage context.

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

zotero_get_item_fulltextA

Return the extracted full text for an item.

Accepts either an attachment key directly, or a parent item key (in which case the first attachment with indexed text is used). Full text is only available when Zotero has indexed the attachment.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_keyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/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 full burden. It discloses that full text may not be available if not indexed, but does not specify behavior when no indexed text exists or error handling. Adequate but not exhaustive.

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 concise with two well-structured sentences, front-loading the main purpose. No unnecessary words.

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?

For a tool with one parameter and an output schema (not shown), the description sufficiently explains the input resolution logic and a prerequisite (indexing). It is 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.

Parameters4/5

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

The single parameter item_key has no description in the schema (0% coverage). The description adds meaning by explaining it can be either an attachment key or a parent item key, and how resolution works, which is valuable beyond the schema.

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 returns the extracted full text for an item, specifying it can accept either an attachment key or a parent item key. This distinguishes it from siblings like zotero_get_item (metadata) and zotero_get_children (attachments).

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 provides guidance on when to use each key type and notes that full text is only available when Zotero has indexed the attachment. It does not explicitly state when not to use it, but the context is clear for a simple retrieval tool.

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

zotero_healthA

Check that the Zotero local API is reachable. Use this to debug connectivity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/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 indicates a non-destructive read-only check, which is transparent enough for a health probe.

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?

Two sentences with no redundancy; every word serves a purpose. The description is minimal yet complete.

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 output schema exists and the tool is simple (no parameters), the description adequately covers the tool's purpose and usage.

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?

The tool has zero parameters, so the description does not need to add parameter semantics. Baseline of 4 is appropriate.

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 verb 'check' and the resource 'Zotero local API', distinguishing it from sibling tools that handle items, collections, or exports.

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 explicitly advises 'Use this to debug connectivity', giving clear context for when to invoke the tool, though it does not state exclusions.

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

zotero_list_collectionsA

List collections. Pass a collection key as parent to list its subcollections.

ParametersJSON Schema
NameRequiredDescriptionDefault
parentNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states 'List collections' and parameter usage, without disclosing behavioral traits like authentication requirements, read-only nature, pagination, or rate limits. The description adds minimal behavioral context beyond the obvious.

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 sentences, front-loaded with the core purpose 'List collections,' followed by a concise parameter instruction. Every word earns its place with no fluff.

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?

Given the tool's simplicity (one optional parameter, output schema present), the description is sufficiently complete. It covers the core function and parameter usage. The output schema handles return value documentation, so the description does not need to explain that. Some minor context like pagination could be added, but it is not critical.

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

Parameters5/5

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

The input schema has no descriptions (coverage 0%), but the description compensates well by explaining the meaning of the parent parameter: passing a collection key lists subcollections, and omitting it lists top-level collections. This adds clear semantics beyond the schema's type-only specification.

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 lists collections, with a specific verb and resource. It also explains the optional parent parameter to list subcollections, distinguishing it from sibling tools like zotero_collection_items which list items in a collection.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool over alternatives. While it explains how to use the parent parameter, it lacks explicit when-to-use or when-not-to-use context relative to sibling tools.

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

zotero_list_tagsA

List tags in the library, optionally filtered by a substring query.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations; description lacks details on pagination, sorting, or whether it returns all tags when query is null. Minimal behavioral 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?

Single front-loaded sentence with no unnecessary words, efficiently conveys core function.

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?

Output schema exists, so return values are covered; but missing explanation of limit behavior and filtering nuances for a 2-param tool.

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?

Adds 'substring' clarification for query parameter beyond schema, but does not explain limit parameter. With 0% schema coverage, partial compensation.

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?

Clearly states it lists tags in the library with optional substring filtering, distinct from sibling tools like zotero_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?

Implies use when needing tags with optional filtering, but does not provide explicit when-to-use/alternatives vs siblings.

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

zotero_saved_searchesA

List the library's saved searches (name + key + conditions).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. 'List' clearly indicates a read-only operation. It adds the behavioral context that it returns names, keys, and conditions, which is adequate.

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?

Single sentence, front-loaded with verb and resource, no wasted words. Highly concise.

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 0 parameters and an external output schema, the description fully explains the tool's purpose and output format. No gaps remain.

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?

There are 0 parameters, so no parameter documentation is needed. The description adds no extra parameter info, but none is required. Baseline 4 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 it lists saved searches and specifies the returned fields (name, key, conditions). It distinguishes from siblings like zotero_search (which likely searches items) and zotero_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 Guidelines4/5

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

The description implies usage when a list of saved searches is needed, but does not explicitly state when to use this tool versus alternatives like zotero_search. However, the purpose is clear enough.

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.

  1. 11 tool updatesv0.1.0
    • First observedzotero_collection_items
    • First observedzotero_export_bibtex
    • First observedzotero_export_citation
    • First observedzotero_get_children
    • First observedzotero_get_item
    • First observedzotero_get_item_fulltext
    • First observedzotero_health
    • First observedzotero_list_collections
    • First observedzotero_list_tags
    • First observedzotero_saved_searches
    • First observedzotero_search

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: listing, searching, getting metadata/children/fulltext, exporting in different formats, checking health, and listing collections/tags/saved searches. No overlapping functionality that would cause confusion.

Naming Consistency4/5

All tools share the 'zotero_' prefix and mostly follow a verb_noun pattern (e.g., zotero_get_item, zotero_search, zotero_list_collections). Minor deviations: 'zotero_collection_items' and 'zotero_saved_searches' are noun phrases rather than explicit verbs, but still clear.

Tool Count5/5

11 tools is well-scoped for a research reference management server. Each tool serves a necessary function without redundancy, covering search, retrieval, listing, export, and health checks.

Completeness4/5

The tool set provides thorough read capabilities: search, get items/fulltext/children, list collections/tags/saved searches, and export. It lacks create/update/delete operations, but the server appears designed for querying and exporting, so the surface is appropriate for that purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers