csvbox-mcp-server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LLM_MODEL | No | Overrides the model for the chosen LLM provider (e.g. claude-sonnet-4-6 for large category/module schemas). | |
| LLM_PROVIDER | No | Disambiguates which LLM provider to use when both ANTHROPIC_API_KEY and OPENAI_API_KEY are set. Values: anthropic or openai. | |
| CSVBOX_API_KEY | Yes | Your CSVBox API key. Required for API-backed tools (create_sheet, update_sheet, patch_sheet, create_importer_from_prompt). | |
| OPENAI_API_KEY | No | OpenAI API key for server-side LLM prompt-to-sheet generation. Set one of ANTHROPIC_API_KEY or OPENAI_API_KEY to enable server-LLM generation; if neither is set, use the create_csvbox_sheet MCP prompt instead. | |
| ANTHROPIC_API_KEY | No | Anthropic API key for server-side LLM prompt-to-sheet generation. Set one of ANTHROPIC_API_KEY or OPENAI_API_KEY to enable server-LLM generation; if neither is set, use the create_csvbox_sheet MCP prompt instead. | |
| CSVBOX_API_SECRET | Yes | Your CSVBox API secret. Required for API-backed tools (create_sheet, update_sheet, patch_sheet, create_importer_from_prompt). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_sheetC | Create a new CSVBox sheet via POST /1.1/sheet. Input: { sheet }. Returns the API response. |
| update_sheetA | Replace an existing CSVBox sheet via PUT /1.1/sheet/{sheet_license_key}. Input: { sheet_license_key, sheet }. Returns the API response. DESTRUCTIVE: PUT is authoritative for every collection it sends — items listed are created or updated in place, and any existing item the array does not name is DELETED. This applies to virtual_columns, validation_functions and data_transforms: sending an empty array DELETES ALL of that collection's items, while OMITTING the key leaves them untouched. |
| patch_sheetA | Partially update a CSVBox sheet via PATCH /1.1/sheet/{sheet_license_key}. Sends only the changes object. Input: { sheet_license_key, changes }. Returns the API response. PATCH MERGES: only the items you list are touched and nothing is deleted implicitly, so an empty array is a no-op. Items in virtual_columns, validation_functions and data_transforms are matched by column_name / function_name / transform_name respectively — an unmatched name creates a new item. To remove one, send it with |
| generate_sheet_jsonA | Generate a COMPLETE CSVBox sheet (title, sheet_columns, destinations, webhooks, security_settings, steps) from a natural-language prompt using a configured LLM. Does NOT call the CSVBox API. Returns { sheet, source, validation }. Requires ANTHROPIC_API_KEY or OPENAI_API_KEY; without one it returns an error pointing to the create_csvbox_sheet MCP prompt. Input: { prompt }. |
| create_importer_from_promptA | Generate a COMPLETE CSVBox sheet from a natural-language prompt via a configured LLM, validate it locally, then create it via POST /1.1/sheet. Returns { generated_schema, source, validation, api_response }. Aborts (no API call) if no LLM provider is configured or if validation fails. Requires ANTHROPIC_API_KEY or OPENAI_API_KEY plus CSVBox credentials. |
| generate_import_codeA | Generate complete CSVBox importer integration code for a framework (vanilla-js, react, vuejs2 [Vue 2], vuejs3 [Vue 3], angular [Angular 8-13], angular2 [Angular 14+]). Input: { framework }. Replace the license key placeholder with your sheet's license key. |
| generate_sheet_functionsA | Author CSVBox virtual_columns, validation_functions, and data_transforms from a natural-language prompt using a configured LLM. Does NOT call the CSVBox API — it returns JSON so you can REVIEW the generated JavaScript before applying it with patch_sheet. Collections the request does not imply are omitted, never returned as empty arrays. Returns { virtual_columns?, validation_functions?, data_transforms?, source, validation }. Requires ANTHROPIC_API_KEY or OPENAI_API_KEY; without one it returns an error pointing to the csvbox_sheet_functions MCP prompt. Input: { prompt, sheet? }. |
| validate_schemaA | Validate a CSVBox sheet schema locally (no API call). Requires a non-empty title; sheet_columns is optional (absent passes, empty yields a warning). When columns are present, checks for missing column_name/display_label/type, unsupported types, duplicate names, duplicate positions, and invalid dependent column references. Also checks virtual_columns, validation_functions, and data_transforms: per-sheet caps, duplicate and colliding names, missing or oversized js_code, scope/run_at enums, column references against sheet_columns, and dependency URLs (https, allowed CDN hosts, .js/.mjs, integrity digest). Pass mode ('create' | 'put' | 'patch', default 'create') so empty-array and _delete rules match the verb you are about to use. Returns { valid, errors, warnings }. |
| submit_fileA | Submit a file for import via POST /1.1/file. Provide exactly one of public_file_url (JSON submission) or file_base64 + file_name (multipart direct upload — file_base64 is decoded server-side and sent to CSVBox as true binary multipart content, never as a base64 string). Input: { sheet_license_key, public_file_url? | (file_base64?, file_name?), file_sheet_name?, user?, options?, dynamic_columns? }. Returns the API response. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| create_csvbox_sheet | Convert a natural-language request into a complete CSVBox sheet (title, sheet_columns, destinations, webhooks, security_settings, steps). Returns guidance for the host LLM; no server-side API key required. |
| csvbox_sheet_functions | Convert a natural-language request into CSVBox virtual_columns, validation_functions, and data_transforms. Returns guidance for the host LLM; no server-side API key required. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Tools are mostly distinct: create/update/patch/validate/submit/generate each target different actions. The three 'generate_' tools produce different outputs (sheet JSON, code, functions), but 'create_importer_from_prompt' and 'generate_sheet_json' both involve prompt-based sheet generation, with the former actually creating while the latter only returns JSON, which could cause minor confusion.
Most names follow a verb_noun pattern (create_sheet, update_sheet, patch_sheet, validate_schema, submit_file, generate_sheet_json, generate_import_code, generate_sheet_functions). The exception is 'create_importer_from_prompt', which uses 'importer' instead of the more consistent 'sheet' and breaks the pattern slightly.
With 9 tools, the surface is well-scoped for a CSV import integration server. Each tool covers a distinct aspect (schema creation, modification, validation, file submission, and generation helpers) without redundancy, and the count fits comfortably in the ideal range.
The set covers create, update (PUT/PATCH), validation, and file submission, but lacks read operations (e.g., get_sheet, list_sheets) and explicit sheet deletion. While patch supports _delete, there is no direct delete_sheet tool. This creates a gap for agents that need to inspect or manage existing sheets outside of updates.