<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: SANJEEVA KUMAR SSK</title>
    <description>The latest articles on DEV Community by SANJEEVA KUMAR SSK (@sanjeeva_kumarssk_03c040).</description>
    <link>https://dev.to/sanjeeva_kumarssk_03c040</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3903586%2Fdc9f2a5e-1aa9-4850-90ef-ffe64c6eb236.jpg</url>
      <title>DEV Community: SANJEEVA KUMAR SSK</title>
      <link>https://dev.to/sanjeeva_kumarssk_03c040</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sanjeeva_kumarssk_03c040"/>
    <language>en</language>
    <item>
      <title>MCP Connects Agents to Tools. A2A Connects Agents to Each Other. Here's Why That Distinction Changes Everything</title>
      <dc:creator>SANJEEVA KUMAR SSK</dc:creator>
      <pubDate>Wed, 29 Apr 2026 05:49:04 +0000</pubDate>
      <link>https://dev.to/sanjeeva_kumarssk_03c040/mcp-connects-agents-to-tools-a2a-connects-agents-to-each-other-heres-why-that-distinction-599e</link>
      <guid>https://dev.to/sanjeeva_kumarssk_03c040/mcp-connects-agents-to-tools-a2a-connects-agents-to-each-other-heres-why-that-distinction-599e</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-cloud-next-2026-04-22"&gt;Google Cloud NEXT Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I've spent the past week digging into every major announcement from Google Cloud &lt;br&gt;
NEXT '26. Gemini Enterprise Agent Platform. TPU v8. ADK v1.0 stable. Project Mariner. &lt;br&gt;
There's a lot to love.&lt;/p&gt;

&lt;p&gt;But one thing kept nagging me: &lt;strong&gt;everyone is building multi-agent systems without &lt;br&gt;
actually understanding the communication layer underneath them.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At NEXT '26, Google made two protocol-level announcements that most keynote &lt;br&gt;
recaps buried in footnotes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A2A v1.0&lt;/strong&gt; is now production-stable, running at 150 organizations, and 
governed by the Linux Foundation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP (Model Context Protocol)&lt;/strong&gt; is now natively integrated across Google 
Cloud services (BigQuery, Maps, GKE, Compute Engine)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are NOT the same thing. They are NOT competing. And &lt;strong&gt;if you're building &lt;br&gt;
agents without understanding both, you are going to have a very bad time in production.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let me explain the difference — and then show you exactly how to use them together.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Confusion Everyone Has
&lt;/h2&gt;

&lt;p&gt;When Google announced MCP support in December 2025, and then doubled down on &lt;br&gt;
A2A at NEXT '26, a lot of developers asked: &lt;em&gt;"So which one do I use?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is the wrong question. Here's a cleaner mental model:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;MCP&lt;/strong&gt; = how your agent connects to &lt;strong&gt;tools and data sources&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;A2A&lt;/strong&gt; = how your agent communicates with &lt;strong&gt;other agents&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Think of it like a company:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MCP is the internal tool stack — Slack, Notion, your CRM, your database&lt;/li&gt;
&lt;li&gt;A2A is the org chart — who delegates to whom, who can request what from whom&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you only have MCP, your agent is a brilliant solo worker drowning in tasks.&lt;br&gt;
If you only have A2A, your agents can coordinate perfectly but have no tools to &lt;br&gt;
actually do anything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You need both.&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Why A2A v1.0 Matters More Than You Think
&lt;/h2&gt;

&lt;p&gt;The original A2A launch (early 2025) had 50+ partners. At NEXT '26, it's 150 &lt;br&gt;
organizations running it &lt;strong&gt;in production&lt;/strong&gt; — not pilots, not proofs of concept.&lt;/p&gt;

&lt;p&gt;Microsoft, AWS, Salesforce, SAP, and ServiceNow are all routing real tasks through A2A.&lt;/p&gt;

&lt;p&gt;What changed in v1.2 (announced at NEXT '26):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Signed Agent Cards&lt;/strong&gt; — cryptographic signatures for domain verification, 
so you can trust the agent you're talking to&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Linux Foundation governance&lt;/strong&gt; — this is no longer a Google protocol. 
It's an open standard with independent oversight&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native ADK integration&lt;/strong&gt; — A2A support is now built into Google's ADK, 
LangGraph, CrewAI, LlamaIndex Agents, Semantic Kernel, and AutoGen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point is huge. It means the ecosystem around A2A just became &lt;br&gt;
language-agnostic and framework-agnostic on the same day ADK hit stable v1.0 &lt;br&gt;
in Python, Go, Java, and TypeScript.&lt;/p&gt;


&lt;h2&gt;
  
  
  A Real Example: The Procurement Agent Problem
&lt;/h2&gt;

&lt;p&gt;Here's a scenario I've seen in almost every enterprise I've worked with:&lt;/p&gt;

&lt;p&gt;A company has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;finance agent&lt;/strong&gt; that knows about budgets and purchase limits&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;HR agent&lt;/strong&gt; that knows about team headcount and contractor approvals&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;procurement agent&lt;/strong&gt; that actually places orders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the old world, these three systems talk through custom API glue code that &lt;br&gt;
someone wrote in 2023 and nobody fully understands anymore.&lt;/p&gt;

&lt;p&gt;With A2A + ADK, the procurement agent can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Receive a purchase request via MCP (connected to your Slack or email tool)&lt;/li&gt;
&lt;li&gt;Use A2A to ask the finance agent: &lt;em&gt;"Is this within budget?"&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Use A2A to ask the HR agent: &lt;em&gt;"Is this contractor already approved?"&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Get structured responses from both agents&lt;/li&gt;
&lt;li&gt;Make a decision and place the order via MCP (connected to your ERP system)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No custom API code. No parsing each system's proprietary response format. &lt;br&gt;
Secure handoffs with signed agent cards. Full audit trail.&lt;/p&gt;


&lt;h2&gt;
  
  
  Building It: ADK + A2A in Practice
&lt;/h2&gt;

&lt;p&gt;Here's a minimal Python example using ADK v1.0 that shows what this actually &lt;br&gt;
looks like in code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;google.adk.agents&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;LlmAgent&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;google.adk.tools.a2a&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;A2AClient&lt;/span&gt;

&lt;span class="c1"&gt;# Initialize the A2A client pointing to your finance agent
&lt;/span&gt;&lt;span class="n"&gt;finance_agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;A2AClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;agent_card_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://finance.yourcompany.com/.well-known/agent.json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Initialize the A2A client for your HR agent
&lt;/span&gt;&lt;span class="n"&gt;hr_agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;A2AClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;agent_card_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://hr.yourcompany.com/.well-known/agent.json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Your procurement orchestrator
&lt;/span&gt;&lt;span class="n"&gt;procurement_orchestrator&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;LlmAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemini-3-flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;procurement_orchestrator&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;instruction&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
        You handle purchase requests. Before approving any request:
        1. Verify budget availability with the finance agent
        2. Verify contractor approval status with the HR agent
        3. Only proceed if both agents confirm
    &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;finance_agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;as_tool&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;hr_agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;as_tool&lt;/span&gt;&lt;span class="p"&gt;()]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;agent_card_url&lt;/code&gt; points to a JSON file that describes what the agent can do, &lt;br&gt;
what data it accepts, and — in v1.2 — carries a cryptographic signature so you &lt;br&gt;
know you're talking to the right agent.&lt;/p&gt;

&lt;p&gt;This is what Google means by &lt;strong&gt;"structured and secure"&lt;/strong&gt; agent-to-agent &lt;br&gt;
communication. It's not agents sending each other free-text messages. &lt;br&gt;
It's a typed, verifiable protocol.&lt;/p&gt;


&lt;h2&gt;
  
  
  The MCP Side: Connecting to Real Tools
&lt;/h2&gt;

&lt;p&gt;While A2A handles agent-to-agent coordination, your agents still need to &lt;br&gt;
connect to actual tools. This is where MCP comes in.&lt;/p&gt;

&lt;p&gt;At NEXT '26, Google launched fully managed MCP servers for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;BigQuery&lt;/strong&gt; — agents query your data warehouse directly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Maps&lt;/strong&gt; — agents get location intelligence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compute Engine&lt;/strong&gt; — agents can provision and manage VMs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kubernetes Engine (GKE)&lt;/strong&gt; — agents manage container workloads&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using ADK, connecting to these is straightforward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;google.adk.tools.mcp&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;MCPToolset&lt;/span&gt;

&lt;span class="c1"&gt;# Connect your agent to BigQuery via managed MCP
&lt;/span&gt;&lt;span class="n"&gt;bigquery_tools&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;MCPToolset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;connection_params&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nc"&gt;SseServerParams&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://bigquery.googleapis.com/mcp/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Your analytics agent now has live BigQuery access
&lt;/span&gt;&lt;span class="n"&gt;analytics_agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;LlmAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemini-3-flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;analytics_agent&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;instruction&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You answer data questions using live BigQuery data.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;bigquery_tools&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now combine this with A2A, and your procurement orchestrator from earlier &lt;br&gt;
can delegate data lookups to an analytics agent — which uses MCP to hit &lt;br&gt;
BigQuery — and get structured results back through A2A.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That's the full stack.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Part I'm Most Excited About (And Most Worried About)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Excited:&lt;/strong&gt; Agent Gateway.&lt;/p&gt;

&lt;p&gt;This was announced quietly at NEXT '26 but it's one of the most important pieces &lt;br&gt;
of the whole system. Agent Gateway is essentially a managed proxy that sits in &lt;br&gt;
front of your entire agent ecosystem. It understands both MCP and A2A protocols &lt;br&gt;
natively, enforces your security policies in real time, and integrates with &lt;br&gt;
Model Armor to block prompt injection attacks before they reach your agents.&lt;/p&gt;

&lt;p&gt;Think of it as the API Gateway of the agentic era. You wouldn't expose your &lt;br&gt;
REST APIs without a gateway. You shouldn't expose your agent network without one either.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Worried:&lt;/strong&gt; The signed agent cards in A2A v1.2 are a step in the right direction &lt;br&gt;
for trust, but key rotation and revocation aren't fully specified yet. In a world &lt;br&gt;
where your finance agent is making real budget decisions, the security model needs &lt;br&gt;
to be as rigorous as your OAuth token lifecycle. This is something the Linux &lt;br&gt;
Foundation governance will need to address fast.&lt;/p&gt;




&lt;h2&gt;
  
  
  What This Means For You Right Now
&lt;/h2&gt;

&lt;p&gt;If you're building anything with agents in 2026, here's the practical checklist:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Stop building custom agent communication layers.&lt;/strong&gt;&lt;br&gt;
A2A v1.0 is stable. The ecosystem support (LangGraph, CrewAI, LlamaIndex) means &lt;br&gt;
you're not locking into Google. Build to the protocol, not to a vendor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Use managed MCP servers where you can.&lt;/strong&gt;&lt;br&gt;
Google's managed MCP servers for BigQuery, Maps, GKE, and Compute Engine save you &lt;br&gt;
from running your own MCP infrastructure. Start there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Put Agent Gateway in front of everything.&lt;/strong&gt;&lt;br&gt;
Even if you're just running a two-agent prototype, get in the habit of routing &lt;br&gt;
through a gateway. Your future production self will thank you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Read the Agent Card specification.&lt;/strong&gt;&lt;br&gt;
The &lt;code&gt;/.well-known/agent.json&lt;/code&gt; format is where A2A actually lives. Understanding &lt;br&gt;
this file — what capabilities your agent advertises, how trust is established — &lt;br&gt;
is the most important 10 minutes you'll spend on agentic architecture this year.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Underrated Takeaway from NEXT '26
&lt;/h2&gt;

&lt;p&gt;Everyone's talking about Gemini 3.1 Pro. The Vertex AI rebrand. The TPU v8 &lt;br&gt;
Sunfish and Zebrafish chips.&lt;/p&gt;

&lt;p&gt;But the announcement with the longest tail isn't a model or a chip. It's a &lt;br&gt;
protocol reaching production maturity and independent governance.&lt;/p&gt;

&lt;p&gt;A2A v1.0 governed by the Linux Foundation is the HTTP moment for multi-agent &lt;br&gt;
systems. We'll look back at April 2026 the same way we look back at 1991: &lt;br&gt;
the point where the infrastructure became standardized enough for everything &lt;br&gt;
else to be built on top of it.&lt;/p&gt;

&lt;p&gt;The platform wars for AI are interesting. The &lt;strong&gt;protocol wars&lt;/strong&gt; are what &lt;br&gt;
actually determine who wins.&lt;/p&gt;

&lt;p&gt;Start building to the protocol.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Have you started experimenting with A2A or MCP in your projects? &lt;br&gt;
What's blocking you from moving to production? Drop it in the comments — &lt;br&gt;
I'm curious what real blockers look like out in the wild.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>cloudnextchallenge</category>
      <category>googlecloud</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
