项目简介

本仓库 '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 作为传输协议,方便本地部署和测试。

安装步骤

  1. 安装 Python 环境: 确保您的系统已安装 Python 3.8 或更高版本。

  2. 安装依赖库: 使用 pip 安装项目依赖。在仓库根目录下执行:

    pip install mcp google-cloud-bigquery requests httpx geopy beautifulsoup4

    请注意,'google-cloud-bigquery' 库用于 'bq.py' 服务器,如果不需要使用 BigQuery 工具,可以省略安装。

  3. 配置 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 连接,您需要修改服务器代码和客户端配置。

基本使用方法

  1. 启动服务器: 在终端中,分别进入 'server' 目录,并执行相应的 Python 脚本以启动各个服务器,例如:

    cd server
    python weather_server.py

    这将启动天气信息服务器,其他服务器类似。每个服务器脚本都需要单独启动。

  2. 配置 MCP 客户端: 根据您的 MCP 客户端软件的使用说明,将上述服务器配置信息添加到客户端的服务器列表中。

  3. 使用工具: 在 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