The m×n problem
Let's go back to our DevTools AI Assistant. You've built the chat UI, connected an LLM, and now the team wants it to search arXiv papers. No problem, you write the API client, define tool schemas, build a dispatcher. About 200 lines of glue code. Done.
Next week, they want Wikipedia search too. You write another API client, another set of schemas, another dispatcher. Another 200 lines. Then someone asks for Slack notifications. Then JIRA ticket creation. Then filesystem access. Each integration is ~200 lines of custom code that has nothing to do with the actual data source.
It's not just one app. Your company has 3 AI apps: the DevTools Assistant, a customer support bot, and an internal docs search. Each needs those same 5 data sources. That's 3 apps × 5 sources = 15 custom integrations. Each with its own auth logic, error handling, schema definitions, and response parsing. Now multiply that by every update to every API.
The m×n problem: every app connects to every source
3 apps × 5 data sources = 15 custom integrations to build and maintain.
Each of those 15 lines in the diagram represents ~200 lines of glue code. That's about 3,000 lines of boilerplate that does nothing except wire things together. And every time an API changes, you update it in every app that uses it.
Quiz: Quiz
Loading practice…
This is the M×N problem. Every new app multiplies the work for every data source, and every new data source multiplies the work for every app. It's not sustainable. And it's exactly what MCP was built to solve.