UNPKG

agent-rules-kit

Version:

Bootstrap of **Cursor** rules (`.mdc`) and mirror documentation (`.md`) for AI agent-guided projects.

169 lines (114 loc) 4.87 kB
--- globs: <root>/**/*.py,<root>/**/*.ts,<root>/**/*.js,<root>/**/*.java,<root>/**/*.kt,<root>/**/*.cs,<root>/**/*.swift alwaysApply: false --- # Model Context Protocol (MCP) Architecture Concepts ## Overview The Model Context Protocol (MCP) is an open standard that enables AI applications to securely connect to data sources. It provides a standardized way for AI systems to access and interact with various data sources while maintaining security and control. ## Core Architecture ### MCP Client-Server Model MCP uses a client-server architecture where: - **MCP Client**: AI applications (like Claude Desktop, IDEs) that need access to data - **MCP Server**: Applications that expose data and capabilities through the MCP protocol - **Transport Layer**: Communication mechanism (stdio, HTTP, WebSocket) ### Key Components #### 1. Resources Resources represent data that MCP servers can provide to clients: - File contents - Database records - API responses - Live data feeds - Any structured information #### 2. Tools Tools are functions that MCP servers expose to clients for taking actions: - API calls - Database operations - File system operations - External service integrations #### 3. Prompts Prompts are reusable templates that clients can retrieve and use: - Interactive templates - Context-aware prompts - Parameterized instructions ## Protocol Communication ### Message Types 1. **Requests**: Client-initiated messages requesting action 2. **Responses**: Server replies to client requests 3. **Notifications**: One-way messages (no response expected) ### Transport Methods 1. **Stdio Transport**: Communication through standard input/output 2. **HTTP Transport**: RESTful communication over HTTP 3. **WebSocket Transport**: Real-time bidirectional communication ## Security Model ### Capability Declaration Servers declare their capabilities during initialization: - Resource access - Tool availability - Prompt templates ### Permission Management - Servers control what resources they expose - Clients control which servers they trust - Transport layer provides security boundaries ## Best Practices ### Server Design 1. **Single Responsibility**: Each server should focus on one domain 2. **Resource Efficiency**: Implement proper resource management 3. **Error Handling**: Provide clear error messages and recovery 4. **Documentation**: Comprehensive capability documentation ### Client Integration 1. **Server Discovery**: Implement robust server discovery mechanisms 2. **Capability Negotiation**: Handle server capabilities gracefully 3. **Error Recovery**: Implement retry and fallback strategies 4. **User Experience**: Provide clear feedback on MCP operations ### Data Management 1. **Schema Definition**: Use consistent data schemas 2. **Version Compatibility**: Handle protocol version differences 3. **Caching Strategy**: Implement appropriate caching for resources 4. **Data Validation**: Validate all incoming and outgoing data ## Architecture Patterns ### Microservices Pattern - Multiple specialized MCP servers - Each handling specific domains - Composed by MCP clients ### Gateway Pattern - Single MCP server aggregating multiple data sources - Unified interface for diverse backends - Centralized authentication and authorization ### Plugin Pattern - MCP servers as plugins to existing applications - Dynamic loading and unloading - Isolated execution environments ## SDK Selection Guidelines Choose the appropriate SDK based on: 1. **Existing Infrastructure**: Match your current technology stack 2. **Performance Requirements**: Consider language-specific performance characteristics 3. **Team Expertise**: Leverage existing team knowledge 4. **Integration Needs**: Consider existing service integrations 5. **Ecosystem**: Evaluate available libraries and tools ## Project Structure ### Standard MCP Project Layout ``` {projectPath}/ ├── src/ ├── server/ # MCP server implementation ├── client/ # MCP client implementation (if needed) ├── resources/ # Resource handlers ├── tools/ # Tool implementations └── prompts/ # Prompt templates ├── config/ # Configuration files ├── tests/ # Test files └── docs/ # Documentation ``` ## Integration Patterns ### AI Application Integration - Desktop applications (Claude Desktop) - Web applications - IDE extensions - Command-line tools ### Data Source Integration - Databases - File systems - APIs - Cloud services - Real-time data streams This architecture provides a flexible foundation for building MCP-enabled applications that can securely and efficiently connect AI systems with data sources.