Skip to main content
Glama
VericyIO

AIR MCP Server

by VericyIO

Upload a text document

air_upload_document
Destructive

Upload a text document to an AIR project in one call: start the upload, send the content, finish it, and wait for AIR to read it. Returns the source and status.

Instructions

Upload a text document, such as the scan summary, to a project in one call: start the upload, send the content, finish it, and wait until AIR has read it. Returns the source and its status. For binary files, use air_upload_document_init and the related tools. Requires projects:write.

Input Schema

NameRequiredDescriptionDefault
contentYes
fileNameYes
projectPidYes
contentTypeNotext/markdown

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.0.4

TDQS

A4/5.0
Behavior4/5

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

Adds meaningful traits beyond annotations: it blocks and waits until AIR has finished reading the document, it returns the source plus status, and it declares the required scope (projects:write). It does not surface the destructiveHint=true annotation's implications (e.g. what is created or overwritten), leaving one behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action, then the binary-file alternative, then the permission requirement. The pipeline sequence ('start the upload, send the content, finish it, and wait') is slightly verbose but communicates the blocking behavior efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description covers the return value (source and status), the blocking semantics, the auth scope, and the sibling alternative, which is enough to invoke it correctly. Only the parameter-level detail is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for 4 parameters, so the burden is entirely on the description, and it names none of them. 'Text document' and 'content' are only indirectly implied; projectPid, fileName, and the contentType default of text/markdown go unexplained.

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 and resource ('Upload a text document ... to a project') and explicitly frames it as a one-call orchestration of start/send/finish/wait, which distinguishes it from the granular siblings air_upload_document_init and air_upload_document_complete.

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?

Explicitly routes binary uploads to air_upload_document_init and 'the related tools', giving a concrete alternative and the condition that selects it. It does not state whether to prefer this over building the flow manually in other cases, so it falls short of a full when/when-not treatment.

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