
Share
As enterprises embrace MCP servers to streamline LLM integrations, common pitfalls threaten their success. This guide uncovers the critical best practices for building robust MCP infrastructure.
The Model Context Protocol (MCP) has been a game-changer over the past year, with many developers and enterprises rushing to build MCP servers. However, despite the initial hype, most MCP servers have fallen short of expectations. Many developers blame the protocol itself, but the real issue lies in how these servers are built.
MCP (Model Context Protocol) standardizes the integration between Large Language Models (LLMs) and external tools, data sources, and services. Before MCP, each integration required custom connectors. MCP simplifies this by defining three core primitives:
search_documents, create_issue)The goal of MCP is to build a server once and use it with any LLM.
MCP servers are not just thin wrappers around existing REST APIs. A well-designed REST API does not automatically translate into an effective MCP server. Here’s why:
REST API Design Principles:
Data Dump Services: MCP servers should not simply expose large-scale raw data. This bloats the LLM’s context window and degrades performance.
Consider an agent designed to track orders. A human developer would read the API docs, write a script calling GET /users, GET /orders, and GET /shipments in sequence, debug it, and deploy it.
However, a poorly designed MCP server might expose these three endpoints as separate tools. The agent would need to load all three tool descriptions, make three round-trips, and store intermediate results in the conversation history.
A well-designed MCP server, on the other hand, would expose a single tool, track_order(email). This tool internally calls the necessary endpoints and returns a concise result like "Order #12345 shipped via FedEx, arriving Thursday." This approach is outcome-oriented, reducing the number of calls and improving performance.

To build an effective MCP server, follow these six best practices:
Outcome-Oriented Tools:
track_order(email) instead of separate GET /users, GET /orders, and GET /shipments.Error Handling and Feedback:
Security and Authentication:
Performance Optimization:
Testing and Validation:
MCP works best when complemented by well-defined skills. A skill is a pre-built set of tools, resources, and prompts designed to perform specific tasks. By combining MCP with skills, you can create more powerful and flexible agents.
For example, a customer service agent could use a combination of MCP tools and predefined skills to handle common issues like order tracking, refunds, and account management.
The Model Context Protocol (MCP) is not the problem; it’s how we build our servers. By following these best practices, you can create effective MCP servers that
Tags
Original Sources
About the author
Kai built ML infrastructure at a Bay Area startup before developing an obsession with transformer architectures and inference optimisation that eventually pulled him out of product work entirely. A stint at a compute research lab sharpened his instinct for what actually matters in a model release versus what is marketing. He writes from the inside — from the perspective of someone who has debugged the systems he is describing at three in the morning. He is allergic to hype and instinctively drawn to the unglamorous plumbing questions that everyone else skips over.
More from The Engineer →This Week's Edition
22 January 2026
88 articles
Related Articles
Related Articles
More Stories