项目简介

LLM-Tools Server 是一个实现了 Model Context Protocol (MCP) 的服务器,它充当语言模型(LLM)与外部工具之间的桥梁。该项目使用 FastMCP 框架简化了 MCP 服务器的开发,并集成了多种实用工具,旨在为 LLM 应用提供可扩展、标准化的工具调用能力。服务器通过 SSE (Server-Sent Events) 协议与客户端通信。

主要功能点

  • 工具集成: 集成了多种实用工具,如天气预报、网页搜索和新闻搜索,未来可扩展更多工具。
  • MCP协议支持: 基于 FastMCP 框架,实现了 MCP 协议的核心功能,可以接收和响应 MCP 客户端的请求。
  • 资源管理: 支持通过 '@mcp.resource' 装饰器注册和管理资源,例如示例中提供的动态问候语资源。
  • Prompt模板: 虽然仓库中没有显式展示 Prompt 模板功能,但 MCP 服务器本身支持 Prompt 模板的定义和渲染,可以根据需要进行扩展。
  • 会话管理和能力声明: MCP 服务器端负责会话管理,并通过 MCP 协议向客户端声明自身提供的工具和资源能力。
  • 多种传输协议支持: 示例代码中使用了 SSE 传输协议,FastMCP 框架本身也支持其他传输协议(如 WebSocket)。

安装步骤

  1. 克隆仓库

    git clone https://github.com/PeekAndPoke/llm-tools.git
    cd llm-tools
  2. 创建并激活虚拟环境 (推荐)

    python -m venv venv
    source venv/bin/activate   # Linux/macOS
    # venv\Scripts\activate.bat  # Windows
  3. 安装依赖

    pip install -r requirements.txt

服务器配置

MCP 客户端需要配置服务器的连接信息才能正常使用工具服务。以下是一个基于仓库信息生成的 JSON 格式配置示例,请根据实际情况调整:

{
  "serverName": "llm-tools-server",
  "command": "python",
  "args": [
    "main.py"
  ],
  "transport": "sse",
  "port": 8000,
  "description": "LLM Tools Server providing weather forecast, web search, and event search tools."
}

配置参数说明:

  • 'serverName': 服务器名称,客户端用于标识连接的服务器,可以自定义。
  • 'command': 启动服务器的命令,这里使用 'python'。
  • 'args': 启动命令的参数列表,这里指定运行 'main.py' 文件。
  • 'transport': 传输协议,这里使用 'sse' (Server-Sent Events)。
  • 'port': 服务器端口号,默认为 '8000',与 'main.py' 中默认端口一致。如果需要修改端口,可以在 'args' 中添加 '--port <端口号>' 参数,并同步修改客户端配置。
  • 'description': 服务器描述信息,方便客户端用户了解服务器功能。

注意:

  • 确保 MCP 客户端能够访问到运行 LLM-Tools Server 的服务器地址和端口。
  • 如果需要修改服务器端口,可以通过修改 'main.py' 启动参数 '--port' 或修改客户端配置中的 'port' 字段。

基本使用方法

  1. 启动服务器

    在仓库根目录下,激活虚拟环境后,运行以下命令启动服务器:

    python main.py

    服务器默认运行在 8000 端口,并使用 SSE 协议。你将在终端看到服务器启动的日志信息。

  2. 配置 MCP 客户端

    在你的 MCP 客户端应用中,根据上述 服务器配置 部分提供的 JSON 配置信息,配置连接到 LLM-Tools Server。

  3. 通过 MCP 客户端调用工具和资源

    配置完成后,你的 MCP 客户端就可以通过 MCP 协议与 LLM-Tools Server 通信,并调用服务器提供的工具(如 'weather_forecast', 'web_search', 'event_search')和资源(如 'greeting' 资源)。具体的调用方式和参数需要参考 MCP 客户端的文档和 LLM-Tools Server 中各工具和资源的定义 (例如 'main.py' 中的函数签名和装饰器)。

    例如,客户端可以请求调用 'weather_forecast' 工具查询天气,或者请求访问 'greeting://Alice' 资源获取个性化问候语。

信息

分类

网页与API