Most AI pilots we see start the same way: a team wires an LLM up to a chat widget, it demos well, and then it stalls. The model can answer questions about a PDF someone pasted in, but it has no idea what’s actually in the CRM, the ticketing system, or the internal database - because it has no reliable, safe way to get there.
The gap isn’t the model, it’s the plumbing
Language models are good at reasoning over text. They are not, by default, connected to anything. Every “agent” you’ve seen do something impressive in production - book a meeting, update a record, look up a real order status - is doing that through some integration layer that exposes specific, scoped actions to the model. The Model Context Protocol (MCP) has emerged as a standard way to build that layer: an MCP server describes a set of tools and resources a model can call, and the model calls them the same way regardless of which client or provider is on the other end.
That standardization matters more than it sounds. Before MCP, every integration was bespoke - a one-off function-calling setup wired into one specific chat product. An MCP server, once built, works with any MCP-compatible client. Build it once against your ticketing system, and it’s usable from multiple tools without rebuilding the integration each time.
What an MCP server actually needs to get right
Building one isn’t just “wrap the API.” The parts that actually determine whether it’s usable and safe in production are:
- Scoping: expose the specific actions a model needs, not your entire internal API surface. A model with unrestricted database access is a liability, not a feature.
- Context: return information in a form a model can reason over - not a raw 400-field JSON blob, but the handful of fields that matter for the task.
- Guardrails: destructive or high-impact actions need confirmation steps, audit logging, and sensible rate limits, the same way you’d gate them for a junior employee with a new set of credentials.
Where this actually pays off
The projects where AI integration sticks aren’t the ones with the most impressive demo - they’re the ones scoped around a specific, well-understood task: triaging inbound support tickets against a real knowledge base, drafting a first-pass response using actual account data, or flagging anomalies in a system the model can genuinely query. Start narrow, get the integration layer right, and the model turns from a chatbot into something that can safely take real action inside your business.
“A model with unrestricted database access is a liability, not a feature.”
Mateusz Konicki






