# Retable MCP

> Retable MCP Server connects your AI agent directly to Retable's structured data environment. It lets you manage complex spreadsheet data using natural conversation, bypassing manual clicks and API calls. You can list projects, view table schemas, read specific records, or create and update entire batches of data—all without writing code. This is for teams that treat their spreadsheets like live databases.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** relational-database, spreadsheet-automation, collaborative-data, data-entry, workflow-management, api-integration

## Description

Listen up. This Retable MCP Server hooks your agent straight into Retable's structured data environment. You can manage complex spreadsheet data using nothing but natural conversation; you skip the manual clicking and you don't gotta mess with API calls or write a single line of code. It treats your spreadsheets like they’re live databases, period.

First off, you gotta know if it works. Use `check_retable_status` to confirm that the API connection is up and running—it tells you right away if the server's online and ready for action. When you're deep in a project, your agent lets you explore the whole scope. You can run `list_projects` to see every single project sitting under your Retable account. If you need the nuts and bolts of one specific spot, use `get_project`, which pulls all the detailed information about a single project using its unique ID.

To figure out what data structures are available, your agent lets you list all existing tables within a given project scope by calling `list_tables`. If you want to see exactly what columns and definitions make up a specific spreadsheet, run `get_table` for that table's full schema. You can also get an overview of every single record in a table using `list_records`, perfect for quick audits or seeing the whole picture. When you just know the exact row ID, `get_record` pulls out all the detailed information for that one specific piece of data.

Modifying the content is where it gets real. You'll use `create_record` to add a brand new data entry into any specified table; you just gotta give it the field names and values. If something already exists but needs tweaking, run `update_record`, supplying both the ID of the record and all the new data points you want changed. And if a record is dead or irrelevant, `delete_record` removes that entire entry from the table after your agent confirms the target ID.

Basically, your agent handles every piece of CRUD work—Create, Read, Update, Delete—without needing you to touch the web interface. You don't have to deal with complex query languages or figure out which endpoint is for what. Whether you need to find a project, list all available tables, check a schema, pull one record, view a batch of records, create new stuff, update old stuff, or trash it—the agent does the heavy lifting. You just talk to your AI client, and it handles the database interaction.

## Tools

### check_retable_status
Verifies the API connection to Retable, telling you if the server is currently online and ready to use.

### create_record
Adds a brand new data record into a specified table, requiring field names and values.

### delete_record
Removes an entire data record from a table after you confirm the target ID.

### get_project
Retrieves all detailed information about a single Retable project by its unique identifier.

### get_record
Pulls the full details of one specific record, useful when you know the exact row ID.

### get_table
Displays the complete schema and column definitions for a given table within a project.

### list_projects
Retrieves a list of every single project available under your Retable account.

### list_records
Returns an array of records from a specified table, useful for getting a quick overview or audit log.

### list_tables
Lists all the tables that exist within a single project scope.

### update_record
Changes one or more fields of an existing record, requiring both the ID and the new data.

## Prompt Examples

**Prompt:** 
```
List all my Retable projects.
```

**Response:** 
```
You have 3 projects: 'CRM Pipeline' (4 tables), 'Inventory' (2 tables), 'HR Tracker' (3 tables).
```

**Prompt:** 
```
Show all records in table tbl_001.
```

**Response:** 
```
Table 'Leads' has 47 records. Top entries: 'Acme Corp' (Status: Qualified), 'TechCo' (Status: New), 'GlobalFin' (Status: Won).
```

**Prompt:** 
```
Add a new record to table tbl_001 with name 'NewClient' and status 'New'.
```

**Response:** 
```
Record created! ID: rec_8291 in table 'Leads'. Fields: name='NewClient', status='New'. Would you like to update any fields?
```

## Capabilities

### Discover Data Structures
Your agent finds all available projects, lists tables within a project, or retrieves specific table schemas.

### Read Specific Records
You ask the agent for details on a single record using `get_record`, or retrieve multiple entries in a list using `list_records`.

### Modify Data Content
The agent handles writing data by creating new records (`create_record`), changing existing ones (`update_record`), or removing them entirely (`delete_record`).

### Manage Project Scope
You can list all projects available via `list_projects` and grab deep details on a single project with `get_project`.

## Use Cases

### Project Launch Data Dump
The PM needs to migrate data from old spreadsheets into a new 'Client Onboarding' table. Instead of opening the sheet and running 50 updates, they prompt their agent: 'Add records for these five clients in the Client Onboarding table.' The agent uses `create_record` five times, reporting back success IDs immediately.

### Investigating Data Gaps
The Analyst notices some project data is missing status updates. They ask their agent to run a report: 'Show me all records in the Inventory table where Status is null.' The agent uses `list_records` and filters the results, pinpointing exactly which IDs need follow-up.

### Cleaning Up Old Data
The Ops team needs to remove inactive projects. They prompt: 'List all projects that haven't been touched in 90 days.' The agent runs `list_projects`, identifies the stale ones, and uses `delete_record` on the appropriate tables.

### Schema Validation Check
A developer is starting a new feature. Rather than reading complex documentation, they ask: 'What are the fields available in the Leads table?' The agent runs `get_table`, providing the exact schema so development can start immediately.

## Benefits

- Automated Data Audits: Instead of manually clicking through dozens of sheets, you can ask your agent to run `list_records` on an entire table, getting a quick overview of 47 entries instantly. This saves time and keystrokes.
- Error-Proof Writes: Writing data is safer. By using `create_record` or `update_record`, you guide the agent to apply changes only when all required fields are present, minimizing missed steps that usually cause spreadsheet errors.
- Zero Setup Discovery: You never have to guess if a table exists. Just ask your agent to run `list_tables` on the project, and it gives you a clean list of everything available for interaction.
- Full Project Visibility: Need to know where data lives? Use `list_projects` first. If you need deep context, running `get_project` provides all necessary scope information upfront.
- Fast Status Checks: Before building any complex workflow, run `check_retable_status`. This confirms the API link is active, preventing frustrating failures mid-process.

## How It Works

The bottom line is you manage structured spreadsheet data using natural conversation commands instead of clicking through multiple tabs and writing JSON payloads.

1. First, your AI client runs `check_retable_status`. This confirms the connection to Retable is live before any actions.
2. Next, you tell the agent what data scope you need (e.g., 'Show me all records in the Inventory table'). The agent uses tools like `list_tables` and then calls `list_records`.
3. Finally, your agent processes the list of results or performs an action—like calling `create_record` with new data—and reports back a confirmation ID.

## Frequently Asked Questions

**How do I find out what tables are available using list_tables?**
You first need a Project ID, then prompt your agent with `list_tables`. This command returns all table names within that specific project scope. It's the right starting point before you try to read any data.

**Is there a way to list all my projects using list_projects?**
Yes, `list_projects` pulls every single Retable project name and ID available under your account. This is how you get an overview of your entire data footprint quickly.

**Can I read a specific record without knowing its exact ID? (get_record)**
No, `get_record` requires the precise record ID to function. If you only know criteria like 'Project Alpha's lead', first use `list_records` or `get_project` to narrow down and find that specific ID.

**What’s the difference between list_records and get_record?**
Use `list_records` when you need an overview, a filtered batch, or multiple related entries. Use `get_record` when you are certain you only want one single piece of data by its unique ID.

**How do I confirm if the Retable API is working before writing data? (check_retable_status)**
You must run `check_retable_status` first. It’s a simple check that verifies the connection and confirms the server can communicate with Retable, preventing failed writes later.

**When should I use `update_record` instead of calling `create_record`?**
Use it when you need to modify specific fields on an existing entry. This is the efficient way to change a status or add notes without creating duplicate data. You must provide the record's unique ID and the field key for the update.

**How do I safely check what data will be lost when calling `delete_record`?**
The agent executes deletion immediately, so proceed with caution. Always call `get_record` first to verify you have the correct ID and that the record is ready for removal before triggering a delete operation.

**When calling `list_records`, how do I restrict results by status or date range?**
You pass parameters like filters, grouping keys, or sort orders directly into the tool call. This prevents fetching massive datasets and keeps your workflow fast by only retrieving the data you need.

**Can my AI create and update records in Retable?**
Yes. Use `create_record` to add new rows and `update_record` to modify existing ones. Both accept a JSON string with field values.

**How do I query records from a specific table?**
Use `list_records` with the table ID. The agent returns all rows with their field values.

**Can I delete records through the AI?**
Yes. The `delete_record` tool permanently removes a row from a table by table ID and record ID.