{"slug": "mcp-a2a-you-re-building-two-integration-layers-whether-you-realise-it-or-not", "title": "MCP + A2A: You're Building Two Integration Layers Whether You Realise It or Not", "summary": "A developer argues that the emerging two-layer stack of MCP (Model Context Protocol) for vertical agent-resource integration and A2A (Agent-to-Agent) for horizontal inter-agent communication risks repeating the failures of Enterprise Service Buses (ESBs) unless teams adopt clear interoperability strategies, thin MCP tools, abstracted A2A frameworks, and separate observability for each layer.", "body_md": "If you're building agentic systems in 2025, chances are you've already got two integration layers in your stack:\n\nThey're not competing. They're complementary. But without a clear interoperability story, you're setting yourself up for the kind of integration spaghetti that kept enterprise architects busy (and miserable) in the ESB era.\n\nMCP is Anthropic's answer to a simple problem: how do you give an LLM structured, reliable access to external resources without writing bespoke glue code for every data source?\n\nInstead of hardcoding database queries or API calls into your prompts, you expose them as **MCP servers**. Your AI client connects via a standard protocol, discovers available tools, and invokes them with typed parameters.\n\n**Example use case:**\n\n``` python\n# MCP server exposes a tool\n@mcp_tool\ndef query_customer_orders(customer_id: str) -> list[Order]:\n    return db.execute(\"SELECT * FROM orders WHERE customer_id = ?\", customer_id)\n```\n\nYour LLM can now call `query_customer_orders`\n\nas a function — no prompt engineering, no brittle scraping, no hoping the model \"figures it out\".\n\nMCP is **vertical integration**: connecting one agent to the resources it needs to do its job.\n\nA2A is horizontal. It's about agents talking to *other agents*.\n\nImagine you've got:\n\nWhen a customer asks \"Where's my refund?\", the support agent needs to talk to billing. That's A2A.\n\nA2A protocols define:\n\nUnlike MCP, A2A is still fragmented. There's no single standard. You might be using:\n\nEach works. None interoperate cleanly.\n\nIf you worked in enterprise integration in the 2000s, this smells like **ESB déjà vu**.\n\nThe Enterprise Service Bus promised to solve the n-squared integration problem: instead of every system talking directly to every other system, route everything through a central bus.\n\nIt worked — until it didn't. ESBs became:\n\nThe [two-layer stack](https://www.icentricagency.com/insights/mcp-a2a-the-two-layer-stack-wiring-the-internet-of-agents-1) emerging now — MCP below, A2A above — risks the same fate if we're not careful.\n\nMCP is brilliant for standardising resource access. Don't abuse it by cramming business logic into MCP tools. Keep them thin, composable, and stateless.\n\nDon't mix pub/sub and RPC in the same workflow unless you have a damn good reason. Consistency beats flexibility when debugging multi-agent failures at 2am.\n\nWhatever A2A framework you choose today will probably be legacy in 18 months. Wrap it. Abstract it. Make it swappable.\n\n**Example:**\n\n``` php\nclass AgentInvoker(Protocol):\n    def invoke(self, agent_id: str, task: dict) -> dict:\n        ...\n\nclass KafkaAgentInvoker(AgentInvoker):\n    # Implementation today\n\nclass GrpcAgentInvoker(AgentInvoker):\n    # Swap in tomorrow\n```\n\nMCP failures look different to A2A failures:\n\nYour observability stack needs to distinguish them.\n\nThere's no silver bullet yet. MCP is maturing fast, but A2A is still the Wild West. If you're building production agentic systems — especially in regulated industries or at scale — treat this as an **architecture risk**, not just a tooling choice.\n\nYou don't need to freeze development. But you *do* need to:\n\nThe teams that get this right won't be the ones with the cleverest agents. They'll be the ones who can rewire them without a full rewrite.\n\nIf you're evaluating MCP, A2A, or any other part of the agentic stack and want a second opinion, teams specialising in [AI automation and software development](https://www.icentricagency.com) can help you de-risk the architecture before you're too deep to reverse course.\n\nBut honestly? Just don't build another ESB. We've been there. It wasn't fun.", "url": "https://wpnews.pro/news/mcp-a2a-you-re-building-two-integration-layers-whether-you-realise-it-or-not", "canonical_source": "https://dev.to/icentric/mcp-a2a-youre-building-two-integration-layers-whether-you-realise-it-or-not-1578", "published_at": "2026-06-29 09:05:26+00:00", "updated_at": "2026-06-29 09:27:16.257070+00:00", "lang": "en", "topics": ["ai-agents", "large-language-models", "developer-tools", "ai-infrastructure"], "entities": ["Anthropic", "MCP", "A2A", "ESB", "Kafka", "gRPC", "iCentric Agency"], "alternates": {"html": "https://wpnews.pro/news/mcp-a2a-you-re-building-two-integration-layers-whether-you-realise-it-or-not", "markdown": "https://wpnews.pro/news/mcp-a2a-you-re-building-two-integration-layers-whether-you-realise-it-or-not.md", "text": "https://wpnews.pro/news/mcp-a2a-you-re-building-two-integration-layers-whether-you-realise-it-or-not.txt", "jsonld": "https://wpnews.pro/news/mcp-a2a-you-re-building-two-integration-layers-whether-you-realise-it-or-not.jsonld"}}