SeaTable MCP
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| METRICS_PORT | No | Prometheus metrics port (default: 9090, HTTP mode only). | 9090 |
| SEATABLE_MOCK | No | Enable mock mode for offline testing (set to 'true'). | false |
| SEATABLE_MODE | No | Operation mode: 'selfhosted' (default) or 'managed' (multi-tenant HTTP with per-client auth). | selfhosted |
| SEATABLE_BASES | No | Multi-base configuration as a JSON array string (e.g. '[{"base_name":"CRM","api_token":"token_abc"}]'). Required in self-hosted mode if SEATABLE_API_TOKEN is not provided. | |
| SEATABLE_API_TOKEN | No | Single-base API token. Required in self-hosted mode if SEATABLE_BASES is not provided. | |
| SEATABLE_SERVER_URL | Yes | Your SeaTable server URL (e.g., https://cloud.seatable.io or your own instance) | |
| CORS_ALLOWED_ORIGINS | No | Comma-separated list of allowed origins for CORS (HTTP mode only, disabled if unset). |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_tablesA | List tables in the SeaTable base with their columns (name, type, key). Includes select options and link configuration where applicable. |
| list_rowsA | 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_rowA | Get a row by ID from a table |
| add_rowA | Add a single row. For multiple rows, always use append_rows instead of calling add_row in a loop. Link and file/image columns cannot be set here — use link_rows and upload_file instead. |
| append_rowsA | Batch insert rows. Rejects unknown columns. Link and file/image columns cannot be set here — use link_rows and upload_file instead. Note: the response may contain column keys instead of column names due to a SeaTable API limitation. |
| update_rowsA | 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_rowsA | Delete one or more rows from a table by their IDs. |
| find_rowsA | 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_rowsB | Search rows with a filter object |
| upsert_rowsA | 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_rowsA | 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_rowsA | 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_schemaA | Returns the normalized schema for the base |
| query_sqlA | Execute SQL queries against SeaTable (SELECT, UPDATE, DELETE, INSERT). Use ? placeholders for parameters. Syntax rules:
UPDATE limitations:
INSERT only works with Big Data storage enabled (Enterprise). For non-archived tables, use append_rows instead. If a query fails, do not retry with similar syntax. Switch to an alternative tool (e.g. update_rows, find_rows) instead. |
| list_collaboratorsA | 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. Call this once to resolve @auth.local addresses in collaborator columns before displaying them to the user. |
| upload_fileA | 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. |
| download_fileA | Read the content of a file attached to a row in a file or image column. Use get_row first to see available files in the column, then pass the exact file_name to select a specific file. Returns JSON with: file_name, file_size (bytes), content, content_type, and download_link (only when content_type is "binary_url"). content_type values:
|
| create_snapshotA | Create a snapshot of the current base. Requires at least one change since the last snapshot and at least 10 minutes since the last snapshot. |
| get_row_activitiesA | Get the change history of a specific row. Returns a list of activities showing who changed what and when, including old and new values. 25 activities per page. |
| add_select_optionsA | 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_seatableA | Health check that verifies connectivity and auth to SeaTable |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/seatable/seatable-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server