项目简介
本仓库 'vertex_ai_mcp_samples' 提供了一组示例MCP服务器,旨在展示如何使用 'fastmcp' 库快速构建MCP服务器,并集成各种实用工具,为大型语言模型(LLM)应用提供丰富的外部数据和功能支持。
主要功能点
- 天气信息查询:提供美国国家气象局(NWS)的天气预警和天气预报查询工具,支持按州或经纬度/城市查询。
- 医疗术语解释:集成MedlinePlus API,提供医疗术语的解释和摘要信息。
- BigQuery 数据表查询:允许列出和描述Google Cloud BigQuery项目中的数据表结构。
- ICD-10 代码查询:集成NIH的临床表API,提供ICD-10疾病代码的搜索和解释。
- 标准 MCP 协议:所有服务器均基于 MCP 协议构建,易于与任何兼容 MCP 协议的客户端集成。
- 工具注册与发现:使用装饰器简化工具注册,客户端可以通过标准方法发现和调用这些工具。
- Stdio 传输:示例服务器默认使用 Stdio 作为传输协议,方便本地部署和测试。
安装步骤
-
安装 Python 环境: 确保您的系统已安装 Python 3.8 或更高版本。
-
安装依赖库: 使用 pip 安装项目依赖。在仓库根目录下执行:
pip install mcp google-cloud-bigquery requests httpx geopy beautifulsoup4请注意,'google-cloud-bigquery' 库用于 'bq.py' 服务器,如果不需要使用 BigQuery 工具,可以省略安装。
-
配置 GCP 认证 (可选): 如果您计划使用 'bq.py' 服务器,您需要配置 Google Cloud Platform (GCP) 认证。最简便的方式是使用 gcloud CLI 工具进行应用默认凭证 (Application Default Credentials) 登录:
gcloud auth application-default login并确保您的 GCP 项目已启用 BigQuery API,且您拥有访问 BigQuery 资源的权限。
服务器配置
以下是各个示例服务器的 MCP 客户端配置信息,您需要将其配置到您的 MCP 客户端中,以便客户端能够连接并使用这些服务器提供的工具。
1. 天气信息服务器 (weather_server.py)
{ "server_name": "weather", "command": "python", "args": ["server/weather_server.py"] }
- 'server_name': 服务器名称,客户端用以识别和调用。这里设置为 "weather"。
- 'command': 启动服务器的命令。这里使用 'python' 解释器。
- 'args': 传递给命令的参数,指定服务器脚本的路径 'server/weather_server.py'。
2. 医疗术语服务器 (med.py)
{ "server_name": "medlineplus", "command": "python", "args": ["server/med.py"] }
- 'server_name': 服务器名称,设置为 "medlineplus"。
- 'command': 启动命令,使用 'python' 解释器。
- 'args': 服务器脚本路径 'server/med.py'。
3. BigQuery 数据表查询服务器 (bq.py)
{ "server_name": "bigquery_inspector", "command": "python", "args": ["server/bq.py"] }
- 'server_name': 服务器名称,设置为 "bigquery_inspector"。
- 'command': 启动命令,'python' 解释器。
- 'args': 服务器脚本路径 'server/bq.py'。
4. ICD-10 代码查询服务器 (nih.py)
{ "server_name": "nih_icd10", "command": "python", "args": ["server/nih.py"] }
- 'server_name': 服务器名称,设置为 "nih_icd10"。
- 'command': 启动命令,'python' 解释器。
- 'args': 服务器脚本路径 'server/nih.py'。
注意: 以上配置均为默认使用 Stdio 传输协议。您可以根据 MCP 客户端的具体要求进行配置。例如,如果客户端需要通过 WebSocket 或 SSE 连接,您需要修改服务器代码和客户端配置。
基本使用方法
-
启动服务器: 在终端中,分别进入 'server' 目录,并执行相应的 Python 脚本以启动各个服务器,例如:
cd server python weather_server.py这将启动天气信息服务器,其他服务器类似。每个服务器脚本都需要单独启动。
-
配置 MCP 客户端: 根据您的 MCP 客户端软件的使用说明,将上述服务器配置信息添加到客户端的服务器列表中。
-
使用工具: 在 MCP 客户端中,您应该能够发现并调用各个服务器提供的工具。例如,在连接到 "weather" 服务器后,您可以调用 'get_alerts', 'get_forecast' 或 'get_forecast_by_city' 工具来查询天气信息。具体工具的使用方法请参考每个工具的文档字符串 (docstring),例如 'get_alerts' 工具的说明如下:
get_alerts(state: str) -> str Get active weather alerts for a specific US state. Args: state: The two-letter US state code (e.g., CA, NY, TX). Case-insensitive.客户端通常会提供界面或方法来查看工具列表和调用工具。
注意事项
- 权限配置: 使用 'bq.py' 服务器时,请确保 GCP 项目的权限配置正确,允许运行服务器的用户访问 BigQuery 资源。
- API 限制: 示例服务器集成了多个外部 API (NWS, MedlinePlus, NIH)。使用时请注意遵守这些 API 的使用条款和速率限制。
- 错误处理: 示例代码包含基本的错误处理,但在生产环境中使用时,建议根据实际需求进行更完善的错误处理和日志记录。
信息
分类
网页与API