In his AI Speaker Series presentation at Sutter Hill Ventures, David Soria Parra of Anthropic, shared insights on the Model-Context-Protocol (MCP), an open protocol designed to standardize how AI applications interact with external data sources and tools. Here's my notes from his talk:
- Models are only as good as the context provided to them, making it crucial to ensure they have access to relevant information for specific tasks
- MCP standardizes how AI applications interact with external systems, similar to how the Language Server Protocol (LSP) standardized development tools
- MCP is not a protocol between models and external systems, but between AI applications that use LLMs and external systems
- Without MCP, AI development is fragmented with every application building custom implementations, custom prompts, and custom tool calls
- MCP separates the concerns of providing data access from building applications
- This separation allows application developers to focus on building better applications while data providers can focus on exposing their data effectively
How MCP Works
- Two major components exist in an MCP system: client (implemented by the application using the LLM) and server (serves context to the client)
- MCP servers offer: Tools (functions that perform actions), Resources (raw data content exposed by the server), Prompts (show how tools should be invoked)
- Application developers can connect their apps to any MCP server in the ecosystem
- API developers can expose their data to multiple AI applications by implementing an MCP server once
- Allows different organizations within large companies to build components independently that work together through the protocol
Writing Good Tools for MCP
- Tools should be simple and focused on specific tasks
- Comprehensive descriptions help models understand when and how to use the tools
- Error messages should be in natural language to facilitate better interactions
- The goal is to create tools that are intuitive for both models and users
Future Directions for MCP
- Remote MCP servers with proper authorization mechanisms
- An official MCP registry to discover available servers and tools
- Asynchronous execution for long-running tasks
- Streaming data capabilities from servers to clients
- Namespacing to organize tools and resources
- Improved elicitation techniques for better interactions
- There's a need for a structure to manage the protocol as it grows