MCP服务器模板

一个用于快速构建基于FastMCP协议的Python服务器模板,支持环境变量配置和Docker部署。

  • by lutz500
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 lutz500/mcp-server

使用说明

🛠 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,
    )

...