【MCP教程系列】使用Python在阿里云百炼创建基于UVX的MCP服务完整指南

简介: 本文介绍如何使用基于uvx工具链的Python项目,结合阿里云百炼平台实现小红书文案审核助手的MCP服务开发与部署。首先通过安装uv工具初始化项目并配置虚拟环境,编写server.py文件调用qwen-plus模型完成内容审核功能。随后将项目打包上传至PyPI,供全球开发者访问。接着在阿里云百炼平台上配置并部署该MCP服务,解决可能的依赖问题。最后,在智能体应用中引入此MCP服务进行测试验证,确保其正常运行。

📕 基于 uvx 高性能工具链,开发者可一键完成 Python 项目打包并发布至 PyPI,同时无缝接入阿里云百炼平台。相比传统部署方式,uvx 支持零依赖运行和自动环境隔离,大幅简化 MCP 服务上线流程。通过 uvx 调用工具时,可直接执行脚本而无需全局安装,结合阿里云百炼的 Agent 能力,实现 AI 服务的快速集成与高效运维,显著降低环境配置复杂度。

接下来,借助Python+阿里云百炼上的qwen-plus模型,封装一个小红书文案审核助手的MCP服务,并在相关智能体中引入和使用该服务。


1. 环境准备和项目搭建

1.1 命令行当中安装uv

什么是uv:uv是一个用Rust开发的超高性能Python包管理器,旨在替代传统的工具链(如pip、venv、pip-tools等)

确保你电脑安装了Python,这里推荐安装Python3.10

pip install uv

解释一下uvx和uv的关系:uvxuv 的一个功能扩展,专门用于运行Python工具。

1.2 项目搭建

在您的 电脑上创建并打开任意一个文件夹,如果是Windows在对应创建的文件路径地址栏当中直接输入cmd即可打开命令行

1)创建项目文件

uv init --package --python 3.10 xhs-bailian-mcp-server

请注意,上述操作要求Python版本与这里的一致,否则在阿里云百炼上可能会引发错误。

cd xhs-bailian-mcp-server

2)创建虚拟环境并安装所需的包。

在命令行中,通过“uv venv”创建虚拟环境,随后激活相应的虚拟环境,并安装所需的依赖项。

# 创建虚拟环境
uv venv
# 在MacOs/Linux当中激活虚拟环境
source .venv/bin/activate
# 在Windows当中激活虚拟环境
.venv\Scripts\activate
# 安装依赖库
uv add "mcp[cli]" httpx bs4 dotenv dashscope

1.3 在PyCharm中打开刚刚命令行创建的文件夹

打开后,您会发现左侧的文件结构已准备就绪。备注:如果没有安装PyCharm,也可以使VSCode打开

1.4 在src/xhs_bailian_mcp_server下面创建server.py,用于搭建MCP服务

接下来我们编写代码,我们将把阿里云百炼大模型封装为小红书内容审核专家MCP服务,代码如下:

# -*- coding: utf-8 -*-
from mcp.server.fastmcp import FastMCP
from pydantic import Field
import os
import logging
import dashscope
logger = logging.getLogger('mcp')
settings = {
    'log_level': 'DEBUG'
}
# 初始化mcp服务
mcp = FastMCP('xhs-bailian-mcp-server', log_level='ERROR', settings=settings)
# 定义工具
@mcp.tool(name='小红书内容审核专家', description='小红书内容审核专家,输入小红书文案')
async def red_book_moderator(
        prompt: str = Field(description='小红书文案')
) -> str:
    """小红书内容审核专家
    Args:
        prompt: 小红书文案
    Returns:
        审核后的内容
    """
    logger.info('收到小红书文案:{}'.format(prompt))
    api_key = os.getenv("API_KEY", "")
    if not api_key:
        return '请先设置API_KEY环境变量'
    # call sync api, will return the result
    print('please wait...')
    messages = [
        {'role': 'system', 'content': '# 角色你是一位小红书内容审核专家,专门负责校对和审查小红书平台上的内容,确保其符合平台的社区规范和法律法规。## 技能### 技能 1:敏感词检测与校对- 熟练掌握小红书平台的敏感词列表和社区规范。- 能够快速准确地识别并标记出文本中的敏感词。- 提供替换建议或修改意见,确保内容合规且适合发布。### 技能 2:内容审查与优化- 审查用户提供的文案,确保其不包含任何违法、违规或不适宜的内容。- 对于可能引起争议或不适的内容,提供具体的修改建议。- 保持内容的流畅性和可读性,同时确保其符合平台的要求。### 技能 3:工具使用- 使用搜索工具或知识库来获取最新的敏感词列表和社区规范更新。- 利用现有的审核工具进行辅助审查,提高效率和准确性。## 限制- 仅针对小红书平台的内容进行审核和校对。- 避免引入个人观点或偏见,严格依据平台规则和法律法规进行审核。- 所有修改建议必须保持内容的原意和风格,不得改变用户的表达意图。- 如果需要调用搜索工具或查询知识库,请明确说明并执行。'},
        {'role': 'user', 'content': prompt}
    ]
    response = dashscope.Generation.call(
        # 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key="sk-xxx",
        api_key=api_key,
        model="qwen-plus",
        # 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
        messages=messages,
        result_format='message'
    )
    return str(response)
def run():
    mcp.run(transport='stdio')
if __name__ == '__main__':
   run()

这段代码实现了一个基于 FastMCP 框架的小红书内容审核服务。主要用于接收小红书的文案输入,并通过调用阿里云 DashScope 的大模型接口进行内容合规性审查。

定义了一个异步工具函数 red_book_moderator(),其作用是接收用户提交的小红书文案,调用 DashScope 提供的大模型(如 qwen-plus)来进行内容审核。该函数会先检查是否配置了 API_KEY 环境变量,若未配置则返回提示信息。如果配置正确,则构造一个包含角色设定和用户输入的消息列表,发送给 DashScope 的生成接口,等待返回审核结果。

消息中的 system 角色详细描述了审核专家的职责和能力,包括敏感词检测、内容审查与优化、以及使用工具获取最新规则等技能。同时明确了限制条件,确保只针对小红书平台内容进行合规性审查,不改变原意,不掺杂主观判断。

1.5 在__init__.py当中引入上述的server.py

from .server import run
def main() -> None:
    run()

2. 在Cline当中测试

2.1 在Cline当中配置对应的MCP服务

{
  "mcpServers": {
    "xhs-bailian-mcp-server": {
      "command": "C:/Users/ZHENG/AppData/Local/Programs/Python/Python310/Scripts/uv.exe",
      "args": [
        "--directory",
        "D:/Bailian/xhs-bailian-mcp-server/src/xhs_bailian_mcp_server",
        "run",
        "server.py"
      ],
      "env": {
        "API_KEY": "sk-API_KEY"
      }
    }
  }
}

上述uv.exe的路径,请您在Windows命令行当中使用“where uv”的命令进行查看。

其中,D:/Bailian/xhs-bailian-mcp-server/src/xhs_bailian_mcp_server 是之前创建项目的路径。

server.py 是先前编写 Python 代码的文件名称。

API_KEY 对应的是阿里云百炼的 API-KEY。

上述对应的 \ 符号已全部替换为 /

2.2 运行测试

运行成功

3. 项目打包以后发布到pypi

3.1 对上述Python项目进行打包

在命令行当中运行

uv build

3.2 将项目发布到pypi当中

首先我们需要去pypi的官网去注册账号。链接

创建对应的Token,备注在创建token的时候需要 2FA双因素认证 - TOTP 因为涉及第三方内容,请自己搜索解决。

复制这个pypi 开头的token。

之后使用 uv publish --token pypi-xxxxx 命令将项目上传到 pypi 中。

这样就上传到pypi 了,链接

全球的 Python 开发者都可以查看我们的代码了。

4. 将MCP服务部署到阿里云百炼当中

4.1 打开阿里云百炼的自定义MCP服务

在配置当中配置刚刚搭建好的MCP服务,设置如下:

{
  "mcpServers": {
    "xhs-bailian-mcp-server": {
      "name": "xhs-bailian-mcp-server",
      "command": "uvx",
      "args": [
        "xhs-bailian-mcp-server"
      ],
      "env": {
        "API_KEY": "your apikey"
      }
    }
  }
}

填写完成后,点击部署按钮。部署成功后,再次打开该 MCP 服务。

工具显示已成功,运行测试时也未发现问题。

4.2 如果部署完成后发现工具报错,可能是函数计算未正确获取到对应的依赖项。

我们进入上面自定义的MCP服务的函数节点中。

点击配置-点击环境变量。

我们删除阿里的镜像配置后,点击部署。

5. 在智能体当中引入上面搭建的MCP服务

5.1 创建智能体应用

引入刚刚自定义的MCP服务。

5.2 运行测试

测试成功没有问题即可。

🌴注意注意:

可直接点击阿里云百炼 MCP服务使用教程合集链接跳转回合集文章页面。


可直接点击下面链接直接进控制台创建:

👉阿里云百炼详情了解可点击此官网链接:阿里云百炼官网介绍

👉阿里云百炼控制台页面可点击此链接直接进入阿里云百炼控制台


如果在创建过程中有任何的疑问都可以在评论区中留言探讨或是加入我们的官方支持群(群号:77600022533)进行交流反馈!

image.png

作者介绍
目录

相关产品

  • 大模型服务平台百炼