-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Description
Summary
When configuring the Supabase MCP server in Copilot for Xcode, the MCP client sends a payload containing an unexpected prompt field. Supabase’s MCP server uses strict Zod validation and returns:
{"message": ": Unrecognized key(s) in object: 'prompt'"}
This makes the Supabase MCP unusable in Copilot for Xcode, even though it works in other MCP-compatible clients (Cursor, Claude Desktop, VS Code Copilot).
Repro Steps
- Add Supabase MCP to the Copilot for Xcode
mcp.json:
{
"servers": {
"supabase": {
"type": "http",
"url": "https://mcp.supabase.com/mcp"
}
}
}- Restart Copilot for Xcode.
- Complete the OAuth browser login (this part works).
- Try invoking any Supabase MCP tool.
Result:
The MCP server responds with:
{"message": ": Unrecognized key(s) in object: 'prompt'"}
Expected Behavior
Copilot for Xcode should only send fields defined in the MCP tool’s schema. Other MCP clients (Cursor, Claude Desktop, VS Code Copilot) do not send a prompt field and work correctly with Supabase MCP.
Actual Behavior
Copilot for Xcode appears to send a tool invocation payload similar to:
{
"query": "example",
"prompt": "extra value"
}Supabase MCP tool schemas are strict (z.object(...).strict()), so any unknown key causes an error.
Why this is a Copilot for Xcode issue
- The Supabase MCP specification does not include
promptin any tool definition. - Other MCP clients do not include this field.
- Only Copilot for Xcode adds this additional argument, causing schema validation to fail.
Suggested Fix
When invoking MCP tools:
- Do not inject a
promptfield unless it is declared in the tool schema. - MCP requests should match exactly the schema returned in the server’s
toolsmetadata.
Environment
- Copilot for Xcode version: 0.45.0
- macOS version: 26.2 Beta (25C5031i)
- MCP server: https://mcp.supabase.com/mcp
- MCP type: HTTP with OAuth
Impact
This prevents the Supabase MCP from working in Copilot for Xcode, reducing MCP interoperability.