A Survey of the Model Context Protocol (MCP): A Framework for Standardized, Agentic Interactions between LLMs and External Systems
- 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
- 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
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.
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 |
- 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/list
and URI templates.
- Reusable Templates: For standardized LLM interactions.
- Dynamic Context Injection: Supports arguments and multi-step workflows.
- Access Points: Via
prompts/list
andprompts/get
.
- 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/list
and invoked usingtools/call
.
- 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.).
- Logical Boundaries: Define scopes (directories, API endpoints) for resource access.
- Multi-Context Support: Enables composable, dynamic agent workflows.
- Real-Time Communication: Utilizes secure HTTP/SSE channels.
- Reliable Messaging: Ensures structured, bidirectional interaction.
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.
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.
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 |
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. |
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
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 |