使用说明
项目简介
本项目 'mcp-server-template' 是一个基于 Python 'fastmcp' 库构建的 MCP (Model Context Protocol) 服务器模板。它旨在帮助开发者快速搭建符合 MCP 协议的后端服务,以便为大型语言模型 (LLM) 应用提供上下文信息和功能扩展。该模板预置了工具注册和调用的示例代码,开发者可以基于此模板快速扩展资源管理、Prompt 模板等 MCP 服务器的核心功能。
主要功能点
- 工具注册与调用: 模板中已经预置了一个简单的 'add_numbers' 工具示例,展示了如何使用装饰器注册工具函数,并通过 MCP 协议接收客户端的工具调用请求。
- 快速启动: 提供了基于 'fastmcp' 库的快速服务器启动方式,简化了服务器的配置和部署流程。
- 可扩展性: 作为一个基础模板,项目结构清晰,易于扩展和定制,方便开发者根据自身需求添加资源管理、Prompt 模板渲染等功能。
- 示例代码: 包含清晰的示例代码,帮助开发者理解 MCP 服务器的基本概念和开发流程。
安装步骤
- 环境准备: 确保你的电脑上已经安装了 Python 3.8 或更高版本。建议使用虚拟环境 (venv 或 conda) 来管理项目依赖。
- 克隆仓库: 使用 Git 克隆 'mcp-server-template' 仓库到本地:
git clone https://github.com/narumiruna/mcp-server-template.git cd mcp-server-template - 安装依赖: 使用 'uv pip install .' 命令安装项目依赖:
或者使用 pip (如果你的环境中没有 uv):uv pip install .pip install .
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令和参数才能连接。以下是针对 'mcp-server-template' 模板生成的本地启动配置信息(JSON 格式),请提供给你的 MCP 客户端:
{ "mcpServers": { "mcp-server-template": { "command": "uv", "args": [ "run", "--module", "mcpservertemplate.server" ] } } }
配置参数说明:
- '"mcpServers"': 固定字段,用于定义 MCP 服务器配置。
- '"mcp-server-template"': 服务器名称,可以自定义,客户端用此名称来引用该服务器配置。
- '"command"': 启动服务器的命令。 这里使用 'uv' 命令,你需要确保你的环境中安装了 'uv' 包。 如果没有安装 'uv',也可以使用 'python3' 或 'python' 命令,并将 '"args"' 调整为 '["-m", "mcpservertemplate.server"]'。
- '"args"': 命令的参数列表。
- '"run"': 'uv' 命令的子命令,用于运行 Python 模块。
- '"--module"': 指定要运行的 Python 模块。
- '"mcpservertemplate.server"': 指定要运行的模块为 'mcpservertemplate' 包中的 'server' 模块。 这个模块包含了服务器的启动代码。
基本使用方法
-
启动服务器: 在项目根目录下,打开终端并执行以下命令启动 MCP 服务器:
uv run --module mcpservertemplate.server或者,如果使用 'python' 命令:
python3 -m mcpservertemplate.server服务器启动后,会监听来自 MCP 客户端的请求。
-
客户端配置: 将上面提供的服务器配置 JSON 信息配置到你的 MCP 客户端中,确保客户端能够找到并连接到本地启动的 'mcp-server-template' 服务器。
-
调用工具: 在 MCP 客户端中,你可以调用服务器提供的 'add_numbers' 工具。 该工具接受两个数字 'a' 和 'b' 作为参数,并返回它们的和的字符串表示,例如 "2.0 + 3.0 = 5.0 from MCP Template"。
请注意: 此模板仅包含最基本的工具示例。 实际应用中,你需要根据你的 LLM 应用需求,扩展 'src/mcpservertemplate/server.py' 或 'src/mcpservertemplate/low_level_server.py' 文件,添加更多的工具、资源管理和 Prompt 模板功能。 你可以参考 'fastmcp' 和 'mcp-server-template' 的文档和示例代码,进一步学习和开发。
信息
分类
开发者工具