AutomationFlowsAI & RAG › Build MCP Server with Airtable Chat

Build MCP Server with Airtable Chat

Original n8n title: Build an Mcp Server with Airtable

Build an MCP server with Airtable. Uses chatTrigger, agent, memoryBufferWindow, mcpClientTool. Chat trigger; 13 nodes.

Chat trigger trigger★★★☆☆ complexityAI-powered13 nodesChat TriggerAgentMemory Buffer WindowMcp Client ToolOpenAI ChatMcp TriggerAirtable Tool
AI & RAG Trigger: Chat trigger Nodes: 13 Complexity: ★★★☆☆ AI nodes: yes Added:

This workflow follows the Agent → Airtabletool recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "kS9EfgZeaK3QV6Mw",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Build an MCP server with Airtable",
  "tags": [],
  "nodes": [
    {
      "id": "357649f0-43c5-4d6c-97b9-079fa3b5c1f3",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -100,
        -80
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "ddf28f88-d76c-4ab6-82c4-c1ab1b746009",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        152,
        -180
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.9
    },
    {
      "id": "3170d4fd-700c-4449-a800-0395c06711aa",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        260,
        40
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "557b0e0a-133b-4e80-afba-408803ed9898",
      "name": "Airtable MCP Client",
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "position": [
        600,
        100
      ],
      "parameters": {
        "sseEndpoint": "https://your-sse-endpoint-url"
      },
      "typeVersion": 1
    },
    {
      "id": "a0bc9aa3-decb-42f1-bee4-b9e425db81e8",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        80,
        40
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "gpt-4o"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7737e491-ddd4-4e4f-a34d-73f518497990",
      "name": "MCP Server Trigger",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        140,
        240
      ],
      "parameters": {
        "path": "insert-your-cool-path-here"
      },
      "typeVersion": 1
    },
    {
      "id": "0ce9e128-be31-41d8-ae06-894316781358",
      "name": "Get",
      "type": "n8n-nodes-base.airtableTool",
      "position": [
        0,
        460
      ],
      "parameters": {
        "id": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Record_ID', ``, 'string') }}",
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appltMFy409fOqCVt",
          "cachedResultUrl": "https://airtable.com/appltMFy409fOqCVt",
          "cachedResultName": "AI news and social posts"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblZwA0JCNPeORaGi",
          "cachedResultUrl": "https://airtable.com/appltMFy409fOqCVt/tblZwA0JCNPeORaGi",
          "cachedResultName": "Social Posts"
        },
        "options": {}
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "1f9c6a61-9357-4fa1-81e0-42719284d291",
      "name": "Search",
      "type": "n8n-nodes-base.airtableTool",
      "position": [
        140,
        460
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appltMFy409fOqCVt",
          "cachedResultUrl": "https://airtable.com/appltMFy409fOqCVt",
          "cachedResultName": "AI news and social posts"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblZwA0JCNPeORaGi",
          "cachedResultUrl": "https://airtable.com/appltMFy409fOqCVt/tblZwA0JCNPeORaGi",
          "cachedResultName": "Social Posts"
        },
        "options": {},
        "operation": "search",
        "returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}",
        "filterByFormula": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Filter_By_Formula', ``, 'string') }}"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "061a0eb9-26de-47f1-b444-5dd98c984d70",
      "name": "Update",
      "type": "n8n-nodes-base.airtableTool",
      "position": [
        260,
        460
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appltMFy409fOqCVt",
          "cachedResultUrl": "https://airtable.com/appltMFy409fOqCVt",
          "cachedResultName": "AI news and social posts"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblZwA0JCNPeORaGi",
          "cachedResultUrl": "https://airtable.com/appltMFy409fOqCVt/tblZwA0JCNPeORaGi",
          "cachedResultName": "Social Posts"
        },
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "sourceHeadline",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "sourceHeadline",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "sourceSummary",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "sourceSummary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "goToArticle",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "goToArticle",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "sourceURL",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "sourceURL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "socialChannels",
              "type": "array",
              "display": true,
              "options": [
                {
                  "name": "Twitter",
                  "value": "Twitter"
                },
                {
                  "name": "LinkedIn",
                  "value": "LinkedIn"
                },
                {
                  "name": "Blog",
                  "value": "Blog"
                },
                {
                  "name": "Instagram",
                  "value": "Instagram"
                },
                {
                  "name": "Facebook",
                  "value": "Facebook"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "socialChannels",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "needsImage?",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Yes",
                  "value": "Yes"
                },
                {
                  "name": "No",
                  "value": "No"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "needsImage?",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "twitterCopy",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "twitterCopy",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "linkedinCopy",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "linkedinCopy",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "instagramCopy",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "instagramCopy",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "facebookCopy",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "facebookCopy",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "blogCopy",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "blogCopy",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "imagePrompt",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "imagePrompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "postImage",
              "type": "array",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "postImage",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Waiting for Content",
                  "value": "Waiting for Content"
                },
                {
                  "name": "Needs Approval",
                  "value": "Needs Approval"
                },
                {
                  "name": "Approved",
                  "value": "Approved"
                },
                {
                  "name": "Posted",
                  "value": "Posted"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "datePosted",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "datePosted",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "b0e17724-5a56-4b71-997d-f9f44d16e5bc",
      "name": "Delete",
      "type": "n8n-nodes-base.airtableTool",
      "position": [
        400,
        460
      ],
      "parameters": {
        "id": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Record_ID', ``, 'string') }}",
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appltMFy409fOqCVt",
          "cachedResultUrl": "https://airtable.com/appltMFy409fOqCVt",
          "cachedResultName": "AI news and social posts"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblZwA0JCNPeORaGi",
          "cachedResultUrl": "https://airtable.com/appltMFy409fOqCVt/tblZwA0JCNPeORaGi",
          "cachedResultName": "Social Posts"
        },
        "operation": "deleteRecord"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "2d0273b6-520b-45b7-8192-a83b10661028",
      "name": "Create",
      "type": "n8n-nodes-base.airtableTool",
      "position": [
        520,
        460
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appltMFy409fOqCVt",
          "cachedResultUrl": "https://airtable.com/appltMFy409fOqCVt",
          "cachedResultName": "AI news and social posts"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblZwA0JCNPeORaGi",
          "cachedResultUrl": "https://airtable.com/appltMFy409fOqCVt/tblZwA0JCNPeORaGi",
          "cachedResultName": "Social Posts"
        },
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "sourceHeadline",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "sourceHeadline",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "sourceSummary",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "sourceSummary",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "goToArticle",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "goToArticle",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "sourceURL",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "sourceURL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "socialChannels",
              "type": "array",
              "display": true,
              "options": [
                {
                  "name": "Twitter",
                  "value": "Twitter"
                },
                {
                  "name": "LinkedIn",
                  "value": "LinkedIn"
                },
                {
                  "name": "Blog",
                  "value": "Blog"
                },
                {
                  "name": "Instagram",
                  "value": "Instagram"
                },
                {
                  "name": "Facebook",
                  "value": "Facebook"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "socialChannels",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "needsImage?",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Yes",
                  "value": "Yes"
                },
                {
                  "name": "No",
                  "value": "No"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "needsImage?",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "twitterCopy",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "twitterCopy",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "linkedinCopy",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "linkedinCopy",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "instagramCopy",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "instagramCopy",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "facebookCopy",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "facebookCopy",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "blogCopy",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "blogCopy",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "imagePrompt",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "imagePrompt",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "postImage",
              "type": "array",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "postImage",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Waiting for Content",
                  "value": "Waiting for Content"
                },
                {
                  "name": "Needs Approval",
                  "value": "Needs Approval"
                },
                {
                  "name": "Approved",
                  "value": "Approved"
                },
                {
                  "name": "Posted",
                  "value": "Posted"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "datePosted",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "datePosted",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "ID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "69e906cf-82da-45c4-bacc-00970902d1f5",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        480,
        -60
      ],
      "parameters": {
        "width": 360,
        "height": 280,
        "content": "## Update SSE endpoint "
      },
      "typeVersion": 1
    },
    {
      "id": "819d82c9-da54-48c6-a007-2e8750cfb3e2",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -520,
        -220
      ],
      "parameters": {
        "width": 380,
        "height": 540,
        "content": "## Talk to your Airtable database \nPoint to your SSE endpoint, update your credentials and talk to your Airtable to:\n\n- Get records\n- Search records\n- Update records\n- Delete records\n- Create records\n\nand more!\n\nThis example showcases basic yet powerful functionality for a table.\n\nFeel free to combine it with other tools, connect a Slack channel as trigger node or another as output to receive the updates for the stakeholders and project owners.\n\nEnjoy!\n\nAitor\n[1 Node](https://1node.ai)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "2355fe0d-0515-4d1b-8a02-42712191f466",
  "connections": {
    "Get": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Create": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Delete": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Search": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Update": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        []
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Airtable MCP Client": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Build an MCP server with Airtable. Uses chatTrigger, agent, memoryBufferWindow, mcpClientTool. Chat trigger; 13 nodes.

Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Description: Turn your WooCommerce store into a conversational AI assistant — create products, place orders, run reports and manage coupons using natural language via n8n + an MCP Server.

Agent, OpenAI Chat, Mcp Client Tool +4
AI & RAG

This n8n workflow template uses community nodes and is only compatible with the self-hosted version of n8n.

Chat Trigger, Agent, N8N Nodes Mcp +4
AI & RAG

This n8n workflow showcases a full-featured AI-powered assistant connected to a Shopify store through a custom MCP (Multi-Channel Commerce Platform) Server toolkit. It empowers users to automate compr

Agent, OpenAI Chat, Mcp Client Tool +4
AI & RAG

AI Agent MCP for Email & News Research

Agent, Chat Trigger, OpenAI Chat +6
AI & RAG

🤖 Facebook MCP AI Agent – Read, Reply & Manage Comments with GPT-4o. Uses chatTrigger, agent, memoryBufferWindow, mcpTrigger. Chat trigger; 17 nodes.

Chat Trigger, Agent, Memory Buffer Window +4