Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Copilot for Xcode sends unsupported prompt field to Supabase MCP → `Unrecognized key(s) in #627

@nannestad

Description

@nannestad

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

  1. Add Supabase MCP to the Copilot for Xcode mcp.json:
{
  "servers": {
    "supabase": {
      "type": "http",
      "url": "https://mcp.supabase.com/mcp"
    }
  }
}
  1. Restart Copilot for Xcode.
  2. Complete the OAuth browser login (this part works).
  3. 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 prompt in 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 prompt field unless it is declared in the tool schema.
  • MCP requests should match exactly the schema returned in the server’s tools metadata.

Environment

Impact

This prevents the Supabase MCP from working in Copilot for Xcode, reducing MCP interoperability.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions