如何从零开始构建简单的MCP
简介
这是一篇介绍如何从零开始构建 MCP server 的简单说明。本说明由三部分组成:UV 介绍、代码开发和部署。
UV 简介
UV是一个基于 rust 的 Python 软件包和项目管理器。除了 UV 非常快之外,UV 与其他管理器没有什么区别。此外,MCP 使用 UVX(运行 python 包的 UV 工具)来运行服务器。因此,在本说明中,我们将使用 UV 来管理我们的项目。
安装
UV 现在可以使用 PyPi 进行安装:
|
|
[optional] 更改源代码
由于特殊的网络环境,我们有时需要更改 UV 的源。需要在环境中添加下面的命令。
|
|
此命令将 UV 的源从官方网站暂时改为 TUNA。可以参考文档来彻底对源的使用路径进行彻底修改。
Python 设置
为方便起见,我们使用 UV 设置 python 解释器。
|
|
然后,我们使用下面的命令在一个目录中设置一个 Python 项目。
|
|
如果成功,UV 会生成一些新文件,如下图所示:
总结
我们已经安装了 UV,设置了解释器,并为我们的项目初始化了一个新的工作区。下一步,我们将完成项目,并实现一个非常简单的 MCP 服务器。
代码开发
在本节中,我们将开始实现一个非常简单的 MCP 服务器。首先,我们将浏览 workspace,安装一些项目以来,执行一些代码来验证 pipeline 是否通畅。
浏览工作区
我们可以在这里看到我们的项目结构。工作区中有一些由 UV 生成的文件。不过不用担心。我们只需注意三个文件:main.py、README.md 和 pyproject.toml。
安装依赖项
在本项目中,我们主要使用 FastMCP 。有关该 python 软件包的信息,请点击此处。简而言之,FastMCP 是使用 python 实现 MCP 服务器的一个简单但非常有用的工具。这里直接使用 uv 来进行安装。
|
|
执行代码
安装好 FastMCP 后,我们就可以像下面这样执行代码了。
|
|
如何运行代码
在终端中,我们可以使用 fastmcp 命令运行代码。
|
|
如果运行顺利,你会在终端中看到一些信息。
这些信息告诉你,mcp inspector 正在 6274 端口运行,你可以通过它提供的 URL 链接访问。MCP inspector 是我们验证服务器是否起来的工具。我们不会花太多时间来介绍。
访问检查器服务器后,你会看到如下界面。点击左侧的连接按钮。
连接建立后,界面会变成这样。
我们首先点击 “工具 “按钮,然后选择 “列表工具”,检查我们所使用的工具。然后运行。
如果工具执行成功,就会看到如下界面的结果。那么你就成功运行了一个 mcp 工具。
调试代码
我个人建议使用 UT、AT 或回归测试等各种测试在本地测试代码。因为这样更方便我们使用。MCP inspector 提供的工具不太好用。
一些建议
- 给函数写一些详细的注释,这样 llm 方便理解这个函数是什么「可以用 LLM 来生成」。
- 在输入跟输出中添加所期望的类型信息,可以避免一些因为输入类型带来的错误。
软件包部署
在本节中,我们可以部署 mcp 服务器供 LLM 使用。我们需要更新之前提到的 pyproject.toml 以打包我们的代码。
更新可执行信息
在我们的项目中,在 pyproject.toml 中添加以下几行:
|
|
添加依赖项信息
我们还需要为软件包添加依赖项,可以使用以下命令将我们使用的软件包添加到 pyproject.toml 中
|
|
当然,如果我们有很多软件包需要依赖,这看起来会很不舒服。我们也可以使用其他工具来实现这一点。
部署代码
我们使用以下命令打包代码并运行。
|
|
如果一切顺利,你会在 CLI 中看到以下信息。它会告诉你 MCP 服务器正在运行。