项目简介
该GitHub仓库是关于Model Context Protocol (MCP) 的动手实验项目。它提供了一些示例MCP服务器实现,旨在帮助开发者理解如何构建基于MCP的应用后端,使LLM客户端能够访问外部数据和服务。
主要功能点
- 数据库查询工具 (通过WAII): 提供一个MCP工具,允许LLM通过WAII服务将自然语言问题转换为SQL查询,并在某些版本中执行查询并返回结果。
- 天气查询工具: 提供MCP工具,用于获取美国国家气象局(NWS)的主动天气警报和特定经纬度位置的天气预报。
- 标准协议通信: 服务器通过MCP(基于JSON-RPC)与客户端(如Claude Desktop或其他兼容LLM应用)通信。
- 多种服务器示例: 包含两个独立的服务器示例(WAII数据库查询和天气查询),演示了不同类型的外部服务集成。
安装步骤
- 克隆仓库:
git clone https://github.com/waii-ai/waii-mcp-hands-on-lab.git cd waii-mcp-hands-on-lab - 环境准备: 遵循仓库中的 'PREREQUISITES.md' 文件指引,确保已安装Python以及所需的依赖库。通常需要安装 'mcp', 'waii-sdk-py', 'httpx' 等库。
- 获取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与计算