MCP示例服务集

项目简介

本项目 'mcp_tutorial' 是一组示例 MCP 服务器的集合,旨在帮助开发者理解和实践如何使用 Model Context Protocol 构建应用后端服务。它通过微服务架构展示了多种实用工具的集成,例如文件系统访问、天气查询、播客生成和 Gmail 操作。每个服务都作为一个独立的 MCP 服务器实现, демонстрируя MCP 协议在不同应用场景下的灵活性和可扩展性。

主要功能点

  • 文件系统服务 (filesystem): 提供安全的文件系统访问能力,支持读取、写入、编辑文件、创建目录、文件搜索等操作,并限制在预设的允许目录内,保障安全性。
  • 天气服务 (weather): 提供简单的城市天气查询工具,返回JSON格式的天气信息(示例数据)。
  • 播客生成服务 (podcast): 集成 Coze API,根据用户提供的 prompt 生成播客链接。
  • Gmail 服务 (gmail): 集成 Gmail API,支持发送邮件功能,并处理 OAuth 2.0 认证流程。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/fak111/mcp_tutorial.git
    cd mcp_tutorial
  2. 安装依赖: 分别进入 'mcp-server' 目录和 'mcp-client' 目录,安装各自的依赖。

    cd mcp-server
    npm install
    cd ../mcp-client
    npm install
  3. 配置环境变量: 部分服务需要环境变量配置,例如 Gmail 服务需要 Google API 密钥。

    • 在 'mcp-server/gmail' 目录下创建 '.env' 文件,并配置 'GOOGLE_CLIENT_ID' 和 'GOOGLE_CLIENT_SECRET'。
    • 请参考 'mcp-server/gmail/README.md' (或 'README_en.md') 配置 Gmail API 凭据。

服务器配置

以下是 MCP 客户端连接到不同示例服务器时需要配置的服务器启动命令 (command) 及其参数 (args)。客户端需要根据实际使用的服务器选择相应的配置。

  • 文件系统服务 (filesystem):

    {
        "serverName": "filesystem",
        "command": "node",
        "args": ["./mcp-server/filesystem/index.js", "<allowed-directory>", "<additional-directories...>"],
        "args_comment": [
            "<allowed-directory>: 允许文件系统服务访问的根目录,请替换为实际的目录路径",
            "<additional-directories...>: 额外的允许访问的目录,可以添加多个"
        ]
    }

    注意: '<allowed-directory>' 和 '<additional-directories...>' 需要替换为实际允许文件系统服务访问的目录路径。例如,允许访问用户 home 目录下的 'Documents' 文件夹,可以配置为 '["./mcp-server/filesystem/index.js", "~/Documents"]'。

  • 天气服务 (weather):

    {
        "serverName": "weather",
        "command": "node",
        "args": ["./mcp-server/weather/src/index.js"]
    }
  • 播客生成服务 (podcast):

    {
        "serverName": "podcast",
        "command": "node",
        "args": ["./mcp-server/podcast/src/index.js"]
    }
  • Gmail 服务 (gmail):

    {
        "serverName": "gmail",
        "command": "node",
        "args": ["./mcp-server/gmail/src/index.js"]
    }

    注意: 首次运行 Gmail 服务时,需要完成 OAuth 2.0 认证。请根据终端输出的提示,访问提供的 URL 完成 Google 账号授权。

基本使用方法

  1. 启动服务器: 进入 'mcp-server' 目录,根据需要启动相应的服务。例如,启动文件系统服务:

    cd mcp-server
    node filesystem/index.js ~/Documents  # 允许访问用户 Documents 目录

    或启动天气服务:

    cd mcp-server
    node weather/src/index.js
  2. 运行客户端: 进入 'mcp-client' 目录,根据需要运行不同的客户端脚本。

    • 'client_no_api.py': 基础命令行客户端,不依赖 LLM API。
    • 'client.py': 集成 Anthropic Claude 的客户端,可以使用自然语言查询并调用工具。
    • 'client_no_api_file.py': 使用 Docker 运行文件系统服务的客户端示例。

    例如,使用 'client_no_api.py' 连接到文件系统服务:

    cd mcp-client
    python client_no_api.py ../mcp-server/filesystem/index.js ~/Documents

    在客户端命令行中,可以使用 'tools' 命令列出可用工具,使用 'exec <tool> <args>' 命令执行工具。 例如,执行 'list_directory' 工具查看允许目录下的文件列表:

    exec list_directory {"path": "."}

注意: 请根据 'mcp-client' 目录下的 'README.md' (或 'README_en.md') 了解更详细的客户端使用方法和示例。

信息

分类

网页与API