OAuth: accept Client ID Metadata Documents (MCP 2026-07-28 client registration)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- go
- Domain
- api, authentication, security
Research direction
Start by examining the OAuth server implementation, internal/egressguard, and the go-sdk auth/oauthex packages at v1.8.0 to identify existing fetch and validation support. Read docs/auth/oauth-server.md and the authorization metadata paths, then use the stated acceptance cases and local MCP client flow to verify CIMD, DCR compatibility, controls, auditing, and updated llms.txt and llms-full.txt.
Written by the indexing model from the issue text.
Description
Problem
MCP 2026-07-28 makes Client ID Metadata Documents (CIMD) the client registration mechanism. A client identifies itself with an HTTPS URL as its client_id, and the authorization server fetches the client's metadata from that URL. Dynamic Client Registration (DCR) remains for backward compatibility and is slated for removal in a later revision.
The platform's OAuth server supports pre-registered clients and DCR only (docs/auth/oauth-server.md: oauth.dcr.enabled, POST /oauth/register). Nothing in the OAuth server or its docs handles a URL-shaped client_id. A client that only does CIMD cannot authorize against the platform, and an enterprise security review asking "do you support CIMD" gets "no".
Required behavior
/oauth/authorizeand/oauth/tokenaccept an HTTPS URL asclient_id, fetch the metadata document it names, and validate it:- the document's
client_idequals the URL; redirect_uriis one the document lists;token_endpoint_auth_methodis supported.
- the document's
- The fetch is SSRF-guarded (
internal/egressguard) and size-, time- and cache-bounded, honoring the document's cache headers. - Authorization server metadata advertises CIMD support (
client_id_metadata_document_supported). - Operator control: a setting enabling CIMD (default on), and an optional allow/deny list of client-ID hosts for deployments that admit only known clients.
- The consent screen shows the client's name and logo from the document, and its host.
- DCR keeps working unchanged. The docs say CIMD is the preferred path and DCR the legacy one.
- Audit: an authorization by a CIMD client records the
client_idURL.
Acceptance
- An MCP client using CIMD (a test client serving its document from the local stack) completes authorization code + PKCE against the dev stack and calls a tool.
- A document whose
client_iddoes not match its URL, aredirect_urinot listed, a private-address URL, and an oversized document are each refused with a reason. - A host outside the allow list is refused when one is configured.
docs/auth/oauth-server.mdhas a CIMD section;llms.txtandllms-full.txtare updated.
Before building: check how much of the fetch and validation go-sdk's auth/oauthex packages (v1.8.0) already provide, and use them rather than writing a second implementation.
- Dominant language
- Go
- Stars
- 10
- Forks
- 2
- Avg merge
- 1h 38m
- Merged PRs (30d)
- 84
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from txn2/mcp-data-platform
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 71/100
txn2/mcp-data-platform#2533 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 72/100
txn2/mcp-data-platform#2537 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
txn2/mcp-data-platform#2536 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
txn2/mcp-data-platform#2535 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 25/100
txn2/mcp-data-platform#2530 ·
Maintainers usually reply within 1 day
All issues in txn2/mcp-data-platform
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
Maintainers usually reply within 1 day
-
bug raised-by:verifier
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
medici-finance/assay#5697 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
sonatype-nexus-community/terraform-provider-sonatypeiq#101 ·
Maintainers usually reply within 1 day
-
area: metrics area: tracing contribfest enhancement good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
open-telemetry/opentelemetry-ebpf-instrumentation#4188 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
blinklabs-io/dingo#6074 ·
Maintainers usually reply within 1 day