The Standard Doorway AI Agents Were Missing
- Sreenath Kulkarni

- Jul 10
- 8 min read
How MCP Connects AI to the Systems Where Real Work Happens
In the first edition of AI Cloud Leader Insights, we established that enterprise AI is evolving from single assistants toward ecosystems of specialized agents — each owning a specific responsibility, each contributing to one seamless experience.
But that raises an immediate question.
Even if an AI agent understands exactly what a user wants, how does it actually reach the systems where the information and actions live?
That is the question this edition answers.
The Passenger Asked a Simple Question
Imagine a passenger standing near a departure board when a notification appears: Your flight is delayed.
The passenger opens the Airport AI Assistant and asks:
“My flight is delayed. Which gate should I go to, and will I still make my connection?”
From the passenger’s perspective, this is one question. From an architecture perspective, it may require several systems to contribute to the answer.
The latest delay may come from a Flight Operations System. The current departure gate may be maintained by Gate Operations. The onward journey may sit in a Passenger Services or itinerary platform. If the disruption becomes serious, baggage information or rebooking capabilities may also become relevant.
The AI model may understand the passenger’s intent perfectly. It can recognize that the traveller is not merely asking for a delay duration; the real concern is whether the journey can continue as planned. Yet understanding the question is only one part of the problem. The model does not inherently know that flight AI202 has been delayed by 35 minutes, that the gate has changed to B17, or that the connecting flight departs shortly after the revised arrival time.
That information lives elsewhere.
This is the point where an AI problem quietly becomes an integration problem.
The AI may understand the passenger perfectly. The real challenge begins when that intelligence needs live access to systems built with different APIs, contracts, and operational boundaries.
Behind One Answer, Several Integration Paths

The first integration rarely feels like a problem.
A team connects the Airport AI Assistant to the Flight Operations API, handles authentication, maps the response into a usable structure, and moves on. The demo works. The passenger can now ask for live flight status.
Then the assistant needs gate information. Another integration is added. Passenger connections introduce a different contract. Baggage operations expose yet another interface.
Think about what this looks like inside an airport operations room.
Imagine if every department had its own radio frequency, its own communication language, and its own security badge system. The check-in agent couldn't talk to gate operations without first learning an entirely new protocol. Gate operations couldn't reach passenger services without rebuilding that connection from scratch.
That is exactly what happens when AI applications integrate point-to-point with every system they touch. Each connection is reasonable in isolation. The complexity becomes visible only as the number of integrations grows.
And this pattern is not unique to airports. Consider an enterprise CRM, an ERP system, a support ticketing platform, or a financial ledger. Each exposes different APIs, different authentication mechanisms, different response structures. Every new AI application that needs data from these systems risks recreating the same integration work — slightly differently each time.
The architectural question therefore changes. It is no longer simply "Can the AI call an API?" Of course it can. The more useful question is:
The architectural question therefore changes. It is no longer simply, “Can the AI call an API?” Of course it can. The more useful question is:
How should AI applications consistently interact with the growing set of capabilities they need?
What If Every System Had a Standard Doorway?
This is where the Model Context Protocol, or MCP, becomes interesting.
MCP introduces a standardized protocol boundary through which AI applications can interact with external capabilities and context. Rather than making every AI application understand every backend integration in its own way, the architecture introduces a common interaction model between the AI side and systems exposing useful capabilities.
Think again about the airport. The Flight Operations System already knows how to track flights. Gate Operations already knows where departures are assigned. Passenger Services already understands itineraries and connections. The AI does not need to absorb those responsibilities or understand every internal implementation detail. It needs a consistent way to interact with what those domains can provide.
At a simplified level, the MCP architecture involves a Host, an MCP Client, and an MCP Server. The Host is the AI application or environment where the interaction takes place. The MCP Client maintains communication with an MCP Server. The MCP Server exposes capabilities from an external system through the protocol. Depending on the use case, those capabilities can be represented through concepts such as Tools, Resources, and Prompts.
Rather than explain all of MCP at once, let us follow one small part of our passenger’s question: What is the current status of flight AI202?
Building the Doorway with FastMCP
Suppose the airport already has a Flight Operations environment containing live operational data. We do not want the Airport AI Assistant to understand how that environment stores flight records, which internal service owns delay information, or how multiple backend responses are assembled.
Instead, we expose a clear capability: get_flight_status().
Using FastMCP, a simplified server could look like this:
If you are not a developer, don't worry about the syntax — focus on what the code represents
architecturally rather than line by line. The key idea is in the separation of responsibilities it creates.
from fastmcp import FastMCP
mcp = FastMCP("Flight Operations")
@mcp.tool()
def get_flight_status(flight_no: str) -> dict:
"""Return the latest operational status of a flight.""
# In production, call the real Flight Operations System
flights = {
"AI202": {
"status": "Delayed",
"delay_minutes": 35,
"gate": "B17"
}
}
return flights.get(
flight_no,
{"error": "Flight not found"}
)
if name == "__main__":
mcp.run()The code itself is intentionally simple. In a real airport environment, the function may call an operational API, query an approved service, enforce authorization rules, or transform data from a legacy platform. Those implementation details remain behind the server boundary.
What matters is the separation of responsibilities. The Flight Operations domain continues to own flight-related knowledge and logic. The AI application interacts with an exposed capability rather than becoming coupled to every internal detail of the underlying system.
The MCP Server therefore acts as more than a wrapper around a function. Architecturally, it creates a boundary between the AI application and the domain capability being exposed.
MCP does not make enterprise systems intelligent. It gives AI applications a consistent way to interact with the capabilities those systems already own.
The doorway now exists. The next question is how the Airport AI application uses it.
Connecting the AI Through an MCP Client
On the AI side, an MCP Client connects to the server and interacts with the capabilities available through that relationship. Using FastMCP, a simplified client may look like this:
import asyncio
from fastmcp import Client
async def main():
async with Client("server.py") as client:
# Learn what tools this server exposes
tools = await client.list_tools()
for tool in tools:
print(tool.name)
# Invoke the required capability
result = await client.call_tool(
"get_flight_status",
{"flight_no": "AI202"}
)
print(result)
asyncio.run(main())There are two important ideas hidden inside this small example. First, the client can ask the connected server which tools it exposes. A Flight Operations MCP Server might provide get_flight_status, get_delay_reason, or get_arrival_estimate. Second, once the required capability is identified, the client can invoke it with structured arguments.
This distinction matters because tool listing within an MCP relationship should not be confused with broader agent discovery. If an enterprise AI ecosystem asks, “Which specialist agent can help me handle a baggage disruption?”, that is a different architectural problem. Here, the question is narrower: “What capabilities does this connected MCP Server expose?”
Keeping that boundary clear becomes increasingly important as MCP, agent discovery, and agent-to-agent communication begin to appear together in enterprise architectures.
What Actually Happens Between Client and Server?

The code makes the interaction appear almost effortless, but underneath it sits a structured protocol exchange. When the client connects to the MCP Server, the relationship begins with initialization. The participants establish the protocol context and relevant capabilities for the session. The client can then request the tools exposed by the server and, when needed, invoke a selected tool with structured arguments.
For our passenger scenario, the sequence may look like this:
When the passenger asks about AI202, the AI application can use the available capability to request the latest flight status. The MCP Server executes the corresponding logic against the Flight Operations environment and returns the result through the protocol boundary. The AI can then transform operational data into a passenger-friendly response such as:
“AI202 is currently delayed by 35 minutes and is departing from Gate B17.”
It is also useful to separate the protocol interaction from the transport carrying that interaction. Local integrations may use stdio, while remote deployments can use supported HTTP-based transports. The deployment mechanism may change, but the architectural principle remains the same: the AI-side client and the capability-providing server interact through a standardized protocol model.
A Cleaner Airport Architecture, But Not a Complete One

Now return to the passenger's original question. Flight status alone is not enough. To answer where the passenger should go and whether the connection is still possible, the Airport AI Assistant needs capabilities from several operational domains.
A more mature architecture exposes domain-oriented MCP Servers for Flight Operations, Gate Operations, and Passenger Services — each domain owning its capabilities, each connected through a standard protocol boundary.
This is where MCP becomes architecturally significant. Domain teams can evolve their systems independently while preserving the capabilities they expose. The AI application gains consistency without becoming tightly coupled to every internal implementation detail.
However, MCP is not the entire enterprise AI platform.
Security, observability, governance, and operational health remain organizational responsibilities. MCP also does not answer how one specialist agent discovers another or how autonomous agents collaborate on a shared task. Those concerns belong to other layers of the architecture.
A standard protocol boundary simplifies integration — but it does not replace security, observability, governance, or agent collaboration.
One Question Answered, Others Still Remain
Let us return one final time to the passenger near the departure board.
The question has not changed:
“My flight is delayed. Which gate should I go to, and will I still make my connection?”
The Airport AI Assistant no longer needs to contain every operational capability or become tightly coupled to every system it touches. Flight Operations remains specialized. Gate Operations remains specialized. Passenger Services remains specialized. MCP provides the standard doorway through which the AI interacts with what those domains already own.
In the first edition, we framed the agent ecosystem around four questions: Who can help me? How do we work together? How do I access tools? Where do I find knowledge?
MCP gives us a strong answer to one part — how AI applications access external tools and context through a standard protocol boundary.
The other questions remain. And they are not unrelated topics. They are the next layers of the same architecture.
What's Next
MCP connects AI to systems. But when an agent needs help from another specialist agent — how does it find the right one? And once found, how do two agents collaborate across systems and organizational boundaries?
That is where the next edition takes us — into Agent Discovery and Agent-to-Agent Communication (A2A).
The airport is about to get a lot more interesting.
🚀 AICloudLeader InsightMCP solves the integration problem elegantly — but it is only one layer of the agentic architecture. The enterprises that understand where MCP ends and agent collaboration begins will build systems that are not just connected, but genuinely coordinated.
Follow AI Cloud Leader Insights so you don't miss the next edition.

Mình hay xem mấy dự đoán để lấy thêm góc nhìn thôi, chứ chưa bao giờ tin kiểu chắc ăn. Có thời gian mình còn ghi chép lại cho vui, rồi nhận ra hôm thì trúng ý, hôm thì sai khá nhiều, nên dần coi đó như một thói quen giải trí và tập bình tĩnh. Nhiều đứa bạn mình cứ nhắc dd xsmb như một cách “lọc” bớt lung tung, nhưng mình thấy quan trọng nhất vẫn là tự kiểm soát và biết dừng đúng lúc. Mình thích những bài phân tích có lý do rõ ràng, kiểu nói về chu kỳ hay tần suất, đọc xong hiểu được họ suy luận ra sao. Dù vậy mình vẫn nhắc…