MCP服务器原型
MCP服务器原型 是一个基本的模板,用于创建新的MCP服务器子使用 复印机.\ 包括使用FastMCP启动模块化MCP服务器,加载工具和管理配置,容器和构建/启动/停止脚本所需的最低结构。
先决条件
从 mcp-server-archetype 开始,最低要求是:
Podman构建和启动容器。Copier从模板生成子服务器。
操作
这个模板是为:
- 为所有子MCP服务器提供一个即时基础。
- 通过管理配置
.env. - 动态加载 Python 工具。
工具
- 文件夹
tools/default已经包含协议的默认工具,例如。health_check.py)假实施。 - 文件夹
tools/examples包含示例工具,但不会从 mcp 服务器加载;这些只是参考的例子。
一个工具的例子:
from mcp_core.core import core_api
@core_api.mcp.tool
def health_check() -> dict:
core_api.logger.info("Eseguo health_check")
return {"status": "ok"}服务器启动
创建子服务器后:
- 设置 .env 环境。
- 构建容器:
./build.sh - 在容器中启动服务器:
./start.sh - 关闭容器(如果以detached=true启动):
./stop.sh
构建
构建可以通过以下方式启动:
./build.sh --local-mcpcore假设你有repomcp-core原型的兄弟级别,并将其用作mcp-core模块,用于本地核心本身的开发./build.sh→ 下载mcp-core将 github 存储库作为依赖项并冻结其远程版本以供未来构建./build.sh --force-remote-mcpcore-update→ 下载mcp-core从 github 仓库作为依赖,忽略先前下载的版本,并冻结新的远程版本以供未来构建
开始
start可以通过以下方式调用:
./start.sh→ 启动服务器,保持悬挂状态,以便实时查询日志./start.sh --detached→ 以分离模式启动服务器,然后需要启动./stop.sh为了阻止他
模板Jinja
.env.jinja→ 包含可配置变量的.env 文件模板。Containerfile.jinja→ 用于构建容器图像的模板。build.sh.jinja→ 基于 Containerfile 构建图像脚本。start.sh.jinja / stop.sh.jinja启动和停止容器的脚本。
Jinja变量将被Copier替换为生成的服务器特定值。
贡献
若要添加新工具或自定义服务器:
- 在 tools/ 文件夹中创建/编辑 tools。
- 如果需要新的配置变量,请更新 .env.jinja。
- 如果路径、端口或依赖关系发生变化,请修改任何 Jinja 模板。
备注
- 此模板作为模块化基础:所有创建的子服务器都将具有相同的连贯结构。
- 自动加载的工具简化了服务器的可扩展性。
- 使用 Copier,您可以生成具有不同配置的多个服务器,同时保持相同的代码库。
