使用说明内容(Markdown格式)

  • 项目简介

    • 这是一个使用 FastMCP 构建的 MCP 服务器,主要面向将图片和文件上传到 MinIO 对象存储的应用场景,同时暴露一组可被 LLM 客户端调用的工具,如上传图片、上传文件、从 URL 下载并上传、列出文件、生成随机字符串等。服务器通过 MCP 协议与客户端通信,支持通过流式 HTTP 传输。
  • 主要功能点

    • 提供以下 MCP 工具:
      • upload_image:接收 base64 编码的图片,上传到 MinIO,并返回公开访问 URL、大小等信息。
      • upload_file:将本地文件上传到 MinIO,返回公开 URL、大小、类型等信息。
      • upload_from_url:从指定 URL 下载文件并上传到 MinIO,返回公开 URL、大小、类型等信息。
      • list_files:列出 MinIO 指定 Bucket 的文件清单及公开 URL。
      • generate_random_string:生成指定长度的随机字符串,方便用作唯一文件名等标识。
    • 与 MinIO 的集成:通过 MinIO 客户端对对象存储进行创建桶、上传对象、读取对象等操作。
    • 提供对外的 MCP 端点与工具说明,便于与 LLM 客户端(如 Claude、GPT 等)对接。
    • 支持 Streamable HTTP 传输方式,便于与多种客户端无缝对接。
  • 安装步骤

    1. 准备工作
      • 配置并启动 MinIO 服务,确保可访问的 Endpoint、Access Key、Secret Key 与存储桶名称。
    2. 安装依赖
      • 安装 Python 依赖,例如通过 requirements.txt 安装所需包(如 fastmcp、minio 等)。
    3. 启动 MCP 服务器
      • 直接运行 app.py,或按照 Docker 方式部署,确保环境变量正确配置。
    4. 验证
      • 通过健康接口或 /mcp 路径测试 MCP 服务是否就绪。
  • 服务器配置 为方便 MCP 客户端接入,提供一个 JSON 配置样例(以文本形式展示,非代码块): { "server_name": "minio-image-server", "command": "python", "args": ["app.py"], "transport": "streamable-http", "host": "0.0.0.0", "port": 8050, "env": { "MINIO_ENDPOINT": "<MinIO 服务器地址,如 127.0.0.1:9000>", "MINIO_ACCESS_KEY": "<MinIO 访问密钥>", "MINIO_SECRET_KEY": "<MinIO 秘钥>", "MINIO_BUCKET": "snapshoot", "PUBLIC_BASE_URL": "<公开访问的基础 URL,如 http://<服务器域名或IP>:9100>" } } 说明:

    • server_name 是 MCP 客户端在配置中显示的服务器名称。
    • command/args 指定启动服务器的命令与参数(此处为运行 app.py 的简单示例)。
    • transport 指定传输方式,这里使用 streamable-http,适用于大多数 LLM 客户端。
    • env 提供运行所需的环境变量(MinIO 设置与公开访问 URL),客户端无需关心这些内部实现,仅需要知道服务器地址和端点即可连接。
  • 基本使用方法

    • 启动后,客户端通过 MCP 请求调用工具,例如:
      • 调用 upload_image 传入 base64_data 与可选 filename/content_type,获取公开 URL。
      • 调用 upload_file 传入本地路径,获取公开 URL、大小与类型。
      • 调用 upload_from_url 传入 URL,获取公开 URL 与元数据。
      • 调用 list_files 查看当前存储的文件列表。
      • 调用 generate_random_string 生成唯一标识符,用于文件命名或测试数据。
    • 客户端接入要点:通过 MCP 的 JSON-RPC 请求发送工具名称和参数,服务器返回结构化的文本信息或统一的 JSON-RPC 响应,便于后续在 LLM 流程中解析与使用。

信息

分类

网页与API