Before the Model Context Protocol existed, every agent had its own way of talking to tools. Custom function-calling schemas, ad-hoc context passing, different auth flows for every API. MCP fixes that. It's a thin protocol that lets LLMs talk to tools, data sources, and services through one standard interface.

Why MCP exists

The pain MCP solves is integration sprawl. If you have ten agents and five tools, you have fifty integrations to maintain. Each one is its own surface for bugs, security issues, and context drift. MCP cuts that to ten plus five: each agent speaks MCP, each tool exposes MCP, and they meet in the middle.

This sounds like REST with extras. The extras are what matter. MCP servers describe their tools' inputs, outputs, and side effects in a way an LLM can consume directly. The agent gets a tool catalog, not just an OpenAPI spec.

The server side

Building an MCP server is mostly mechanical. You expose tools, you describe them, you handle calls. The interesting design choices are about what to expose, not how.

A few rules I've landed on:

  • One MCP server per concern, not per service. A "well data" MCP server might wrap Snowflake, Neptune, and a REST API. Agents shouldn't know about those backends.
  • Tool descriptions are prompts. The LLM reads them to decide what to call. Sloppy descriptions produce sloppy tool choices.
  • Side effects deserve loud warnings in tool descriptions. If a tool writes to production, say so. Agents are credulous.

Composition

MCP composes well. You can put one MCP server in front of three others as a facade. You can chain calls. You can route based on session context. The protocol doesn't care.

This is where the value really shows up. New agent capability? Add a new tool to an existing MCP server. Twenty agents pick it up instantly. No agent code changes.

Onboarding new tools

The thing nobody talks about: MCP shortens the time from "we have an API" to "agents can use it" from weeks to hours. The bottleneck used to be wiring. Now the bottleneck is writing a good tool description.

That's the whole point.