AI模型通信协议

MCP(Model Context Protocol)是一种标准化的AI模型通信协议,用于应用程序与AI模型之间的结构化交互,支持代码生成、项目创建等功能。

  • by Minhajms
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 minhajms/mcp-beginner-guide

使用说明

MCP入门指南

本项目以学生易于理解的实用方式演示了模型上下文协议(MCP)概念。

什么是MCP(模型上下文协议)?

MCP是应用程序与AI模型通信的标准化方式。它定义了如何:

  1. 应用程序可以请求AI功能
  2. AI模型可以访问工具和资源
  3. 结果以结构化格式返回

将MCP视为您的应用程序和AI功能之间的桥梁。

MCP关键组件说明

1.MCP主机

管理客户端和MCP服务器之间通信的组件。

  • 在本项目中: mcp_server.py 使用FastAPI应用程序

2.MCP客户端

向MCP服务器发送请求的应用程序。

  • 在本项目中: cli.py (命令行界面)

3.MCP服务器

处理请求并提供AI功能的组件。

  • 在本项目中: LocalDevAssistantMCP 类在 mcp_server.py

4.MCP资源

客户端可以读取的类似文件的数据。

  • 在此项目中:文件内容、项目列表、分析结果

5.MCP工具

AI模型可以调用的函数。

  • 在此项目中:项目创建、代码生成、文件操作

6.MCP提示

帮助完成特定任务的预先编写的模板。

  • 本项目中:系统提示、代码生成提示、分析提示

MCP在本项目中的工作原理

  1. 请求流:

    User → CLI (client) → MCP Server → Ollama (AI) → Response → User
    
  2. 示例:当你跑步时 python src/cli.py generate "function to read CSV":

    • CLI将其格式化为具有操作“generate_code”的MCP请求
    • MCP服务器收到请求
    • 服务器准备一个提示并将其发送给Ollama
    • Ollama生成代码
    • 响应已格式化并返回给用户

动手试一试

设置

  1. 安装要求:

    pip install -r requirements.txt
    
  2. 安装Ollama和所需型号:

    # Install Ollama from https://ollama.ai
    ollama serve
    ollama pull llama3.2
    

基本MCP命令

  1. 生成代码 (MCP工具示例):

    python src/cli.py generate "function to read CSV file" --language python
    
  2. 创建项目 (MCP资源示例):

    python src/cli.py create my_project --type python
    
  3. 与AI聊天 (MCP提示示例):

    python src/cli.py chat
    

项目结构

├── src/
│   ├── cli.py           # MCP Client
│   ├── mcp_server.py    # MCP Host & Server
│   ├── file_tools.py    # File operations tools
│   └── ollama_client.py # AI model interface
├── workspace/           # Project workspace
└── README.md            # This file

学习MCP概念

1.MCP请求结构

# From mcp_server.py
class MCPRequest(BaseModel):
    """Request model for MCP operations"""
    action: str
    parameters: Dict[str, Any] = {}
    context: Optional[str] = None

2.MCP响应结构

# From mcp_server.py
class MCPResponse(BaseModel):
    """Response model for MCP operations"""
    success: bool
    data: Optional[Any] = None
    message: str = ""
    error: Optional[str] = None

3.MCP工具注册

# From mcp_server.py
self.tools = {
    "create_project": self._create_project,
    "list_projects": self._list_projects,
    "generate_code": self._generate_code,
    # ... more tools
}

为什么MCP很重要

MCP提供了一种标准化的方法:

  1. 在应用程序中访问AI功能
  2. 让AI模型访问工具和资源
  3. 结构请求和响应
  4. 通过受控访问维护安全

通过了解MCP,您将能够更好地构建以结构化、安全的方式利用AI功能的应用程序。

后续步骤

  1. 探索代码,了解MCP是如何实现的
  2. 尝试修改工具或添加新工具
  3. 尝试不同的提示
  4. 构建自己的MCP客户端应用程序

资源