模型上下文协议实现

MCP是一个标准化协议,用于AI模型与外部工具之间的通信,扩展AI能力。

  • by joemathew2004
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 joemathew2004/mcp_implementation

使用说明

MCP(模型上下文协议)实现

该项目展示了模型上下文协议(MCP)的全面实现,该协议允许AI模型通过标准化接口与外部工具进行通信。

什么是MCP?

MCP是一个开放协议,它规范了应用程序如何为大型语言模型(LLM)提供上下文。它实现了人工智能系统和本地运行的MCP服务器之间的通信,MCP服务器提供了额外的工具和资源来扩展人工智能功能。

项目结构

服务器

  • server_SGL.py -键值存储服务器(设置、获取、列表操作)
  • server_CALC.py -计算器服务器(加、减、乘、除、sqrt)
  • server_WEATHER.py -天气信息服务器(当前天气、预报、城市)

客户

  • multi_server_client.py -连接到多个MCP服务器并使用Groq API的主客户端

公用事业

  • start_servers.bat -批处理文件,用于启动不同端口上的所有服务器
  • .env -API密钥的环境文件(不包括在存储库中)
  • requirements.txt - Groq集成的依赖关系

入门指南

  1. 设置虚拟环境:

    # Create virtual environment
    python -m venv venv
    
    # Activate the virtual environment
    venv\Scripts\activate  # On Windows
    # source venv/bin/activate  # On macOS/Linux
    
    # Install dependencies
    pip install -r requirements.txt
    
  2. 创建一个 .env 使用Groq API密钥提交:

    GROQ_API_KEY=your_api_key_here
    
  3. 启动MCP服务器(每个服务器位于不同的端口上):

    # On Windows
    .\start_servers.bat
    
    # Or start them individually
    python server_SGL.py
    python server_CALC.py 8002
    python server_WEATHER.py 8003
    
  4. 运行多服务器客户端:

    python multi_server_client.py
    

可用工具

键值存储(端口8000)

  • keyvalue___set:使用键存储值
  • keyvalue___get:按键检索值
  • keyvalue___list:列出所有存储的密钥

计算器(端口8002)

  • calc___add:添加两个数字
  • calc___subtract:从第一个数字中减去第二个数字
  • calc___multiply:将两个数字相乘
  • calc___divide:将第一个数字除以第二个数字
  • calc___sqrt:计算一个数字的平方根

天气信息(端口8003)

  • weather___current:获取城市的当前天气(模拟)
  • weather___forecast:获取城市的天气预报(模拟)
  • weather___cities:列出可用城市

MCP协议详细信息

每个MCP服务器实现两个主要端点:

  1. /mcp/tools -返回可用工具的列表
  2. /mcp/invoke -使用提供的参数执行工具

与LLM集成

该项目演示了与Groq的LLM API的集成,但MCP协议可以与任何支持函数调用的LLM一起使用,包括:

  • OpenAI(GPT模型)
  • 人物克劳德
  • 亚马逊基岩模型
  • 通过Ollama等工具建立本地模型

许可证

本项目作为MCP协议的教育示例提供。