Printify MCP Server

ISC License
  • Linux
  • Apple

Integrations

  • Supports configuration through .env files to manage API keys and settings for Printify, Replicate, and other services.

  • Enables browsing and selection of product blueprints from the Printify catalog for creating print-on-demand items.

  • Provides containerized deployment options with pre-built Docker images that can be pulled from Docker Hub, along with Docker Compose configurations for easier setup.

Printify MCP 服务器

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

目录

概述

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

MCP 是由 Anthropic 开发的一项开放标准,它规范了应用程序向大型语言模型 (LLM) 提供上下文的方式。该服务器实现了 MCP 规范,以结构化的方式向 AI 助手开放 Printify 的功能。

特征

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

Printify API 集成

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

AI图像生成

  • Replicate Integration :使用 Replicate 的 Flux 1.1 Pro 模型生成图像
  • 组合工作流程:使用 AI 生成图像,一步即可将其直接上传至 Printify

文档

  • 工具内文档:产品创建各个方面的综合文档
  • 工作流程指南:创建产品的分步指南

提示

  • 生成产品描述:根据产品详细信息生成引人注目的产品描述

先决条件

  • Node.js(v18 或更高版本)
  • npm(v7 或更高版本)
  • Printify API 密钥
  • 复制 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文件

获取复制 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桌面:
    • 打开 Claude 桌面
    • 前往“设置”>“MCP 服务器”
    • 点击“添加服务器”
    • 输入服务器名称(例如“Printify MCP”)
    • 选择“命令”作为传输类型
    • 输入printify-mcp作为命令
    • 无需争论
    • 点击“添加服务器”
  4. 通过让 Claude 检查 Printify 状态来测试连接:
    Can you check the status of my Printify connection?
    printify-mcp命令运行与原始 index.ts 文件相同的代码,但打包为可执行文件,可以直接从命令行运行。

选项 2:与 npx 一起使用

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

  1. 按照配置部分所述配置您的环境变量。
  2. 配置Claude桌面:
    • 打开 Claude 桌面
    • 前往“设置”>“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 (optional) REPLICATE_API_TOKEN=your_replicate_api_token IMGBB_API_KEY=your_imgbb_api_key (required for Flux 1.1 Pro Ultra model)
  4. 为临时文件创建临时目录:
    mkdir temp
  5. 运行 Docker 容器(两个选项):选项 A:直接使用环境变量(推荐)
    # For 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 # For Windows Command Prompt: 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 文件
    # For Linux/macOS: docker run -it --name printify-mcp \ -v $(pwd)/.env:/app/.env:ro \ -v $(pwd)/temp:/app/temp \ tsavo/printify-mcp:latest # For Windows PowerShell: docker run -it --name printify-mcp -v ${PWD}/.env:/app/.env:ro -v ${PWD}/temp:/app/temp tsavo/printify-mcp:latest # For Windows Command Prompt: docker run -it --name printify-mcp -v %cd%/.env:/app/.env:ro -v %cd%/temp:/app/temp tsavo/printify-mcp:latest
  6. 配置Claude桌面:
    • 打开 Claude 桌面
    • 前往“设置”>“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 # Option 1: Set environment variables directly (recommended) - PRINTIFY_API_KEY=your_printify_api_key - PRINTIFY_SHOP_ID=your_shop_id_optional # Optional: Only needed if you want to use image generation features - REPLICATE_API_TOKEN=your_replicate_api_token # Required if using the Flux 1.1 Pro Ultra model for image generation - IMGBB_API_KEY=your_imgbb_api_key
    选项 B:创建.env文件
    PRINTIFY_API_KEY=your_printify_api_key PRINTIFY_SHOP_ID=your_shop_id (optional) # Optional: Only needed if you want to use image generation features REPLICATE_API_TOKEN=your_replicate_api_token # Required if using the Flux 1.1 Pro Ultra model for image generation IMGBB_API_KEY=your_imgbb_api_key
    然后取消注释docker-compose.yml中的.env卷挂载:
    volumes: # Option 2: Mount a .env file for environment variables - ./.env:/app/.env:ro
  4. 构建并启动 Docker 容器:
    docker-compose up -d
  5. 配置Claude桌面:
    • 打开 Claude 桌面
    • 前往“设置”>“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文件或系统环境变量配置环境变量。
  4. 获取已编译 JavaScript 文件的完整绝对路径:视窗:
    cd dist echo %CD%\index.js
    macOS/Linux:
    realpath dist/index.js
  5. 配置Claude桌面:
    • 打开 Claude 桌面
    • 前往“设置”>“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 (string, 可选): 宽高比 (例如 '16:9', '4:3', '1:1')。如果提供,则覆盖宽度和高度。
  • outputFormat (字符串,可选):输出格式(“jpeg”,“png”,“webp”)(默认值:“png”)
  • numInferenceSteps (数字,可选):推理步骤数(默认值:25)
  • guidanceScale (数字,可选):指导比例(默认值:7.5)
  • negativePrompt (字符串,可选):负面提示(默认:“低质量,质量差,草图”)
  • seed (数字,可选):用于可重复生成的随机种子
  • raw (布尔值,可选):生成处理程度较低、看起来更自然的图像(默认值:Flux 1.1 Pro Ultra 为 true)

**注意:**此工具需要使用有效的 Replicate API 令牌设置REPLICATE_API_TOKEN环境变量。您可以从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 (string, 可选): 宽高比 (例如 '16:9', '4:3', '1:1')。如果提供,则覆盖宽度和高度。
  • outputFormat (字符串,可选):输出格式(“jpeg”,“png”,“webp”)(默认值:“png”)
  • numInferenceSteps (数字,可选):推理步骤数(默认值:25)
  • guidanceScale (数字,可选):指导比例(默认值:7.5)
  • negativePrompt (字符串,可选):负面提示(默认:“低质量,质量差,草图”)
  • seed (数字,可选):用于可重复生成的随机种子
  • raw (布尔值,可选):生成处理较少、看起来更自然的图像(仅限 Flux 1.1 Pro Ultra)

**注意:**此工具需要使用有效的 Replicate API 令牌设置REPLICATE_API_TOKEN环境变量。您可以从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.com登录您的 Printify 帐户
  2. 前往“我的个人资料”>“联系人”
  3. 在“连接”部分,您可以生成您的个人访问令牌
  4. 安全存储您的 API 密钥,因为它仅在生成后立即可见
  5. 在项目根目录中创建一个.env文件,其内容如下:
    PRINTIFY_API_KEY=your_api_key_here # Optional: Set a default shop ID # PRINTIFY_SHOP_ID=your_shop_id_here # For image generation with Replicate REPLICATE_API_TOKEN=your_replicate_token_here # Required if using the Flux 1.1 Pro Ultra model for image generation IMGBB_API_KEY=your_imgbb_api_key_here
    服务器将使用环境变量中的 API 密钥自动初始化 Printify API 客户端。如果您未指定商店 ID,服务器将使用您帐户中的第一个商店作为默认商店。您也可以直接设置环境变量:
    # On 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 # On 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

复制 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文件中,如上所示

工作流程示例

利用人工智能设计制作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 :使用各种工具设置 MCP 服务器,以便与 Printify 的 API 进行交互。
  2. Printify API 客户端( src/printify-api.ts :使用官方 SDK 处理与 Printify API 的通信。
  3. 复制客户端( 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=their_printify_api_key \ -e PRINTIFY_SHOP_ID=their_shop_id_optional \ -v $(pwd)/temp:/app/temp \ tsavo/printify-mcp:latest
    **注意:**如果他们想要使用图像生成功能(generate-and-upload-image 工具),请添加 Replicate API 令牌:
    -e REPLICATE_API_TOKEN=their_replicate_api_token \
    **重要提示:**如果他们想使用 Flux 1.1 Pro Ultra 模型来生成图像,他们还必须添加 ImgBB API 密钥:
    -e IMGBB_API_KEY=their_imgbb_api_key \
    选项 B:使用 .env 文件首先,创建一个包含其 API 密钥的 .env 文件:
    PRINTIFY_API_KEY=their_printify_api_key PRINTIFY_SHOP_ID=their_shop_id (optional) # Optional: Only needed if they want to use image generation features REPLICATE_API_TOKEN=their_replicate_api_token # Required if using the Flux 1.1 Pro Ultra model for image generation IMGBB_API_KEY=their_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桌面
    • 打开 Claude 桌面
    • 前往“设置”>“MCP 服务器”
    • 点击“添加服务器”
    • 输入服务器名称(例如“Printify MCP Docker”)
    • 选择“命令”作为传输类型
    • 输入docker作为命令
    • 输入exec -i printify-mcp node dist/index.js作为参数
    • 点击“添加服务器”

这种方法允许用户运行 Printify MCP 服务器而无需安装 Node.js 或任何其他依赖项 - 他们只需要 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 密钥有效且具有正确的权限
复制 API 客户端未初始化

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

  1. 您的.env文件中的REPLICATE_API_TOKEN环境变量已正确设置
  2. API 令牌有效且具有正确的权限
创建产品时出错

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

  1. 蓝图 ID 和打印提供商 ID 有效
  2. 变体 ID 对所选蓝图和打印提供商有效
  3. 打印区域中的图像 ID 有效且可访问
  4. 所有必填字段均包含在请求中
上传图片错误

如果上传图片时遇到错误,请检查:

  1. 图像是有效格式(PNG、JPEG 等)
  2. 图像不太大(最大尺寸为 10MB)
  3. 如果使用 URL,则可以公开访问
  4. 如果使用本地文件,则该文件存在且可读
Docker 特定问题

如果您在使用 Docker 设置时遇到问题:

  1. 容器未启动:使用docker logs printify-mcp检查 Docker 日志
  2. 环境变量不起作用:如果使用 .env 文件,请确保它与 docker-compose.yml 文件位于同一目录,或与运行docker run命令的目录位于同一目录。如果直接使用-e设置环境变量,请检查变量名称是否有拼写错误。
  3. 临时目录的权限问题:临时目录作为卷安装,请确保其具有正确的权限
  4. Claude 的连接问题:确保 Docker 容器正在使用docker ps运行,并且您已正确配置 Claude Desktop
  5. 未找到图像:如果直接使用 Docker Hub 图像,请确保已使用docker pull tsavo/printify-mcp:latest其拉出

使用 docker-compose 时重新启动 Docker 容器:

docker-compose down docker-compose up -d

使用 docker run 时重新启动 Docker 容器:

docker stop printify-mcp docker rm printify-mcp docker run -it --name printify-mcp -v $(pwd)/.env:/app/.env:ro -v $(pwd)/temp:/app/temp tsavo/printify-mcp:latest

对于直接使用 PowerShell 和 Docker 映像的 Windows 用户:

docker run -it --name printify-mcp -v ${PWD}/.env:/app/.env:ro -v ${PWD}/temp:/app/temp tsavo/printify-mcp:latest

对于直接使用命令提示符和 Docker 映像的 Windows 用户:

docker run -it --name printify-mcp -v %cd%/.env:/app/.env:ro -v %cd%/temp:/app/temp tsavo/printify-mcp:latest

调试

服务器包含详细的日志记录,可帮助您解决问题。请检查控制台输出以获取错误消息和调试信息。

对于 Docker 部署,您可以使用以下命令查看日志:

docker logs printify-mcp

要实时跟踪日志:

docker logs -f printify-mcp

贡献

欢迎贡献代码!欢迎提交 Pull 请求。

执照

国际学习中心

ID: b8ap8e8n8v