Skip to content

Typeform MCP connection fails before the approval screen - callback address mismatch #58403

Closed as duplicate

Description

@so-constellation

Description

Hi!

I'm trying to connect the Typeform MCP server (https://api.typeform.com/mcp) in OpenCode desktop 1.19.3 on macOS, and the connection fails.

The authorization page shows a "You don't have access to this workspace" error before I even reach the approval screen - and Typeform's support confirmed that message is misleading.

They traced the real cause: the callback address in the connection request doesn't match the one declared in OpenCode's client metadata (https://opencode.ai/oauth/opencode/client.json).

Typeform allows the port to vary, but not the path - so the request gets rejected.

Typeform suggested either using /callback as the callback path, or registering the actual path in the metadata.

Could someone take a look and solve this please? Thank you!

So 🌠

Plugins

No response

OpenCode version

1.19.3

Steps to reproduce

No response

Screenshot

Image

Operating System

No response

Terminal

No response

Activity

  1. opencode-agent commented on Oct 23, 2026

    @opencode-agent
    Contributor

    Thanks for the report, and for passing on Typeform support's diagnosis. It made the cause clear right away.

    I think this is a duplicate of #50510. It's the same problem: OpenCode identifies itself with https://opencode.ai/oauth/opencode/client.json, which lists only http://127.0.0.1/callback and http://localhost/callback. The redirect URI it actually sends is http://127.0.0.1:<port>/mcp/oauth/callback, so authorization servers that check the path exactly reject the request. This affects v2 as well as 1.19.3.

    Possible duplicates and related issues, ordered by likelihood:

    A possible workaround, from #50510: set the redirect URI explicitly for the server in your config. OpenCode then registers its actual callback with Typeform instead of using client.json. That was confirmed on v2. On 1.19.3 the keys are camelCase, but I haven't confirmed the workaround applies there:

    "typeform": {
      "type": "remote",
      "url": "https://api.typeform.com/mcp",
      "oauth": {
        "callbackPort": 19876,
        "redirectUri": "http://127.0.0.1:19876/mcp/oauth/callback"
      }
    }

    It only helps if Typeform accepts dynamic client registration. A note on #50510 saying Typeform is affected too would show the problem isn't limited to one server.

    The bot will close this issue as a duplicate in 1 day unless you reply explaining how your problem is different.

  2. opencode-agent commented on Oct 24, 2026

    @opencode-agent
    Contributor

    We haven't heard back, so I'm closing this as a duplicate of #50510. The Typeform failure comes from the same mismatch: the hosted client.json lists http://127.0.0.1/callback and http://localhost/callback, but OpenCode sends http://127.0.0.1:<port>/mcp/oauth/callback. Please follow #50510 for updates. A short note there saying Typeform is affected would help show how widespread this is.

    Until then, the oauth.redirectUri / callbackPort config from the earlier comment might work around it, if Typeform accepts dynamic client registration. If your problem turns out to be different, reply here and we can reopen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions