这是一个用于集成AI助手与Printify按需打印平台的模型上下文协议(MCP)服务器。
Printify MCP服务器是AI助手(如Claude)与Printify按需打印平台之间的桥梁。它允许AI助手通过模型上下文协议(MCP)创建和管理按需打印产品,使用AI生成设计,并处理产品的各个方面。
MCP是由Anthropic开发的一个开放标准,标准化了应用程序如何向大型语言模型(LLMs)提供上下文。此服务器实现了MCP规范,以结构化的方式将Printify的功能暴露给AI助手。
此MCP服务器提供了以下功能:
# 克隆仓库
git clone https://github.com/tsavo/printify-mcp.git
cd printify-mcp
# 安装依赖
npm install
# 构建项目
npm run build
您有两种选择来配置服务器所需的环境变量:
.env文件(推荐).env文件,包含以下变量:# 所有功能都需要
PRINTIFY_API_KEY=your_printify_api_key
# 如果使用Flux 1.1 Pro Ultra模型进行图像生成,则需要
# Ultra模型生成的高分辨率图像太大,无法直接进行base64上传
IMGBB_API_KEY=your_imgbb_api_key
# 可选:如果没有提供,将使用账户中的第一个店铺
PRINTIFY_SHOP_ID=your_shop_id
# 可选:仅在需要使用图像生成功能时才需要
REPLICATE_API_TOKEN=your_replicate_api_token
您可以复制.env.example文件作为模板:
cp .env.example .env
# 然后编辑`.env`文件,添加实际的API密钥
或者,您可以在系统环境中直接设置这些变量:
Windows(命令提示符):
:: 必需
set PRINTIFY_API_KEY=your_printify_api_key
:: 可选
set PRINTIFY_SHOP_ID=your_shop_id
:: 可选 - 仅用于图像生成
set REPLICATE_API_TOKEN=your_replicate_api_token
Windows(PowerShell):
# 必需
$env:PRINTIFY_API_KEY = "your_printify_api_key"
# 可选
$env:PRINTIFY_SHOP_ID = "your_shop_id"
# 可选 - 仅用于图像生成
$env:REPLICATE_API_TOKEN = "your_replicate_api_token"
macOS/Linux:
# 必需
export PRINTIFY_API_KEY=your_printify_api_key
# 可选
export PRINTIFY_SHOP_ID=your_shop_id
# 可选 - 仅用于图像生成
export REPLICATE_API_TOKEN=
无论是在.env文件中还是在系统环境中设置,服务器启动时都会检查这些环境变量。
.env文件中.env文件中npm start
这将使用stdio传输启动MCP服务器,允许其与MCP客户端(如Claude Desktop)通信。服务器将自动使用环境变量中的API密钥初始化Printify API客户端。
npm run dev
这将以开发模式启动服务器,当文件更改时会自动重新加载。
有三种方式可以将此MCP服务器与Claude Desktop一起使用:
全局安装该包:
npm install -g @tsavo/printify-mcp
根据配置部分所述,使用当前目录下的.env文件或系统环境变量配置环境变量。
配置Claude Desktop:
printify-mcp作为命令通过让Claude检查Printify状态来测试连接:
你能检查我的Printify连接状态吗?
printify-mcp命令运行的是原始的index.ts文件中的相同代码,但打包成了可以直接从命令行运行的可执行文件。
如果您不想全局安装该包,可以使用npx:
根据配置部分所述配置环境变量。
配置Claude Desktop:
npx作为命令@tsavo/printify-mcp作为参数如果您希望在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/print
配置Claude Desktop:
docker作为命令exec -i printify-mcp node dist/index.js作为参数确保您的系统已安装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
构建并启动Docker容器:
docker-compose up -d
配置Claude Desktop:
docker作为命令exec -i printify-mcp node dist/index.js作为参数通过让Claude检查Printify状态来测试连接:
你能检查我的Printify连接状态吗?
如果您希望直接使用源代码而不使用Docker:
将此仓库克隆到本地机器:
git clone https://github.com/tsavo/printify-mcp.git
cd printify-mcp
安装依赖并构建项目:
npm install
npm run build
根据配置部分所述,使用.env文件或系统环境变量配置环境变量。
获取编译后的JavaScript文件的完整绝对路径:
Windows:
cd dist
echo %CD%\index.js
macOS/Linux:
realpath dist/index.js
配置Claude Desktop:
node)启动服务器:
npm start
在使用Claude Desktop时,请保持此终端窗口打开。
在与Claude的对话中,您可以通过询问Claude检查Printify状态来测试服务器是否正常工作:
你能检查我的Printify连接状态吗?
Claude应该使用get-printify-status工具来检查连接状态。您也可以请求Claude使用list-shops工具列出您的Printify店铺。
如果遇到任何问题:
get-printify-status获取Printify API客户端的当前状态,包括连接状态和当前店铺。
list-shops列出您Printify账户中的所有店铺。当前选定的店铺用箭头(→)标记。
switch-shop切换到不同的店铺以供后续API调用。
参数:
shopId(字符串):要切换到的店铺IDlist-products列出您Printify店铺中的产品。
参数:
page(数字,可选):页码(默认:1)limit(数字,可选):每页的产品数量(默认:10)get-product获取特定产品的详细信息。
参数:
productId(字符串):产品IDcreate-product在您的Printify店铺中创建新产品。
参数:
title(字符串):产品标题description(字符串):产品描述blueprintId(数字):蓝图IDprintProviderId(数字):印刷提供商IDvariants(数组):产品变种printAreas(对象,可选):产品的印刷区域update-product更新您Printify店铺中的现有产品。
参数:
productId(字符串):产品IDtitle(字符串,可选):产品标题description(字符串,可选):产品描述variants(数组,可选):产品变种printAreas(对象,可选):产品的印刷区域delete-product从您的Printify店铺中删除产品。
参数:
productId(字符串):产品IDpublish-product将产品发布到连接的销售渠道。
参数:
productId(字符串):产品IDpublishDetails(对象,可选):发布详情get-blueprints获取Printify目录中可用的蓝图列表。
参数:
page(数字,可选):页码(默认:1)limit(数字,可选):每页的蓝图数量(默认:10)get-blueprint获取特定蓝图的详细信息。
参数:
blueprintId(字符串):蓝图IDget-print-providers获取特定蓝图的印刷提供商列表。
参数:
blueprintId(字符串):蓝图IDget-variants获取特定蓝图和印刷提供商的变种列表。
参数:
blueprintId(字符串):蓝图ID