Skip to main content
Glama

Bulk Create Content

bulk_create_content

Create up to 100 content items in one batch call. Failed items don't block others, published items generate HTML in parallel, and upsert updates existing pages by path.

Instructions

Create up to 100 content items in a single call using efficient batch insert.

Items are inserted via MongoDB InsertMany for maximum throughput. If one item fails (e.g., duplicate path), the rest continue. Published items get their static HTML generated in parallel (up to 10 concurrent).

Set upsert: true to update existing pages at the same path instead of failing on duplicates.

Returns: total attempted, succeeded, failed counts, and per-item {id, full_path, success, error} details.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYesArray of content items to create (max 100),required
upsertNoIf true, update existing content at the same path instead of failing on duplicates
version_commentNoVersion comment for all created items

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv7.3.4

TDQS

A4.5/5.0
Behavior5/5

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

With annotations only declaring openWorldHint=false and destructiveHint=false, the description carries real behavioral weight: best-effort partial-failure semantics ('the rest continue'), the underlying InsertMany path, parallel HTML generation capped at 10 concurrent, and the upsert override for duplicates. This is exactly the operational detail annotations cannot express.

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?

Four tight sentences, front-loaded with the verb and limit, then failure behavior, then the upsert escape hatch, then the return shape. No sentence is redundant and the length is justified by the tool's batch complexity.

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?

There is no output schema, so the description correctly compensates by specifying the return payload (attempted/succeeded/failed counts plus per-item id, full_path, success, error). Combined with failure and concurrency semantics, an agent has everything needed to call and interpret this 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?

Schema description coverage is 100%, so the schema already documents items, upsert, and version_comment, and the description's restatement of upsert adds only the 'instead of failing on duplicates' framing. The 100-item cap and per-item field semantics are otherwise left to the schema, so baseline 3 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 first sentence gives a specific verb (Create), resource (content items), and a hard scope bound (up to 100 in a single call), which cleanly separates it from create_content (single) and bulk_update_content (existing items). An agent can distinguish it from all siblings without opening the schema.

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 clearly states the condition that changes behavior: set upsert: true to overwrite existing pages at the same path instead of failing, and it explains that a single failure does not abort the rest. It stops short of naming when to prefer create_content or bulk_update_content over this tool, so it is clear context rather than full when/when-not routing.

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

Deploy Server

Other Tools