Airtable MCP Server

Airtable MCP Server

Enables Claude to interact with Airtable through a secure OAuth 2.1 flow, supporting operations like listing bases, tables, records, and creating records.

Category
Visit Server

README

Airtable MCP Server

A production-ready MCP server that implements the complete OAuth 2.1 specification with Dynamic Client Registration, designed specifically for Claude's connector requirements.

๐Ÿ” OAuth 2.1 Compliance

This server implements the full MCP Authorization specification:

  • โœ… Dynamic Client Registration (RFC 7591) - Required by Claude
  • โœ… OAuth 2.1 with PKCE - Secure authorization flow
  • โœ… Authorization Server Metadata (RFC 8414) - Auto-discovery
  • โœ… Protected Resource Metadata (RFC 9728) - Resource discovery
  • โœ… Bearer Token Authentication - Secure API access

๐Ÿš€ Quick Deploy to Railway

  1. Commit and push your changes:
git add .
git commit -m "Implement proper OAuth 2.1 MCP server with Dynamic Client Registration"
git push origin main
  1. Railway will auto-deploy - just ensure these environment variables are set:

    • AIRTABLE_API_KEY = your Airtable API token
  2. Configure Claude:

    • Copy your Railway URL (e.g., https://airtable-mcp-server-production-6389.up.railway.app)
    • In Claude connector setup, use this URL
    • Leave OAuth Client ID empty - Dynamic Client Registration handles this automatically

๐Ÿ”ง Environment Variables

Required:

  • AIRTABLE_API_KEY - Your Airtable API token

Optional (Railway sets automatically):

  • BASE_URL - Your deployed URL
  • PORT - Server port (default: 8000)
  • HOST - Server host (default: 0.0.0.0)

๐Ÿงช Testing Your Server

After deployment, test the OAuth endpoints:

# Test Dynamic Client Registration
curl -X POST https://your-app.railway.app/oauth/register \
  -H "Content-Type: application/json" \
  -d '{"client_name": "Test Client", "redirect_uris": ["https://example.com/callback"]}'

# Check OAuth metadata
curl https://your-app.railway.app/.well-known/oauth-authorization-server

# Setup information
curl https://your-app.railway.app/setup

๐Ÿ“‹ MCP Tools Available

  • list_bases - List all accessible Airtable bases
  • list_tables - List tables in a specific base
  • list_records - Get records from a table with filtering
  • create_record - Create new records in tables

๐Ÿ”— Claude Integration

For Claude Web Interface:

  1. Go to Settings โ†’ Connectors
  2. Add custom connector with your Railway URL
  3. Leave OAuth Client ID empty (Dynamic Client Registration is used)
  4. Claude will automatically register and authenticate

For Claude Desktop: Use the MCP connector configuration in claude_desktop_config.json:

{
  "mcpServers": {
    "airtable": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-client"],
      "env": {
        "MCP_SERVER_URL": "https://your-app.railway.app"
      }
    }
  }
}

๐Ÿ—๏ธ Architecture

This server separates concerns properly:

  • Authorization Server - Handles OAuth 2.1 flows
  • Resource Server - Protects MCP endpoints
  • Dynamic Client Registration - Auto-registers Claude clients
  • Airtable Client - Secure API integration

๐Ÿ”’ Security Features

  • PKCE (RFC 7636) - Prevents authorization code interception
  • Secure token storage - Tokens expire and rotate
  • Input validation - All endpoints validate requests
  • HTTPS enforcement - All OAuth endpoints require HTTPS
  • Scope-based access - Granular permission control

๐Ÿ“š MCP Specification Compliance

Built according to the official MCP specification:

๐Ÿ› Troubleshooting

Claude connector fails to add:

  1. Ensure your Railway app is deployed and accessible
  2. Check that AIRTABLE_API_KEY is set in Railway environment
  3. Verify the URL returns {"status": "healthy"} at /health
  4. Check Railway logs for any startup errors

OAuth flow issues:

  1. Test Dynamic Client Registration endpoint manually
  2. Verify OAuth metadata endpoints are accessible
  3. Check that BASE_URL environment variable matches your actual Railway URL

๐ŸŽฏ What's Different Now

This implementation fixes the previous issues:

โŒ Before:

  • Simple API key authentication (rejected by Claude)
  • No Dynamic Client Registration support
  • Missing OAuth metadata endpoints
  • No PKCE security

โœ… Now:

  • Full OAuth 2.1 compliance with Dynamic Client Registration
  • Auto-discovery endpoints for Claude to find OAuth servers
  • PKCE security for public clients like Claude
  • Proper MCP authorization flow following the specification

๐Ÿ“„ License

MIT License - feel free to use this as a template for your own MCP servers.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured