Skip to main content
Glama

Download KoboToolbox Attachments

kobo_download_attachments
Read-onlyIdempotent

Download submission attachments from KoboToolbox forms, including photos, audio, video, and files, organized into folders per submission.

Instructions

Download the photos, audio, video and files attached to submissions.

A form with an 'image' question (a shopfront photo, a signed consent form, a damaged crop) stores its files on Kobo, and nothing in an Excel export contains them — only file names. This fetches the actual files to disk, organised one folder per submission.

Args:

  • uid (string): asset uid of the form

  • submission_ids (array, optional): limit to these submissions; omit for all

  • output_dir (string, optional): where to write (default: /_attachments)

  • max_files (number, default 200): safety cap

Returns: the directory written, the number of files and their total size.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
uidYesAsset uid of the form
max_filesNoSafety cap on how many files to pull
output_dirNoDirectory to write the files into (default: <output dir>/<form>_attachments)
submission_idsNoLimit to these submissions. Omit to fetch attachments from all of them.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description is not required to repeat those. It adds useful behavioral context: files are fetched to disk organized per submission, there is a safety cap (max_files), and the return includes the directory written, file count, and total size. This goes beyond the schema by describing the operational outcome. It doesn't discuss error handling or edge cases, but given annotation coverage, a 4 is appropriate.

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 well-organized: a one-sentence purpose, a motivational paragraph, and an Args/Returns breakdown. Every sentence is informative, with no fluff or redundancy. The default output directory is explained clearly, and the overall length is appropriate for the tool's complexity. The structure is front-loaded with the essential purpose.

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?

The tool is moderately complex (4 parameters, multiple behaviors), but the description, together with the schema and annotations, provides everything an agent needs: clear purpose, parameter semantics, default behaviors, return values, and safety hints. The absence of an output schema is compensated by the explicit Returns line. No critical information is missing for correct invocation.

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?

The input schema has 100% coverage, with each parameter described (e.g., 'Asset uid of the form', 'Directory to write the files into'). The description mirrors these descriptions without adding new semantic details; it restates defaults and the output directory pattern that are already in the schema. It does not, for example, clarify format of submission IDs or interactions between params. With high schema coverage, the baseline of 3 applies, and the description adds little beyond it.

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 object: 'Download the photos, audio, video and files attached to submissions.' It clearly identifies the resource (KoboToolbox attachments) and distinguishes itself from siblings like kobo_export_submissions_excel (which exports Excel, not files) and kobo_list_submissions (which lists metadata). The motivation ('nothing in an Excel export contains them — only file names') further clarifies what this tool uniquely does.

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 a clear rationale for when to use this tool: when you need actual attachment files, not just names from an Excel export. It implicitly contrasts with the Excel export sibling. However, it does not explicitly name alternative tools or state when NOT to use it, though the context makes the intended use obvious. This earns a 4 rather than a 5.

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