Skip to main content
guidesSource-backed

MCP Protected Resource Metadata Verification Guide

Practical guide for checking MCP protected resource metadata, authorization server discovery, resource indicators, token audience binding, and 401 challenge behavior before trusting a remote MCP server.

by JSONbored·added 2026-06-05·
Review first review before installing

Open the source and read safety notes before installing.

Citation facts

Source-backed facts for citing this resource, derived directly from the registry — also available as plain text for AI assistants.

Source URLs
https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization, https://github.com/JSONbored/awesome-claude/blob/main/content/guides/mcp-protected-resource-metadata-verification-guide.mdx
Safety notes
Never send a production user token to an MCP server until the resource metadata and token audience have been verified., Treat token passthrough, missing resource indicators, or acceptance of tokens issued for another resource as release-blocking., Do not paste bearer tokens into prompts, PR comments, issue comments, screenshots, or public logs while debugging MCP auth.
Privacy notes
Authorization metadata can reveal tenant URLs, identity providers, scopes, client registration behavior, and internal endpoint names., Verification traces may include redirect URLs, state parameters, token claims, account IDs, or workspace identifiers; redact them before public sharing.
Author
JSONbored
Submitted by
JSONbored
Claim status
unclaimed
Last verified
2026-06-05

Decision playbook

Review trust signals before you adopt

Signals are present but mixed. Use the checklist below to confirm the source and operational safety for your environment.

Compare context
Selected

0

Current score

63

Baseline

Delta

No baseline selected

No major trust-signal divergence detected in the current selection.

Source and provenance checks

Needs review

Confirm ownership and provenance before trusting install instructions.

  • Source link availableRequired

    Open the canonical repository and verify ownership.

    Done
  • Source provenance statusRequired

    Marked as source-backed.

    Done
  • Metadata reviewed

    No reviewed flag detected in metadata.

    Pending

Safety and privacy checks

Complete

Validate risk disclosures before installation or API wiring.

  • Safety notes presentRequired

    Review the listed safety guidance before running commands.

    Done
  • Privacy notes presentRequired

    Review data handling notes before connecting accounts or secrets.

    Done
  • Trust level risk gateRequired

    Trust level does not block evaluation.

    Done

Package and install checks

Needs review

Check package metadata and artifact integrity signals.

  • Install payload available

    Install or copy payload is available for review.

    Done
  • Package verification flag

    No package verification flag provided.

    Pending
  • Checksum metadata

    No checksum provided for downloaded artifact.

    Pending

Compare-driven decision checks

Needs review

Use compare context to validate trade-offs before adoption.

  • Compare tray has multiple entries

    Add at least one more entry to compare trust differences.

    Pending
  • Baseline comparison available

    No baseline peer selected yet.

    Pending
  • Diverging trust signals identified

    No major trust-signal divergence found.

    Pending

Setup at a glance

Copy & paste

Copy-ready — paste the snippet to get started.

30 minutes

Adoption plan

Balanced adoption plan

Current risk score 24/100. Use staged verification before broader rollout.

Risk 24

Pre-adoption checks

Validate source and review signals before any execution.

  • Confirm source provenanceRequired

    Source URL/provenance metadata is present.

    Done
  • Confirm metadata review state

    No review metadata found; increase manual validation.

    Pending
  • Verify install payload

    Install/config payload exists and can be inspected.

    Done

Security checks

Confirm safety, privacy, and package integrity signals.

  • Review safety notesRequired

    Safety notes are present.

    Done
  • Review privacy notesRequired

    Privacy notes are present.

    Done
  • Verify package integrity metadata

    No package verification/checksum metadata.

    Pending

Rollout

Adopt in controlled steps based on the selected plan.

  • Run in isolated sandbox firstRequired

    Use a constrained sandbox and observe behavior across multiple tasks.

    Pending
  • Roll out graduallyRequired

    Roll out to a small cohort before wider usage.

    Pending
  • Set monitoring and fallback

    Define rollback path and monitor errors after adoption.

    Pending

Evidence readiness

Evidence readiness matrix · balanced

Missing required evidence: Metadata review. Risk score 31.

Risk 31

Source provenance

Present

Source repository/provenance is listed.

Required in this preset

Metadata review

Missing

Review metadata is missing.

Required in this preset

Safety notes

Present

Safety notes are present.

Required in this preset

Privacy notes

Present

Privacy notes are present.

Optional in this preset

Package integrity

Missing

Package integrity metadata is missing.

Optional in this preset

Install payload

Present

Install payload is available.

Required in this preset

Required gaps: Metadata review

Decision timeline

Decision timeline · balanced

Blocking gaps: Check metadata review status. Risk 28.

Risk 28

triage

Confirm source provenanceRequired

Source/provenance metadata is available.

Done

triage

Check metadata review statusRequired

Review metadata is missing.

Pending

verify

Review safety notesRequired

Safety notes are available.

Done

verify

Review privacy notes

Privacy notes are available.

Done

verify

Validate package integrity metadata

Package integrity metadata is missing.

Pending

rollout

Verify install payload and commandsRequired

Install payload is available.

Done

Blockers: Check metadata review status

Prerequisite readiness

Prerequisite readiness

4 prerequisites to line up before setup. Have accounts and credentials ready first.

0/4 ready
Account & credentials3General130 minutes

Safety & privacy surface

Safety & privacy surface

3 safety and 2 privacy notes across 2 risk areas. Review closely: credentials & tokens, permissions & scopes.

2 areas
  • SafetyCredentials & tokensNever send a production user token to an MCP server until the resource metadata and token audience have been verified.
  • SafetyCredentials & tokensTreat token passthrough, missing resource indicators, or acceptance of tokens issued for another resource as release-blocking.
  • SafetyCredentials & tokensDo not paste bearer tokens into prompts, PR comments, issue comments, screenshots, or public logs while debugging MCP auth.
  • PrivacyPermissions & scopesAuthorization metadata can reveal tenant URLs, identity providers, scopes, client registration behavior, and internal endpoint names.
  • PrivacyCredentials & tokensVerification traces may include redirect URLs, state parameters, token claims, account IDs, or workspace identifiers; redact them before public sharing.

Safety notes

  • Never send a production user token to an MCP server until the resource metadata and token audience have been verified.
  • Treat token passthrough, missing resource indicators, or acceptance of tokens issued for another resource as release-blocking.
  • Do not paste bearer tokens into prompts, PR comments, issue comments, screenshots, or public logs while debugging MCP auth.

Privacy notes

  • Authorization metadata can reveal tenant URLs, identity providers, scopes, client registration behavior, and internal endpoint names.
  • Verification traces may include redirect URLs, state parameters, token claims, account IDs, or workspace identifiers; redact them before public sharing.

Prerequisites

  • Remote MCP server URL and expected canonical resource URI.
  • OAuth authorization server metadata or discovery endpoint.
  • Test account or staging credentials approved for metadata and token-flow checks.
  • Ability to inspect HTTP 401 responses, WWW-Authenticate headers, and token request parameters.

Schema details

Install type
copy
Troubleshooting
No
Collection metadata
Estimated setup
30 minutes
Difficulty
advanced
Full copyable content
## What to verify

The MCP authorization specification says protected HTTP MCP servers use OAuth at
the transport layer. The important review point is not just whether a login flow
appears. The server must advertise protected resource metadata, direct clients
to the right authorization server, require a resource indicator, and validate
that presented access tokens were issued for that MCP server.

## Review workflow

1. Start unauthenticated and capture the server 401 Unauthorized response.
2. Confirm the WWW-Authenticate challenge points to protected resource metadata
   for the MCP server.
3. Fetch the protected resource metadata document and record the
   authorization_servers value.
4. Fetch authorization server metadata from the advertised authorization server.

## Discovery and Token Requests on the Wire

These are the exact HTTP artifacts the MCP authorization spec defines. Use them as the literal pattern when capturing and comparing a server's behavior:

```http
# 1. Unauthenticated request -> server challenges with metadata location
GET /mcp HTTP/1.1
Host: mcp.example.com

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer ...resource_metadata...

# 2. Client fetches Protected Resource Metadata (RFC 9728), reads authorization_servers
GET /.well-known/oauth-protected-resource

# 3. Client fetches Authorization Server Metadata (RFC 8414)
GET /.well-known/oauth-authorization-server

# 4. Authorization + token requests MUST carry the resource parameter (RFC 8707),
#    canonical, percent-encoded; sent regardless of AS support
&resource=https%3A%2F%2Fmcp.example.com

# 5. Authenticated MCP request -- token in the header, never the query string
GET /mcp HTTP/1.1
Host: mcp.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
```

## Canonical Resource URI: Valid vs Invalid

The `resource` parameter MUST use the canonical URI of the MCP server. The spec lists exactly which forms are valid and which are not:

| URI | Valid? | Why |
| --- | --- | --- |
| `https://mcp.example.com/mcp` | Valid | Scheme + host + path |
| `https://mcp.example.com` | Valid | Scheme + host (no trailing slash preferred) |
| `https://mcp.example.com:8443` | Valid | Explicit port allowed |
| `https://mcp.example.com/server/mcp` | Valid | Path identifies an individual MCP server |
| `mcp.example.com` | Invalid | Missing scheme |
| `https://mcp.example.com#fragment` | Invalid | Contains a fragment |
5. Check whether the client sends the MCP server URI as the OAuth resource
   parameter during authorization and token requests.
6. Inspect a staging token only in a private environment. The audience or
   equivalent resource binding should match the MCP server, not a generic API or
   another downstream service.
7. Test a wrong-audience token. The MCP server should reject it instead of
   accepting or forwarding it.
8. Test insufficient scopes. The server should return an authorization error,
   not expose partial tool results.

## Red flags

- The server accepts bearer tokens in query strings.
- The server accepts tokens issued for another service.
- The metadata document has no authorization server or a surprising identity
  provider.
- The client never sends the resource parameter.
- A proxy MCP server forwards the incoming token directly to a downstream API.
- Error messages echo tokens, claims, or identity-provider responses.

## Reviewer output

A useful review should include:

- MCP server URL and canonical resource URI reviewed.
- Metadata endpoints checked and whether they matched expectations.
- Authorization server used and whether discovery worked.
- Resource indicator evidence from authorization and token requests.
- Token audience validation result, including wrong-audience rejection.
- Scope behavior and least-privilege recommendation.
- Final decision: safe to connect, connect with limitations, or block.

## References

- MCP authorization specification - https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization
- OAuth 2.0 Resource Indicators - https://www.rfc-editor.org/rfc/rfc8707
- OAuth 2.0 Protected Resource Metadata - https://www.rfc-editor.org/rfc/rfc9728

About this resource

What to verify

The MCP authorization specification says protected HTTP MCP servers use OAuth at the transport layer. The important review point is not just whether a login flow appears. The server must advertise protected resource metadata, direct clients to the right authorization server, require a resource indicator, and validate that presented access tokens were issued for that MCP server.

Review workflow

  1. Start unauthenticated and capture the server 401 Unauthorized response.
  2. Confirm the WWW-Authenticate challenge points to protected resource metadata for the MCP server.
  3. Fetch the protected resource metadata document and record the authorization_servers value.
  4. Fetch authorization server metadata from the advertised authorization server.

Discovery and Token Requests on the Wire

These are the exact HTTP artifacts the MCP authorization spec defines. Use them as the literal pattern when capturing and comparing a server's behavior:

# 1. Unauthenticated request -> server challenges with metadata location
GET /mcp HTTP/1.1
Host: mcp.example.com

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer ...resource_metadata...

# 2. Client fetches Protected Resource Metadata (RFC 9728), reads authorization_servers
GET /.well-known/oauth-protected-resource

# 3. Client fetches Authorization Server Metadata (RFC 8414)
GET /.well-known/oauth-authorization-server

# 4. Authorization + token requests MUST carry the resource parameter (RFC 8707),
#    canonical, percent-encoded; sent regardless of AS support
&resource=https%3A%2F%2Fmcp.example.com

# 5. Authenticated MCP request -- token in the header, never the query string
GET /mcp HTTP/1.1
Host: mcp.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

Canonical Resource URI: Valid vs Invalid

The resource parameter MUST use the canonical URI of the MCP server. The spec lists exactly which forms are valid and which are not:

URI Valid? Why
https://mcp.example.com/mcp Valid Scheme + host + path
https://mcp.example.com Valid Scheme + host (no trailing slash preferred)
https://mcp.example.com:8443 Valid Explicit port allowed
https://mcp.example.com/server/mcp Valid Path identifies an individual MCP server
mcp.example.com Invalid Missing scheme
https://mcp.example.com#fragment Invalid Contains a fragment
5. Check whether the client sends the MCP server URI as the OAuth resource
parameter during authorization and token requests.
6. Inspect a staging token only in a private environment. The audience or
equivalent resource binding should match the MCP server, not a generic API or
another downstream service.
7. Test a wrong-audience token. The MCP server should reject it instead of
accepting or forwarding it.
8. Test insufficient scopes. The server should return an authorization error,
not expose partial tool results.

Red flags

  • The server accepts bearer tokens in query strings.
  • The server accepts tokens issued for another service.
  • The metadata document has no authorization server or a surprising identity provider.
  • The client never sends the resource parameter.
  • A proxy MCP server forwards the incoming token directly to a downstream API.
  • Error messages echo tokens, claims, or identity-provider responses.

Reviewer output

A useful review should include:

  • MCP server URL and canonical resource URI reviewed.
  • Metadata endpoints checked and whether they matched expectations.
  • Authorization server used and whether discovery worked.
  • Resource indicator evidence from authorization and token requests.
  • Token audience validation result, including wrong-audience rejection.
  • Scope behavior and least-privilege recommendation.
  • Final decision: safe to connect, connect with limitations, or block.

References

Source citations

Add this badge to your README

Show that MCP Protected Resource Metadata Verification Guide is listed on HeyClaude. Paste this Markdown into your README — it renders the badge and links back to this page.

Listed on HeyClaude
[![Listed on HeyClaude](https://heyclau.de/badge/guides/mcp-protected-resource-metadata-verification-guide.svg)](https://heyclau.de/entry/guides/mcp-protected-resource-metadata-verification-guide)

How it compares

MCP Protected Resource Metadata Verification Guide side by side with its closest alternative on trust, install, platform support, and disclosed safety notes — all from reviewed registry metadata.

Field

Practical guide for checking MCP protected resource metadata, authorization server discovery, resource indicators, token audience binding, and 401 challenge behavior before trusting a remote MCP server.

Open dossier

Practical checklist for reviewing remote MCP server authorization, resource indicators, bearer-token handling, HTTPS transport, PKCE, and token passthrough risks before connecting an AI client.

Open dossier
Next steps
Trust
Review statusNot reviewedNot reviewed
Package trustPackage not verifiedPackage not verified
Source provenanceSource-backedSource-backed
SubmitterJSONboredJSONbored
Install riskReview firstReview first
Notes Safety ✓ Privacy ✓ Safety ✓ Privacy ✓
Brand
Categoryguidesguides
SourceSource-backedSource-backed
AuthorJSONboredJSONbored
Added2026-06-052026-06-05
Platforms
Harness
Source repo
Safety notesNever send a production user token to an MCP server until the resource metadata and token audience have been verified. Treat token passthrough, missing resource indicators, or acceptance of tokens issued for another resource as release-blocking. Do not paste bearer tokens into prompts, PR comments, issue comments, screenshots, or public logs while debugging MCP auth.A remote MCP server can act as a bridge to privileged downstream APIs, so bad token audience checks can turn one integration into access to another. Do not accept setup instructions that place access tokens in URLs or screenshots. Treat every remote MCP server as a distributed system dependency with auth, rate-limit, logging, and outage behavior.
Privacy notesAuthorization metadata can reveal tenant URLs, identity providers, scopes, client registration behavior, and internal endpoint names. Verification traces may include redirect URLs, state parameters, token claims, account IDs, or workspace identifiers; redact them before public sharing.OAuth tokens, refresh tokens, authorization codes, and MCP request logs can reveal account identity and downstream resource access. Remote servers may receive user prompts, tool arguments, and retrieved data; review retention and logging language before connecting sensitive workspaces.
Prerequisites
  • Remote MCP server URL and expected canonical resource URI.
  • OAuth authorization server metadata or discovery endpoint.
  • Test account or staging credentials approved for metadata and token-flow checks.
  • Ability to inspect HTTP 401 responses, WWW-Authenticate headers, and token request parameters.
  • A remote MCP server endpoint that uses Streamable HTTP or another HTTP-based transport.
  • Access to the server's documentation or metadata endpoints.
  • Ability to inspect how the client stores credentials and sends bearer tokens.
Install
Config
Citations
ClaimUnclaimedUnclaimed
Open in the interactive comparison tool

Related guides

Signals

Loading live community signals…

More like this, weekly

A short, calm digest of reviewed Claude resources. Unsubscribe any time.