SeaTable
seatable/seatable-mcp · github.com
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 API token in your base settings to get started.
For self-hosted SeaTable servers, use the npm package — see https://github.com/seatable/seatable-mcp for setup instructions.
Tools18
Last checked October 15, 2026
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_sql for SQL queries.
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_file instead.
update_rows
Batch update rows. Rejects unknown columns. Link and file/image columns cannot be modified here — use link_rows/unlink_rows and upload_file instead.
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"}} or shorthand {"Name":"foo"}. Operators: eq, ne, in, gt, gte, lt, lte, contains, starts_with, ends_with, is_null. Combine with {"and":[...]} or {"or":[...]}. Negate with {"not":{...}}.
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. Rejects unknown columns. Link and file/image columns cannot be set here — use link_rows/unlink_rows and upload_file instead.
link_rows
Create links between rows via the dedicated links endpoint. This is the ONLY way to create links — link columns cannot be written via add_row or update_rows.
unlink_rows
Remove links between rows via the dedicated links endpoint. This is the ONLY way to remove links — link columns cannot be modified via update_rows.
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 prevent SQL injection.
list_collaborators
List users who have access to this base. Returns email (internal user ID) and display name. Use the email values when writing to collaborator columns.
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. By default appends to existing files; set replace=true to overwrite.
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 exist yet.
ping_seatable
Health check that verifies connectivity and auth to SeaTable