Model Context Protocol (MCP) server for integrating with AITable platform.
⚠️ Important: AITable has been discontinued. If you're looking to migrate to Bika (the successor platform), check out the Bika MCP Server.AITable LTD Holders: Claim your free Bika account by filling out this migration form (available only for AITable LTD users).
This MCP server provides integration with AITable's API, enabling AI assistants to:
- Query and filter datasheet records
- Create, update, and delete records
- Upload and manage attachments
- Work with fields, views, and nodes
- Create embeddable links
- Records Management: Full CRUD operations on AITable records
- Fields Management: Create, query, and delete fields
- Views & Nodes: Access datasheet views and workspace nodes
- Attachments: Upload and manage files
- Embed Links: Create and manage embeddable links
- Formula Resources: Access AITable formula documentation
- Node.js >= 18.0.0
- npm or pnpm
- AITable account with API access token
Once published, you can install directly via npx:
# No installation needed! Run directly with npx
npx aitable-mcp# Clone the repository
git clone https://github.com/hamchowderr/aitable-mcp.git
cd aitable-mcp
# Install dependencies
npm install
# Build the project
npm run buildThe server requires the following environment variables:
| Variable | Required | Description |
|---|---|---|
AITABLE_API_TOKEN |
Yes | Your AITable API access token |
SPACE_ID |
Yes | Your AITable space ID |
Option 1: Environment variables
# Windows
set AITABLE_API_TOKEN=your-api-token-here
set SPACE_ID=your-space-id
# macOS/Linux
export AITABLE_API_TOKEN="your-api-token-here"
export SPACE_ID="your-space-id"Option 2: Create a .env file
Create a .env file in the project root:
AITABLE_API_TOKEN=your-api-token-here
SPACE_ID=your-space-idThe recommended way to use this MCP server is with Claude Desktop using stdio transport.
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add to your Claude Desktop configuration:
{
"mcpServers": {
"aitable": {
"command": "npx",
"args": ["-y", "aitable-mcp"],
"env": {
"AITABLE_API_TOKEN": "your-token-here",
"SPACE_ID": "your-space-id"
}
}
}
}For development or local installations:
{
"mcpServers": {
"aitable": {
"command": "node",
"args": ["C:\\absolute\\path\\to\\aitable-mcp\\dist\\stdio-server.js"],
"env": {
"AITABLE_API_TOKEN": "your-token-here",
"SPACE_ID": "your-space-id"
}
}
}
}Important: Restart Claude Desktop after updating the configuration.
Test your server locally with the official MCP Inspector:
# Run the inspector
npm run inspector
# Or run directly
npx @modelcontextprotocol/inspector dist/stdio-server.jsThis will:
- Start the MCP server
- Launch the inspector web interface at
http://localhost:6274 - Allow you to test tools, resources, and prompts interactively
Run the server directly for stdio transport:
# Build and start
npm run build
npm start
# Development mode with watch
npm run devDeploy as a custom connector for HTTP-based MCP access.
-
Initial Deployment:
# Install Vercel CLI if needed npm install -g vercel # Deploy to Vercel npx vercel@latest
-
Production Deployment:
npx vercel@latest --prod
-
Set Environment Variables:
In your Vercel project settings (Settings → Environment Variables), add:
AITABLE_API_TOKEN- Your AITable API token (required for authenticating with AITable)SPACE_ID- Your AITable space ID (required)
Important: Ensure both variables are enabled for all environments (Production, Preview, and Development). If Preview is unchecked, preview deployment URLs will fail with "Connection refused".
-
Disable Deployment Protection (Required for MCP):
In your Vercel project settings (Settings → Deployment Protection):
- Turn OFF "Vercel Authentication"
- This is required for Claude Desktop and other MCP clients to connect
- Your data remains secure through the API token configured in step 3
-
Configure as Custom Connector in Claude Desktop:
IMPORTANT: Custom connectors must be configured via the Claude Desktop UI, NOT via
claude_desktop_config.json.To add the custom connector:
- Open Claude Desktop
- Go to Settings → Connectors
- Click Add Custom Connector
- Enter your deployment URL:
https://your-project.vercel.app/mcp - Save and restart Claude Desktop
Note: Make sure to include
/mcpat the end of the URL! -
Test the Deployment:
# Test with the test script node scripts/test-streamable-http-client.mjs https://your-project.vercel.app
Stdio vs HTTP Transport:
- Stdio (Recommended): Lower latency, direct process communication, best for Claude Desktop
- HTTP (Custom Connector): Centralized deployment, multiple clients, better for cloud deployments
Which to use?
- Use stdio for local Claude Desktop integration
- Use HTTP for centralized deployments, multiple users, or cloud-based AI clients
This MCP server uses different authentication strategies depending on the transport:
Stdio Transport (Recommended for Personal Use)
- Uses environment variables for AITable API authentication
- No client authentication required (local process, no network exposure)
- Most secure for personal use
- Configure via
claude_desktop_config.json
HTTP Transport (Custom Connector)
- Deployed to Vercel as a serverless function
- Requires disabling Vercel Deployment Protection
- CORS-enabled for browser-based access
- Environment variables stored securely in Vercel
IMPORTANT:
⚠️ Keep yourAITABLE_API_TOKENsecret - it grants full access to your AITable data⚠️ Keep your deployment URL private - share only with trusted users⚠️ Disable Vercel Deployment Protection for MCP clients to connect- ✅ Use environment variables in Vercel (never commit tokens to git)
- ✅ Rotate your API token periodically
- ✅ Monitor access logs in Vercel dashboard
- ✅ For personal use, prefer stdio transport over HTTP
This MCP server supports dual transport following official MCP patterns:
- Primary entry point for Claude Desktop
- Direct process communication via stdin/stdout
- Low latency, perfect for local development
- Executable via
npxornode dist/stdio-server.js
- Vercel serverless function with CORS support
- Uses
mcp-handlerlibrary for HTTP transport - Supports custom connector deployments
- All requests handled at root path with catch-all routing
Both transports share the same core business logic while providing different communication mechanisms.
aitable-mcp/
├── src/
│ ├── stdio-server.ts # Stdio entry point
│ ├── http-server.ts # Local HTTP server for testing
│ ├── aitable-tools.ts # MCP tool implementations
│ ├── formula-resource.ts # Formula documentation provider
│ ├── types.ts # TypeScript type definitions
│ └── *.md # Formula documentation files
├── api/
│ └── server.ts # HTTP entry point (Vercel)
├── public/
│ └── index.html # Landing page
├── scripts/
│ ├── test-client.mjs # SSE transport tester
│ └── test-streamable-http-client.mjs # HTTP transport tester
├── dist/ # Compiled output
├── package.json
├── tsconfig.json
├── vercel.json # Vercel configuration
└── README.md
The MCP server provides comprehensive AITable integration tools:
get_records- Query records with filtering, sorting, and paginationcreate_records- Create new records (max 10 per request)update_records- Update existing records (max 10 per request)delete_records- Delete records (max 10 per request)
get_fields- Get field metadata from datasheetscreate_field- Create new fields in datasheetsdelete_field- Delete fields from datasheets
get_views- Get views from datasheetscreate_datasheet- Create new datasheets with custom fields
upload_attachment- Upload files to datasheets
get_node_list- Get list of files in workspacesearch_nodes- Search nodes by type, permissions, and keywordsget_node_detail- Get detailed information about specific nodes
create_embed_link- Create embeddable links for nodesget_embed_links- List all embed links for a nodedelete_embed_link- Delete/disable embed links
Formula reference documentation:
formula_overview- Quick reference guide to AITable formulasformula_operators- AITable formula operatorsformula_numeric- AITable numeric functionsformula_string- AITable string functionsformula_logical- AITable logical functionsformula_date- AITable date/time functionsformula_array- AITable array functionsfield_colors- AITable field color reference
# Clean build artifacts
npm run clean
# Build TypeScript
npm run build
# Watch mode for development
npm run dev
# Test HTTP server locally
npm run dev:http
# Test with Vercel dev server
npm run dev:vercelContributions are welcome! Please ensure your changes maintain the dual-transport architecture.
If you're using Claude Code or other AI assistants to work on this codebase, run /init to generate a CLAUDE.md file with architectural guidance and development patterns specific to this project.
MIT
AITable has been discontinued. For the successor platform, check out the Bika MCP Server. It provides similar MCP integration for Bika.ai, making it easy to migrate your workflows.
- AITable
- Bika.ai - AITable successor platform
- Model Context Protocol
- TypeScript SDK
- Bika MCP Server - MCP server for Bika.ai integration
