MCP服务器示例

一个使用Python FastMCP库的MCP服务器示例,用于演示和测试MCP服务器的基本功能。

  • by raffaeler
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 raffaeler/PyMcp

使用说明

PyMcp

使用Python FastMCP库的MCP服务器示例。

存储库结构

McpDocs/
├── src/                          # Source code
│   └── sample_mcp_server/       # Sample MCP server
│       ├── server.py            # Main server implementation
│       ├── Dockerfile           # Docker configuration
│       ├── tests/               # Unit tests
│       └── README.md            # Server documentation
├── .github/                     # GitHub workflows
│   └── workflows/
│       └── ci.yml               # CI/CD pipeline
├── pyproject.toml               # Project configuration
└── README.md                    # This file

使用UV

这 uv 包管理器是一个强大的替代方案 pip。我强烈建议更好地管理依赖关系和虚拟环境。

安装

https://docs.astral.sh/uv/getting-started/installation/

curl -LsSf https://astral.sh/uv/install.sh | sh

这可能需要注销并重新登录。

正在更新:

uv self update

程序包管理

安装软件包:

uv pip install ruff

或者,您可以编辑 pyproject.toml 文件,在相应的部分添加依赖项,然后使用以下命令安装它们:

uv sync

这 sync 在将项目克隆到其他地方时(在新机器上创建虚拟环境后),命令也很有用。

虚拟环境

创建默认虚拟环境(.venv 子目录):

uv venv

使用其他名称创建虚拟环境:

uv venv some_name

在Linux上激活虚拟环境:

source .venv/bin/activate

在Windows上激活虚拟环境:

.venv\Scripts\activate

要停用环境,请执行以下操作:

deactivate

从以下方面激活环境 Visual Studio Code:

  • 确保虚拟环境存在
  • 打开包含Python项目的文件夹
  • 按F1
  • 类型 Python: Select Interpreter
  • 选择提及项目名称的条目。路径应该是这样的 .venv/bin/python

预装Docker镜像 uv: https://github.com/astral-sh/uv/pkgs/container/uv

Ruff语法检查器

除了标准的Python Visual studio Code扩展之外,我强烈建议安装Ruff,因为它处理源代码的速度非常快。

不管怎样,两者之间可能会有一些冲突。我调整了 .vscode/settings.json 以尽量减少这些问题。

手动检查规则 ruff:

ruff check src/

自动修复ruff的问题:

ruff check src/ --fix

手动检查规则 mypy:

mypy src/

运行项目

运行示例服务器

# from the project root folder
python -m src.sample_mcp_server.server

运行测试

# from the project root folder
pytest src/sample_mcp_server/tests/ -v

使用Docker构建

# from the project root folder
docker build -f src/sample_mcp_server/Dockerfile -t sample-mcp-server .
docker run -i sample-mcp-server