Skip to main content
Glama

basis1: Excel engine for AI agents (formulas, recalculation, audit)

Submit parse job

submit_job

Start an async parse of an .xlsx workbook and return at once with a job handle {job_id, status: "processing", status_url, stream_url}. Use it instead of parse_workbook for large files or when you don't want to wait: call stream_job with wait_seconds to wait for the records (or status_only to just check). Every call starts a new job and counts against the API key's parse quota, so don't resubmit a file whose job is still running. Pass exactly one of url or base64 (up to 20 MB). webhook_url, if set, gets an HMAC-signed POST when the job finishes, so you can skip polling.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "submit_job"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlNoPublic https URL to fetch the .xlsx file from (private and local addresses are refused)
base64NoBase64-encoded .xlsx file bytes
webhook_urlNohttps URL that gets an HMAC-signed POST with the job's status when the parse finishes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / url / description
      Previous value: -"URL to fetch the .xlsx file from"New value: +"Public https URL to fetch the .xlsx file from (private and local addresses are refused)"
    • changedInput schema / properties / webhook_url / description
      Previous value: -"HMAC-signed POST here when the parse completes"New value: +"https URL that gets an HMAC-signed POST with the job's status when the parse finishes"
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond annotations by disclosing quota consumption per call, that every call creates a new job (reinforcing the non-idempotent hint with a concrete consequence), the 20 MB size ceiling, and that webhook_url receives an HMAC-signed POST on completion. These are operational facts an agent cannot infer from readOnlyHint/openWorldHint/idempotentHint alone.

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?

Front-loads what the tool does and what it returns before the routing and constraint clauses. Every clause carries a distinct fact (alternative, quota, exclusivity, size, webhook) with no restatement of the name or title.

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?

With no output schema, the description compensates by sketching the job handle fields and pointing to stream_job for retrieval. The one residual gap is that the schema marks zero required parameters while the description demands exactly one of url or base64, so the agent must reconcile that mismatch itself.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds the mutual-exclusivity rule ('Pass exactly one of url or base64') that the schema does not express, and pairs it with the 20 MB limit. It does not explain url vs base64 tradeoffs, which would be the final step to a 5.

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 ('Start an async parse') and resource ('.xlsx workbook') plus the return contract ({job_id, status, status_url, stream_url}). It explicitly distinguishes itself from parse_workbook (large files / don't want to wait) and stream_job (waiting), so an agent can pick it without opening the schemas.

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 explicit when-to-use ('use it instead of parse_workbook for large files or when you don't want to wait'), names the alternative and its parameters (stream_job with wait_seconds, status_only), and includes a when-not-to ('don't resubmit a file whose job is still running').

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.