使用说明

项目简介

本项目 'learn-agentic-ai' 仓库的 '09_model_context_protocol' 目录下的代码示例展示了一个基于 FastMCP 框架构建的 MCP (Model Context Protocol) 服务器。该服务器旨在演示如何使用 MCP 协议来管理 资源 (Resources)工具 (Tools),从而为 LLM (大型语言模型) 应用提供丰富的上下文信息和功能扩展能力。

主要功能点

  • 资源 (Resources) 管理: 允许开发者定义和托管各种数据资源。本示例中,服务器提供了一个动态问候语资源 'greeting://{name}',可以根据请求的名称返回个性化的问候语。
  • 工具 (Tools) 注册与执行: 支持注册可被 LLM 客户端调用的外部功能。示例中,服务器注册了一个简单的加法工具 'add(a, b)' 和一个天气预报工具 'get_forecast(city)'。
  • 基于 FastMCP 框架: 使用 'mcp.server.fastmcp' 库简化了 MCP 服务器的开发过程,开发者可以专注于定义资源和工具的具体逻辑。
  • 演示目的: 本项目主要用于教学和演示 MCP 服务器的基本概念和用法,帮助开发者快速了解和上手 MCP 技术。

安装步骤

由于该仓库主要为代码示例,无需复杂的安装步骤。您只需要确保安装了 Python 环境以及项目依赖的 'mcp' 库。

  1. 克隆仓库:

    git clone https://github.com/panaversity/learn-agentic-ai.git
    cd learn-agentic-ai
  2. 安装依赖 (如果需要): 虽然本示例代码可能依赖 'mcp' 库,但根据仓库内容,可能已经包含或者不需要额外安装。如果运行过程中提示缺少依赖,请根据错误信息安装,例如使用 'pip install mcp-server' (请根据实际情况替换库名称)。

服务器配置

MCP 服务器需要配置后才能被 MCP 客户端连接和使用。以下是针对本示例服务器的 MCP 客户端配置信息,请注意,MCP 客户端需要这些配置信息来启动和连接到 MCP 服务器

{
  "serverName": "DemoServer",
  "command": "python",
  "args": [
    "-m",
    "mcp.server.stdio_server",
    "--server_module",
    "09_model_context_protocol.03_mcp_client_server.server.server",
    "--server_class",
    "mcp"
  ],
  "description": "演示MCP服务器,提供问候语资源和加法工具。",
  "transport": "stdio",
  "capabilities": [
    "resources",
    "tools",
    "prompts"
  ]
}

配置参数说明:

  • serverName: 服务器名称,例如 "DemoServer",客户端用以区分不同的 MCP 服务器。
  • command: 启动服务器的命令,通常为 "python"。
  • args: 启动命令的参数列表,用于指定运行哪个 Python 模块作为 MCP 服务器。
    • '"-m", "mcp.server.stdio_server"': 指定使用 'mcp.server.stdio_server' 模块启动基于标准输入输出的 MCP 服务器。
    • '"--server_module", "09_model_context_protocol.03_mcp_client_server.server.server"': 指定服务器逻辑所在的 Python 模块路径。
    • '"--server_class", "mcp"': 指定服务器实例的变量名为 'mcp' (参考 'server.py' 中的 'mcp = FastMCP("Demo")')。
  • description: 服务器的简要描述,方便客户端用户了解服务器功能。
  • transport: 传输协议,这里使用 "stdio",表示使用标准输入输出进行通信。
  • capabilities: 服务器声明的能力,例如 "resources"、"tools" 和 "prompts",表明该服务器支持资源、工具和 Prompt 模板功能。

请注意: 实际部署时,您可能需要根据您的环境和需求调整 'command' 和 'args' 参数。例如,如果您的 Python 环境不在默认路径下,您需要指定 Python 解释器的完整路径。

基本使用方法

  1. 启动 MCP 服务器: 根据上述 'server.py' 文件,您需要运行该文件来启动 MCP 服务器。由于配置信息中指定使用 'stdio_server' 模块,您不需要直接运行 'server.py' 文件。MCP 客户端会根据配置中的 'command' 和 'args' 启动服务器进程。

  2. 配置 MCP 客户端: 在您的 MCP 客户端应用中,配置上述 JSON 格式的服务器配置信息。客户端将使用这些信息连接到 MCP 服务器。

  3. 客户端请求资源和工具: 客户端连接成功后,可以按照 MCP 协议规范,向服务器发送 JSON-RPC 请求,例如:

    • 请求 'greeting://World' 资源以获取 "Hello, World!" 问候语。
    • 调用 'add' 工具并传递参数 'a=1, b=2',以执行加法运算。
    • 调用 'get_forecast' 工具并传递参数 'city="London"',以获取伦敦的天气预报。

示例代码位置:

  • 服务器代码示例: '09_model_context_protocol/03_mcp_client_server/server/server.py'
  • 客户端代码示例: '09_model_context_protocol/03_mcp_client_server/client/main.py' (虽然 'main.py' 只是一个占位符,但 'client' 目录表明仓库包含客户端相关内容)

总结

本项目提供了一个基础的 MCP 服务器演示,帮助开发者理解 MCP 协议和 FastMCP 框架的使用。您可以基于此示例进行扩展,构建更复杂、功能更强大的 MCP 服务器,以满足您的 LLM 应用的需求。

信息

分类

AI与计算