# Caspio MCP connector

The Caspio connector brings your Caspio tables, records, fields, views and files into Claude, ChatGPT, Cursor or any MCP client, so your team can look up, add and update records by asking, inside their own Caspio access.

Source: https://elaichi.ai/connectors/caspio/

## Facts

| | |
| --- | --- |
| Application | Caspio |
| Category | Application Development |
| AI tools | 70 |
| Authentication | App credentials |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 70 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Caspio is connected

- List the tables in Caspio and their record counts.
- Add a status field to the Applications table.
- Show records created in Caspio this week by table.

## Connect Caspio in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Caspio.
2. Optionally set Share with, then press Connect.
3. Paste your Caspio app credentials. Caspio authenticates the app rather than a person. One person supplies the credentials once, and everyone else works through Share with.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Caspio tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Caspio to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Caspio to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Caspio to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Caspio to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Caspio tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Caspio through Elaichi

### Update a tracking record without opening the app

Operations. Tell the agent which project, asset or order changed and it updates the matching Caspio record, so the tracker stays current while you keep working.

### Find a customer record in seconds

Support. Ask for a customer by name, email or ticket number and get the Caspio record back in plain language, with the fields you care about pulled out.

### Log a new lead straight into Caspio

Sales. After a call, describe the new contact and the agent creates the record in your leads table, with the right fields filled in.

### Check onboarding status across new hires

HR. Ask which new hires still have open onboarding steps and the agent reads the Caspio records and summarizes where each person stands.

### Attach a photo or document to a job

Field service. Replace or refresh the attachment on a Caspio job record from the field, and confirm the file details are correct before you move on.

### Add a field to a table on request

App builders. When a team asks for a new column, describe it and the agent creates or adjusts the field in the Caspio table, then confirms the structure back to you.

## Frequently asked questions

### How do I connect Caspio to Claude?

Connect Caspio in Elaichi first: Caspio signs in with app credentials, so you enter the credentials from your Caspio account once and there is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Sign in with your Elaichi account and your Caspio tables, records and views are available in the conversation.

### Does Caspio work with ChatGPT and Cursor as well as Claude?

Yes. Once Caspio is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Caspio once and every client sees it.

### What can an AI agent actually do with my Caspio data?

An agent connected to Caspio can list your tables and views, look up records, add new ones, update or remove existing ones, and change the fields a table is built from. It can also read and refresh the files and attachments on your records and browse your file folders. Because Caspio has a lot it can do, short concrete asks such as "find the order record for Acme" work better than long paragraphs.

### Does connecting Caspio give the AI access to all my tables?

No. The agent works with whatever the Caspio credentials you connected can already reach, and nothing beyond that. Elaichi can narrow that further, for example to reading records only or to a particular set of actions, but it can never widen access beyond what Caspio itself allows.

### Can my team share one Caspio connection?

Yes. One person connects Caspio in Elaichi and shares it with a team, and nobody else ever handles the app credentials. Each teammate still signs in to Elaichi as themselves, so the audit log records who looked up or changed each Caspio record.

### Can I stop an agent from deleting or changing things in Caspio?

Yes. Restrictions in Elaichi work per action, so you can allow reading Caspio records while blocking deletes, field changes or updates. A blocked action is never shown to Claude, ChatGPT or any other client at all, so no prompt can reach it.

### What happens to a Caspio connection when someone leaves?

When you offboard a person in Elaichi, their access to Caspio through every client ends at once. A shared Caspio connection keeps working for everyone else on the team. If you want to remove Caspio entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client together.

## All 70 Caspio tools

Every tool below is callable through https://api.elaichi.ai/mcp once Caspio is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Caspio tables** (List). List all available caspio tables. Returns a collection of table definitions.
- **Create a Caspio table** (Create). Create a new caspio table with the provided table definition. Returns an empty 201 response on success.
- **Get single Caspio table by ID** (Get). Get a single caspio table by id. Returns the table definition from the Result field. Required: id.
- **List all Caspio fields** (List). List all field definitions for a Caspio table. Returns an array of field objects including Name, Type, Label, Unique, and Editable. Required: table_name.
- **Create a Caspio field** (Create). Add a new field to a Caspio table. Returns an empty 201 response on success. Required: table_name, Name, Type.
- **Update a Caspio field by ID** (Update). Update the definition of an existing field in a Caspio table. Returns an empty 204 response on success. Required: table_name, id.
- **Delete a Caspio field by ID** (Delete). Delete a field from a Caspio table by id. Returns an empty 204 response on success. Required: table_name, id.
- **Get single Caspio field by ID** (Get). Get the definition of a single field in a Caspio table by id. Returns: Name, Type, Label, Unique, Editable, and full field properties. Required: table_name, id.
- **List all Caspio records** (List). List records from a Caspio table. Returns an array of record objects. Supports SQL-style filtering, field selection, grouping, and ordering. Required: table_name.
- **Create a Caspio record** (Create). Insert a new record into a Caspio table. Returns the inserted record when response is set to 'rows', or a 201 Created response with no body otherwise. Required: table_name.
- **Update a Caspio record by ID** (Update). Update records in a Caspio table that match a WHERE clause. Returns affected records and their count when response is 'rows', or only the count otherwise. Required: table_name, q.where.
- **Delete a Caspio record by ID** (Delete). Delete records from a Caspio table that match a WHERE clause. Returns the count of deleted records. Required: table_name, q.where.
- **List all Caspio password fields** (List). List all password fields for a caspio table. Returns the collection of password field definitions associated with the specified table. Required: table_name.
- **Update a Caspio password field by ID** (Update). Update a password field's value in a caspio table for records matching a WHERE clause. Required: table_name, id (the password field name), and q.where.
- **Delete a Caspio password field by ID** (Delete). Reset a caspio table password field value for records matching a WHERE clause. Required: table_name, id (the password field name), and q.where.
- **Update a Caspio attachment by ID** (Update). Upload or overwrite a file in a Caspio table attachment field for a specific record. Returns an empty 204 response on success. Required: table_name, attachment_field_name, id, and a File payload.
- **Delete a Caspio attachment by ID** (Delete). Delete a file from a Caspio table attachment field for records matching a WHERE clause. Required: table_name, attachment_field_name, q.where.
- **Get single Caspio attachment by ID** (Get). Get the binary file content of a specific attachment from a Caspio table attachment field by record id. Returns binary file content. Required: table_name, attachment_field_name, id.
- **List all Caspio file infos** (List). List file metadata for a Caspio table attachment field. Returns file info records from the specified attachment field. Required: table_name, attachment_field_name.
- **Update a Caspio file info by ID** (Update). Update a file name in a Caspio table attachment field. Returns affected records and their count when response is 'rows', or only the count of affected records otherwise. Required: table_name, attachment_field_name, q.where.
- **List all Caspio views** (List). List all views in Caspio. Returns a collection of view objects in the Result array.
- **Get single Caspio view by ID** (Get). Get a single Caspio view by id. Returns the view object from the Result field. Required: id.
- **List all Caspio files folders** (List). List Caspio folders within a specified parent folder or the root folder. Returns: Name, ExternalKey, DateCreated for each folder. Optionally supply externalKey to list subfolders of a specific parent; omit it to list root-level folders.
- **Get single Caspio files folder by ID** (Get). Get a single Caspio folder by id. Returns folder details including Name, ExternalKey, and DateCreated. Requires id.
- **List all Caspio files** (List). List Caspio files in a specified folder. Returns: Name, ExternalKey, Size, ContentType, DateCreated, LastModified for each file. Defaults to the root folder when externalKey is omitted.
- **Create a Caspio file** (Create). Upload one or more files to the Caspio Files area using multipart/form-data. Returns the created file details. Required: Files. Specify a destination folder with externalKey; returns a conflict error if a file with the same name already exists.
- **Update a Caspio file by ID** (Update). Upload or overwrite a single file in the Caspio Files area using multipart/form-data. If a file with the same name exists it is overwritten; otherwise a new file is created. Required: File. Optionally target a specific folder with externalKey.
- **Delete a Caspio file by ID** (Delete). Delete a Caspio file by id. Returns an empty 204 response on success. Required: id.
- **Get single Caspio file by ID** (Get). Get a single Caspio file by id. Required: id.
- **List all Caspio path file infos** (List). Get file metadata from Caspio by file path. Returns file information from the Result object. Required: filePath.
- **List all Caspio files paths** (List). Get a Caspio file by path, returning its content as a binary attachment. Required: filePath.
- **Delete a Caspio files path by ID** (Delete). Delete a Caspio file by path. Returns an empty 204 response on success. Required: filePath.
- **List all Caspio outgoing webhooks** (List). List all available outgoing webhooks in Caspio. Returns an array of webhook objects.
- **Create a Caspio outgoing webhook** (Create). Create a new outgoing webhook in Caspio. Returns the created webhook object. Required: Name (must be unique) and OutgoingUrls (must be unique, valid HTTPS addresses).
- **Get single Caspio outgoing webhook by ID** (Get). Get a single Caspio outgoing webhook definition by id. Returns the webhook object including activity data (Messages, Calls, Errors) from the last 30 days. Required: id.
- **Update a Caspio outgoing webhook by ID** (Update). Update an existing Caspio outgoing webhook definition by id. Returns the updated webhook object. Required: id. At least one of Name, Description, OutgoingUrls, CallThrottling, or Enabled must be provided in the body.
- **Delete a Caspio outgoing webhook by ID** (Delete). Delete a Caspio outgoing webhook and all its associated events by id. Returns an empty 204 response on success. Required: id.
- **List all Caspio data import export tasks** (List). List all scheduled data import/export tasks in Caspio. Returns the full list of task objects from the Result collection.
- **Get single Caspio data import export task by ID** (Get). Get a single Caspio data import/export task by id. Returns the task object from the Result field. Required: id.
- **Create a Caspio run** (Create). Run a scheduled data import/export task in Caspio by its external key. Returns an empty 204 response on success. Required: external_key.
- **List all Caspio bridge applications** (List). List all Caspio bridge applications. Returns a collection of bridge application objects from the Caspio account.
- **Get single Caspio bridge application by ID** (Get). Get a single Caspio bridge application by id. Returns the full application object for the specified bridge application. Required: id.
- **List all Caspio datapages** (List). List all DataPages for a Caspio bridge application. Returns a collection of DataPage properties. Required: external_key (the App ID of the bridge application).
- **Get single Caspio datapage by ID** (Get). Get a single Caspio DataPage by id within a bridge application. Returns DataPage properties for the specified entry. Required: external_key (the App ID) and id.
- **Update a Caspio deployment by ID** (Update). Deploy or un-deploy a specific Caspio DataPage. Returns an empty 204 response on success. Required: external_key, app_key.
- **Get single Caspio deployment by ID** (Get). Get the deploy code for a specific Caspio DataPage by deployment method. Returns the deploy code string (iFrame, URL, Embedded, or .Net format). Required: external_key, app_key, method.
- **Caspio deployments bulk update** (Update). Deploy or un-deploy all DataPages for a Caspio bridge application in a single call. Returns an empty 204 response on success. Required: external_key.
- **List all Caspio directories** (List). List all directories in Caspio. Returns a collection of directory objects from the Result field of the response.
- **List all Caspio users** (List). List users in a Caspio directory. Returns user records including directory table fields plus _status, _sign_in_method, and _2fa_status attributes. Required: directory_id.
- **Create a Caspio user** (Create). Create a user in a Caspio directory. Returns the newly created user record when response is set to "rows", or only a 201 status otherwise. Required: directory_id.
- **Update a Caspio user by ID** (Update). Update users in a Caspio directory that match a WHERE clause. Returns updated records when response is set to "rows". Required: directory_id, Where. Note: _status, _sign_in_method, and _2fa_status are not supported in the WHERE clause.
- **Delete a Caspio user by ID** (Delete). Delete users from a Caspio directory that match a WHERE clause. Required: directory_id, Where. Note: _status, _sign_in_method, and _2fa_status are not supported in the WHERE clause.
- **Create a Caspio users activate** (Create). Activate a user in a Caspio directory. Returns an activation response including an ActivationUrl that can be used to build a custom activation email when email sending is suppressed. Required: directory_id, UserGUID.
- **List all Caspio view fields** (List). List all fields defined on a Caspio view. Returns field metadata for each field in the view. Required: view_name.
- **Get single Caspio view field by ID** (Get). Get a single field from a Caspio view by its field id. Returns field metadata for the specified field. Required: view_name, id.
- **List all Caspio view records** (List). List records from a Caspio view. Returns the records array from the specified view. Required: view_name.
- **Create a Caspio view record** (Create). Create a new record in a Caspio view. Required: view_name.
- **Update a Caspio view record by ID** (Update). Update records in a Caspio view. Required: view_name.
- **Delete a Caspio view record by ID** (Delete). Delete records from a Caspio view. Required: view_name.
- **Get single Caspio view attachment by ID** (Get). Get an attachment from a Caspio view record by attachment field name and record id. Required: view_name, attachment_field_name, id.
- **Update a Caspio view attachment by ID** (Update). Update (replace) an attachment on a specific Caspio view record for the given attachment field. Required: view_name, attachment_field_name, id.
- **Delete a Caspio view attachment by ID** (Delete). Delete attachments from a Caspio view for the specified attachment field. Returns an empty response on success. Required: view_name, attachment_field_name.
- **List all Caspio view file infos** (List). List file information for an attachment field within a Caspio view. Returns file info records from the specified attachment field. Required: view_name, attachment_field_name.
- **Update a Caspio view file info by ID** (Update). Update file information for an attachment field within a Caspio view. Required: view_name, attachment_field_name.
- **Get single Caspio file metadatum by ID** (Get). Get metadata for a specific file in Caspio by id. Returns file information from the Caspio file repository. Required: id.
- **List all Caspio webhook events** (List). List all events associated with a specific Caspio outgoing webhook. Required: webhook_id.
- **Create a Caspio webhook event** (Create). Create a new event for a specific Caspio outgoing webhook. Required: webhook_id.
- **Get single Caspio webhook event by ID** (Get). Get a single event from a Caspio outgoing webhook by id. Required: webhook_id, id.
- **Update a Caspio webhook event by ID** (Update). Update an existing event on a Caspio outgoing webhook by id. Required: webhook_id, id.
- **Delete a Caspio webhook event by ID** (Delete). Delete an event from a Caspio outgoing webhook by id. Returns an empty response on success. Required: webhook_id, id.
