MCP Server
Overview of MCP
Introduction
LLM-powered applications have created a pressing need for models to access up-to-date, domain-specific data from diverse sources. MCP addresses this by providing a unified protocol standardising how applications can dynamically expose data and capabilities to any LLM-powered application.
MCP Overview
At its core, MCP follows a JSON-RPC-based client-server architecture where a host application can connect to multiple servers:
MCP Host
- MCP Hosts are the core components that connect to the MCP Servers and use the data and capabilities exposed by the MCP Servers.
MCP Client
- MCP Clients are the core components that implement the client-side MCP protocol in different programming languages. They are the bridge through which the MCP Hosts connect with the MCP Servers.
MCP Server
- MCP Servers are the core components that expose the data and capabilities to the MCP Hosts. They are responsible for providing the data and capabilities to the MCP Hosts.
- MCP Servers can expose three main types of capabilities:
- Resources are data that the MCP servers make available for the applications to read. They can include file contents, API responses, etc. Resources are application-controlled; the applications decide how to include them in the user flow.
- Tools are capabilities and data exposed by the MCP servers. For example, a Kubernetes MCP server can expose tools for getting all pods and deleting a pod. Tools are model-controlled. LLMs decide to call them based on the given context.
- Prompts are templateable user interactions or workflows exposed by the MCP server. They are user-controlled. LLM Applications decide how to expose them so the user can select the appropriate prompt.