P

Printify模型上下文服务

@TSavo/printify-mcp
0 Stars 298 次浏览 TSavo 更新于 2026-08-23

一种模型上下文协议服务器,允许像Claude这样的AI助手与Printify的按需打印平台集成,通过自然语言命令实现产品创建、管理和AI生成的设计上传。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

Printify MCP 服务器

一个用于将 AI 助手与 Printify 的按需打印平台集成的模型上下文协议 (MCP) 服务器。

目录

概述

Printify MCP 服务器是 AI 助手(如 Claude)与 Printify 的按需打印平台之间的桥梁。它允许 AI 助手通过模型上下文协议 (MCP) 创建和管理按需打印产品,使用 AI 生成设计,并处理所有产品管理方面的工作。

MCP 是由 Anthropic 开发的一种开放标准,用于标准化应用程序如何向大型语言模型 (LLMs) 提供上下文。此服务器实现了 MCP 规范,以结构化的方式将 Printify 的功能暴露给 AI 助手。

功能

该 MCP 服务器提供以下功能:

Printify API 集成

  • 身份验证:使用您的 API 密钥初始化 Printify API 客户端
  • 商店:列出和管理 Printify 商店
  • 产品:创建、读取、更新、删除和发布产品
  • 目录:浏览蓝图、打印提供商和变体
  • 图像:上传用于产品设计的图像

AI 图像生成

  • Replicate 集成:使用 Replicate 的 Flux 1.1 Pro 模型生成图像
  • 组合工作流:在一个步骤中生成 AI 图像并直接上传到 Printify

文档

  • 工具内文档:涵盖产品创建各个方面详尽的文档
  • 工作流指导:创建产品的分步指南

提示

  • 生成产品描述:根据产品详情生成吸引人的产品描述

先决条件

  • Node.js (v18 或更高版本)
  • npm (v7 或更高版本)
  • Printify API 密钥
  • Replicate API 令牌(用于 AI 图像生成)
  • ImgBB API 密钥(如果使用 Flux 1.1 Pro Ultra 模型,则需要)

安装

# Clone the repository
git clone https://github.com/tsavo/printify-mcp.git
cd printify-mcp

# Install dependencies
npm install

# Build the project
npm run build

配置

您有两种配置服务器所需环境变量的选项:

选项 1:使用 .env 文件(推荐)

  1. 在项目根目录下创建一个 .env 文件,并添加以下变量:
# Required for all functionality
PRINTIFY_API_KEY=your_printify_api_key

# Required if using the Flux 1.1 Pro Ultra model for image generation
# The Ultra model generates high-resolution images that are too large for direct base64 upload
IMGBB_API_KEY=your_imgbb_api_key

# Optional: If not provided, the first shop in your account will be used
PRINTIFY_SHOP_ID=your_shop_id

# Optional: Only needed if you want to use image generation features
REPLICATE_API_TOKEN=your_replicate_api_token

您可以将 .env.example 文件作为模板进行复制:

cp .env.example .env
# Then edit the .env file with your actual API keys

选项 2:使用系统环境变量

或者,您也可以直接在系统环境中设置这些变量:

Windows (命令提示符):

:: Required
set PRINTIFY_API_KEY=your_printify_api_key

:: Optional
set PRINTIFY_SHOP_ID=your_shop_id

:: Optional - only for image generation
set REPLICATE_API_TOKEN=your_replicate_api_token

Windows (PowerShell):

# Required
$env:PRINTIFY_API_KEY = "your_printify_api_key"

# Optional
$env:PRINTIFY_SHOP_ID = "your_shop_id"

# Optional - only for image generation
$env:REPLICATE_API_TOKEN = "your_replicate_api_token"

macOS/Linux:

# Required
export PRINTIFY_API_KEY=your_printify_api_key

# Optional
export PRINTIFY_SHOP_ID=your_shop_id

# Optional - only for image generation
export REPLICATE_API_TOKEN=your_replicate_api_token

无论这些环境变量是在 .env 文件中还是在系统环境中设置,服务器都将在启动时检查它们。

获取 Printify API 密钥

  1. 登录您的 Printify 账户
  2. 前往 设置 > API
  3. 点击“创建新的 API 密钥”
  4. 复制 API 密钥并将其添加到您的 .env 文件中

获取 Replicate API 令牌

  1. Replicate 上创建账户
  2. 进入您的账户设置
  3. 生成 API 令牌
  4. 复制令牌并将其添加到您的 .env 文件中

使用

启动服务器

npm start

这将使用 stdio 传输方式启动 MCP 服务器,从而允许它与 Claude Desktop 等 MCP 客户端通信。服务器将自动使用环境变量中的 API 密钥初始化 Printify API 客户端。

开发模式

npm run dev

这将以开发模式启动服务器,并在文件更改时自动重新加载。

与 Claude Desktop 一起使用

有三种方法可以将此 MCP 服务器与 Claude Desktop 一起使用:

选项 1:从 npm 安装(推荐)

  1. 全局安装包:

    npm install -g @tsavo/printify-mcp
    
  2. 通过在当前目录中使用 .env 文件或系统环境变量来配置您的环境变量,如配置部分所述。

  3. 配置 Claude Desktop:

    • 打开 Claude Desktop
    • 转到 设置 > MCP 服务器
    • 点击“添加服务器”
    • 输入服务器名称(例如,“Printify MCP”)
    • 选择“命令”作为传输类型
    • 输入 printify-mcp 作为命令
    • 不需要参数
    • 点击“添加服务器”
  4. 通过让 Claude 检查 Printify 状态来测试连接:

    你能检查一下我的 Printify 连接状态吗?
    

    printify-mcp 命令运行与原始 index.ts 文件相同的代码,但被打包为可以直接从命令行运行的可执行文件。

选项 2:使用 npx

如果您不想全局安装该包,您可以使用 npx:

  1. 按照配置部分描述的方式配置您的环境变量。

  2. 配置 Claude Desktop:

    • 打开 Claude Desktop
    • 转到 设置 > MCP 服务器
    • 点击“添加服务器”
    • 输入服务器名称(例如,“Printify MCP”)
    • 选择“命令”作为传输类型
    • 输入 npx 作为命令
    • 输入 @tsavo/printify-mcp 作为参数
    • 点击“添加服务器”

选项 3:使用 Docker(推荐用于隔离)

如果您希望在 Docker 容器中运行服务器,您有两个选项:

选项 3A:直接从 Docker Hub 使用 Docker 镜像

  1. 确保你的系统上已安装 Docker

  2. 为你的 Printify MCP 文件创建一个目录:

    mkdir printify-mcp
    cd printify-mcp
    
  3. 创建一个包含 API 密钥的 .env 文件:

    PRINTIFY_API_KEY=your_printify_api_key
    PRINTIFY_SHOP_ID=your_shop_id (可选)
    REPLICATE_API_TOKEN=your_replicate_api_token
    IMGBB_API_KEY=your_imgbb_api_key (Flux 1.1 Pro Ultra 模型必需)
    
  4. 创建一个用于临时文件的临时目录:

    mkdir temp
    
  5. 运行 Docker 容器(两种选项):

    选项 A:直接使用环境变量(推荐)

    # 对于 Linux/macOS/Windows PowerShell:
    docker run -it --name printify-mcp \
      -e PRINTIFY_API_KEY=your_printify_api_key \
      -e PRINTIFY_SHOP_ID=your_shop_id_optional \
      -v $(pwd)/temp:/app/temp \
      tsavo/printify-mcp:latest
    
    # 对于 Windows 命令提示符:
    docker run -it --name printify-mcp ^
      -e PRINTIFY_API_KEY=your_printify_api_key ^
      -e PRINTIFY_SHOP_ID=your_shop_id_optional ^
      -v %cd%/temp:/app/temp ^
      tsavo/printify-mcp:latest
    

    注意: 如果你想使用图像生成功能(generate-and-upload-image 工具),请添加 Replicate API 令牌:

    -e REPLICATE_API_TOKEN=your_replicate_api_token \
    

    重要: 如果你想使用 Flux 1.1 Pro Ultra 模型进行图像生成,你必须还要添加 ImgBB API 密钥:

    -e IMGBB_API_KEY=your_imgbb_api_key \
    

    选项 B:使用 .env 文件

    # 对于 Linux/macOS:
    docker run -it --name printify-mcp \
      -v $(pwd)/.env:/app/.env:ro \
      -v $(pwd)/temp:/app/temp \
      tsavo/printify-mcp:latest
    
    # 对于 Windows PowerShell:
    docker run -it --name printify-mcp -v ${PWD}/.env:/app/.env:ro -v ${PWD}/temp:/app/temp tsavo/printify-mcp:latest
    
    # 对于 Windows 命令提示符:
    docker run -it --name printify-mcp -v %cd%/.env:/app/.env:ro -v %cd%/temp:/app/temp tsavo/printify-mcp:latest
    
  6. 配置 Claude Desktop:

    • 打开 Claude Desktop
    • 转到设置 > MCP 服务器
    • 单击“添加服务器”
    • 输入服务器名称(例如,“Printify MCP Docker”)
    • 选择“命令”作为传输类型
    • 输入 docker 作为命令
    • 输入 exec -i printify-mcp node dist/index.js 作为参数
    • 单击“添加服务器”

选项 3B:使用 Docker Compose 构建和运行

  1. 确保您的系统上已安装 Docker 和 Docker Compose

  2. 将此仓库克隆到本地机器:

    git clone https://github.com/tsavo/printify-mcp.git
    cd printify-mcp
    
  3. 配置环境变量(两种选项):

    选项 A: 直接编辑 docker-compose.yml(推荐)
    打开 docker-compose.yml 并取消注释/编辑环境变量:

    environment:
      - NODE_ENV=production
      # 选项 1: 直接设置环境变量(推荐)
      - PRINTIFY_API_KEY=your_printify_api_key
      - PRINTIFY_SHOP_ID=your_shop_id_optional
      # 可选:仅在您想使用图像生成功能时需要
      - REPLICATE_API_TOKEN=your_replicate_api_token
      # 如果使用 Flux 1.1 Pro Ultra 模型进行图像生成,则必需
      - IMGBB_API_KEY=your_imgbb_api_key
    

    选项 B: 创建一个 .env 文件

    PRINTIFY_API_KEY=your_printify_api_key
    PRINTIFY_SHOP_ID=your_shop_id (可选)
    # 可选:仅在您想使用图像生成功能时需要
    REPLICATE_API_TOKEN=your_replicate_api_token
    # 如果使用 Flux 1.1 Pro Ultra 模型进行图像生成,则必需
    IMGBB_API_KEY=your_imgbb_api_key
    

    然后取消注释 docker-compose.yml 中的 .env 卷挂载:

    volumes:
      # 选项 2: 挂载 .env 文件用于环境变量
      - ./.env:/app/.env:ro
    
  4. 构建并启动 Docker 容器:

    docker-compose up -d
    
  5. 配置 Claude Desktop:

    • 打开 Claude Desktop
    • 转到设置 > MCP 服务器
    • 点击“添加服务器”
    • 为服务器输入一个名称(例如,“Printify MCP Docker”)
    • 选择“命令”作为传输类型
    • 输入 docker 作为命令
    • 输入 exec -i printify-mcp node dist/index.js 作为参数
    • 点击“添加服务器”
  6. 通过要求 Claude 检查 Printify 的状态来测试连接:

    Can you check the status of my Printify connection?
    

选项 4: 克隆并设置仓库

如果您希望直接与源代码一起工作而不使用 Docker:

  1. 将此仓库克隆到你的本地机器:

    git clone https://github.com/tsavo/printify-mcp.git
    cd printify-mcp
    
  2. 安装依赖并构建项目:

    npm install
    npm run build
    
  3. 使用 .env 文件或系统环境变量配置你的环境变量,如 Configuration 部分所述。

  4. 获取编译后的 JavaScript 文件的完整绝对路径:

    Windows:

    cd dist
    echo %CD%\index.js
    

    macOS/Linux:

    realpath dist/index.js
    
  5. 配置 Claude Desktop:

    • 打开 Claude Desktop
    • 转到设置 > MCP 服务器
    • 点击“添加服务器”
    • 输入服务器名称(例如,“Printify MCP”)
    • 选择“命令”作为传输类型
    • 输入 Node.js 的路径作为命令(例如,node
    • 输入完整的绝对路径到构建好的服务器作为参数
    • 点击“添加服务器”
  6. 启动服务器:

    npm start
    

    在使用 Claude Desktop 时,请保持此终端窗口打开。

测试连接

在与 Claude 的对话中,你可以通过让 Claude 检查 Printify 状态来测试服务器是否正常工作:

Can you check the status of my Printify connection?

Claude 应该使用 get-printify-status 工具来检查连接状态。你也可以让 Claude 使用 list-shops 工具列出你的 Printify 商店。

如果遇到任何问题:

  1. 检查启动服务器的控制台输出中的错误信息
  2. 确认你的环境变量设置正确
  3. 确保服务器仍在运行
  4. 确认 Claude Desktop 中的服务器路径正确

可用工具

商店管理

get-printify-status

获取当前 Printify API 客户端的状态,包括连接状态和当前商店。

list-shops

列出你的 Printify 账户中的所有可用商店。当前选定的商店会用箭头(→)标记。

switch-shop

切换到不同的商店以进行后续的 API 调用。

参数:

  • shopId (字符串): 要切换到的商店 ID

产品工具

list-products

列出你的 Printify 商店中的产品。

参数:

  • page (数字, 可选): 页码 (默认: 1)
  • limit (数字, 可选): 每页的产品数量 (默认: 10)

get-product

获取特定产品的详细信息。

参数:

  • productId (字符串): 产品 ID

create-product

在你的 Printify 商店中创建新产品。

参数:

  • title (字符串): 产品标题
  • description (字符串): 产品描述
  • blueprintId (数字): 蓝图 ID
  • printProviderId (数字): 打印提供商 ID
  • variants (数组): 产品变体
  • printAreas (对象, 可选): 产品的打印区域

update-product

更新你的 Printify 商店中的现有产品。

参数:

  • productId (字符串): 产品ID
  • title (字符串, 可选): 产品标题
  • description (字符串, 可选): 产品描述
  • variants (数组, 可选): 产品变体
  • printAreas (对象, 可选): 产品的打印区域

delete-product

从您的Printify商店中删除一个产品。

参数:

  • productId (字符串): 产品ID

publish-product

将产品发布到您连接的销售渠道。

参数:

  • productId (字符串): 产品ID
  • publishDetails (对象, 可选): 发布详情

目录工具

get-blueprints

从Printify目录中获取可用蓝图列表。

参数:

  • page (数字, 可选): 页码(默认: 1)
  • limit (数字, 可选): 每页的蓝图数量(默认: 10)

get-blueprint

获取特定蓝图的详细信息。

参数:

  • blueprintId (字符串): 蓝图ID

get-print-providers

获取特定蓝图的打印供应商列表。

参数:

  • blueprintId (字符串): 蓝图ID

get-variants

获取特定蓝图和打印供应商的变体列表。

参数:

  • blueprintId (字符串): 蓝图ID
  • printProviderId (字符串): 打印供应商ID

图像工具

generate-and-upload-image

使用Replicate的Flux模型生成图像,通过Sharp处理,并在一个操作中将其上传到Printify。此工具结合了AI图像生成与Printify集成,以实现无缝的工作流程。

该工具执行四个步骤:

  1. 根据您的文本提示使用Replicate的Flux模型生成图像
  2. 使用Sharp处理图像,确保其为有效的图像且格式适合Printify
  3. 将处理后的图像上传到您的Printify账户
  4. 清理临时文件以避免磁盘空间问题

参数:

  • prompt (字符串): 用于图像生成的文本提示
  • fileName (字符串): 上传图像的文件名
  • model (字符串, 可选): 覆盖默认模型(例如:"black-forest-labs/flux-1.1-pro-ultra")
  • width (数字, 可选): 图像宽度(像素)(默认: 1024)
  • height (数字, 可选): 图像高度(像素)(默认: 1024)
  • aspectRatio (字符串, 可选): 长宽比(例如:'16:9', '4:3', '1:1')。如果提供,则覆盖宽度和高度
  • outputFormat (字符串, 可选): 输出格式 ("jpeg", "png", "webp")(默认: "png")
  • numInferenceSteps (数字, 可选): 推断步数(默认: 25)
  • guidanceScale (数字, 可选): 指导尺度(默认: 7.5)
  • negativePrompt (字符串, 可选): 负面提示(默认: "low quality, bad quality, sketches")
  • seed (数字, 可选): 用于可重复生成的随机种子
  • raw (布尔值, 可选): 生成更少处理、看起来更自然的图像(对于Flux 1.1 Pro Ultra,默认: true)

注意: 此工具需要设置 REPLICATE_API_TOKEN 环境变量,并提供有效的 Replicate API 令牌。您可以从 replicate.com 获取令牌。

重要: 如果您想使用 Flux 1.1 Pro Ultra 模型,还必须设置 IMGBB_API_KEY 环境变量。Ultra 模型生成的高分辨率图像太大,无法直接以 base64 格式上传到 Printify。您可以从 api.imgbb.com 获取免费的 API 密钥。

generate-image

使用 Replicate 的 Flux 模型生成图像并保存到本地文件,而不上传到 Printify。当您想要为其他用途生成图像或在将图像上传到 Printify 之前进行查看和可能编辑时,此工具非常有用。

参数:

  • prompt (字符串):用于生成图像的文本提示
  • outputPath (字符串):生成的图像应保存的完整路径
  • model (字符串, 可选):覆盖默认模型(例如:"black-forest-labs/flux-1.1-pro-ultra")
  • width (数字, 可选):图像宽度(像素)(默认:1024)
  • height (数字, 可选):图像高度(像素)(默认:1024)
  • aspectRatio (字符串, 可选):宽高比(例如,'16:9', '4:3', '1:1')。如果提供,则覆盖宽度和高度
  • outputFormat (字符串, 可选):输出格式("jpeg", "png", "webp")(默认:"png")
  • numInferenceSteps (数字, 可选):推理步骤数(默认:25)
  • guidanceScale (数字, 可选):指导比例(默认:7.5)
  • negativePrompt (字符串, 可选):负面提示(默认:"low quality, bad quality, sketches")
  • seed (数字, 可选):用于可重现生成的随机种子
  • raw (布尔值, 可选):生成处理较少、更自然的图像(仅适用于 Flux 1.1 Pro Ultra)

注意: 此工具需要设置 REPLICATE_API_TOKEN 环境变量,并提供有效的 Replicate API 令牌。您可以从 replicate.com 获取令牌。

generate-and-upload-image 工具不同,由于此工具直接保存到本地文件,因此不需要 ImgBB API 密钥。

upload-image

将图像上传到您的 Printify 账户。支持三种类型的输入:

  1. URL(http:// 或 https://)- 直接上传到 Printify
  2. 本地文件路径(例如,c:\path\to\image.png)- 使用 Sharp 自动转换以确保兼容性,然后上传到 Printify
  3. Base64 编码的图像字符串 - 直接上传到 Printify

关于文件格式的说明:

  • 支持的格式:PNG、JPEG 和 SVG
  • JPEG/PNG 文件的推荐分辨率为 300 DPI
  • 对于较大的产品(如紧身裤、毯子、挂毯),120-150 DPI 是可以接受的
  • 某些图像文件如果超过大小限制可能不兼容 Printify 的 API
  • 对于大于 5MB 的文件,建议使用 URL 上传而非 base64 编码

参数:

  • fileName (字符串):文件名
  • url (字符串):要上传的图像的 URL、本地文件路径或 base64 编码的图像数据

提示

generate-product-description

生成引人注目的产品描述。

参数:

  • productName (字符串):产品名称
  • category (字符串):产品类别
  • targetAudience (字符串, 可选):目标受众
  • keyFeatures (字符串, 可选):逗号分隔的关键产品特性列表

设置 API 密钥

Printify API 密钥

要使用此 MCP 服务器的 Printify 功能,您需要一个 Printify API 密钥。以下是获取和设置的方法:

  1. 登录到您的 Printify 账户 printify.com

  2. 转到我的个人资料 > 连接

  3. 在连接部分,您可以生成您的个人访问令牌

  4. 安全地存储您的 API 密钥,因为它仅在生成后立即可见

  5. 在项目根目录下创建一个 .env 文件,内容如下:

    PRINTIFY_API_KEY=your_api_key_here
    # 可选:设置默认商店 ID
    # PRINTIFY_SHOP_ID=your_shop_id_here
    
    # 用于与 Replicate 一起生成图像
    REPLICATE_API_TOKEN=your_replicate_token_here
    
    # 如果使用 Flux 1.1 Pro Ultra 模型进行图像生成,则必须设置
    IMGBB_API_KEY=your_imgbb_api_key_here
    

    服务器将自动使用环境变量中的 API 密钥初始化 Printify API 客户端。如果您未指定商店 ID,服务器将使用您账户中的第一个商店作为默认值。

    您也可以直接设置环境变量:

    # 在 Windows 上
    set PRINTIFY_API_KEY=your_api_key_here
    set REPLICATE_API_TOKEN=your_replicate_token_here
    set IMGBB_API_KEY=your_imgbb_api_key_here
    npm start
    
    # 在 macOS/Linux 上
    export PRINTIFY_API_KEY=your_api_key_here
    export REPLICATE_API_TOKEN=your_replicate_token_here
    export IMGBB_API_KEY=your_imgbb_api_key_here
    npm start
    

Replicate API 令牌

要使用此 MCP 服务器的图像生成功能,您需要一个 Replicate API 令牌。以下是获取方法:

  1. replicate.com 创建账户或登录
  2. 转到您的账户设置
  3. 生成 API 令牌
  4. 将令牌添加到您的 .env 文件中,如上所示

ImgBB API 密钥

如果您想使用 Flux 1.1 Pro Ultra 模型进行图像生成,您必须拥有 ImgBB API 密钥。Ultra 模型生成的高分辨率图像太大,无法直接以 base64 格式上传到 Printify,因此我们使用 ImgBB 作为中介。以下是获取 API 密钥的方法:

  1. imgbb.com 创建账户或登录
  2. 转到 api.imgbb.com 获取您的 API 密钥
  3. 将密钥添加到您的 .env 文件中,如上所示

工作流示例

使用 AI 生成设计创建 T 恤

这是一个完整的示例,展示如何创建带有前后设计的 T 恤:

// Step 1: Get blueprints and choose one
get-blueprints_printify()
// Selected blueprint ID 12 (Unisex Jersey Short Sleeve Tee)

// Step 2: Get print providers for this blueprint
get-print-providers_printify({ blueprintId: "12" })
// Selected print provider ID 29 (Monster Digital)

// Step 3: Get variants for this blueprint and print provider
get-variants_printify({ blueprintId: "12", printProviderId: "29" })
// Selected variant IDs 18100 (Black / S), 18101 (Black / M), 18102 (Black / L)

// Step 4: Generate and upload front image
const frontImage = await generate-and-upload-image_printify({
  prompt: "A futuristic cityscape with neon lights and tall skyscrapers, horizon city logo design",
  fileName: "horizon-city-front"
})
// Got image ID: 68032b22ae74bf725ed406ec

// Step 4b: Generate and upload back image
const backImage = await generate-and-upload-image_printify({
  prompt: "A minimalist 'Horizon City' text logo with futuristic font, suitable for the back of a t-shirt",
  fileName: "horizon-city-back"
})
// Got image ID: 68032b377e36fbdd32791027

// Step 5: Create the product
create-product_printify({
  title: "Horizon City Skyline T-Shirt",
  description: "Step into the future with our Horizon City Skyline T-Shirt. This premium unisex tee features a stunning futuristic cityscape with neon lights and towering skyscrapers on the front, and a sleek minimalist Horizon City logo on the back.",
  blueprintId: 12,
  printProviderId: 29,
  variants: [
    { variantId: 18100, price: 2499 },
    { variantId: 18101, price: 2499 },
    { variantId: 18102, price: 2499 }
  ],
  printAreas: {
    "front": { position: "front", imageId: "68032b22ae74bf725ed406ec" },
    "back": { position: "back", imageId: "68032b377e36fbdd32791027" }
  }
})
// Product created with ID: 68032b43a24efbac6502b6f7

管理现有产品

// List products
list-products_printify()

// Get details of a specific product
get-product_printify({ productId: "68032b43a24efbac6502b6f7" })

// Update a product
update-product_printify({
  productId: "68032b43a24efbac6502b6f7",
  title: "Updated Horizon City Skyline T-Shirt",
  description: "Updated description...",
  variants: [
    { variantId: 18100, price: 2999 },
    { variantId: 18101, price: 2999 },
    { variantId: 18102, price: 2999 }
  ]
})

// Publish a product to external sales channels
publish-product_printify({
  productId: "68032b43a24efbac6502b6f7",
  publishDetails: {
    title: true,
    description: true,
    images: true,
    variants: true,
    tags: true
  }
})

// Delete a product
delete-product_printify({ productId: "68032b43a24efbac6502b6f7" })

架构

主要组件

Printify MCP 服务器由三个主要组件组成:

  1. MCP 服务器 (src/index.ts): 使用各种工具设置与 Printify API 交互的 MCP 服务器。
  2. Printify API 客户端 (src/printify-api.ts): 使用官方 SDK 处理与 Printify API 的通信。
  3. Replicate 客户端 (src/replicate-client.ts): 集成 Replicate 的 API 以生成产品设计图像。

Docker 架构

Docker 设置包括以下组件:

  1. Dockerfile: 定义如何构建 Docker 镜像

    • 使用 Node.js 22 Alpine 作为基础镜像,以保持较小的体积
    • 安装依赖项并构建 TypeScript 代码
    • 设置环境并运行服务器
  2. docker-compose.yml: 定义服务配置

    • 设置环境变量
    • 挂载 .env 文件和临时目录的卷
    • 配置 stdin 和 tty 用于 stdio 传输
    • 设置重启策略
  3. :

    • .env: 作为只读卷挂载,用于环境变量
    • temp: 作为卷挂载,用于临时文件(如生成的图像)

发布 Docker 镜像

您可以将 Docker 镜像发布到 Docker Hub 或任何其他容器注册表,以便其他人无需安装 Node.js 或克隆仓库即可使用。

  1. 构建 Docker 镜像:

    docker build -t tsavo/printify-mcp:latest .
    
  2. 登录 Docker Hub:

    docker login
    
  3. 将镜像推送到 Docker Hub:

    docker push tsavo/printify-mcp:latest
    

不安装 Node.js 直接使用 Docker 镜像

用户可以直接使用 Docker 镜像来运行 Printify MCP 服务器,而无需安装 Node.js:

  1. 安装 Docker:用户需要在系统上安装 Docker

  2. 创建一个临时目录 用于存放临时文件:

    mkdir -p temp
    
  3. 运行 Docker 容器(两种选项):

    选项 A:直接使用环境变量(推荐)

    docker run -it --name printify-mcp \
      -e PRINTIFY_API_KEY=他们的_printify_api_key \
      -e PRINTIFY_SHOP_ID=他们的_shop_id_可选 \
      -v $(pwd)/temp:/app/temp \
      tsavo/printify-mcp:latest
    

    注意: 如果他们想使用图像生成功能(generate-and-upload-image 工具),请添加 Replicate API 令牌:

    -e REPLICATE_API_TOKEN=他们的_replicate_api_token \
    

    重要: 如果他们想使用 Flux 1.1 Pro Ultra 模型进行图像生成,还必须添加 ImgBB API 密钥:

    -e IMGBB_API_KEY=他们的_imgbb_api_key \
    

    选项 B:使用 .env 文件
    首先,创建一个包含其 API 密钥的 .env 文件:

    PRINTIFY_API_KEY=他们的_printify_api_key
    PRINTIFY_SHOP_ID=他们的_shop_id (可选)
    # 可选:仅当他们希望使用图像生成功能时才需要
    REPLICATE_API_TOKEN=他们的_replicate_api_token
    # 如果使用 Flux 1.1 Pro Ultra 模型进行图像生成,则必需
    IMGBB_API_KEY=他们的_imgbb_api_key
    

    然后运行容器:

    docker run -it --name printify-mcp \
      -v $(pwd)/.env:/app/.env:ro \
      -v $(pwd)/temp:/app/temp \
      tsavo/printify-mcp:latest
    
  4. 配置 Claude Desktop

    • 打开 Claude Desktop
    • 转到设置 > MCP 服务器
    • 单击“添加服务器”
    • 输入服务器名称(例如,“Printify MCP Docker”)
    • 选择“命令”作为传输类型
    • 输入 docker 作为命令
    • 输入 exec -i printify-mcp node dist/index.js 作为参数
    • 单击“添加服务器”

这种方法允许用户无需安装 Node.js 或任何其他依赖项即可运行 Printify MCP 服务器 —— 他们只需要 Docker。

文件结构

printify-mcp/
├── dist/                  # Compiled JavaScript files
├── docs/                  # Documentation
│   ├── index.ts.md        # Documentation for index.ts
│   ├── printify-api.ts.md # Documentation for printify-api.ts
│   └── replicate-client.ts.md # Documentation for replicate-client.ts
├── node_modules/          # Node.js dependencies
├── src/                   # Source code
│   ├── index.ts           # Main MCP server
│   ├── printify-api.ts    # Printify API client
│   └── replicate-client.ts # Replicate API client
├── temp/                  # Temporary directory for generated images
├── .dockerignore          # Files to exclude from Docker build
├── .env                   # Environment variables (not in repo)
├── .env.example           # Example environment variables
├── .gitignore             # Git ignore file
├── docker-compose.yml     # Docker Compose configuration
├── Dockerfile             # Docker build instructions
├── package.json           # Node.js package configuration
├── package-lock.json      # Node.js package lock
├── README.md              # This file
└── tsconfig.json          # TypeScript configuration

API 文档

有关代码库的详细文档,请参阅以下文件:

故障排除

常见问题

Printify API 客户端未初始化

如果您看到错误“Printify API 客户端未初始化”,请检查:

  1. .env 文件中 PRINTIFY_API_KEY 环境变量是否正确设置
  2. API 密钥有效且具有正确的权限

Replicate API 客户端未初始化

如果您看到错误“Replicate API 客户端未初始化”,请检查:

  1. .env 文件中 REPLICATE_API_TOKEN 环境变量是否正确设置
  2. API 令牌有效且具有正确的权限

创建产品时出错

如果在创建产品时遇到错误,请检查:

  1. 蓝图ID和打印提供商ID是有效的
  2. 所选蓝图和打印提供商的变体ID是有效的
  3. 图像

相关 MCP 服务