Token导航 LogoToken导航TokenDH.com
RRS Jokes MCP logo
运维云端stdio官方级别未说明来源级核验

RRS Jokes MCP

MCP Server

一个基于Python的MCP服务器部署指南,涵盖本地测试、容器化及Azure部署,适用于AI助手与外部工具连接。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
服务器部署PythonClaude容器化ClaudeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Roelzz

提供方

Roelzz

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python --version

详细介绍

基于Python的MCP服务器教程 - 部署到Azure

本教程以一个玩笑服务器为例,但这种方法适用于你想搭建的任何MCP服务器。

什么是MCP?

模型上下文协议(MCP)是一种标准,它允许人工智能助手连接到外部工具和数据源。可以将其视为人工智能模型与您自定义功能之间的桥梁。

MCP服务器可以提供:

  • 工具 - AI可以调用的功能(例如,获取数据、执行计算、触发操作)
  • 资源 - AI可读取的数据(例如,文件、数据库、API)
  • 提示 - 为常见任务预设的提示模板

目前,您可以将MCP服务器连接到Microsoft Copilot Studio。未来将会有更多集成功能推出——这只是个开始。

你将要构建的内容

完成本教程后,您将掌握:

  1. 本地运行的一个工作中的MCP服务器
  2. 服务器已打包容器化,准备部署
  3. 服务器运行在Azure容器应用上
  4. 与Microsoft Copilot Studio集成进行测试

先决条件

你需要:

  • Python 3.11及以上版本 (推荐3.11版本 - 如需具体细节,请查看Dockerfile)
  • UV(紫外线) 包管理器(我们将安装这个)
  • Podman(注:Podman是一个用于容器管理的开源工具,直接音译为“波丹”或保留原英文名“Podman”在中文语境中均可,具体使用哪种表述取决于上下文和读者的熟悉程度。) 用于容器化(Docker 也适用,只需替换命令即可)
  • VS Code(Visual Studio Code,简称VS Code) (可选,但对端口转发很有用)
  • Azure 订阅 用于部署
  • Microsoft Copilot Studio(微软Copilot工作室) 用于测试的访问权限

仓库内容

.
├── server.py              # Your MCP server code
├── requirements.txt       # Python dependencies
├── Dockerfile            # Container definition
├── docker-compose.yml    # Podman/Docker compose configuration
└── README.md            # This file

______________________________________________________________________

第一部分:本地构建和运行

步骤1:安装UV

UV 是一个快速的 Python 包管理器。请先安装它。

macOS 或 Linux:

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

Windows PowerShell:

irm https://astral.sh/uv/install.ps1 | iex

验证安装:

uv --version

步骤2:设置您的项目

mkdir joke-mcp
cd joke-mcp

步骤3:使用UV安装Python

列出可用版本:

uv python list

安装 Python 3.11:

uv python install 3.11

步骤4:创建虚拟环境

uv venv .venv --python 3.11

激活它:

*macOS 或 Linux:*

source .venv/bin/activate

*Windows PowerShell:*

.venv\Scripts\Activate.ps1

确认它已正常工作:

python --version
which python   # macOS or Linux
where python   # Windows

步骤5:添加您的服务器代码

创建 server.py 与您的MCP服务器实现相关。关键部分是HTTP传输配置:

# At the bottom of your server.py
if __name__ == "__main__":
    import sys
    print("Starting Joke MCP Server with HTTP transport on http://localhost:2009/mcp", file=sys.stderr)
    mcp.run(transport="http", host="0.0.0.0", port=2009, path="/mcp")

步骤6:安装依赖项

uv add mcp

这会产生 uv.lock 并将所有内容安装到您的虚拟环境中。

步骤7:运行服务器

uv run python server.py

你应该能看到关于localhost:2009上HTTP的启动消息。如果你看到的是堆栈跟踪信息,那么服务器出问题了。请检查你的代码。

步骤8:快速合理性检查

打开另一个终端并测试端点:

curl -i http://localhost:2009/mcp

你不会看到一个漂亮的页面。这是一个MCP(可能是指某种特定的网络或系统协议)终端,静默或结构化响应是正常现象。

______________________________________________________________________

第二部分:使用 Microsoft Copilot Studio 进行测试

选项A:本地直接测试(快速)

如果你在同一台机器上运行所有内容,只需将Claude、VS-Code或具备MCP功能的代理指向:

http://localhost:2009/mcp

选项B:使用VS Code端口转发进行远程测试(更优)

如果您的服务器运行在远程机器上、开发容器中,或者您想要一个公共URL:

  1. 运行你的服务器 在偏远环境中
  2. 打开 VS Code - 端口面板应自动检测到端口2009
  3. 端口转发 - 在端口面板中点击“转发端口”
  4. 公开它 如果你想要一个可分享的URL
  5. 复制转发的URL (例如。, https://xyz.devtunnels.ms)

连接到Copilot Studio

  1. 打开或创建您的代理在 Microsoft Copilot Studio(微软Copilot工作室)
  2. 首选 工具添加一个工具+ 新工具
  3. 选择 模型上下文协议
  4. 配置:

- 名字像某种清澈的东西 joke-mcp-local-test - 描述要具体明确——这有助于代理了解何时使用您的工具 - 终端点URL您转发的URL + /mcp (例如。, https://xyz.devtunnels.ms/mcp) - 认证:无(目前 - 详见下文说明)

  1. 点击 创建
  1. 检查连接 在连接管理器中再次(进行操作)
  2. 在测试面板中进行测试

认证说明:\ 这个示例跳过了身份验证步骤以保持简洁。对于生产环境, 你绝对应该添加身份验证我会编写这个教程的第二版,加入正确的身份验证实现。在此之前,请不要将未经过身份验证的服务器暴露在互联网上。

常见的本地测试问题

问题解决方法
端口已被使用更改配置中的端口 server.py或者终止正在使用2009的进程
未找到包请确保您已运行 uv add mcp 带有正确的包名
Windows 防火墙提示允许本地访问,除非你享受网络调试
Copilot Studio 连接被拒绝检查您的端口转发设置,并确保 /mcp 路径已包含

______________________________________________________________________

第三部分:使用 Podman 进行容器化

步骤1:创建您的容器文件

你需要三个文件(请查看此仓库以获取示例):

  1. server.py 翻译成中文是:“服务器.py” 或者更自然地表达为 “服务器端程序(文件名:server.py)”。不过,在技术文档或编程语境中,通常直接保留“server.py”作为文件名,不进行翻译。所以,简洁的翻译可以是“服务器.py”或直接说明其为“服务器端程序的文件名” - 您的MCP服务器代码
  2. requirements.txt(需求文件) - 你的Python依赖项
  3. Dockerfile(注:Dockerfile是一个文本文件,其中包含了一系列指令,用于自定义Docker镜像的构建过程。) - 容器构建说明
  4. docker-compose.yml(文件名,通常用于定义Docker容器服务的编排配置) - 组合配置

步骤2:构建容器

导航到您的项目文件夹:

cd joke-mcp

使用 Podman 构建:

podman-compose build

步骤3:本地运行

podman-compose up

服务器应在容器内部启动。测试方法与之前相同。

______________________________________________________________________

第四部分:多架构构建并推送到Docker Hub

如果您希望支持Intel/AMD(amd64)和ARM(arm64)两种处理器,那么请构建一个多架构镜像。

步骤1:为每种架构构建镜像

podman build --platform=linux/amd64 -t localhost/jokes-mcp_joke-mcp:amd64 .
podman build --platform=linux/arm64 -t localhost/jokes-mcp_joke-mcp:arm64 .

步骤2:为Docker Hub打标签

替换 roelzz/jokes-mcp_joke-mcp 使用您的 Docker Hub 用户名和仓库名:

podman tag localhost/jokes-mcp_joke-mcp:amd64 docker.io/roelzz/jokes-mcp_joke-mcp:amd64
podman tag localhost/jokes-mcp_joke-mcp:arm64 docker.io/roelzz/jokes-mcp_joke-mcp:arm64

步骤3:登录Docker Hub

podman login docker.io

步骤4:推送每个架构

podman push docker.io/roelzz/jokes-mcp_joke-mcp:amd64
podman push docker.io/roelzz/jokes-mcp_joke-mcp:arm64

第五步:创建清单列表

这个功能将两张图片归为一个标签下:

podman manifest create docker.io/roelzz/jokes-mcp_joke-mcp:latest
podman manifest add docker.io/roelzz/jokes-mcp_joke-mcp:latest docker.io/roelzz/jokes-mcp_joke-mcp:amd64
podman manifest add docker.io/roelzz/jokes-mcp_joke-mcp:latest docker.io/roelzz/jokes-mcp_joke-mcp:arm64

步骤6:推送清单文件

podman manifest push docker.io/roelzz/jokes-mcp_joke-mcp:latest

现在任何人都可以参加:

docker pull roelzz/jokes-mcp_joke-mcp:latest

Docker/Podman 会自动为您的 CPU 拉取合适架构的镜像。

______________________________________________________________________

第5部分:将应用部署到Azure容器应用

步骤1:访问Azure门户

  1. 导航至 portal.azure.com(直接翻译为中文即“门户.azure.com”,但通常我们保留其英文原样,因为它是特定服务的网址,直接翻译并无实际意义,只是说明其指向的是微软Azure的门户网站)
  2. 点击 创建资源
  3. 搜索并选择 容器应用

步骤2:配置容器应用

  1. 基础:

- 选择您的订阅服务 - 选择或创建一个资源组 - 选择一个区域(靠近您的用户) - 给它起个名字

  1. 容器:

- 部署源容器镜像 - 图片来源Docker Hub(或您的注册表) - 注册表docker.io - 镜像和标签roelzz/jokes-mcp_joke-mcp:latest (使用你的路径)

  1. 入侵(或:入境):

- 启用入口(Ingress) - 将目标端口设置为 2009 - 启用外部流量

  1. 审查并创建

步骤3:获取您的公开URL

一旦部署:

  1. 在 Azure 门户中转到您的容器应用
  2. 找到 应用程序URL 在概述中
  3. 您的MCP终端节点是: https://your-app-url.azurecontainerapps.io/mcp

步骤4:更新Copilot Studio

回到Copilot Studio中的MCP工具配置,并将终端节点URL更新为您的新Azure URL(别忘了包含 /mcp (在最后)。

再次测试。如果一切正常,恭喜你——你刚刚将你的第一个MCP服务器部署到了生产环境中。

______________________________________________________________________

故障排除

常见问题

服务器无法在本地启动:

  • 检查Python版本是否符合要求
  • 验证所有已安装的依赖项 uv add
  • 查找打字错误 server.py

容器构建失败:

  • 检查 Dockerfile 语法
  • 确保 requirements.txt 文件完整
  • 验证基础镜像是否可访问

Azure 部署问题:

  • 确认镜像已成功推送到注册表
  • 检查入口设置(端口2009,外部启用)
  • 在 Azure 门户中查看容器日志

Copilot Studio 无法连接:

  • 验证终端URL是否包含 /mcp 路径
  • 检查服务器是否确实在运行
  • 首先使用curl测试终端点
  • 对于Azure:确保入口允许外部流量

*随着常见问题的出现,将增加更多故障排除技巧。*

______________________________________________________________________

接下来怎么办?

这是版本1——功能齐全但较为基础。未来改进方向:

  • V2:认证 添加适当的API密钥或OAuth实现
  • 先进的MCP功能 - 更复杂的工具和资源
  • 监测 - 添加日志记录和健康检查
  • CI/CD(持续集成/持续交付) - 自动化构建和部署流水线

未来MCP支持

Microsoft Copilot Studio 目前支持 MCP 服务器,并且未来可能会有更多人工智能平台加入支持。该协议设计为平台无关型,因此,当其他工具采用 MCP 时,您的服务器应该能够与其他工具协同工作。

______________________________________________________________________

贡献;助力

尽情发挥吧。克隆这个仓库,修改它,破坏它,修复它,让它变得更好。如果你有改进意见或发现了问题,请随时联系或提交拉取请求。我们的目标是帮助人们轻松构建MCP服务器,无需烦恼。

______________________________________________________________________

许可证

这个项目遵循MIT许可协议,这意味着你可以随意使用它。你可以使用它、修改它、出售它、用它来教学。但如果出了什么问题,可别怪我哦。

______________________________________________________________________

作者

查看我在其他平台上的项目

______________________________________________________________________

资源

______________________________________________________________________

构建时绝不容忍复杂性。如果它不起作用,那很可能比你想象的要简单。

目录标签

目录标签

服务器部署PythonClaude容器化AI连接工具本地部署Python开发Azure集成

支持客户端

ClaudeVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP