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.
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 notes
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.
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.
3 safety and 2 privacy notes across 2 risk areas. Review closely: credentials & tokens, network access.
2 areas
SafetyCredentials & tokensA 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.
SafetyCredentials & tokensDo not accept setup instructions that place access tokens in URLs or screenshots.
SafetyNetwork accessTreat every remote MCP server as a distributed system dependency with auth, rate-limit, logging, and outage behavior.
PrivacyCredentials & tokensOAuth tokens, refresh tokens, authorization codes, and MCP request logs can reveal account identity and downstream resource access.
PrivacyNetwork accessRemote servers may receive user prompts, tool arguments, and retrieved data; review retention and logging language before connecting sensitive workspaces.
Safety notes
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 notes
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
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.
Schema details
Install type
copy
Reading time
8 min
Difficulty score
67
Troubleshooting
Yes
Breaking changes
No
Full copyable content
## Overview
Remote MCP servers are convenient because the client can connect to a hosted
endpoint instead of launching a local process. They also move trust into a
networked authorization flow. The MCP authorization specification is explicit:
HTTP-based transports should use OAuth 2.1-style flows, protected resource
metadata, authorization server metadata, resource indicators, bearer tokens, and
token audience validation.
This checklist is for maintainers and operators reviewing a remote MCP server
before connecting it to an AI client. It is intentionally practical: each item is
something you can verify from docs, metadata, client config, or a small test.
## Review Checklist
### Endpoint and transport
- The endpoint uses HTTPS.
- The server clearly identifies whether it uses Streamable HTTP, stdio, or a
custom transport.
- Client setup does not place bearer tokens in query strings.
- The endpoint path is stable enough to serve as a resource identifier.
### Discovery and client registration
- The server documents where OAuth metadata is discovered.
- The authorization server supports appropriate OAuth metadata.
- Dynamic client registration is supported or the docs explain the alternative.
- Redirect URI handling is exact and does not allow open redirects.
### Resource indicators and audience
- Authorization and token requests include a `resource` value for the target MCP
server.
- Tokens are audience-bound to the MCP server that will receive them.
- The MCP server rejects tokens issued for another resource.
- The server does not pass the client token through to unrelated downstream APIs.
### Token storage and logging
- Client config stores secrets in environment variables, secure keychain storage,
or an approved credential store.
- Logs redact bearer tokens, authorization codes, and refresh tokens.
- Error messages do not echo tokens or private resource identifiers.
- Access tokens are short-lived where the authorization server supports it.
### Tool risk
- Tool names and descriptions are clear enough for a model to use correctly.
- Write or delete tools require explicit user approval or narrower scopes.
- Tools that return private data document the data class they can expose.
- Rate limits and timeout behavior are visible in docs or error responses.
## Red Flags
| Red flag | Why it matters | Safer pattern |
| ---------------------- | ------------------------------------------------------ | ------------------------------------------------------ |
| Token in URL | URLs leak through browser history, logs, and analytics | Use Authorization headers or environment-backed config |
| No audience validation | A token for one service can be reused against another | Bind tokens to the MCP server resource |
| Token passthrough | The MCP server becomes a confused deputy | Exchange or mint separate downstream tokens |
| Broad write tools | The model can trigger account-changing actions | Scope tools and require approval for mutations |
| Unclear retention | Prompts and tool outputs may be stored | Document retention and redact sensitive logs |
## Troubleshooting
### The client receives 401 responses
Confirm the MCP server advertises protected resource metadata and that the client
can parse `WWW-Authenticate`. Check whether the token request included the same
resource URI the server expects.
### The server accepts a token from another audience
Treat this as a blocking security issue. Audience validation is the core control
that prevents cross-service token reuse.
### Docs recommend a URL with the token embedded
Prefer a header-based or environment-backed configuration. If that is impossible,
use the server only for low-sensitivity data until the provider supports safer
credential handling.
## Duplicate Check
Existing MCP security content covers least privilege and threat modeling. This
entry focuses specifically on OAuth, resource indicators, audience binding, and
remote MCP token handling.
## References
- MCP authorization specification - https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization
- MCP transports specification - https://modelcontextprotocol.io/specification/2025-06-18/basic/transports
- MCP tools specification - https://modelcontextprotocol.io/specification/2025-06-18/server/tools
- MCP introduction - https://modelcontextprotocol.io/docs/getting-started/intro
About this resource
Overview
Remote MCP servers are convenient because the client can connect to a hosted
endpoint instead of launching a local process. They also move trust into a
networked authorization flow. The MCP authorization specification is explicit:
HTTP-based transports should use OAuth 2.1-style flows, protected resource
metadata, authorization server metadata, resource indicators, bearer tokens, and
token audience validation.
This checklist is for maintainers and operators reviewing a remote MCP server
before connecting it to an AI client. It is intentionally practical: each item is
something you can verify from docs, metadata, client config, or a small test.
Review Checklist
Endpoint and transport
The endpoint uses HTTPS.
The server clearly identifies whether it uses Streamable HTTP, stdio, or a
custom transport.
Client setup does not place bearer tokens in query strings.
The endpoint path is stable enough to serve as a resource identifier.
Discovery and client registration
The server documents where OAuth metadata is discovered.
The authorization server supports appropriate OAuth metadata.
Dynamic client registration is supported or the docs explain the alternative.
Redirect URI handling is exact and does not allow open redirects.
Resource indicators and audience
Authorization and token requests include a resource value for the target MCP
server.
Tokens are audience-bound to the MCP server that will receive them.
The MCP server rejects tokens issued for another resource.
The server does not pass the client token through to unrelated downstream APIs.
Token storage and logging
Client config stores secrets in environment variables, secure keychain storage,
or an approved credential store.
Logs redact bearer tokens, authorization codes, and refresh tokens.
Error messages do not echo tokens or private resource identifiers.
Access tokens are short-lived where the authorization server supports it.
Tool risk
Tool names and descriptions are clear enough for a model to use correctly.
Write or delete tools require explicit user approval or narrower scopes.
Tools that return private data document the data class they can expose.
Rate limits and timeout behavior are visible in docs or error responses.
Red Flags
Red flag
Why it matters
Safer pattern
Token in URL
URLs leak through browser history, logs, and analytics
Use Authorization headers or environment-backed config
No audience validation
A token for one service can be reused against another
Bind tokens to the MCP server resource
Token passthrough
The MCP server becomes a confused deputy
Exchange or mint separate downstream tokens
Broad write tools
The model can trigger account-changing actions
Scope tools and require approval for mutations
Unclear retention
Prompts and tool outputs may be stored
Document retention and redact sensitive logs
Troubleshooting
The client receives 401 responses
Confirm the MCP server advertises protected resource metadata and that the client
can parse WWW-Authenticate. Check whether the token request included the same
resource URI the server expects.
The server accepts a token from another audience
Treat this as a blocking security issue. Audience validation is the core control
that prevents cross-service token reuse.
Docs recommend a URL with the token embedded
Prefer a header-based or environment-backed configuration. If that is impossible,
use the server only for low-sensitivity data until the provider supports safer
credential handling.
Duplicate Check
Existing MCP security content covers least privilege and threat modeling. This
entry focuses specifically on OAuth, resource indicators, audience binding, and
remote MCP token handling.
Show that MCP OAuth Token Audience Checklist is listed on HeyClaude. Paste this Markdown into your README — it renders the badge and links back to this page.
[](https://heyclau.de/entry/guides/mcp-oauth-token-audience-checklist)
How it compares
MCP OAuth Token Audience Checklist side by side with 3 alternatives on trust, install, platform support, and disclosed safety notes — all from reviewed registry metadata.
1 trust signal differ across this comparison (Submitter).
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.
A source-backed guide for designing Model Context Protocol servers with explicit authorization boundaries, narrow tools, scoped resources, privacy-aware logging, and least-privilege runtime access.
A practical pre-installation review workflow for Model Context Protocol servers. Inventory tools, resources, prompts, credentials, network reach, storage, and runtime permissions before connecting a server to Claude or another MCP client.
Source-backed guide for scoping MCP servers, tools, permissions, hooks, and memory when building Claude Code subagents for focused review, research, and implementation workflows.
✓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.
✓Design every tool as a capability grant: expose only the narrow action the client needs and reject arguments that exceed that boundary.
Require explicit human approval or a separate workflow for tools that write files, mutate remote systems, spend money, publish content, or delete data.
Do not pass through broad user tokens to downstream services; validate tokens for the MCP server audience and keep credentials revocable.
✓An MCP server gives Claude Code model-callable tools that can run on your behalf; a stdio server runs as a local process with your environment access, so treat installing one as running third-party code.
Anthropic reviews connectors against its listing criteria before adding them to the Anthropic Directory but does not security-audit or manage any MCP server, so trust verification is your responsibility (per code.claude.com/docs/en/security).
Servers that fetch external content can expose you to prompt injection; Claude Code requires trust verification for new MCP servers and prompts for approval before using project-scoped servers from .mcp.json. Prefer least-privilege credentials, scoped directories, and explicit approval for side-effect tools.
✓Subagents can inherit tool access from the main session unless their tools and disallowed tools are set deliberately.
MCP servers can expose external APIs, local files, browser sessions, or write actions, so bind each server to the subagent that actually needs it.
Worktree isolation reduces accidental cross-branch edits but does not replace review of generated patches.
Privacy notes
✓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.
✓Tool arguments, resource URIs, resource contents, prompts, traces, server logs, error reports, and downstream API responses can contain private data.
Redact secrets and customer data before logging, tracing, sharing debug output, or storing MCP interaction artifacts.
Keep test fixtures synthetic or sanitized until the server's authorization, resource filtering, and log retention behavior are reviewed.
✓MCP servers can expose local files, resources, prompt templates, tool arguments, tool outputs, logs, and retrieved data to the connected client and model workflow.
For HTTP/SSE transports, OAuth access tokens are stored in the system keychain (macOS) or a credentials file; use "Clear authentication" in the /mcp menu to revoke access. For stdio servers, credentials come from the environment you pass in.
Restrict OAuth scopes with oauth.scopes in .mcp.json so a remote server only receives the access it needs, and revoke credentials and delete persisted state when uninstalling a server that had access to private repositories, databases, or files.
✓MCP tool results, hook input, logs, and persistent subagent memory can contain repository paths, issue text, secrets, or customer data.
Avoid attaching production accounts or private datasets to broad research subagents.
Do not preload skills or memory that contain private policy unless the subagent is intended to see it.
Prerequisites
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.
A specific MCP server use case, target client, and list of actions or data sources the server should expose.
A chosen transport model such as local stdio for trusted local use or HTTP for remote/protected access.
A credential plan that separates development, test, and production access.
A review owner who can approve tool scopes, side effects, logging, and rollout.
The MCP server's documentation, package/repository source, config example, and declared tools/resources/prompts.
A list of credentials, files, network services, databases, browsers, or cloud APIs the server will access.
Permission to install the server in an isolated test profile before connecting it to production or personal data.
A rollback plan for removing the server and revoking tokens.
Claude Code with subagents enabled.
At least one MCP server configured or planned for the workflow.
A project where subagent tool access can be tested without exposing secrets.