Skip to main content
Glama

Add items in bulk

bulk_add_items
Idempotent

Add up to 250 items to the library in ONE call. Use this whenever the user provides a list of more than 3 items to add — never loop add_item. IMPORTANT: always pass year, and pass external_id whenever you know it. Without them each title is resolved by fuzzy text search, which silently picks the wrong version for any ambiguous title (Roma 1972 vs Roma 2018, remakes, reissues). A wrong match is expensive to undo, so resolve ids up front via lookup_item for anything ambiguous rather than adding bare titles. Returns honest counts: {added, skipped_duplicates, failed} plus a per-item result list. Always report the exact counts to the user; never claim success without reading them. Items are added with the default status; to set a different status on what you just added, call bulk_update_status with those exact titles in titles.

Input Schema

NameRequiredDescriptionDefault
itemsYesList of items to add (mixed media types allowed).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / items / items / properties / external_id / description
      Previous value: -"External database ID for exact matching: ISBN (book), TMDB ID (movie/show), Discogs ID (album), AniList ID (anime)."New value: +"External database ID for exact matching: ISBN (book), TMDB ID (movie), TMDB or TVDB ID (show), Discogs ID (album), AniList ID (anime), IGDB ID (game)."
    • addedInput schema / properties / items / items / properties / format
      Added value: +{
      +  "description": "Games only: physical or digital copy.",
      +  "enum": [
      +    "physical",
      +    "digital"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / items / items / properties / media_type / enum
      Previous value: -[
      -  "book",
      -  "movie",
      -  "album",
      -  "show",
      -  "anime"
      -]New value: +[
      +  "book",
      +  "movie",
      +  "album",
      +  "show",
      +  "anime",
      +  "podcast",
      +  "game",
      +  "manga"
      +]
    • addedInput schema / properties / items / items / properties / platform
      Added value: +{
      +  "description": "Games only: the platform the user owns it on (e.g. \"PlayStation 5\").",
      +  "type": "string"
      +}
  2. Added

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare mutation safety and idempotency, but the description adds critical behavioral context beyond them: fuzzy title resolution can silently choose wrong versions, bad matches are expensive to undo, duplicate items are skipped, and results include honest per-item counts.

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?

Front-loads purpose and usage rules, then layers in disambiguation risks, return shape, and follow-up status handling. Despite being dense, every sentence provides actionable guidance for correct invocation.

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?

Complete for a bulk mutation tool with no output schema: it explains the return object shape, the default status behavior, error modes, and the follow-up tool for status changes. Annotations plus schema cover the rest.

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 description coverage is 100%, so the baseline is 3. The description meaningfully strengthens parameter guidance by saying to always pass year and external_id whenever known, explaining why those fields prevent silent misresolution—an important layer beyond the schema's optional phrasing.

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?

States a specific verb, resource, and scope: add up to 250 items to the library in one call. It explicitly distinguishes itself from the add_item sibling by warning against looping.

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?

Gives clear when-to-use guidance (lists of more than 3 items), an explicit alternative to avoid (never loop add_item), and a prerequisite workflow for ambiguous titles (resolve via lookup_item). It also routes status changes to bulk_update_status.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources