简易制作MCP服务器并测试

简介: 本文介绍了如何简易制作并测试MCP服务器,包括环境搭建、代码实现及Docker部署。首先通过uv包创建项目,在main.py中定义MCP服务器及其工具和资源函数。接着详细说明了在Windows上安装uv、配置Docker镜像加速、生成requirements.txt文件以及编写Dockerfile的过程。最后,通过构建和运行Docker容器部署MCP服务器,并使用Node.js工具测试其功能,确保服务器正常工作。此教程适合初学者快速上手MCP服务器的开发与部署。

简易制作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}!"

需要重新打开终端输入uv run mcp install main.py

打开Claude可以看到此工具直接使用。
Claude01.png

在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"
  ]

终端输入命令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

构建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.png

关闭docker 是根据NAMES名称关闭

docker stop festive_feynman

测试mcp服务器是否可用

没有部署在docker也可以在这里测试这里先忽略了。

打开cmd终端输入npx @modelcontextprotocol/inspector注意需要安装过node.js,打开浏览器,访问 Node.js 的官方网站:https://nodejs.org。

输入终端提供给你的url有一个可视化测试mcp服务器的页面,左边输入参数点击连接这个命令会启动你的docker并在停止docker后删除容器,这这里的连接其实就是在终端帮你运行命令,连接成功就可以看到工具如何测试使用工具了。

docker02.png

相关文章
|
5月前
|
人工智能 JavaScript API
零基础构建MCP服务器:TypeScript/Python双语言实战指南
作为一名深耕技术领域多年的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP作为Anthropic推出的开放标准,正在重新定义AI应用与外部系统的交互方式,它不仅解决了传统API集成的复杂性问题,更为开发者提供了一个统一、安全、高效的连接框架。在过去几个月的实践中,我发现许多开发者对MCP的概念理解透彻,但在实际动手构建MCP服务器时却遇到了各种技术壁垒。从环境配置的细节问题到SDK API的深度理解,从第一个Hello World程序的调试到生产环境的部署优化,每一个环节都可能成为初学者的绊脚石。因此,我决定撰写这篇全面的实
1088 67
零基础构建MCP服务器:TypeScript/Python双语言实战指南
|
2月前
|
人工智能 自然语言处理 JavaScript
利用MCP Server革新软件测试:更智能、更高效的自动化
MCP Server革新软件测试:通过标准化协议让AI实时感知页面结构,实现自然语言驱动、自适应维护的自动化测试,大幅提升效率,降低脚本开发与维护成本,推动测试左移与持续测试落地。
|
8月前
|
人工智能 API 开发者
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
FastAPI-MCP是一款能将FastAPI应用端点自动转换为符合模型上下文协议(MCP)的开源工具,支持零配置自动发现接口并保留完整文档和模式定义。
4501 112
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
|
3月前
|
人工智能 JavaScript 算法
Playwright携手MCP:AI智能体实现自主化UI回归测试
MCP 协议使得 AI 能够通过 Playwright 操作浏览器,其中快照生成技术将页面状态转化为 LLM 可理解的文本,成为驱动自动化测试的关键。该方式适用于探索性测试和快速验证,但目前仍面临快照信息缺失、元素定位不稳定、成本高、复杂场景适应性差以及结果确定性不足等挑战。人机协同被认为是未来更可行的方向,AI 负责执行固定流程,人类则专注策略与验证。
|
2月前
|
人工智能 自然语言处理 JavaScript
Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
Playwright MCP结合AI智能体,革新UI回归测试:通过自然语言驱动浏览器操作,降低脚本编写门槛,提升测试效率与覆盖范围。借助快照解析、智能定位与Jira等工具集成,实现从需求描述到自动化执行的闭环,推动测试迈向智能化、民主化新阶段。
|
3月前
|
自然语言处理 前端开发 测试技术
使用 Playwright MCP 实现 UI 自动化测试
本文介绍如何结合Playwright与MCP协议实现智能化UI自动化测试。通过自然语言指令控制浏览器,降低技术门槛,提升效率,并涵盖环境搭建、核心功能、实战案例及最佳实践,展现对话式自动化的未来趋势。
|
3月前
|
人工智能 自然语言处理 前端开发
深度解析Playwright MCP:功能、优势与挑战,AI如何提升测试效率与覆盖率
Playwright MCP通过AI与浏览器交互,实现自然语言驱动的自动化测试。它降低门槛、提升效率,助力测试工程师聚焦高价值工作,是探索性测试与快速验证的新利器。
|
4月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
862 1
|
3月前
|
人工智能 JavaScript 测试技术
当Playwright遇见MCP,AI智能体实现自主化UI回归测试
本文探讨如何通过Model Context Protocol(MCP)让AI智能体驱动Playwright实现端到端自动化测试。重点解析快照技术的实现原理与实战流程,同时深入剖析其在信息丢失、元素定位、成本效率及逻辑复杂性等方面的现实挑战。