项目简介

该GitHub仓库是关于Model Context Protocol (MCP) 的动手实验项目。它提供了一些示例MCP服务器实现,旨在帮助开发者理解如何构建基于MCP的应用后端,使LLM客户端能够访问外部数据和服务。

主要功能点

  • 数据库查询工具 (通过WAII): 提供一个MCP工具,允许LLM通过WAII服务将自然语言问题转换为SQL查询,并在某些版本中执行查询并返回结果。
  • 天气查询工具: 提供MCP工具,用于获取美国国家气象局(NWS)的主动天气警报和特定经纬度位置的天气预报。
  • 标准协议通信: 服务器通过MCP(基于JSON-RPC)与客户端(如Claude Desktop或其他兼容LLM应用)通信。
  • 多种服务器示例: 包含两个独立的服务器示例(WAII数据库查询和天气查询),演示了不同类型的外部服务集成。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/waii-ai/waii-mcp-hands-on-lab.git
    cd waii-mcp-hands-on-lab
  2. 环境准备: 遵循仓库中的 'PREREQUISITES.md' 文件指引,确保已安装Python以及所需的依赖库。通常需要安装 'mcp', 'waii-sdk-py', 'httpx' 等库。
  3. 获取API密钥: 如果要运行WAII数据库示例,需要获取WAII服务的API密钥。

服务器配置

MCP服务器是为MCP客户端(如某些LLM应用或集成开发环境)提供服务的后端。MCP客户端需要知道如何启动并连接到这些服务器。以下是根据仓库内容生成的服务器配置示例(用户需要将这些配置添加到其MCP客户端的应用设置中,具体操作方法请参考您的MCP客户端软件文档):

1. WAII数据库查询服务器(带数据返回)

  • 功能: 允许LLM通过WAII生成并执行SQL查询,并返回数据结果。
  • 配置示例:
    {
      "name": "waii",
      "command": ["python", "servers/waii_mcp_server_with_data.py"],
      "args": ["--api-key", "<你的WAII API密钥>"],
      "transport": "stdio"
    }
    • 'name': 服务器名称,客户端用于识别。
    • 'command': 启动服务器的命令。
    • 'args': 传递给启动命令的参数,其中 '<你的WAII API密钥>' 需要替换为你在WAII获取的真实API密钥。
    • 'transport': 通信协议,'stdio' 表示通过标准输入输出进行通信。

2. 天气查询服务器

  • 功能: 允许LLM获取美国天气警报和天气预报。
  • 配置示例:
    {
      "name": "weather",
      "command": ["python", "servers/weather.py"],
      "transport": "stdio"
    }
    • 'name': 服务器名称。
    • 'command': 启动服务器的命令。
    • 'transport': 通信协议。

请注意,你需要根据你运行Python脚本的具体路径调整 'command' 中的文件路径。例如,如果你的MCP客户端从仓库根目录启动,则路径应如上所示;如果从其他位置启动,可能需要使用绝对路径或相对路径。

基本使用方法

一旦MCP服务器在您的系统中运行(通常由MCP客户端根据上述配置自动启动和管理),您可以通过配置了该服务器的LLM客户端进行交互。LLM客户端会感知到服务器提供的工具(如 'movie_db_query_generator', 'get_alerts', 'get_forecast'),并在用户提出相关问题时,调用这些工具来获取信息,然后根据工具返回的结果生成回复。

例如:

  • 向LLM提问“列出由Christopher Nolan导演的电影”,LLM客户端可能会调用 'movie_db_query_generator' 工具,将问题作为参数传递。服务器通过WAII处理后返回结果给LLM,LLM再组织成用户友好的回答。
  • 向LLM提问“加州(CA)目前有什么天气警报?”,LLM客户端可能会调用 'get_alerts' 工具,将“CA”作为参数传递。服务器调用NWS API后返回结果给LLM。

用户无需直接与服务器交互,所有通信都由LLM客户端代劳。

信息

分类

AI与计算