1. 首页 > 技术教程 > 正文

VPS 部署第一个 MCP Server:新手入门教程

很多新手在尝试搭建 AI Agent 时,第一个遇到的困惑就是“MCP Server 是什么,怎么在 VPS 上跑起来”。MCP(Model Context Protocol)是让 AI 模型安全调用外部工具的标准协议,部署一个 MCP Server 是打通 Agent 与文件系统、数据库、API 等资源的关键步骤。本文直接教你从零开始在 VPS 上部署第一个 MCP Server,环境基于 Ubuntu 22.04,Python 3.10+,全程可操作。

zhujixuan TASK 110

准备工作:VPS 与基础环境

你需要一台能连公网的 VPS,建议最低配置 1 核 1G 内存,系统推荐 Ubuntu 22.04 或 Debian 12。登录后先更新系统并安装 Python 和 pip:

sudo apt update && sudo apt upgrade -y

sudo apt install python3 python3-pip -y

python3 –version # 确保 >= 3.10
pip3 –version

如果你的 VPS 上已经跑着其他服务,建议给 MCP Server 单独创建一个非 root 用户:

sudo useradd -m -s /bin/bash mcpuser
sudo passwd mcpuser # 设置密码

后续所有操作都切换到 `mcpuser` 下执行,避免权限混乱。

安装 MCP Server 库

MCP 官方提供了 Python 参考实现,直接通过 pip 安装即可:

pip3 install mcp

注意:`mcp` 库版本更新较快,具体命令以 [官方 PyPI 页面](https://pypi.org/project/mcp/) 为准。如果遇到网络问题,可以换国内 PyPI 镜像:

pip3 install mcp -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成后,可以检查模块是否可用:

python
python3 -c "import mcp; print(mcp.__version__)"

创建你的第一个 MCP Server

MCP Server 本质上是一个提供工具(Tool)或资源(Resource)的进程,通过标准输入输出(stdio)或 HTTP 与客户端通信。下面创建一个最简单的“计算器”工具,让 AI Agent 能调用加法功能。

步骤 1:编写 Server 代码

在 `/home/mcpuser` 下新建文件 `calculator_server.py`:

python
from mcp.server import Server
from mcp.types import Tool, TextContent
from pydantic import BaseModel

class AddInput(BaseModel):
a: float
b: float

server = Server("calculator")

@server.list_tools()
async def list_tools() -> list[Tool]:
return [
Tool(
name="add",
description="Add two numbers",
inputSchema=AddInput.model_json_schema()
)
]

@server.call_tool()
async def call_tool(name: str, arguments: dict) -> list[TextContent]:
if name == "add":
inp = AddInput(**arguments)
result = inp.a + inp.b
return [TextContent(type="text", text=str(result))]
raise ValueError(f"Unknown tool: {name}")

if __name__ == "__main__":
server.run(transport="stdio")

这段代码定义了一个 `add` 工具,接收两个数字参数,返回它们的和。实际生产中你可以替换成文件读取、数据库查询等逻辑。

步骤 2:测试 Server 能否正常启动

直接运行脚本,观察是否报错:

python3 calculator_server.py

正常启动后进程会等待 stdin 输入(MCP 协议 JSON 消息)。可以用 Ctrl+C 先停掉。如果报 `ModuleNotFoundError: No module named 'pydantic'`,先安装 pydantic:

pip3 install pydantic

配置端口与安全(可选)

默认 MCP Server 使用 stdio 通信,适合本地或容器内调用。如果希望 Agent 通过 HTTP 远程连接,可以改用 `transport="sse"` 或使用 `mcp-server` 框架的 HTTP 模式。不过新手阶段建议先用 stdio,避免端口暴露风险。

安全提醒

• 不要用 root 用户运行 MCP Server。

• 如果确实需要 HTTP 暴露,务必绑定 `127.0.0.1` 并用 Nginx 反向代理 + 认证。

• 生产环境建议将 Server 封装成 systemd 服务,实现自动重启。

测试 MCP Server 与 Agent 连接

MCP Server 本身不提供界面,你需要一个 MCP 客户端来调用。常见客户端包括 Claude Code、Codex、Hermes Agent 等。以 Claude Code 为例,在 `claude_code_config.json` 中配置 MCP Server 路径:

json
{
"mcpServers": {
"calculator": {
"command": "python3",
"args": ["/home/mcpuser/calculator_server.py"],
"env": {}
}
}
}

启动 Claude Code 后,向它提问“计算 3.5 + 2.7”,Agent 会自动调用 MCP Server 的 `add` 工具并返回结果。

如果使用其他 Agent,请查阅对应文档配置 MCP 客户端连接方式。常见方法是通过环境变量或配置文件指定 `MCP_SERVER` 路径。

老鸟叮嘱

1.Python 版本兼容性:MCP 库要求 Python 3.10+,如果 VPS 默认是 3.8,务必先安装新版。
2.依赖隔离:建议用虚拟环境(venv)管理 MCP Server 的依赖,避免与系统 Python 包冲突。
3.日志排障:启动 Server 时加 `–log-level debug` 参数(如果支持),或直接在代码里加 print 输出到 stderr。
4.不要在生产环境直接暴露 MCP Server 端口:MCP 协议本身没有内置鉴权,端口暴露等于把工具权限开放给公网,极其危险。
5.内存占用:一个简单的 MCP Server 仅占用几十 MB 内存,但如果你在 Server 内部加载大模型或数据库连接,内存会飙升。根据实际工具复杂度评估 VPS 配置。

FAQ

Q1:MCP Server 必须用 Python 吗?
不一定。MCP 官方支持 Python 和 TypeScript/JavaScript 参考实现,你也可以用 Go、Rust 等语言实现协议。新手建议从 Python 开始。

Q2:部署 MCP Server 需要多少 VPS 配置?
纯工具型 Server(不加载模型)1 核 1G 足够。如果集成本地模型(如 Ollama),建议 2 核 4G 以上。

Q3:如何让 MCP Server 开机自启?
编写 systemd 服务文件,将 Server 设为 `Type=simple`,`ExecStart` 指向你的 Python 脚本。注意使用非 root 用户和绝对路径。

Q4:MCP Server 可以同时服务多个 Agent 吗?
通过 stdio 通信时,一个 Server 进程只能服务一个客户端。如果需要多客户端,建议用 HTTP 模式或每个 Agent 单独启动一个 Server 进程。

Q5:部署后 Agent 连接不上,怎么排查?
先手动运行 Server 脚本看是否报错;再检查 Agent 配置中的路径、命令是否写对;最后看 VPS 防火墙是否放行相关端口(如果使用 HTTP)。

Q6:我可以在 MCP Server 里调用外部 API 吗?
完全可以。MCP Server 本质是一个普通 Python 程序,你可以在工具处理函数里请求任何 HTTP API、读取文件、操作数据库。注意做好异常处理和超时控制。

总结

在 VPS 上部署第一个 MCP Server 并不复杂,核心就是装好 Python 环境、安装 mcp 库、写一个带工具定义的脚本,然后让 Agent 通过 stdio 连接。新手最容易踩的坑是 Python 版本不对、依赖缺失、以及安全意识不足。按照本文步骤走一遍,你就能拥有一个可用的 MCP Server,为后续搭建更复杂的 AI Agent 工作流打下基础。

**相关阅读:**

– [VPS部署AI工具100讲:AI Agent、Codex、Claude Code、Hermes Agent、Ollama与自动化工作流实战教程](https://www.zhujixuan.com/jishujiaocheng/9606.html)
– [Codex、Claude Code、OpenClaw、Hermes Agent、Ollama、n8n 分别适合什么场景](https://www.zhujixuan.com/jishujiaocheng/9759.html)
– [Claude Code 与 Codex 对比:哪个更适合 VPS 远程开发](https://www.zhujixuan.com/jishujiaocheng/9816.html)

转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9831.html 商家投稿邮箱:zhujixuanblog@qq.com