Skip to content

MCP integration lacks per-message authentication and integrity verification #4840

@razashariff

Description

@razashariff

Summary

ADK's MCP integration enables agents to call tools via the Model Context Protocol, but MCP itself provides no cryptographic identity or message integrity layer. There is no mechanism to verify which agent issued a request, whether a tool definition has been tampered with, or whether a message is a replay.

This is a protocol-level gap that affects all MCP adopters.

The gap

  • No agent identity: Any client connecting over MCP can call any tool. There is no passport or certificate mechanism.
  • No message signing: JSON-RPC messages are sent unsigned. Parameters can be modified in transit.
  • No tool integrity: Tool definitions (tools/list) are not signed by their author. Tool poisoning (OWASP MCP03) allows an attacker to modify tool descriptions to change agent behavior.
  • No replay protection: The same message can be replayed indefinitely. No nonce, no timestamp window.

OWASP has published an MCP Top 10 covering these risks. CVEs with CVSS 9.6 have been filed against MCP implementations.

Existing work

An IETF Internet-Draft has been published to address this:

The spec adds agent passports (ECDSA P-256), per-message signing, tool definition signatures, and nonce-based replay protection as an envelope around existing JSON-RPC -- fully backward-compatible with current MCP.

Happy to discuss technical details or integration approaches.

Metadata

Metadata

Labels

mcp[Component] Issues about MCP supportneeds review[Status] The PR/issue is awaiting review from the maintainertools[Component] This issue is related to tools

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions