# SeaTable (verified)

This MCP server connects AI agents to https://cloud.seatable.io. Read, write, search, and link rows, run SQL queries, batch upsert data, and manage file attachments and select options. Generate an AP…

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add seatable/seatable-mcp

# Browse available tools
npx -y @smithery/cli@latest tool list seatable/seatable-mcp

# Get full schema for a tool
npx -y @smithery/cli@latest tool get seatable/seatable-mcp list_tables

# Call a tool
npx -y @smithery/cli@latest tool call seatable/seatable-mcp list_tables '{}'
```

## Direct MCP Connection

Endpoint: `https://seatable-mcp--seatable.run.tools`

**Required config:**
- `x-seatable-api-token` (header) — API token for your SeaTable base

## Tools (18)

- `list_tables` — List tables in the SeaTable base
- `list_rows` — List rows from a table with pagination (defaults: page=1, page_size=100). Use find_rows for filtering/sorting or query_…
- `get_row` — Get a row by ID from a table
- `add_row` — Add a new row to a table. Link and file/image columns cannot be set here — use link_rows and upload_file instead.
- `append_rows` — Batch insert rows. Rejects unknown columns. Link and file/image columns cannot be set here — use link_rows and upload_f…
- `update_rows` — Batch update rows. Rejects unknown columns. Link and file/image columns cannot be modified here — use link_rows/unlink_…
- `delete_rows` — Delete one or more rows from a table by their IDs.
- `find_rows` — Find rows using a predicate DSL. Filtering is performed client-side. where format: {"eq":{"field":"Name","value":"foo"}…
- `search_rows` — Search rows with a filter object
- `upsert_rows` — Batch upsert rows by matching on one or more key columns. If a match exists, update it; otherwise insert a new row. Rej…
- `link_rows` — Create links between rows via the dedicated links endpoint. This is the ONLY way to create links — link columns cannot …
- `unlink_rows` — Remove links between rows via the dedicated links endpoint. This is the ONLY way to remove links — link columns cannot …
- `get_schema` — Returns the normalized schema for the base
- `query_sql` — Execute raw SQL queries against SeaTable. Supports SELECT, INSERT, UPDATE, DELETE. Use ? placeholders for parameters to…
- `list_collaborators` — List users who have access to this base. Returns email (internal user ID) and display name. Use the email values when w…
- `upload_file` — Upload a file or image to a row. Accepts base64-encoded file data and attaches it to the specified file or image column…
- `add_select_options` — Add new options to a single-select or multi-select column. Use this before writing rows with option values that do not …
- `ping_seatable` — Health check that verifies connectivity and auth to SeaTable

```bash
# Get full input/output schema for a tool
npx -y @smithery/cli@latest tool get seatable/seatable-mcp <tool-name>
```
