使用说明
🛠 MCP 服务器模板
🚀 特性
这个仓库是一个 启动模板 为了建设一个 FastMCP服务器 使用Python。
它使用:
- FastMCP – MCP协议服务器
- Pydantic / Pydantic 设置 – 通过环境变量实现类型安全的配置
- 紫外线 – 现代Python包管理器和运行时环境
- 可选的Docker支持 – 用于容器化部署
该模板帮助您快速启动一个可投入生产的MCP服务器,配备有 基于环境的配置, 可选的开发工具,以及 Docker 部署。
⚡快速入门
本地开发
# 1. Create venv
uv venv
# 2. Activate venv
## Windows
.\.venv\Scripts\activate
## macOS/Linux
source .venv/bin/activate
# 3. Install dependencies (prod + dev)
uv sync
# 4. Run server
uv run main.py
🐳 Docker 部署
构建镜像
docker build -t mcp-server .
跑 集装箱
docker run --env-file .env -p 8000:8000 mcp-server
或者与 Docker Compose:
docker-compose up
⚙️ 配置
服务器通过环境变量进行配置。
创建一个 .env 在根目录下放置文件或在其中设置它们 docker-compose.yaml
# ---- [Optional]: Server Settings ----
# Those values are also set as default values!
SERVER_NAME=MCP-Server
SERVER_HOST=0.0.0.0
SERVER_PORT=8000
TRANSPORT=http
# ---- [Optional]: ENV-Vars ----
API_URL=https://test-api.com/v1/users
行为:
- 环境变量具有最高优先级
- .env 文件用作备用
- 如果两者均未设置,则使用类默认值
如果某些变量未设置,则会显示日志!
💻 使用方法
想法:将工具、资源和提示外包到/src/tools文件夹中。在这里,工具按主题进行分类。
添加工具
1. 如需创建新文件:
touch /src/tools/<tool-file>.py
2. 添加逻辑:
添加工具逻辑到 <tool-file>.py
from utils.logger import logger
from core.server import mcp
@mcp.tool
def add(x: int, y: int) -> int:
"""Add two numbers."""
logger.info(f"Adding {x} and {y}")
return x + y
3. 注册工具
要注册工具,请将其作为导入添加到 main.py
...
# Import tools to register them with the MCP instance
import tools.math # noqa F401
import tools.<tool.py> # <- add here to register
def main():
mcp.run(
transport=settings.TRANSPORT,
host=settings.SERVER_HOST,
port=settings.SERVER_PORT,
show_banner=False,
)
...