[{"data":1,"prerenderedAt":772},["ShallowReactive",2],{"blog-post-en-mcp-explained":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"tags":11,"body":14,"_type":766,"_id":767,"_source":768,"_file":769,"_stem":770,"_extension":771},"\u002Fen\u002Fblog\u002Fmcp-explained","blog",false,"","MCP Explained: Why the Model Context Protocol Became the USB-C of AI Tools","What MCP is, how clients and servers work in plain language, why every major agent framework adopted it, and what it means for building an AI team.","2026-07-18",[12,13],"concepts","mcp",{"type":15,"children":16,"toc":756},"root",[17,36,43,63,85,91,96,138,143,176,181,187,192,267,280,292,298,311,329,339,351,357,362,430,442,448,461,485,490,496,501,511,571,576,595,692,722,728,733,737,750],{"type":18,"tag":19,"props":20,"children":21},"element","p",{},[22,25,34],{"type":23,"value":24},"text","If you spend any time around AI agents in 2026, you run into the same three letters: MCP. It's in Claude Code's config, in ChatGPT's connector settings, in the docs of every agent framework worth using. The ",{"type":18,"tag":26,"props":27,"children":31},"a",{"href":28,"rel":29},"https:\u002F\u002Fmodelcontextprotocol.io",[30],"nofollow",[32],{"type":23,"value":33},"Model Context Protocol",{"type":23,"value":35}," went from an Anthropic side announcement in late 2024 to shared infrastructure for the entire agent ecosystem in about a year — one of the fastest standards adoptions in software history. This piece explains what it is, why it won, and — most practically — what it means if you're assembling a team of AI agents rather than just chatting with one.",{"type":18,"tag":37,"props":38,"children":40},"h2",{"id":39},"the-problem-every-integration-built-twice",[41],{"type":23,"value":42},"The problem: every integration built twice",{"type":18,"tag":19,"props":44,"children":45},{},[46,48,54,56,61],{"type":23,"value":47},"A language model on its own can only talk. To be useful as a worker, it needs to ",{"type":18,"tag":49,"props":50,"children":51},"em",{},[52],{"type":23,"value":53},"reach",{"type":23,"value":55}," things: your GitHub repos, your Slack, your database, your calendar, a browser. Before MCP, every one of those connections was a custom integration — and worse, a custom integration ",{"type":18,"tag":49,"props":57,"children":58},{},[59],{"type":23,"value":60},"per AI application",{"type":23,"value":62},". Claude needed its own GitHub connector, every startup's agent product needed another, your internal tool needed a third. N applications times M tools meant N×M integrations, each with its own auth handling, its own bugs, its own maintenance burden.",{"type":18,"tag":19,"props":64,"children":65},{},[66,68,75,77,83],{"type":23,"value":67},"MCP replaces that with one open protocol. ",{"type":18,"tag":26,"props":69,"children":72},{"href":70,"rel":71},"https:\u002F\u002Fwww.anthropic.com\u002Fnews\u002Fmodel-context-protocol",[30],[73],{"type":23,"value":74},"Anthropic's launch framing",{"type":23,"value":76}," in November 2024 was exactly this: a universal, open standard to replace fragmented integrations with a single protocol. The official docs use an analogy that stuck hard enough to become the standard shorthand: MCP is a ",{"type":18,"tag":78,"props":79,"children":80},"strong",{},[81],{"type":23,"value":82},"USB-C port for AI applications",{"type":23,"value":84},". Build a tool connection once, and anything that speaks the protocol can plug into it.",{"type":18,"tag":37,"props":86,"children":88},{"id":87},"the-clientserver-model-in-plain-language",[89],{"type":23,"value":90},"The client\u002Fserver model, in plain language",{"type":18,"tag":19,"props":92,"children":93},{},[94],{"type":23,"value":95},"MCP has two sides, and the mental model is simpler than the terminology suggests:",{"type":18,"tag":97,"props":98,"children":99},"ul",{},[100,120],{"type":18,"tag":101,"props":102,"children":103},"li",{},[104,106,111,113,118],{"type":23,"value":105},"An ",{"type":18,"tag":78,"props":107,"children":108},{},[109],{"type":23,"value":110},"MCP server",{"type":23,"value":112}," is a small program that wraps something useful — a service, a database, a set of files — and exposes it in a standard format. The GitHub MCP server knows how to list your PRs and create issues. A Postgres server knows how to run queries. The server handles the messy specifics of ",{"type":18,"tag":49,"props":114,"children":115},{},[116],{"type":23,"value":117},"its",{"type":23,"value":119}," system.",{"type":18,"tag":101,"props":121,"children":122},{},[123,124,129,131,136],{"type":23,"value":105},{"type":18,"tag":78,"props":125,"children":126},{},[127],{"type":23,"value":128},"MCP client",{"type":23,"value":130}," lives inside an AI application (the spec calls the application a ",{"type":18,"tag":49,"props":132,"children":133},{},[134],{"type":23,"value":135},"host",{"type":23,"value":137}," — Claude, ChatGPT, VS Code, Cursor, your agent framework). The client connects to servers, asks them what they can do, and relays the model's requests.",{"type":18,"tag":19,"props":139,"children":140},{},[141],{"type":23,"value":142},"A server can expose three kinds of things, and the distinction is worth knowing:",{"type":18,"tag":97,"props":144,"children":145},{},[146,156,166],{"type":18,"tag":101,"props":147,"children":148},{},[149,154],{"type":18,"tag":78,"props":150,"children":151},{},[152],{"type":23,"value":153},"Tools",{"type":23,"value":155}," — actions the model can take (\"create an issue,\" \"run this query,\" \"send this message\").",{"type":18,"tag":101,"props":157,"children":158},{},[159,164],{"type":18,"tag":78,"props":160,"children":161},{},[162],{"type":23,"value":163},"Resources",{"type":23,"value":165}," — data the model can read (files, records, documents).",{"type":18,"tag":101,"props":167,"children":168},{},[169,174],{"type":18,"tag":78,"props":170,"children":171},{},[172],{"type":23,"value":173},"Prompts",{"type":23,"value":175}," — reusable, parameterized workflows the server offers (\"summarize this week's tickets\").",{"type":18,"tag":19,"props":177,"children":178},{},[179],{"type":23,"value":180},"The key property: the AI application doesn't need to know anything about GitHub or Postgres specifically. It asks the server \"what do you offer?\", gets a machine-readable answer, and the model takes it from there. That's the whole trick — capability discovery over a standard wire format.",{"type":18,"tag":37,"props":182,"children":184},{"id":183},"why-it-won",[185],{"type":23,"value":186},"Why it won",{"type":18,"tag":19,"props":188,"children":189},{},[190],{"type":23,"value":191},"Open standards usually die of indifference. MCP didn't, and the timeline explains why:",{"type":18,"tag":97,"props":193,"children":194},{},[195,213,239,249],{"type":18,"tag":101,"props":196,"children":197},{},[198,203,205,211],{"type":18,"tag":78,"props":199,"children":200},{},[201],{"type":23,"value":202},"November 2024",{"type":23,"value":204}," — Anthropic ",{"type":18,"tag":26,"props":206,"children":208},{"href":70,"rel":207},[30],[209],{"type":23,"value":210},"releases MCP",{"type":23,"value":212}," as an open standard, with SDKs and a batch of reference servers. Early adopters include Block and Apollo, plus dev tools like Zed, Replit, and Sourcegraph.",{"type":18,"tag":101,"props":214,"children":215},{},[216,221,223,230,232,237],{"type":18,"tag":78,"props":217,"children":218},{},[219],{"type":23,"value":220},"March 2025",{"type":23,"value":222}," — the inflection point. OpenAI — Anthropic's most direct competitor — ",{"type":18,"tag":26,"props":224,"children":227},{"href":225,"rel":226},"https:\u002F\u002Ftechcrunch.com\u002F2025\u002F03\u002F26\u002Fopenai-adopts-rival-anthropics-standard-for-connecting-ai-models-to-data\u002F",[30],[228],{"type":23,"value":229},"adopts MCP across its products",{"type":23,"value":231},", including the Agents SDK and ChatGPT desktop. Sam Altman's line: \"People love MCP and we are excited to add support across our products.\" When your fiercest rival adopts your protocol, it stops being your protocol and starts being ",{"type":18,"tag":49,"props":233,"children":234},{},[235],{"type":23,"value":236},"the",{"type":23,"value":238}," protocol.",{"type":18,"tag":101,"props":240,"children":241},{},[242,247],{"type":18,"tag":78,"props":243,"children":244},{},[245],{"type":23,"value":246},"April 2025",{"type":23,"value":248}," — Google DeepMind confirms MCP support for Gemini models.",{"type":18,"tag":101,"props":250,"children":251},{},[252,257,258,265],{"type":18,"tag":78,"props":253,"children":254},{},[255],{"type":23,"value":256},"December 2025",{"type":23,"value":204},{"type":18,"tag":26,"props":259,"children":262},{"href":260,"rel":261},"https:\u002F\u002Fwww.anthropic.com\u002Fnews\u002Fdonating-the-model-context-protocol-and-establishing-of-the-agentic-ai-foundation",[30],[263],{"type":23,"value":264},"donates MCP to the Agentic AI Foundation",{"type":23,"value":266},", a directed fund under the Linux Foundation co-founded by Anthropic, Block, and OpenAI, with support from Google, Microsoft, AWS, and others. By that point Anthropic counted more than 10,000 active public MCP servers.",{"type":18,"tag":19,"props":268,"children":269},{},[270,272,278],{"type":23,"value":271},"By 2026 the question \"does it support MCP?\" has essentially stopped being worth asking about agent frameworks — all six of the major frameworks we compared in our ",{"type":18,"tag":26,"props":273,"children":275},{"href":274},"\u002Fblog\u002Fbest-multi-agent-frameworks-2026",[276],{"type":23,"value":277},"multi-agent frameworks roundup",{"type":23,"value":279}," (Claude Agent SDK, LangGraph, CrewAI, OpenAI Agents SDK, AG2, and AWS Strands) support it. It's table stakes, the way HTTP support is table stakes for a web framework.",{"type":18,"tag":19,"props":281,"children":282},{},[283,285,290],{"type":23,"value":284},"Why did it stick where other attempts didn't? Three things, in retrospect: it shipped with working code (SDKs and real servers, not just a spec PDF); it solved a pain every AI application vendor had ",{"type":18,"tag":49,"props":286,"children":287},{},[288],{"type":23,"value":289},"right then",{"type":23,"value":291},"; and Anthropic gave it away — first as an open spec, then formally to a neutral foundation — so adopting it never meant strategic surrender to a competitor.",{"type":18,"tag":37,"props":293,"children":295},{"id":294},"what-this-means-for-your-ai-team",[296],{"type":23,"value":297},"What this means for your AI team",{"type":18,"tag":19,"props":299,"children":300},{},[301,303,309],{"type":23,"value":302},"Here's where this stops being protocol trivia and starts being an operating decision. If you're building what we'd call an ",{"type":18,"tag":26,"props":304,"children":306},{"href":305},"\u002Fblog\u002Fhow-to-build-your-ai-team-2026",[307],{"type":23,"value":308},"AI team",{"type":23,"value":310}," — several agents in different roles, working your actual business systems — MCP changes two economics:",{"type":18,"tag":19,"props":312,"children":313},{},[314,319,321,327],{"type":18,"tag":78,"props":315,"children":316},{},[317],{"type":23,"value":318},"One set of connections, shared by every agent.",{"type":23,"value":320}," Without a standard, each agent (or each vendor's product) needs its own integration to your CRM, your ticketing system, your database. With MCP, you stand up one server per system, and every agent that speaks the protocol uses it. Your support agent, your research agent, and your ops agent all reach Slack through the same connector, governed the same way. When you ",{"type":18,"tag":26,"props":322,"children":324},{"href":323},"\u002Fblog\u002Fai-employee-roles-you-can-hire-2026",[325],{"type":23,"value":326},"add a new role to the team",{"type":23,"value":328},", it inherits the tool layer on day one instead of starting an integration project.",{"type":18,"tag":19,"props":330,"children":331},{},[332,337],{"type":18,"tag":78,"props":333,"children":334},{},[335],{"type":23,"value":336},"Less vendor lock-in.",{"type":23,"value":338}," Your integration investment — the servers, the auth setup, the operational knowledge — lives at the protocol layer, not inside any one platform. If you move an agent from one framework to another, or swap the model behind it, the tool connections come along. The switching cost that used to be \"rebuild every integration\" becomes \"point the new client at the same servers.\"",{"type":18,"tag":19,"props":340,"children":341},{},[342,344,349],{"type":23,"value":343},"Neither of these makes the ",{"type":18,"tag":49,"props":345,"children":346},{},[347],{"type":23,"value":348},"hard",{"type":23,"value":350}," parts of an AI team easy — defining roles, quality control, and knowing when a human takes over are still on you. But MCP removes an entire class of plumbing work that used to consume the first month of every agent project.",{"type":18,"tag":37,"props":352,"children":354},{"id":353},"the-ecosystem-servers-youll-actually-use",[355],{"type":23,"value":356},"The ecosystem: servers you'll actually use",{"type":18,"tag":19,"props":358,"children":359},{},[360],{"type":23,"value":361},"Concrete examples make this less abstract. Some of the most-used servers in practice:",{"type":18,"tag":97,"props":363,"children":364},{},[365,380,395,405,415],{"type":18,"tag":101,"props":366,"children":367},{},[368,378],{"type":18,"tag":78,"props":369,"children":370},{},[371],{"type":18,"tag":26,"props":372,"children":375},{"href":373,"rel":374},"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fgithub-mcp-server",[30],[376],{"type":23,"value":377},"GitHub's official MCP server",{"type":23,"value":379}," — repos, issues, PRs, Actions. The backbone of most coding-agent setups.",{"type":18,"tag":101,"props":381,"children":382},{},[383,393],{"type":18,"tag":78,"props":384,"children":385},{},[386],{"type":18,"tag":26,"props":387,"children":390},{"href":388,"rel":389},"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fplaywright-mcp",[30],[391],{"type":23,"value":392},"Playwright MCP",{"type":23,"value":394}," from Microsoft — gives agents a real browser: navigate, click, fill forms, read pages. This is how agents do web tasks that have no API.",{"type":18,"tag":101,"props":396,"children":397},{},[398,403],{"type":18,"tag":78,"props":399,"children":400},{},[401],{"type":23,"value":402},"Database servers",{"type":23,"value":404}," — Postgres and SQLite servers let an agent inspect schemas and run queries, which turns \"ask questions about our data\" from a BI project into a config entry.",{"type":18,"tag":101,"props":406,"children":407},{},[408,413],{"type":18,"tag":78,"props":409,"children":410},{},[411],{"type":23,"value":412},"Slack and communication servers",{"type":23,"value":414}," — read channels, post messages; the glue for agents that participate in team workflows.",{"type":18,"tag":101,"props":416,"children":417},{},[418,428],{"type":18,"tag":78,"props":419,"children":420},{},[421],{"type":18,"tag":26,"props":422,"children":425},{"href":423,"rel":424},"https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers",[30],[426],{"type":23,"value":427},"The reference servers repo",{"type":23,"value":429}," — Anthropic's maintained collection (filesystem, fetch, memory, git and more), plus links out to the community ecosystem.",{"type":18,"tag":19,"props":431,"children":432},{},[433,435,440],{"type":23,"value":434},"A useful habit when evaluating any server: look at what tools it exposes and ask \"would I give a new contractor this exact access?\" MCP standardizes the connection; it doesn't decide what an agent ",{"type":18,"tag":49,"props":436,"children":437},{},[438],{"type":23,"value":439},"should",{"type":23,"value":441}," be allowed to touch. That's still your call, and reputable clients ask for your confirmation before tools run.",{"type":18,"tag":37,"props":443,"children":445},{"id":444},"if-youre-not-a-developer",[446],{"type":23,"value":447},"If you're not a developer",{"type":18,"tag":19,"props":449,"children":450},{},[451,453,459],{"type":23,"value":452},"You don't need to touch any of this directly — but it should shape how you choose platforms. When evaluating agent products (we compare two popular ones in ",{"type":18,"tag":26,"props":454,"children":456},{"href":455},"\u002Fblog\u002Flindy-vs-relevance-ai",[457],{"type":23,"value":458},"Lindy vs. Relevance AI",{"type":23,"value":460},"), the MCP question is a proxy for two things you care about:",{"type":18,"tag":462,"props":463,"children":464},"ol",{},[465,475],{"type":18,"tag":101,"props":466,"children":467},{},[468,473],{"type":18,"tag":78,"props":469,"children":470},{},[471],{"type":23,"value":472},"Reach.",{"type":23,"value":474}," A platform that supports MCP can connect to thousands of existing servers, not just the twenty integrations its team built in-house. If a tool you rely on is niche, MCP support is often the difference between \"works with it\" and \"roadmap item.\"",{"type":18,"tag":101,"props":476,"children":477},{},[478,483],{"type":18,"tag":78,"props":479,"children":480},{},[481],{"type":23,"value":482},"Exit options.",{"type":23,"value":484}," Integrations built on an open protocol survive a platform switch. Integrations built on a proprietary connector system don't.",{"type":18,"tag":19,"props":486,"children":487},{},[488],{"type":23,"value":489},"The practical checklist: Does the platform let you add MCP servers? Are its native integrations MCP-based under the hood? Can you bring your own server for an internal system? Yes to all three means your tool layer belongs to you, not to the vendor.",{"type":18,"tag":37,"props":491,"children":493},{"id":492},"if-you-are-a-developer",[494],{"type":23,"value":495},"If you are a developer",{"type":18,"tag":19,"props":497,"children":498},{},[499],{"type":23,"value":500},"Getting started is genuinely quick. Two entry points:",{"type":18,"tag":19,"props":502,"children":503},{},[504,509],{"type":18,"tag":78,"props":505,"children":506},{},[507],{"type":23,"value":508},"Use existing servers.",{"type":23,"value":510}," In Claude Code, adding a server is one command:",{"type":18,"tag":512,"props":513,"children":517},"pre",{"className":514,"code":515,"language":516,"meta":7,"style":7},"language-bash shiki shiki-themes github-dark","claude mcp add github -- npx -y @modelcontextprotocol\u002Fserver-github\n","bash",[518],{"type":18,"tag":519,"props":520,"children":521},"code",{"__ignoreMap":7},[522],{"type":18,"tag":523,"props":524,"children":527},"span",{"class":525,"line":526},"line",1,[528,534,540,545,550,556,561,566],{"type":18,"tag":523,"props":529,"children":531},{"style":530},"--shiki-default:#B392F0",[532],{"type":23,"value":533},"claude",{"type":18,"tag":523,"props":535,"children":537},{"style":536},"--shiki-default:#9ECBFF",[538],{"type":23,"value":539}," mcp",{"type":18,"tag":523,"props":541,"children":542},{"style":536},[543],{"type":23,"value":544}," add",{"type":18,"tag":523,"props":546,"children":547},{"style":536},[548],{"type":23,"value":549}," github",{"type":18,"tag":523,"props":551,"children":553},{"style":552},"--shiki-default:#79B8FF",[554],{"type":23,"value":555}," --",{"type":18,"tag":523,"props":557,"children":558},{"style":536},[559],{"type":23,"value":560}," npx",{"type":18,"tag":523,"props":562,"children":563},{"style":552},[564],{"type":23,"value":565}," -y",{"type":18,"tag":523,"props":567,"children":568},{"style":536},[569],{"type":23,"value":570}," @modelcontextprotocol\u002Fserver-github\n",{"type":18,"tag":19,"props":572,"children":573},{},[574],{"type":23,"value":575},"Most agent frameworks have an equivalent — a config block or adapter that takes a server command or URL and exposes its tools to your agents.",{"type":18,"tag":19,"props":577,"children":578},{},[579,584,586,593],{"type":18,"tag":78,"props":580,"children":581},{},[582],{"type":23,"value":583},"Build your own.",{"type":23,"value":585}," Wrapping an internal system takes surprisingly little code with the official SDKs (TypeScript, Python, and others). A minimal Python server with ",{"type":18,"tag":26,"props":587,"children":590},{"href":588,"rel":589},"https:\u002F\u002Fmodelcontextprotocol.io\u002Fdocs\u002Fdevelop\u002Fbuild-server",[30],[591],{"type":23,"value":592},"FastMCP",{"type":23,"value":594},":",{"type":18,"tag":512,"props":596,"children":600},{"className":597,"code":598,"language":599,"meta":7,"style":7},"language-python shiki shiki-themes github-dark","from mcp.server.fastmcp import FastMCP\n\nmcp = FastMCP(\"orders\")\n\n@mcp.tool()\ndef get_order_status(order_id: str) -> str:\n    \"\"\"Look up the current status of an order.\"\"\"\n    return lookup_status(order_id)  # your existing logic\n\nmcp.run()\n","python",[601],{"type":18,"tag":519,"props":602,"children":603},{"__ignoreMap":7},[604,612,622,631,639,648,657,666,675,683],{"type":18,"tag":523,"props":605,"children":606},{"class":525,"line":526},[607],{"type":18,"tag":523,"props":608,"children":609},{},[610],{"type":23,"value":611},"from mcp.server.fastmcp import FastMCP\n",{"type":18,"tag":523,"props":613,"children":615},{"class":525,"line":614},2,[616],{"type":18,"tag":523,"props":617,"children":619},{"emptyLinePlaceholder":618},true,[620],{"type":23,"value":621},"\n",{"type":18,"tag":523,"props":623,"children":625},{"class":525,"line":624},3,[626],{"type":18,"tag":523,"props":627,"children":628},{},[629],{"type":23,"value":630},"mcp = FastMCP(\"orders\")\n",{"type":18,"tag":523,"props":632,"children":634},{"class":525,"line":633},4,[635],{"type":18,"tag":523,"props":636,"children":637},{"emptyLinePlaceholder":618},[638],{"type":23,"value":621},{"type":18,"tag":523,"props":640,"children":642},{"class":525,"line":641},5,[643],{"type":18,"tag":523,"props":644,"children":645},{},[646],{"type":23,"value":647},"@mcp.tool()\n",{"type":18,"tag":523,"props":649,"children":651},{"class":525,"line":650},6,[652],{"type":18,"tag":523,"props":653,"children":654},{},[655],{"type":23,"value":656},"def get_order_status(order_id: str) -> str:\n",{"type":18,"tag":523,"props":658,"children":660},{"class":525,"line":659},7,[661],{"type":18,"tag":523,"props":662,"children":663},{},[664],{"type":23,"value":665},"    \"\"\"Look up the current status of an order.\"\"\"\n",{"type":18,"tag":523,"props":667,"children":669},{"class":525,"line":668},8,[670],{"type":18,"tag":523,"props":671,"children":672},{},[673],{"type":23,"value":674},"    return lookup_status(order_id)  # your existing logic\n",{"type":18,"tag":523,"props":676,"children":678},{"class":525,"line":677},9,[679],{"type":18,"tag":523,"props":680,"children":681},{"emptyLinePlaceholder":618},[682],{"type":23,"value":621},{"type":18,"tag":523,"props":684,"children":686},{"class":525,"line":685},10,[687],{"type":18,"tag":523,"props":688,"children":689},{},[690],{"type":23,"value":691},"mcp.run()\n",{"type":18,"tag":19,"props":693,"children":694},{},[695,697,703,705,712,714,720],{"type":23,"value":696},"That's a real, connectable server: any MCP client — Claude, an agent built on any major framework, a colleague's Cursor — can now call ",{"type":18,"tag":519,"props":698,"children":700},{"className":699},[],[701],{"type":23,"value":702},"get_order_status",{"type":23,"value":704},". The ",{"type":18,"tag":26,"props":706,"children":709},{"href":707,"rel":708},"https:\u002F\u002Fmodelcontextprotocol.io\u002Fdocs\u002Flearn\u002Farchitecture",[30],[710],{"type":23,"value":711},"architecture docs",{"type":23,"value":713}," cover transports, resources, and prompts when you outgrow the minimal case. And if you want to see multiple agents sharing servers like these in a live workflow, ",{"type":18,"tag":26,"props":715,"children":717},{"href":716},"\u002Fblog\u002Fclaude-code-agent-teams-guide",[718],{"type":23,"value":719},"Claude Code's agent teams",{"type":23,"value":721}," is an easy place to watch it happen — teammates load the same MCP servers your main session does.",{"type":18,"tag":37,"props":723,"children":725},{"id":724},"the-takeaway",[726],{"type":23,"value":727},"The takeaway",{"type":18,"tag":19,"props":729,"children":730},{},[731],{"type":23,"value":732},"MCP won because it made the boring part of AI agents — connecting them to real systems — boring in the good way: standardized, reusable, nobody's moat. For anyone assembling an AI team, that's the part you want to be boring. Build your tool layer once, on the open standard, and spend your attention on the parts that actually differentiate — what your agents do, how well they do it, and how they work together.",{"type":18,"tag":734,"props":735,"children":736},"hr",{},[],{"type":18,"tag":19,"props":738,"children":739},{},[740,742,748],{"type":23,"value":741},"We track the agent ecosystem as it evolves. Follow BuildYour.Group for more, or ",{"type":18,"tag":26,"props":743,"children":745},{"href":744},"\u002F",[746],{"type":23,"value":747},"join the early-access waitlist",{"type":23,"value":749}," on the homepage if you're building an AI team of your own.",{"type":18,"tag":751,"props":752,"children":753},"style",{},[754],{"type":23,"value":755},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":624,"depth":624,"links":757},[758,759,760,761,762,763,764,765],{"id":39,"depth":614,"text":42},{"id":87,"depth":614,"text":90},{"id":183,"depth":614,"text":186},{"id":294,"depth":614,"text":297},{"id":353,"depth":614,"text":356},{"id":444,"depth":614,"text":447},{"id":492,"depth":614,"text":495},{"id":724,"depth":614,"text":727},"markdown","content:en:blog:mcp-explained.md","content","en\u002Fblog\u002Fmcp-explained.md","en\u002Fblog\u002Fmcp-explained","md",1784513368464]