Printify模型上下文服务
一种模型上下文协议服务器,允许像Claude这样的AI助手与Printify的按需打印平台集成,通过自然语言命令实现产品创建、管理和AI生成的设计上传。
服务介绍
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 文件(推荐)
- 在项目根目录下创建一个
.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 密钥
- 登录您的 Printify 账户
- 前往 设置 > API
- 点击“创建新的 API 密钥”
- 复制 API 密钥并将其添加到您的
.env文件中
获取 Replicate API 令牌
- 在 Replicate 上创建账户
- 进入您的账户设置
- 生成 API 令牌
- 复制令牌并将其添加到您的
.env文件中
使用
启动服务器
npm start
这将使用 stdio 传输方式启动 MCP 服务器,从而允许它与 Claude Desktop 等 MCP 客户端通信。服务器将自动使用环境变量中的 API 密钥初始化 Printify API 客户端。
开发模式
npm run dev
这将以开发模式启动服务器,并在文件更改时自动重新加载。
与 Claude Desktop 一起使用
有三种方法可以将此 MCP 服务器与 Claude Desktop 一起使用:
选项 1:从 npm 安装(推荐)
-
全局安装包:
npm install -g @tsavo/printify-mcp -
通过在当前目录中使用
.env文件或系统环境变量来配置您的环境变量,如配置部分所述。 -
配置 Claude Desktop:
- 打开 Claude Desktop
- 转到 设置 > MCP 服务器
- 点击“添加服务器”
- 输入服务器名称(例如,“Printify MCP”)
- 选择“命令”作为传输类型
- 输入
printify-mcp作为命令 - 不需要参数
- 点击“添加服务器”
-
通过让 Claude 检查 Printify 状态来测试连接:
你能检查一下我的 Printify 连接状态吗?printify-mcp命令运行与原始 index.ts 文件相同的代码,但被打包为可以直接从命令行运行的可执行文件。
选项 2:使用 npx
如果您不想全局安装该包,您可以使用 npx:
-
按照配置部分描述的方式配置您的环境变量。
-
配置 Claude Desktop:
- 打开 Claude Desktop
- 转到 设置 > MCP 服务器
- 点击“添加服务器”
- 输入服务器名称(例如,“Printify MCP”)
- 选择“命令”作为传输类型
- 输入
npx作为命令 - 输入
@tsavo/printify-mcp作为参数 - 点击“添加服务器”
选项 3:使用 Docker(推荐用于隔离)
如果您希望在 Docker 容器中运行服务器,您有两个选项:
选项 3A:直接从 Docker Hub 使用 Docker 镜像
-
确保你的系统上已安装 Docker
-
为你的 Printify MCP 文件创建一个目录:
mkdir printify-mcp cd printify-mcp -
创建一个包含 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 模型必需) -
创建一个用于临时文件的临时目录:
mkdir temp -
运行 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 -
配置 Claude Desktop:
- 打开 Claude Desktop
- 转到设置 > MCP 服务器
- 单击“添加服务器”
- 输入服务器名称(例如,“Printify MCP Docker”)
- 选择“命令”作为传输类型
- 输入
docker作为命令 - 输入
exec -i printify-mcp node dist/index.js作为参数 - 单击“添加服务器”
选项 3B:使用 Docker Compose 构建和运行
-
确保您的系统上已安装 Docker 和 Docker Compose
-
将此仓库克隆到本地机器:
git clone https://github.com/tsavo/printify-mcp.git cd printify-mcp -
配置环境变量(两种选项):
选项 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 -
构建并启动 Docker 容器:
docker-compose up -d -
配置 Claude Desktop:
- 打开 Claude Desktop
- 转到设置 > MCP 服务器
- 点击“添加服务器”
- 为服务器输入一个名称(例如,“Printify MCP Docker”)
- 选择“命令”作为传输类型
- 输入
docker作为命令 - 输入
exec -i printify-mcp node dist/index.js作为参数 - 点击“添加服务器”
-
通过要求 Claude 检查 Printify 的状态来测试连接:
Can you check the status of my Printify connection?
选项 4: 克隆并设置仓库
如果您希望直接与源代码一起工作而不使用 Docker:
-
将此仓库克隆到你的本地机器:
git clone https://github.com/tsavo/printify-mcp.git cd printify-mcp -
安装依赖并构建项目:
npm install npm run build -
使用
.env文件或系统环境变量配置你的环境变量,如 Configuration 部分所述。 -
获取编译后的 JavaScript 文件的完整绝对路径:
Windows:
cd dist echo %CD%\index.jsmacOS/Linux:
realpath dist/index.js -
配置 Claude Desktop:
- 打开 Claude Desktop
- 转到设置 > MCP 服务器
- 点击“添加服务器”
- 输入服务器名称(例如,“Printify MCP”)
- 选择“命令”作为传输类型
- 输入 Node.js 的路径作为命令(例如,
node) - 输入完整的绝对路径到构建好的服务器作为参数
- 点击“添加服务器”
-
启动服务器:
npm start在使用 Claude Desktop 时,请保持此终端窗口打开。
测试连接
在与 Claude 的对话中,你可以通过让 Claude 检查 Printify 状态来测试服务器是否正常工作:
Can you check the status of my Printify connection?
Claude 应该使用 get-printify-status 工具来检查连接状态。你也可以让 Claude 使用 list-shops 工具列出你的 Printify 商店。
如果遇到任何问题:
- 检查启动服务器的控制台输出中的错误信息
- 确认你的环境变量设置正确
- 确保服务器仍在运行
- 确认 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(数字): 蓝图 IDprintProviderId(数字): 打印提供商 IDvariants(数组): 产品变体printAreas(对象, 可选): 产品的打印区域
update-product
更新你的 Printify 商店中的现有产品。
参数:
productId(字符串): 产品IDtitle(字符串, 可选): 产品标题description(字符串, 可选): 产品描述variants(数组, 可选): 产品变体printAreas(对象, 可选): 产品的打印区域
delete-product
从您的Printify商店中删除一个产品。
参数:
productId(字符串): 产品ID
publish-product
将产品发布到您连接的销售渠道。
参数:
productId(字符串): 产品IDpublishDetails(对象, 可选): 发布详情
目录工具
get-blueprints
从Printify目录中获取可用蓝图列表。
参数:
page(数字, 可选): 页码(默认: 1)limit(数字, 可选): 每页的蓝图数量(默认: 10)
get-blueprint
获取特定蓝图的详细信息。
参数:
blueprintId(字符串): 蓝图ID
get-print-providers
获取特定蓝图的打印供应商列表。
参数:
blueprintId(字符串): 蓝图ID
get-variants
获取特定蓝图和打印供应商的变体列表。
参数:
blueprintId(字符串): 蓝图IDprintProviderId(字符串): 打印供应商ID
图像工具
generate-and-upload-image
使用Replicate的Flux模型生成图像,通过Sharp处理,并在一个操作中将其上传到Printify。此工具结合了AI图像生成与Printify集成,以实现无缝的工作流程。
该工具执行四个步骤:
- 根据您的文本提示使用Replicate的Flux模型生成图像
- 使用Sharp处理图像,确保其为有效的图像且格式适合Printify
- 将处理后的图像上传到您的Printify账户
- 清理临时文件以避免磁盘空间问题
参数:
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 账户。支持三种类型的输入:
- URL(http:// 或 https://)- 直接上传到 Printify
- 本地文件路径(例如,c:\path\to\image.png)- 使用 Sharp 自动转换以确保兼容性,然后上传到 Printify
- 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 密钥。以下是获取和设置的方法:
-
登录到您的 Printify 账户 printify.com
-
转到我的个人资料 > 连接
-
在连接部分,您可以生成您的个人访问令牌
-
安全地存储您的 API 密钥,因为它仅在生成后立即可见
-
在项目根目录下创建一个
.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 令牌。以下是获取方法:
- 在 replicate.com 创建账户或登录
- 转到您的账户设置
- 生成 API 令牌
- 将令牌添加到您的
.env文件中,如上所示
ImgBB API 密钥
如果您想使用 Flux 1.1 Pro Ultra 模型进行图像生成,您必须拥有 ImgBB API 密钥。Ultra 模型生成的高分辨率图像太大,无法直接以 base64 格式上传到 Printify,因此我们使用 ImgBB 作为中介。以下是获取 API 密钥的方法:
- 在 imgbb.com 创建账户或登录
- 转到 api.imgbb.com 获取您的 API 密钥
- 将密钥添加到您的
.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 服务器由三个主要组件组成:
- MCP 服务器 (
src/index.ts): 使用各种工具设置与 Printify API 交互的 MCP 服务器。 - Printify API 客户端 (
src/printify-api.ts): 使用官方 SDK 处理与 Printify API 的通信。 - Replicate 客户端 (
src/replicate-client.ts): 集成 Replicate 的 API 以生成产品设计图像。
Docker 架构
Docker 设置包括以下组件:
-
Dockerfile: 定义如何构建 Docker 镜像
- 使用 Node.js 22 Alpine 作为基础镜像,以保持较小的体积
- 安装依赖项并构建 TypeScript 代码
- 设置环境并运行服务器
-
docker-compose.yml: 定义服务配置
- 设置环境变量
- 挂载 .env 文件和临时目录的卷
- 配置 stdin 和 tty 用于 stdio 传输
- 设置重启策略
-
卷:
.env: 作为只读卷挂载,用于环境变量temp: 作为卷挂载,用于临时文件(如生成的图像)
发布 Docker 镜像
您可以将 Docker 镜像发布到 Docker Hub 或任何其他容器注册表,以便其他人无需安装 Node.js 或克隆仓库即可使用。
-
构建 Docker 镜像:
docker build -t tsavo/printify-mcp:latest . -
登录 Docker Hub:
docker login -
将镜像推送到 Docker Hub:
docker push tsavo/printify-mcp:latest
不安装 Node.js 直接使用 Docker 镜像
用户可以直接使用 Docker 镜像来运行 Printify MCP 服务器,而无需安装 Node.js:
-
安装 Docker:用户需要在系统上安装 Docker
-
创建一个临时目录 用于存放临时文件:
mkdir -p temp -
运行 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 -
配置 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 客户端未初始化”,请检查:
.env文件中PRINTIFY_API_KEY环境变量是否正确设置- API 密钥有效且具有正确的权限
Replicate API 客户端未初始化
如果您看到错误“Replicate API 客户端未初始化”,请检查:
.env文件中REPLICATE_API_TOKEN环境变量是否正确设置- API 令牌有效且具有正确的权限
创建产品时出错
如果在创建产品时遇到错误,请检查:
- 蓝图ID和打印提供商ID是有效的
- 所选蓝图和打印提供商的变体ID是有效的
- 图像