Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
When both the Airtable and Supabase MCP servers are active simultaneously, calling mcp_airtable_list_tables incorrectly routes to the Supabase tool handler, resulting in validation errors because the required base_id parameter is rejected.
Description
There appears to be a tool name collision or routing issue in the MCP framework when multiple MCP servers register tools with similar names. Specifically:
- Airtable MCP Server registers:
mcp_airtable_list_tables(requiresbase_idparameter) - Supabase MCP Server registers:
mcp_supabase_list_tables(takes optionalschemasparameter)
When both servers are active, attempting to call the Airtable tool results in the Supabase tool’s validation schema being applied, causing the Airtable-specific base_id parameter to be rejected.
Steps to Reproduce
- Ensure both Airtable and Supabase MCP servers are active in Cursor
- Call
mcp_airtable_list_tableswith requiredbase_idparameter:mcp_airtable_list_tables({ base_id: "appMUjMFo1BnNb7KP" }) - Observe the error
Expected Behavior
Actual Behavior
{
"error": {
"name": "ZodError",
"message": "[\ waarbij {\n \"code\": \"unrecognized_keys\",\n \"keys\": [\n \"base_id\"\n ],\n \"path\": [],\n \"message\": \"Unrecognized key(s) in object: 'base_id'\"\n }\n]"
}
}
The error indicates that base_id is not recognized, which matches the Supabase tool’s schema (which doesn’t have a base_id parameter).
Expected Behavior
The Airtable tool should accept the base_id parameter and return a list of tables from the specified Airtable base, returning something like:
[
{
"id": "tbl...",
"name": "Table Name",
"primaryFieldId": "fld..."
}
]
Operating System
Windows 10/11
Current Cursor Version (Menu → About Cursor → Copy)
Version: 2.0.43 (user setup)
VSCode Version: 1.99.3
Commit: 8e4da76ad196925accaa169efcae28c45454cce0
Date: 2025-10-30T18:49:27.589Z
Electron: 34.5.8
Chromium: 132.0.6834.210
Node.js: 20.19.1
V8: 13.2.152.41-electron.0
OS: Windows_NT x64 10.0.19045
Does this stop you from using Cursor
No - Cursor works, but with this issue