Skip to main content
Glama
EliyahuAI
by EliyahuAI

upload_file

Upload Excel, CSV, or PDF files to Subindex for research table generation and validation. Supports direct upload via local transport or presigned URL for remote servers.

Instructions

Upload a file to Subindex.

RECOMMENDED: always try with file_path first. If the server can read the file (stdio/uvx transport), it uploads in one step and returns session_id

  • s3_key immediately. If the server is remote (HTTP/Railway transport), file_path raises "File not found" — in that case call again without file_path to get a presigned S3 upload_url and curl_command instead.

With file_path (one step — stdio/uvx transport): upload_file(filename="data.xlsx", file_type="excel", file_size=12345, file_path="/abs/path/data.xlsx") → server reads + uploads → returns session_id, s3_key

Without file_path (two step — HTTP/Railway transport or any remote server): upload_file(filename="data.xlsx", file_type="excel", file_size=12345) → returns upload_url + curl_command → run the curl_command (requires shell/Bash access), then call start_table_validation(session_id, s3_key, filename)

Note: the two-step path requires shell access to run curl. If you have no shell (e.g. Claude Desktop), use the stdio/uvx transport instead so file_path works.

file_type must be one of: "excel", "csv", "pdf" The presigned URL expires in ~15 minutes — run curl immediately.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filenameYesOriginal filename including extension (e.g. 'data.xlsx', 'report.csv', 'doc.pdf').
file_typeYesFile format — must be one of: "excel", "csv", "pdf".
file_sizeYesFile size in bytes. Run: stat -c%s <file> (Linux/macOS) or (Get-Item '<file>').Length (PowerShell).
file_pathNoAbsolute local path to upload directly (uvx/local transport only — the MCP server reads the file). Omit when using HTTP/Railway transport; the response curl_command handles the upload instead.
session_idNoOptional existing session ID to associate this upload with.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior5/5

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

Discloses the two-step behavior, presigned URL expiration (15 minutes), and transport dependency. Annotations (readOnlyHint=false) are consistent; description adds valuable context beyond annotations.

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?

Well-structured with headings and examples, but slightly verbose. Front-loads purpose and uses clear sections, though some repetition could be trimmed.

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 tool complexity (two modes, transport-dependent) and presence of output schema, the description covers fallback logic, expiration, and prerequisites thoroughly.

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%, but description adds extra context for file_path (recommendation, transport dependency) and example usage. Adds meaning beyond schema.

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?

Clearly states 'Upload a file to Subindex' and distinguishes two modes based on transport. The verb+resource is specific and distinct from sibling tools.

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?

Provides explicit guidance: 'always try with file_path first', explains when to use without file_path, and notes shell access requirement. Offers alternatives for different transports.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/EliyahuAI/mcp-server-subindex'

If you have feedback or need assistance with the MCP directory API, please join our Discord server