Qiniu MCP Server

Accede al almacenamiento en la nube de Qiniu, a los servicios multimedia inteligentes y a las operaciones de CDN a través del Protocolo de Contexto de Modelo.

Documentación

Qiniu MCP Server

Resumen

Servidor de Model Context Protocol (MCP) construido sobre los productos de Qiniu Cloud, que permite a los usuarios acceder a Qiniu Cloud Storage, multimedia inteligente, servicios de streaming en vivo, etc., a través de este MCP Server dentro del contexto de clientes de modelos de IA de gran escala.

Conjunto de capacidades:

  • Almacenamiento
  • Multimedia inteligente
    • Redimensionar imágenes
    • Recortar esquinas redondeadas en imágenes
  • CDN
    • Refrescar archivos mediante enlaces
    • Precargar archivos mediante enlaces
  • Streaming en vivo
    • Crear bucket de espacio de transmisión en vivo
    • Crear flujo de transmisión en vivo
    • Obtener lista de espacios de transmisión en vivo
    • Obtener lista de flujos
    • Vincular dominios de push/pull de transmisión
    • Obtener direcciones de transmisión push/pull
    • Obtener uso de transmisión en vivo

Requisitos del entorno

  • Python 3.12 o superior
  • Gestor de paquetes uv

Si uv aún no está instalado, puede usar el siguiente comando para instalarlo:

# Mac,推荐使用 brew 安装
brew install uv


# Linux & Mac
# 1. 安装
curl -LsSf https://astral.sh/uv/install.sh | sh
# 2. 安装完成后,请确保将软件包安装路径(包含 uv 和 uvx 可执行文件的目录)添加到系统的 PATH 环境变量中。
# 假设安装包路径为 /Users/xxx/.local/bin(见安装执行输出)
### 临时生效(当前会话),在当前终端中执行以下命令:
export PATH="/Users/xxx/.local/bin:$PATH"
### 永久生效(推荐),在当前终端中执行以下命令:
echo 'export PATH="/Users/xxx/.local/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile


# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Consulte Instalación de uv para conocer el método de instalación específico.

Uso en Cline:

Pasos:

  1. Descargue el plugin de Cline en VSCode (después de descargar el plugin de Cline, aparecerá un icono de Cline en la barra lateral)

  2. Configure el modelo de IA

  3. Configure qiniu MCP

    1. Haga clic en el icono de Cline para ingresar al plugin de Cline y seleccione el módulo MCP Server
    2. Seleccione "installed" y haga clic en "Advanced MCP Settings" para configurar el MCP Server, consulte la siguiente información de configuración
    {
      "mcpServers": {
        "qiniu": {
          "command": "uvx",
          "args": [
            "qiniu-mcp-server"
          ],
          "env": {
            "QINIU_ACCESS_KEY": "YOUR_ACCESS_KEY",
            "QINIU_SECRET_KEY": "YOUR_SECRET_KEY",
            "QINIU_REGION_NAME": "YOUR_REGION_NAME",
            "QINIU_ENDPOINT_URL": "YOUR_ENDPOINT_URL",
            "QINIU_BUCKETS": "YOUR_BUCKET_A,YOUR_BUCKET_B"
         },
          "disabled": false
        }
      }
    }
    
    如果只使用直播功能时,支持两种鉴权模式
    1 配置QINIU_ACCESS_KEY/QINIU_SECRET_KEY
    {
      "mcpServers": {
        "qiniu": {
          "command": "uvx",
          "args": [
            "qiniu-mcp-server"
          ],
          "env": {
            "QINIU_ACCESS_KEY": "YOUR_ACCESS_KEY",
            "QINIU_SECRET_KEY": "YOUR_SECRET_KEY"
         },
          "disabled": false
        }
      }
    }
    2 可在七牛直播控制台获取apikey后,配置QINIU_LIVE_API_KEY
    {
      "mcpServers": {
        "qiniu": {
          "command": "uvx",
          "args": [
            "qiniu-mcp-server"
          ],
          "env": {
            "QINIU_LIVE_API_KEY": "YOUR_LIVE_API_KEY"
         },
          "disabled": false
        }
      }
    }
    
    1. Haga clic en el interruptor de conexión del qiniu MCP Server para conectarse
  4. Cree una ventana de chat en Cline; ahora podemos interactuar con la IA para usar qiniu-mcp-server. A continuación se muestran algunos ejemplos de almacenamiento de objetos:

    • Enumerar la información de recursos de qiniu
    • Enumerar todos los Buckets en qiniu
    • Enumerar los archivos del Bucket xxx en qiniu
    • Leer el contenido del archivo yyy en el Bucket xxx de qiniu
    • Recortar una esquina redondeada de 200 píxeles de ancho en la imagen yyy del Bucket xxx de qiniu
    • Refrescar este enlace CDN de qiniu: https://developer.qiniu.com/test.txt
  5. Cree una ventana de chat en Cline; ahora podemos interactuar con la IA para usar qiniu-mcp-server. A continuación se muestran algunos ejemplos del sistema de transmisión en vivo:

    • Enumerar todos los espacios de transmisión en vivo
    • Crear 1 nuevo espacio de transmisión en vivo, denominado mcptest1123
    • Crear 1 nuevo flujo para mcptest1123, denominado stream1
    • Enumerar todos los flujos en el espacio de transmisión en vivo mcptest1123
    • Vincular el dominio de push y el dominio de pull para mcptest1123
    • Obtener las direcciones de push y pull correspondientes al flujo de transmisión en vivo stream1 en mcptest1123
    • Obtener el uso de transmisión en vivo de la última 1 hora

Nota: La creación de un MCP Server en cursor puede usar directamente la configuración mencionada anteriormente. En claude, es posible que encuentre el error: Error: spawn uvx ENOENT. Solución: complete la ruta absoluta de uvx en el parámetro de comando, por ejemplo: /usr/local/bin/uvx

Desarrollo

  1. Clonar el repositorio:
# 克隆项目并进入目录
git clone git@github.com:qiniu/qiniu-mcp-server.git
cd qiniu-mcp-server
  1. Crear y activar el entorno virtual:
uv venv
source .venv/bin/activate  # Linux/macOS
# 或
.venv\Scripts\activate  # Windows
  1. Instalar dependencias:
uv pip install -e .
  1. Configuración

Copiar la plantilla de variables de entorno:

cp .env.example .env

Edite el archivo .env y configure los siguientes parámetros:

# S3/Kodo 认证信息
QINIU_ACCESS_KEY=your_access_key
QINIU_SECRET_KEY=your_secret_key

# 区域信息
QINIU_REGION_NAME=your_region
QINIU_ENDPOINT_URL=endpoint_url # eg:https://s3.your_region.qiniucs.com

# 配置 bucket,多个 bucket 使用逗号隔开,建议最多配置 20 个 bucket
QINIU_BUCKETS=bucket1,bucket2,bucket3

Para funcionalidades extendidas, primero cree un directorio de paquete de negocio bajo el directorio core (por ejemplo: almacenamiento -> storage), y complete la extensión de funcionalidad en este directorio de paquete de negocio. En el archivo __init__.py dentro del directorio del paquete de negocio, defina la función load para registrar herramientas o recursos del negocio. Finalmente, llame a esta función load en el archivo __init__.py dentro del directorio core para completar el registro de herramientas o recursos.

core
├── __init__.py # 各个业务工具或者资源加载
└── storage # 存储业务目录
    ├── __init__.py # 加载存储工具或者资源
    ├── resource.py # 存储资源扩展
    ├── storage.py # 存储工具类
    └── tools.py # 存储工具扩展

Pruebas

Prueba con Model Control Protocol Inspector

Se recomienda encarecidamente usar Model Control Protocol Inspector para las pruebas.

# node 版本为:v22.4.0
npx @modelcontextprotocol/inspector uv --directory . run qiniu-mcp-server

Ejemplo de inicio local del MCP Server

  1. Iniciar en modo de entrada/salida estándar (stdio) (predeterminado):
uv --directory . run qiniu-mcp-server
  1. Iniciar en modo SSE (para aplicaciones web):
uv --directory . run qiniu-mcp-server --transport sse --port 8000