model-context-protocol-survey
model-context-protocol-survey copied to clipboard
Model Context Protocol (MCP)
A Survey of the Model Context Protocol (MCP): A Framework for Standardized, Agentic Interactions between LLMs and External Systems
π Table of Contents
-
A Survey of the Model Context Protocol (MCP): A Framework for Standardized, Agentic Interactions between LLMs and External Systems
- π Table of Contents
- Model Context Protocol (MCP): Empowering Agentic AI Interactions
- Comparative Analysis: MCP vs Traditional APIs
- MCP Architecture Overview
-
MCP Core Concepts
- Resources
- Prompts
- Tools
- Sampling
- Roots
- Transport Layer
- Agentic AI & Composability
- End-to-End MCP Workflow
- π§ AI Frameworks with MCP Integration
- Example Clients β Feature Support Matrix
- Reference & Third-Party Servers
- π¦ MCP SDK Information
Model Context Protocol (MCP): Empowering Agentic AI Interactions
The Model Context Protocol (MCP) provides a structured, standardized way for Large Language Models (LLMs) to seamlessly interact with external tools, resources, and systemsβmuch like how APIs and Language Server Protocols revolutionized application integration. MCP empowers the next generation of agentic AI by enabling autonomous, secure, and context-rich interactions.
Comparative Analysis: MCP vs Traditional APIs
| Feature | Traditional APIs | Model Context Protocol (MCP) |
|---|---|---|
| Tool Usage | Manual, bespoke code | Dynamic, standardized calls |
| Prompt Interaction | Basic text-based | Structured and context-aware |
| Context Handling | Limited | Integrated, built-in |
| Discovery | Manual | Dynamic and introspective |
| Security | Varies widely | Enforced mechanisms |
MCP Architecture Overview
Fig. 1: MCP Client-Server Architecture.
MCP Core Concepts
Resources
- Structured External Data: Exposes content such as text, audio, PDFs, system logs, and databases.
- Types: Text Resources (e.g., JSON, source code) and Binary Resources (e.g., PDFs, videos).
-
Discovery: Via endpoints like
resources/listand URI templates.
Prompts
- Reusable Templates: For standardized LLM interactions.
- Dynamic Context Injection: Supports arguments and multi-step workflows.
-
Access Points: Via
prompts/listandprompts/get.
Tools
Fig. 2: Tools provide active invocation using defined JSON schemas.
- Executable Capabilities: Trigger actions and external system calls.
- Definition: Each tool is defined with a name, description, input/output schema, and validation.
-
Invocation: Accessed via
tools/listand invoked usingtools/call.
Sampling
Fig. 3: Secure and contextual LLM completions via MCP sampling.
- Server-Initiated: Sends messages to the LLM through the client.
- Human-in-the-Loop: Incorporates review/approval for secure execution.
- Control Parameters: Enables fine-tuning (temperature, token limits, etc.).
Roots
Fig. 4: Roots define operational boundaries using URIs.
- Logical Boundaries: Define scopes (directories, API endpoints) for resource access.
- Multi-Context Support: Enables composable, dynamic agent workflows.
Transport Layer
- Real-Time Communication: Utilizes secure HTTP/SSE channels.
- Reliable Messaging: Ensures structured, bidirectional interaction.
Agentic AI & Composability
MCP is a catalyst for agentic AI, enabling autonomous agents to interact, collaborate, and chain tasks dynamically.
- Dual Role Components: MCP nodes act as both clients and servers.
- Dynamic Agent Chaining: Supports complex workflows with an orchestrator triggering specialized sub-agents.
- Human Oversight: Built-in review processes ensure security and reliability.
Fig. X: Dynamic agent chaining enabled by MCP composability.
Fig. y: Multi Agent Orchestrator.
End-to-End MCP Workflow
Fig. 5: Customer Support Chatbot Workflow powered by MCP.
Workflow Highlights:
- Capture & Send: Client submits a structured prompt.
- Secure Transport: Data is exchanged via the Transport Layer.
- Dynamic Invocation: Server retrieves tools and resources as needed.
- Sampling & Review: Server requests LLM completions with human oversight.
- Response Generation: Outputs are returned in a clear, structured format.
π§ AI Frameworks with MCP Integration
| Framework | Description | Integration Link |
|---|---|---|
| LangChain | Lightweight wrapper for making Anthropic MCP tools compatible with LangChain and LangGraph. | langchain-ai/langchain-mcp-adapters |
| CrewAI | Provides an MCP server to manage and trigger deployed CrewAI workflows. | crewAIInc/enterprise-mcp-server |
| LlamaIndex | Integration for connecting LlamaIndex tools with MCP tools using llama-index-tools-mcp. |
llama-index-tools-mcp |
Example Clients β Feature Support Matrix
| Client | Resources | Prompts | Tools | Sampling | Roots | Notes |
|---|---|---|---|---|---|---|
| Claude Desktop App | β | β | β | β | β | Full support for all MCP features |
| 5ire | β | β | β | β | β | Supports tools. |
| BeeAI Framework | β | β | β | β | β | Supports tools in agentic workflows. |
| Cline | β | β | β | β | β | Supports tools and resources. |
| Continue | β | β | β | β | β | Full support for all MCP features |
| Cursor | β | β | β | β | β | Supports tools. |
| Emacs Mcp | β | β | β | β | β | Supports tools in Emacs. |
| Firebase Genkit | β οΈ | β | β | β | β | Supports resource list and lookup through tools. |
| GenAIScript | β | β | β | β | β | Supports tools. |
| Goose | β | β | β | β | β | Supports tools. |
| LibreChat | β | β | β | β | β | Supports tools for Agents. |
| mcp-agent | β | β | β | β οΈ | β | Supports tools, server connection management, and agent workflows. |
| oterm | β | β | β | β | β | Supports tools. |
| Roo Code | β | β | β | β | β | Supports tools and resources. |
| Sourcegraph Cody | β | β | β | β | β | Supports resources through OpenCTX. |
| Superinterface | β | β | β | β | β | Supports tools. |
| TheiaAI/TheiaIDE | β | β | β | β | β | Supports tools for Agents in Theia AI and the AI-powered Theia IDE. |
| Windsurf Editor | β | β | β | β | β | Supports tools with AI Flow for collaborative development. |
| Zed | β | β | β | β | β | Prompts appear as slash commands. |
| SpinAI | β | β | β | β | β | Supports tools for Typescript AI Agents. |
| OpenSumi | β | β | β | β | β | Supports tools in OpenSumi. |
| Daydreams Agents | β | β | β | β | β | Support for drop-in servers to Daydreams agents. |
Reference & Third-Party Servers
| Server | Description | Link |
|---|---|---|
| AWS KB Retrieval | Retrieves data from the AWS Knowledge Base using Bedrock Agent Runtime. | GitHub |
| Google Drive | Enables file access and search within Google Drive. | GitHub |
| Google Maps | Provides location services, directions, and place details. | GitHub |
| Redis | Interacts with Redis key-value stores for caching and data management. | GitHub |
| PostgreSQL | Offers read-only database access with schema inspection. | GitHub |
| Cloudflare | Deploys, configures, and interrogates resources on the Cloudflare platform. | GitHub |
| Stripe | Integrates with Stripe API to manage payments, customers, and refunds. | GitHub |
| Neo4j | Provides interaction with Neo4j Graph Database for graph-based operations. | GitHub |
| Apify | Leverages pre-built cloud tools to extract data from websites and APIs. | GitHub |
π Source Repositories
π modelcontextprotocol.io/clients
π github.com/modelcontextprotocol/servers
π mcp.composio.dev
π mcp.so
π¦ MCP SDK Information
| SDK Name | Language | Description | Link |
|---|---|---|---|
| TypeScript MCP SDK | TypeScript | A comprehensive SDK to build MCP servers and clients in TypeScript. | GitHub |
| Python MCP SDK | Python | A robust SDK for implementing MCP servers and clients in Python. | GitHub |
| Java MCP SDK | Java | SDK for building and managing MCP infrastructure in Java. | GitHub |
| Kotlin MCP SDK | Kotlin | Kotlin-native SDK for MCP client-server communication. | GitHub |
| C# MCP SDK | C# | SDK for .NET/C# developers to integrate MCP functionality. | GitHub |