Skip to main content
Glama

dense_region_caption

Automatically discover and caption every salient region in an image, returning bounding boxes and labels per detected object, so you can inventory an image's contents without preselecting categories.

Instructions

Caption every salient region of an image at once, with bounding boxes.

Use this to inventory an image without knowing in advance what is in it -- it returns bboxes and labels for each region it finds, discovering the objects itself. That is the difference from detect_objects, which needs you to name the object you are looking for, and from caption, which describes the whole scene in prose with no coordinates.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
srcYesLocal file path or http(s) URL of the image to process. PDFs are also accepted and are rendered one image per page, so tools that return a list return one entry per page.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.8.2

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 behavioral burden itself. It discloses the key behavior: the tool discovers salient regions autonomously and returns bboxes and labels for each. It does not discuss edge cases like images with no salient regions, but the core operational behavior is clearly stated.

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 tight and front-loaded: one sentence states the purpose, then a short paragraph explains when to use it and how it differs from alternatives. Every sentence contributes useful selection and invocation information without repeating schema contents.

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 a single well-documented parameter, an output schema, and a clear comparison to relevant siblings, the description provides everything needed to select and invoke the tool correctly. The mention of return contents (bboxes and labels) is useful despite the output schema existing.

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?

There is only one parameter, src, and the schema already documents it thoroughly, including local paths, http(s) URLs, PDF rendering, and per-page list behavior. The description adds no extra parameter-level guidance, so the baseline of 3 applies because the schema coverage is complete.

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 opens with a specific verb and resource: 'Caption every salient region of an image at once, with bounding boxes.' It clearly differentiates this tool from siblings by explaining that detect_objects requires a named object and caption gives whole-scene prose without coordinates.

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?

It gives an explicit use case: inventory an image without knowing in advance what is in it. It also names the alternatives and exactly what makes them different, so an agent can decide when to use this tool instead of detect_objects or caption.

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