Skip to main content
Glama

Discover Zotero tools

search_tools
Read-only

Search the Zotero tool catalog by keyword to identify the right tool without loading every definition. Optionally filter by query and detail level.

Instructions

Discover the available Zotero tools by keyword — useful for progressive disclosure when you do not want to load every tool definition up front (the code-execution-with-MCP pattern). Pass an optional query (matched against tool names, titles, and descriptions) and detail ("names" or "descriptions", default "descriptions"). Returns the matching zotero_* tools so you can pick the right one for a task. With no query, returns the full catalog.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryNoKeyword to match against tool names/titles/descriptions.
detailNoHow much to return (default "descriptions").

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYesHow many matched.
toolsYesThe matching tools, or the whole catalog when no query was given.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.20.2
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
  2. Changed1 schema field changedv1.20.0
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "count": {
      +      "description": "How many matched.",
      +      "type": "number"
      +    },
      +    "tools": {
      +      "description": "The matching tools, or the whole catalog when no query was given.",
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "description": {
      +            "description": "First 220 characters of the tool description; omitted with detail:\"names\".",
      +            "type": "string"
      +          },
      +          "name": {
      +            "description": "Tool name to call, e.g. \"zotero_search_items\".",
      +            "type": "string"
      +          },
      +          "title": {
      +            "description": "Human-readable title; omitted with detail:\"names\".",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "name"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "tools",
      +    "count"
      +  ],
      +  "type": "object"
      +}
  3. First observedv1.0.4

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already mark this as read-only and non-destructive, and the description adds valuable behavioral context: it returns matching tool definitions, supports a no-query full-catalog mode, and clarifies that query matches names, titles, and descriptions. No contradictions with annotations.

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?

Three sentences with no filler. Purpose, usage context, parameter behavior, defaults, and return behavior are all covered efficiently, and the key use case is front-loaded.

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 simple read-only discovery tool with two optional parameters and an output schema, this description is complete. It explains what the tool does, when to use it, how parameters behave, and what to expect in the response, leaving no significant gaps.

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?

Schema coverage is 100%, and the description still adds meaningful detail: query matches against tool names/titles/descriptions, detail accepts 'names' or 'descriptions' with a default, and no query returns the full catalog. This goes well beyond the raw schema field descriptions.

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 states a specific verb and resource ('Discover the available Zotero tools by keyword') and clearly distinguishes this as a discovery/metadata tool rather than a domain tool. It explicitly differentiates from the many zotero_* siblings by framing it as the tool for locating the right Zotero tool.

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?

It gives clear context: use for progressive disclosure when you don't want to load every tool definition up front, and describes the code-execution-with-MCP pattern. It doesn't explicitly state when not to use it, but the intended use case is clear enough for an agent to select this tool appropriately.

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