Skip to content

Register DCR clients under the bare product client_name#1456

Merged
RhysSullivan merged 3 commits into
mainfrom
fix/dcr-client-name-retry
Jul 23, 2026
Merged

Register DCR clients under the bare product client_name#1456
RhysSullivan merged 3 commits into
mainfrom
fix/dcr-client-name-retry

Conversation

@RhysSullivan

@RhysSullivan RhysSullivan commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

Mercury's MCP authorization server vets the RFC 7591 client_name and rejects any value containing its own brand with invalid_client_metadata. The auto-generated "Executor for " always tripped that, failing the whole automatic connect and dropping the user into the manual app picker.

The client name is cosmetic — it only labels the provider's consent screen and authorized-apps list, where the provider is already evident — so DCR now always registers under the bare product name ("Executor"). This removes the failure class entirely rather than retrying around it, and matches what the oauth-discovery DCR path already sends.

  • Test server gained an approveClientName gate mirroring Mercury's behavior.
  • Regression tests: registration succeeds against a brand-vetting server with a single request; a server rejecting even the bare name surfaces invalid_client_metadata unchanged.

Some authorization servers vet the RFC 7591 client_name — Mercury rejects
any name containing its own brand, which the auto-generated
"Executor for Mercury MCP" always trips, failing the whole connect. The
name is cosmetic, so registration now retries once with the bare product
name before surfacing the failure.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 23, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
executor-cloud f55df60 Jul 23 2026, 07:07 PM

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 23, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
executor-marketing f55df60 Commit Preview URL

Branch Preview URL
Jul 23 2026, 07:06 PM

@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Cloudflare preview

Torn down — the PR is closed.

@RhysSullivan
RhysSullivan marked this pull request as ready for review July 23, 2026 18:58
@pkg-pr-new

pkg-pr-new Bot commented Jul 23, 2026

Copy link
Copy Markdown

Open in StackBlitz

@executor-js/cli

npm i https://pkg.pr.new/@executor-js/cli@1456

@executor-js/config

npm i https://pkg.pr.new/@executor-js/config@1456

@executor-js/execution

npm i https://pkg.pr.new/@executor-js/execution@1456

@executor-js/sdk

npm i https://pkg.pr.new/@executor-js/sdk@1456

@executor-js/codemode-core

npm i https://pkg.pr.new/@executor-js/codemode-core@1456

@executor-js/runtime-quickjs

npm i https://pkg.pr.new/@executor-js/runtime-quickjs@1456

@executor-js/plugin-file-secrets

npm i https://pkg.pr.new/@executor-js/plugin-file-secrets@1456

@executor-js/plugin-graphql

npm i https://pkg.pr.new/@executor-js/plugin-graphql@1456

@executor-js/plugin-keychain

npm i https://pkg.pr.new/@executor-js/plugin-keychain@1456

@executor-js/plugin-mcp

npm i https://pkg.pr.new/@executor-js/plugin-mcp@1456

@executor-js/plugin-onepassword

npm i https://pkg.pr.new/@executor-js/plugin-onepassword@1456

@executor-js/plugin-openapi

npm i https://pkg.pr.new/@executor-js/plugin-openapi@1456

executor

npm i https://pkg.pr.new/executor@1456

commit: 159ece5

Drop the "Executor for <integration>" client_name and the retry that
worked around servers rejecting it. The name is cosmetic (it only labels
the provider's consent screen, where the provider is already evident),
and volunteering another company's brand inside it is exactly what
brand-vetting servers like Mercury reject. Sending the bare name removes
the failure class instead of retrying around it, and matches what the
oauth-discovery DCR path already sends.
@RhysSullivan RhysSullivan changed the title Retry DCR with bare product client_name on invalid_client_metadata Register DCR clients under the bare product client_name Jul 23, 2026
@RhysSullivan
RhysSullivan merged commit 8926d66 into main Jul 23, 2026
17 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant