file_upload
Upload a UTF-8 text document for RAG indexing into a namespace. PrefLights rag_index capacity.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| filename | Yes | ||
| namespace | Yes | ||
| contentType | No |
Upload a UTF-8 text document for RAG indexing into a namespace. PrefLights rag_index capacity.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| filename | Yes | ||
| namespace | Yes | ||
| contentType | No |
Changes observed during successful MCP inspections. Dates show when Glama detected each change.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the UTF-8 constraint and the RAG-indexing effect, but does not explain whether uploads overwrite existing documents, what side effects occur, what authorization is needed, what the response contains, or what 'PrefLights rag_index capacity' means. This is insufficient for a mutation-like tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is economical and front-loaded. The second sentence, 'PrefLights rag_index capacity,' is cryptic and appears to contain a typo, which undermines clarity without providing a clearly useful detail. Not verbose, but not well structured due to the garbled phrase.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There are no annotations, no output schema, and no parameter descriptions, so the description must carry the full context. Missing are return values, prerequisites, side effects, conflicts with existing indexed text, how it connects to rag_search, and the meaning of the capacity phrase. This is inadequate for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It implies text is a UTF-8 document and namespace is the target, but it does not clarify filename rules, contentType semantics, size limits, or required field relationships. It adds little beyond the parameter names themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete action ('Upload'), an object ('UTF-8 text document'), and a destination ('into a namespace'), with the RAG-indexing purpose clear. It does not explicitly differentiate from sibling tools like files_list or rag_search, and the phrase 'PrefLights rag_index capacity' is confusing, but the core purpose is still evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for RAG indexing into a namespace' provides clear context for when this tool should be used. However, it gives no exclusions and does not mention alternatives such as kvp_put for key-value storage or files_list for listing existing uploads, so it stops short of full usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Most tools are named as resource+action and target distinct surfaces (inbox, kvp, files, billing), so an agent can generally select the right tool. A few pairs like budget_get vs usage_get and inbox_message_get vs inbox_message_raw have adjacent purposes, but their descriptions mostly clear up the boundary.
The predominant convention is snake_case noun_verb, e.g. kvp_get, inbox_create, files_list. Minor deviations like inspect_storage (verb-noun) and bare noun names such as billing_portal and files_types slightly break the pattern.
With 35 tools, the server is well above the 25+ threshold and bundles many subdomains—billing, KVP, inbox, RAG, files, keys, support—into one surface. It would be more coherent as separate servers or with a significantly trimmed inbox tool set.
Core workflows are mostly covered: inbox lifecycle, webhooks, KVP CRUD, billing, and usage are solid. However file upload has no corresponding delete/remove tool, and keys have create but no list/revoke, leaving noticeable lifecycle gaps.