Why We Chose MCP Over Custom Tool APIs
Why we built agent tools on the Model Context Protocol instead of custom APIs: one standard interface, a growing ecosystem, and less glue code.
We built AIML.chat's agent tooling on the Model Context Protocol rather than bespoke integrations because MCP gives us one standard interface to many tools — so adding a new capability means connecting an MCP server, not writing and maintaining yet another custom API client. The standard is the leverage; the alternative is an ever-growing pile of glue code.
The custom-integration treadmill
Every action an agent can take — file an issue, look up an order, create a record — needs a connection to some external system. The naive approach is a custom integration per system: a client, an auth flow, a schema mapping, and ongoing maintenance as each API changes. That works for the first few, then becomes a treadmill. Each new integration is net-new code, each external API change is a fire to fight, and the surface area you maintain grows without bound. For a small team, that is exactly the kind of undifferentiated work that quietly eats all your time.
MCP breaks the treadmill by standardizing the interface between an agent and a tool. Instead of N custom clients, you speak one protocol, and any system that exposes an MCP server becomes available through the same path.
One protocol, many tools
| Concern | Custom integrations | MCP |
|---|---|---|
| Adding a tool | Write a new client | Connect an MCP server |
| Auth | Bespoke per service | Standard patterns |
| Tool discovery | Hard-coded | Advertised by the server |
| Maintenance | Grows per integration | Shared protocol layer |
With MCP, a tool advertises what it can do, and the agent discovers and calls it through the standard. That turns integration from a coding project into a configuration step, and it means the ecosystem works for us: as more systems ship MCP servers, our agents gain capabilities without us writing a line. We connect, not build.
Safety is part of the design
Standardizing the interface also let us standardize the safety controls. Because every tool call goes through one protocol layer, we apply a consistent human-in-the-loop approval step to anything that writes, rate-limit calls per conversation and per tenant, and log every call for audit — once, in one place, rather than reimplementing guardrails for each custom integration. A uniform interface makes uniform safety practical, which is hard to achieve when every connection is a snowflake.
The trade-off we accepted
MCP is a younger standard than, say, REST, so the ecosystem is still growing and not every system has a server yet. We accepted that because the direction is clear and the alternative — owning a custom integration for everything forever — is worse for a small team. Where a system lacks an MCP server, we can still bridge it, but the default is to lean on the protocol and let the ecosystem carry the weight. Betting on the standard is a bet that the work of integration should be shared, not endlessly re-paid by each platform.
Getting started
See MCP-powered agents on the AIML.chat free plan: index your content and connect tools through the protocol. Read what is MCP, MCP vs REST APIs, and compare tiers on the pricing page.
What does MCP give you over custom integrations?+
One standard interface to many tools — adding a capability becomes connecting an MCP server rather than writing and maintaining another bespoke API client.
How does MCP help with safety?+
Every tool call goes through one protocol layer, so approval gating, rate limits, and audit logging are applied once and consistently, not reimplemented per integration.
What is the downside of choosing MCP?+
It is a younger standard, so not every system has a server yet. We accepted that because the direction is clear and owning custom integrations forever is worse.
Related reading
Get the AIML.chat newsletter
Practical tips on AI docs assistants, RAG, and growing with content — a couple of emails a month. No spam, unsubscribe anytime.
Double opt-in — we'll email you to confirm.