Review what a server can see and what its tools can change.
An integration may read files, query a database, send a message, or change a record. Those powers come from the server and the permissions it receives, not from the words “MCP” or “AI.” Treat the server and its outputs as part of the system’s trust boundary.
Check the sourceKnow who operates the server and what software or service it connects to.
Limit permissionsGrant only the data and actions needed for the task; separate read access from write or delete access.
Review side effectsShow what will be sent or changed, and ask before actions with meaningful consequences.
Test untrusted contentDocuments and tool results can contain misleading instructions. Keep data separate from trusted policy.
The MCP specification calls for user consent and control and says implementers must handle security in their applications. It also warns that tool behavior descriptions should be treated as untrusted unless they come from a trusted server. See why agent permissions belong at the tool boundary ↗.
Authentication identifies the client or user presenting a credential; authorization decides what that identity may access. In the 2026-07-28 specification, MCP authorization is optional. For remote HTTP transports, the specification defines a flow based on the OAuth 2.1 draft; it says this flow is not intended for local stdio servers, which retrieve credentials from the environment. The new version deprecates Dynamic Client Registration (DCR) in favor of Client ID Metadata Documents, while retaining DCR for compatibility. Clients must use tokens issued for that MCP server, and servers must validate tokens for their own resource instead of accepting or forwarding unrelated tokens. Read the versioned authorization specification ↗ for the full flow.