Skip to main content
Glama

Onboard a new data source, step 2: run analysis after uploading

finish_data_source_onboarding
Idempotent

Call ONLY after the file(s) returned by onboard_data_source have actually been uploaded (each PUT returned HTTP 200) — kicks off AI analysis and waits until the spec reaches "ready" or "failed".

This tool verifies the upload against storage before starting anything. If a file is not there it refuses, spends no credits, and returns a fresh upload URL plus the exact curl command — complete the upload and call this again. Calling it in the hope that analysis will work without the upload cannot succeed; if you have no filesystem access, ask the user to attach the file and upload it first.

If it returns before the spec settles (timedOut: true), do NOT call this tool again just to keep checking — that re-attempts starting analysis. Poll with get_status (specId) instead until it reaches a terminal status.

Input Schema

NameRequiredDescriptionDefault
specIdYesspecId returned by onboard_data_source.
specNameYesName of the data spec being onboarded.
workspaceIdNoWorkspace to act on. Defaults to your only workspace if you have exactly one.
loadSampleDataNoWhether to load the sample file and trigger the data-load job once analysis finishes (default true).

Output Schema

NameRequiredDescriptionDefault
errorNo
specIdNo
statusNo"processing" | "ready" | "failed"
messageYes
progressNo
timedOutNo
lastJobIdNo
workspaceIdNo
errorDetailsNo
statusMessageNo
analysisEndTimeNo
analysisStartTimeNo
analysisDurationMsNo
hasTransformationConfigNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / specId / description
      Added value: +"specId returned by onboard_data_source."
    • addedInput schema / properties / specName / description
      Added value: +"Name of the data spec being onboarded."
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare the safety profile (non-read-only, idempotent, non-destructive, closed-world); the description adds the operational behavior that matters — it verifies uploads against storage before acting, refuses and spends no credits on missing files, returns a fresh upload URL plus exact curl command, and blocks until the spec reaches ready/failed. It even discloses the timedOut escape hatch and warns against re-calling to poll.

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 short paragraphs, each front-loaded with the actionable point (precondition, refusal behavior, timedOut handling) and no filler. Slightly long for the message it carries, but every sentence conveys a distinct constraint.

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?

For a mutation tool with an output schema and rich annotations, the description covers everything the structured fields cannot: ordered prerequisites, failure/refusal semantics, credit behavior, blocking vs timeout behavior, and the correct follow-up tool. Nothing an agent needs to invoke it correctly is missing.

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 all four parameters (specId, specName, workspaceId, loadSampleData) are already documented in the schema. The description only reinforces the origin of specId ('returned by onboard_data_source') and says nothing extra about specName, workspaceId defaults, or loadSampleData semantics. 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?

States a specific verb and resource (finish onboarding = kick off AI analysis on an uploaded data source) and positions itself as step 2 relative to onboard_data_source. An agent can distinguish it from onboard_data_source and get_status without opening any schema.

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 an explicit precondition (files must have actually uploaded, each PUT returning HTTP 200), an explicit anti-pattern ('calling it in the hope that analysis will work without the upload cannot succeed'), a fallback for no-filesystem agents, and names the correct alternative for polling (get_status with specId).

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