项目简介
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)。
安装步骤
-
克隆仓库
git clone https://github.com/PeekAndPoke/llm-tools.git cd llm-tools -
创建并激活虚拟环境 (推荐)
python -m venv venv source venv/bin/activate # Linux/macOS # venv\Scripts\activate.bat # Windows -
安装依赖
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' 字段。
基本使用方法
-
启动服务器
在仓库根目录下,激活虚拟环境后,运行以下命令启动服务器:
python main.py服务器默认运行在 8000 端口,并使用 SSE 协议。你将在终端看到服务器启动的日志信息。
-
配置 MCP 客户端
在你的 MCP 客户端应用中,根据上述 服务器配置 部分提供的 JSON 配置信息,配置连接到 LLM-Tools Server。
-
通过 MCP 客户端调用工具和资源
配置完成后,你的 MCP 客户端就可以通过 MCP 协议与 LLM-Tools Server 通信,并调用服务器提供的工具(如 'weather_forecast', 'web_search', 'event_search')和资源(如 'greeting' 资源)。具体的调用方式和参数需要参考 MCP 客户端的文档和 LLM-Tools Server 中各工具和资源的定义 (例如 'main.py' 中的函数签名和装饰器)。
例如,客户端可以请求调用 'weather_forecast' 工具查询天气,或者请求访问 'greeting://Alice' 资源获取个性化问候语。
信息
分类
网页与API