简易制作MCP服务器并测试
https://github.com/modelcontextprotocol/python-sdk 也有github上有安装下载步骤
首先先下载claude桌面版测试使用mcp服务器比较方便,没有的话后续也有其他的测试方法,CLine,Cursor,还有可视化界面等。
推荐使用uv包的方式创建项目,windows安装uv:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
安装并激活虚拟环境。
uv venv
.\.venv\Scripts\activate
安装mcp依赖
uv add "mcp[cli]"
在你的main.py文件复制这段代码
# server.py
from mcp.server.fastmcp import FastMCP
# Create an MCP server
mcp = FastMCP("Demo")
# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
AI 代码解读
需要重新打开终端输入uv run mcp install main.py
打开Claude可以看到此工具直接使用。
在Docker上部署测试MCP服务器
首先先下载Docker
在Docker Settings配置镜像
找到Docker Engine 添加
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://dockerhub.azk8s.cn",
"https://mirror.ccs.tencentyun.com",
"https://registry.cn-hangzhou.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.m.daocloud.io",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud"
]
AI 代码解读
终端输入命令uv pip freeze
出现这些包,其实挺多包是不需要的但是我先保留了。
annotated-types==0.7.0
anyio==4.9.0
certifi==2025.1.31
click==8.1.8
colorama==0.4.6
h11==0.14.0
httpcore==1.0.8
httpx==0.28.1
httpx-sse==0.4.0
idna==3.10
markdown-it-py==3.0.0
mcp==1.6.0
mdurl==0.1.2
pydantic==2.11.3
pydantic-settings==2.8.1
pygments==2.19.1
python-dotenv==1.1.0
rich==14.0.0
shellingham==1.5.4
sniffio==1.3.1
sse-starlette==2.2.1
starlette==0.46.2
typer==0.15.2
typing-extensions==4.13.2
typing-inspection==0.4.0
uvicorn==0.34.1
创建requirements.txt 复制进去
配置Dockerfile
没学过docker问AI复制将这些命令自己搜了注释了一下,根据你的需要来配置Dockerfile
FROM python:3.12-slim
# 创建工作目录
WORKDIR /app
# 拷贝代码到这个目录下面
COPY . /app/
RUN pip install --upgrade pip && pip install uv
# 创建并激活虚拟环境
RUN python -m venv .venv
ENV PATH="/app/.venv/bin:$PATH"
RUN pip install -r requirements.txt # 在虚拟环境中安装依赖
# 如果 mcp 是通过 pip 安装的,也在虚拟环境中安装
# 假设 mcp install 是你自定义的命令,它可能需要在虚拟环境中运行
RUN pip install mcp
# 运行 mcp install 命令
CMD ["uv", "run", "--with", "mcp[cli]", "mcp", "run", "/app/main.py"]
EXPOSE 25565
AI 代码解读
构建Docker在当前目录下镜像名称为mcp_demo_1
docker build -t mcp_demo_1 .
docker启动后台运行容器并且暴露在端口25565上。
docker run -d -p 25565:25565 mcp_demo_1
列出docker当前正在运行的容器
docker ps
关闭docker 是根据NAMES名称关闭
docker stop festive_feynman
测试mcp服务器是否可用
没有部署在docker也可以在这里测试这里先忽略了。
打开cmd终端输入npx @modelcontextprotocol/inspector
,注意需要安装过node.js,打开浏览器,访问 Node.js 的官方网站:https://nodejs.org。
输入终端提供给你的url有一个可视化测试mcp服务器的页面,左边输入参数点击连接这个命令会启动你的docker并在停止docker后删除容器,这这里的连接其实就是在终端帮你运行命令,连接成功就可以看到工具如何测试使用工具了。