Context7
Up-to-date docs for AI agents
Beschreibung vom Entwickler (englisches Original)
MCP server for SeaTable — read, write, search, link, and query data in your bases
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
SEATABLE_SERVER_URL, SEATABLE_API_TOKENDu brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"seatable": {
"command": "npx",
"args": [
"-y",
"@seatable/mcp-seatable"
],
"env": {
"SEATABLE_SERVER_URL": "your-value",
"SEATABLE_API_TOKEN": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add seatable --env SEATABLE_SERVER_URL=your-value --env SEATABLE_API_TOKEN=your-value -- npx -y @seatable/mcp-seatableTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"seatable": {
"command": "npx",
"args": [
"-y",
"@seatable/mcp-seatable"
],
"env": {
"SEATABLE_SERVER_URL": "your-value",
"SEATABLE_API_TOKEN": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"seatable": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@seatable/mcp-seatable"
],
"env": {
"SEATABLE_SERVER_URL": "your-value",
"SEATABLE_API_TOKEN": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
SEATABLE_SERVER_URL envSEATABLE_API_TOKEN envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 6. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto seatable bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.9.4) kam gestern in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.
In derselben Kategorie: Context7, Codebase Memory, Exa
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
The official Model Context Protocol (MCP) server for SeaTable, built and maintained by SeaTable GmbH. It lets AI agents interact with data in your bases — reading, writing, searching, linking, and querying rows through a focused set of tools. The server intentionally focuses on data operations, not schema management (creating/deleting tables or columns), keeping the tool set lean and safe for autonomous agent use.
The fastest way to get started depends on your setup:
mcp.seatable.com, no installation needednpx in your IDEIf you use SeaTable Cloud, there is a hosted MCP server ready to use — no installation required. Configure your MCP client with the Streamable HTTP endpoint:
Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": { "seatable": { "type": "streamable-http", "url": "https://mcp.seatable.com/mcp", "headers": { "Authorization": "Bearer your-api-token" } } } }
Cursor / VSCode — add to your MCP settings (JSON):
{
"mcp.servers": { "seatable": { "type": "streamable-http", "url": "https://mcp.seatable.com/mcp", "headers": { "Authorization": "Bearer your-api-token" } } } }
ChatGPT and other OAuth-compatible clients — use the built-in OAuth flow. In ChatGPT's developer mode, configure:
https://mcp.seatable.com/mcphttps://mcp.seatable.com/authorizehttps://mcp.seatable.com/tokenYou will be prompted to enter your SeaTable API token during the authorization step.
For self-hosted SeaTable instances, run the MCP server locally via npx. Your IDE starts and manages the process automatically.
Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": { "seatable": { "command": "npx", "args": ["-y", "@seatable/mcp-seatable"], "env": { "SEATABLE_SERVER_URL": "https://your-seatable-server.com", "SEATABLE_API_TOKEN": "your-api-token" } } } }
Cursor / VSCode — add to your MCP settings (JSON):
{
"mcp.servers": { "seatable": { "command": "npx", "args": ["-y", "@seatable/mcp-seatable"], "env": { "SEATABLE_SERVER_URL": "https://your-seatable-server.com", "SEATABLE_API_TOKEN": "your-api-token" } } } }
If you need to run your own server instance — for example on your own infrastructure, with multi-base support, or in multi-tenant mode — use one of the options below.
Run a local HTTP server with Streamable HTTP transport:
PORT=3001 npx -y @seatable/mcp-seatable --sse
curl http://localhost:3001/health
Serve multiple bases from a single process:
SEATABLE_SERVER_URL=https://your-seatable-server.com \
SEATABLE_BASES='[{"base_name":"CRM","api_token":"token_abc"},{"base_name":"Projects","api_token":"token_def"}]' \ npx -y @seatable/mcp-seatable
Each tool automatically gets a base parameter. Use list_bases to see available bases.
For hosting an MCP endpoint where each client authenticates with their own SeaTable API token:
SEATABLE_MODE=managed \
SEATABLE_SERVER_URL=https://your-seatable-server.com \ SEATABLE_TOKEN_SECRET=$(openssl rand -hex 32) \ PORT=3000 npx -y @seatable/mcp-seatable --sse
SEATABLE_TOKEN_SECRET is required in managed mode. It seals the OAuth tokens the server issues, so the underlying SeaTable API token never has to be handed to a client. Keep it stable across restarts — changing it invalidates every issued access and refresh token and forces all clients to re-authorize.
Clients pass their credential via Authorization: Bearer — on session initialization and on every subsequent request, including GET and DELETE. The mcp-session-id header is a routing value only; it is never accepted on its own. Each request is re-validated and must resolve to the same identity that created the session, otherwise the server answers 401 (missing/invalid credential) or 403 (valid credential, wrong session). Rate limits apply as before (60 req/min per token, 120/min per IP, 20 concurrent connections per token).
OAuth support: Managed mode also exposes OAuth 2.0 endpoints (/authorize and /token), enabling OAuth-compatible clients like ChatGPT to connect — no external OAuth provider required. During the flow the user enters their SeaTable API token; the server seals it into its own short-lived access token (1 h) and a rotating refresh token (14 d). The raw SeaTable API token is never returned to a client.
Clients must register at /register first: the returned client_id carries the client's name and its redirect_uris, and the server accepts a callback only if it is one the client registered (loopback callbacks may vary the port, per RFC 8252). PKCE with S256 is mandatory, and every authorization code is bound to the client, the exact callback and the challenge.
Where a code may be delivered. With open dynamic registration, "registered client" is not a trust statement — anyone can register. What matters is whether the code leaves the user's machine:
| Callback | Behaviour |
|---|---|
Loopback (http://127.0.0.1:…, localhost, [::1]) | allowed, no extra step — the code stays on the user's machine |
Private-use scheme (cursor://, vscode://, com.example.app:/…) | allowed, no extra step — handed to a local application |
https on a host in SEATABLE_OAUTH_TRUSTED_REDIRECT_HOSTS | allowed, no extra step |
https on any other host | allowed after the user confirms the destination on a separate page |
Remote plaintext http, javascript:, data:, file:, blob: | rejected |
The confirmation cannot be skipped from the entry link: it is read from the form body only, and a POST auto-submitted by a foreign page is refused via Sec-Fetch-Site. The trusted-host list therefore removes friction — it is not a gate, and leaving it unset breaks nothing.
The consent screen leads with the destination the authorization will be sent to. The application's name is shown as self-reported, because with open registration it is chosen by whoever registered the client and cannot be verified.
The OAuth endpoints are rate limited per IP (30/min overall, 10/min for token submissions), so /authorize cannot be used as an unthrottled oracle for testing SeaTable API tokens.
OAuth endpoints follow the MCP specification (RFC 8414 metadata discovery, PKCE, dynamic client registration):
| Endpoint | Path |
|---|---|
| Metadata Discovery | /.well-known/oauth-authorization-server |
| Authorization | /authorize |
| Token | /token |
| Client Registration | /register |
Client ID and secret are not validated — dynamic client registration generates one automatically.
docker run -d --name seatable-mcp \
-p 3000:3000 \ -e SEATABLE_SERVER_URL=https://your-seatable-server.com \ -e SEATABLE_API_TOKEN=your-api-token \ seatable/seatable-mcp:latest
curl http://localhost:3000/health
The image is built so that code running inside the server process — for example through a vulnerable dependency — can't change the filesystem, start other programs or escalate privileges:
node (uid 1000). The code in /app is owned by root and read-only for that user.CMD starts node --permission --allow-fs-read=/app. The process may read its own code and nothing else; writing files, child processes (no shell), worker threads and native addons are denied. Outbound network access is not affected. The server needs none of the denied operations, including download_file, which extracts PDF text in memory.wget, nc and su. The health check uses node. There are no setuid binaries. Only apk's package list in /lib/apk/db stays, so that vulnerability scanners can see the OS packages. Without /sbin/apk it can't install anything, and the permission model denies the server read access to it.node:22.23.4-alpine3.24 (build argument NODE_IMAGE), with apk upgrade at build time.At runtime, add the restrictions the image can't set itself. docker-compose.yml contains all of them:
docker run -d --name seatable-mcp \
-p 3000:3000 \ --read-only --tmpfs /tmp:size=16m,noexec,nosuid,nodev \ --cap-drop ALL --security-opt no-new-privileges:true \ --pids-limit 128 --memory 512m \ -e SEATABLE_SERVER_URL=https://your-seatable-server.com \ -e SEATABLE_API_TOKEN=your-api-token \ seatable/seatable-mcp:latest
If you override the command (e.g.
docker run … seatable/seatable-mcp node dist/index.js --sse), keep--permission --allow-fs-read=/app, otherwise the permission model is off.
To use the server from ChatGPT without exposing it to the internet, run it next to OpenAI's tunnel-client. Setup and limitations: docs/openai-tunnel.md.
The security characteristics differ significantly between transport modes:
| stdio (default) | Selfhosted HTTP | Managed HTTP | |
|---|---|---|---|
| Network exposure | None (local process) | TCP port, no auth | TCP port, Bearer auth |
| Authentication | Not needed (local) | None | Bearer token or OAuth 2.0, validated against SeaTable |
| Rate limiting | None | None | Per-token, per-IP, global |
| Connection limits | N/A | None | 20 concurrent sessions per token |
| Data scope | All configured bases | All configured bases | One base per client token |
⚠️ Warning: Selfhosted HTTP mode (
--sse/--http) has no authentication. Anyone who can reach the port gets full access to all configured bases, including write and delete operations. Only run it in trusted networks (localhost, Docker-internal) or behind a reverse proxy that handles authentication. For untrusted networks, use managed mode instead.
SeaTable's own API gateway enforces rate limits per base (default: 500 requests/minute per base_uuid) and per organization (monthly quota). These limits apply regardless of whether requests come from the MCP server, the web UI, or direct API calls. The MCP server does not duplicate these limits — instead, it retries automatically with exponential backoff when SeaTable returns 429 Too Many Requests.
In managed mode, the MCP server adds its own rate limits to protect the server process itself (not the SeaTable backend): 60 req/min per token, 120/min per IP, 30/min for new session creation, and 20 concurrent connections per token.
All tool inputs are validated with Zod schemas before execution. Write tools (add_row, append_rows, update_rows, upsert_rows) additionally validate row data against the table schema — unknown columns are rejected, and read-only columns (formula, auto-number, creator, etc.) are stripped with a note in the response.
Tool schemas are published with additionalProperties: true to remain compatible with MCP clients that may attach internal fields (e.g. _meta). Unexpected fields are ignored by the server — they do not cause errors but are not processed either. This is a deliberate trade-off: stricter validation would improve error messages for typo
Nur der Anfang wird gezeigt; den Rest findest du im Repo