该GitHub仓库主要是一个MCP客户端(AI聊天应用),但其中包含了一些基于FastMCP实现的简单MCP工具服务器示例。这些服务器可以独立运行,并通过标准输入/输出(stdio)作为传输协议,向MCP客户端提供特定的工具功能。

项目简介

本仓库的 'aichat/agents/mcp_tools/servers/' 目录下包含了使用 FastMCP 库编写的 MCP 服务器示例代码。这些示例服务器功能简单但完整,演示了如何将 Python 函数封装为 MCP 工具,供兼容MCP协议的LLM客户端调用。

主要功能点

  • 天气查询工具: 提供查询指定美国州的天气警报和指定经纬度天气预报的功能。
  • 日期时间工具: 提供获取当前系统日期和时间的功能。
  • MCP协议实现: 通过 FastMCP 库实现了标准的 MCP JSON-RPC 通信协议,支持工具的注册和执行。
  • Stdio传输: 示例服务器使用标准输入/输出作为与客户端通信的通道。

安装步骤

由于这些服务器示例是主仓库(AIChat聊天应用)的一部分,最简单的安装方式是克隆整个仓库并安装其依赖:

  1. 克隆仓库:
    git clone https://github.com/Hayashi-Yudai/aichat.git
    cd aichat
  2. 安装依赖:
    # 确保你安装了 uv (https://github.com/astral-sh/uv) 或 poetry
    uv sync
    # 或者使用 poetry
    # poetry install
    这将安装运行服务器示例所需的 'mcp' 库及其依赖。

服务器配置 (供MCP客户端使用)

这些服务器示例通常由MCP客户端启动和连接。MCP客户端需要一个配置文件(通常是JSON格式)来知道如何启动和连接这些服务器。以下是供MCP客户端配置的示例信息:

客户端配置文件 'servers.json' (示例,实际路径和文件名取决于你的客户端应用) 需要包含类似以下结构的配置:

{
  "weather": {
    "command": ["python", "path/to/aichat/agents/mcp_tools/servers/weather.py"],
    "disabled": false
  },
  "date": {
    "command": ["python", "path/to/aichat/agents/mcp_tools/servers/date.py"],
    "disabled": false
  }
}
  • '"weather"' 和 '"date"' 是服务器名称,客户端通过这些名称引用服务器及其工具。
  • '"command"' 是一个字符串数组,指定了启动服务器进程的命令及其参数。你需要将 '"path/to/aichat/agents/mcp_tools/servers/weather.py"' 和 '"path/to/aichat/agents/mcp_tools/servers/date.py"' 替换为你实际克隆仓库后对应的文件路径。
  • '"disabled": false' 表示该服务器已启用。

当MCP客户端配置了这些信息并需要使用相应的工具时,它会自动启动指定的命令(例如 'python path/to/weather.py'),并建立Stdio连接进行通信。

基本使用方法

这些是后端服务,通常不直接由用户运行交互。它们由兼容MCP协议的LLM客户端应用(如该仓库中的AIChat应用本身)在需要时自动启动和调用。

例如,当用户在连接到这些服务器的AIChat应用中提出需要天气信息的问题时,LLM可能会生成一个工具调用请求,AIChat客户端接收到请求后,会根据配置找到对应的服务器(例如"weather"服务器),启动该服务器进程,并通过MCP协议发送工具执行请求(例如调用 'get_forecast' 工具)。服务器执行工具并返回结果,客户端再将结果反馈给LLM进行下一步生成。

要测试服务器是否能独立运行,可以在命令行中直接执行服务器脚本:

python aichat/agents/mcp_tools/servers/weather.py
# 或者
python aichat/agents/mcp_tools/servers/date.py

直接执行时,它们会启动并监听Stdio,等待MCP客户端连接并发送JSON-RPC请求。这主要用于开发和调试。

信息

分类

网页与API