A tech lead slides into your Slack with the familiar pitch: "We should move our Claude integrations to MCP." You ask what they have today. Four custom tools wired via function calling, running in production for eight months. You ask what's broken. Nothing. But MCP is the standard now. Sound familiar? This is the same trap teams fell into with Agent SDK hype—migrating for vibes instead of solving a problem. Valentin, a Data & AI consultant specializing in Claude stacks, breaks down why this framing misses what MCP actually does and when it's worth your migration cycles.
The Power Outlet Metaphor That Actually Works
MCP isn't a new model. It isn't an orchestration framework. It's not function-calling 2.0. According to Valentin's analysis on DEV.to, MCP is a standardized power outlet for your tools. An outlet is useless if you have one device and one wall—it pays off the moment you have multiple devices that need the same power source. The key insight: MCP standardizes how your tools are exposed, not how they're called. Raw function calling handles one-to-one relationships fine. The standardization argument only kicks in when you're scaling across teams, clients, or data sources.
Do the Math Before You Migrate
Before MCP, integration scaled at N×M. Five clients hitting ten tools meant fifty unique integrations to maintain—every pair needed custom wiring. With MCP, that collapses to M+N. Each tool exposes one MCP server. Each client speaks MCP once. That's it. Valentin puts it bluntly: that math is the only honest reason to adopt MCP. Everything else ("it's modern," "it's what Anthropic uses") is noise you're filtering out of a decision that should be purely economic.
When MCP Earns Its Keep
Three concrete scenarios justify the migration overhead. First, one tool serving multiple LLM clients—PMs on Claude Desktop, devs on Claude Code, support on an internal app you built—all hitting the same product database. Without MCP, you're maintaining three connectors and keeping their schemas in sync forever. With MCP, you write one server. Second, tapping into the existing ecosystem: servers already exist for GitHub, Notion, Slack, Postgres, Linear, Stripe. You install, configure credentials, plug in. Coding those integrations yourself is fine. Maintaining them while upstream APIs evolve is a part-time job nobody signed up for. Third, decoupling tool teams from app teams—the CRM team ships an MCP server with a clear contract instead of forcing the LLM app team to own CRM schema, auth, rate limiting, and error handling.
When MCP Is Pure Overhead
MCP isn't free. It adds a transport hop, a server to deploy, a spec to follow. Three cases where the math doesn't work: one app with two homemade tools in the same repo (adding network calls for zero portability gain), hyper-specific tools with no reuse path like legacy ERP integrations nobody else runs your way, and ultra-low-latency loops—voice agents, trading bots, real-time control systems where that transport hop shows up in your p99.
The Two Traps to Avoid
Valentin identifies the classic anti-pattern mirrored on both sides. Trap one: migrate everything because "it's the standard." Single-app teams suddenly grow a server fleet, deployment pipeline, and on-call rotation—all to rewrite tools that already worked. Months of effort for zero user-visible change. Trap two: refuse MCP and roll your own protocol. Six months later, you've reinvented MCP without the spec, the community servers, or the ecosystem compatibility. Your new Claude Code license can't talk to anything you built. A standard is the default when you expect multiple consumers—not a religion.
Three Questions Before You Migrate
Will my tools or data sources be consumed by more than one LLM client (Claude Desktop, Claude Code, internal apps, IDE) in the next 12 months? Does an official or community MCP server already exist for what I want to wire up? Do I need to decouple the team building the tool from the team building the LLM app? Two yes answers and MCP pays off. Otherwise raw function calling wins—less infrastructure, less surface area, less to debug at 2 AM.
Key Takeaways
- MCP standardizes tool exposure, not tool invocation—it doesn't replace function calling
- The N×M vs M+N math is the only honest adoption argument; everything else is hype
- Use MCP when multiple clients need the same tools or when you want ecosystem parity
- Stick with raw function calling for single-app setups, one-off integrations, or latency-critical loops