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仕様を実装し、Printifyの機能をAIアシスタントに構造化された方法で提供します。
特徴
この MCP サーバーは次の機能を提供します。
Printify API統合
- 認証: APIキーを使用してPrintify APIクライアントを初期化します
- ショップ: Printify ショップの一覧と管理
- 製品: 製品の作成、読み取り、更新、削除、公開
- カタログ: 設計図、印刷業者、バリエーションを閲覧
- 画像: 製品デザインに使用する画像をアップロードします
AI画像生成
- Replicate の統合: Replicate の Flux 1.1 Pro モデルを使用して画像を生成します
- 統合ワークフロー: AIで画像を生成し、1ステップでPrintifyに直接アップロード
ドキュメント
- ツール内ドキュメント: 製品作成のあらゆる側面に関する包括的なドキュメント
- ワークフローガイダンス:製品を作成するためのステップバイステップガイド
プロンプト
- 製品の説明を生成する: 製品の詳細に基づいて説得力のある製品の説明を生成します
前提条件
- Node.js (v18以上)
- npm (v7以上)
- Printify APIキー
- APIトークンの複製(AI画像生成用)
- ImgBB API キー(Flux 1.1 Pro Ultra モデルを使用する場合に必要)
インストール
構成
サーバーに必要な環境変数を構成するには、次の 2 つのオプションがあります。
オプション 1: .env ファイルの使用 (推奨)
- 次の変数を使用して、プロジェクトのルート ディレクトリに
.env
ファイルを作成します。
.env.example
ファイルをコピーしてテンプレートとして使用できます。
オプション2: システム環境変数を使用する
あるいは、システム環境でこれらの変数を直接設定することもできます。
Windows (コマンドプロンプト):
Windows (PowerShell):
macOS/Linux:
サーバーは、 .env
ファイルまたはシステム環境で設定されているかどうかに関係なく、起動時にこれらの環境変数をチェックします。
Printify APIキーの取得
- Printifyアカウントにログイン
- 設定 > API へ移動
- 「新しいAPIキーを作成」をクリックします
- APIキーをコピーして
.env
ファイルに追加します
複製APIトークンの取得
- Replicateでアカウントを作成する
- アカウント設定に移動
- APIトークンを生成する
- トークンをコピーして
.env
ファイルに追加します
使用法
サーバーの起動
これにより、stdioトランスポートを使用してMCPサーバーが起動し、Claude DesktopなどのMCPクライアントとの通信が可能になります。サーバーは環境変数のAPIキーを使用してPrintify APIクライアントを自動的に初期化します。
開発モード
これにより、ファイルが変更されると自動的にリロードされ、開発モードでサーバーが起動します。
Claude Desktopでの使用
この MCP サーバーを Claude Desktop で使用するには、次の 3 つの方法があります。
オプション1: npmからインストールする(推奨)
- パッケージをグローバルにインストールします。Copy
- 現在のディレクトリ内の
.env
ファイルまたは「構成」セクションで説明されているシステム環境変数を使用して、環境変数を構成します。 - Claude デスクトップを設定します。
- クロードデスクトップを開く
- 設定 > MCPサーバーへ移動
- 「サーバーを追加」をクリックします
- サーバーの名前を入力します(例:「Printify MCP」)
- トランスポートタイプとして「コマンド」を選択します
- コマンドとして
printify-mcp
を入力します - 議論は必要ありません
- 「サーバーを追加」をクリックします
- Claude に Printify のステータスを確認してもらい、接続をテストします。Copy
printify-mcp
コマンドは、元の index.ts ファイルと同じコードを実行しますが、コマンド ラインから直接実行できる実行可能ファイルとしてパッケージ化されています。
オプション2: npxを使用する
パッケージをグローバルにインストールしたくない場合は、npx を使用できます。
- 構成セクションで説明されているように環境変数を構成します。
- Claude デスクトップを設定します。
- クロードデスクトップを開く
- 設定 > MCPサーバーへ移動
- 「サーバーを追加」をクリックします
- サーバーの名前を入力します(例:「Printify MCP」)
- トランスポートタイプとして「コマンド」を選択します
- コマンドとして
npx
を入力します - 引数として
@tsavo/printify-mcp
を入力します。 - 「サーバーを追加」をクリックします
オプション 3: Docker を使用する (分離に推奨)
Docker コンテナ内でサーバーを実行する場合は、次の 2 つのオプションがあります。
オプション 3A: Docker Hub から Docker イメージを直接使用する
- システムにDockerがインストールされていることを確認してください
- Printify MCP ファイル用のディレクトリを作成します。Copy
- API キーを使用して
.env
ファイルを作成します。Copy - 一時ファイル用の一時ディレクトリを作成します。Copy
- Docker コンテナを実行します (2 つのオプション):オプション A: 環境変数を直接使用する (推奨)**注:**画像生成機能 (画像生成およびアップロード ツール) を使用する場合は、Replicate API トークンを追加します。Copy**重要:**画像生成に Flux 1.1 Pro Ultra モデルを使用する場合は、ImgBB API キーも追加する必要があります。CopyオプションB: .envファイルを使用するCopyCopy
- Claude デスクトップを設定します。
- クロードデスクトップを開く
- 設定 > MCPサーバーへ移動
- 「サーバーを追加」をクリックします
- サーバーの名前を入力します(例:「Printify MCP Docker」)
- トランスポートタイプとして「コマンド」を選択します
- コマンドとして
docker
と入力する - 引数として
exec -i printify-mcp node dist/index.js
を入力します。 - 「サーバーを追加」をクリックします
オプション 3B: Docker Compose でビルドして実行
- システムにDockerとDocker Composeがインストールされていることを確認してください
- このリポジトリをローカル マシンにクローンします。Copy
- 環境変数を設定します (2 つのオプション):オプション A: docker-compose.yml を直接編集する (推奨) docker-compose.yml を開き、環境変数のコメントを解除/編集します。オプションB:Copy
.env
ファイルを作成する次に、docker-compose.yml 内の .env ボリューム マウントのコメントを解除します。CopyCopy - Docker コンテナをビルドして起動します。Copy
- Claude デスクトップを設定します。
- クロードデスクトップを開く
- 設定 > MCPサーバーへ移動
- 「サーバーを追加」をクリックします
- サーバーの名前を入力します(例:「Printify MCP Docker」)
- トランスポートタイプとして「コマンド」を選択します
- コマンドとして
docker
と入力する - 引数として
exec -i printify-mcp node dist/index.js
を入力します。 - 「サーバーを追加」をクリックします
- Claude に Printify のステータスを確認してもらい、接続をテストします。Copy
オプション4: リポジトリのクローンを作成してセットアップする
Docker を使わずにソースコードを直接操作したい場合は、次の手順に従ってください。
- このリポジトリをローカル マシンにクローンします。Copy
- 依存関係をインストールしてプロジェクトをビルドします。Copy
- 構成セクションで説明されているように、
.env
ファイルまたはシステム環境変数を使用して環境変数を構成します。 - コンパイルされた JavaScript ファイルへの完全な絶対パスを取得します。ウィンドウズ:macOS/Linux:CopyCopy
- Claude デスクトップを設定します。
- クロードデスクトップを開く
- 設定 > MCPサーバーへ移動
- 「サーバーを追加」をクリックします
- サーバーの名前を入力します(例:「Printify MCP」)
- トランスポートタイプとして「コマンド」を選択します
- コマンドとしてNode.jsへのパスを入力します(例:
node
) - 引数として構築されたサーバーへの完全な絶対パスを入力します
- 「サーバーを追加」をクリックします
- サーバーを起動します。Claude Desktop を使用している間は、このターミナル ウィンドウを開いたままにしておきます。Copy
接続のテスト
クロードとの会話で、クロードに Printify のステータスを確認するように依頼することで、サーバーが動作しているかどうかをテストできます。
Claudeさんはget-printify-status
ツールを使用して接続状況を確認してください。また、 list-shops
ツールを使用してPrintifyショップのリストを取得するようClaudeさんに依頼することもできます。
問題が発生した場合:
- サーバーを起動したコンソールの出力でエラーメッセージを確認してください。
- 環境変数が正しく設定されていることを確認してください
- サーバーがまだ実行されていることを確認してください
- 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にアップロードする操作を1回で完了します。このツールは、AIによる画像生成とPrintifyとの連携を組み合わせ、シームレスなワークフローを実現します。
このツールは次の 4 つのステップを実行します。
- テキストプロンプトに基づいて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
(文字列、オプション): 否定的なプロンプト (デフォルト: "低品質、品質が悪い、スケッチ")seed
(数値、オプション):再現可能な生成のためのランダムシードraw
(ブール値、オプション):処理が少なく、より自然な見た目の画像を生成します(デフォルト:Flux 1.1 Pro Ultraの場合はtrue)
**注:**このツールを使用するには、有効なReplicate APIトークンを指定したREPLICATE_API_TOKEN
環境変数を設定する必要があります。トークンはreplicate.comから取得できます。
重要: Flux 1.1 Pro Ultraモデルを使用する場合は、 IMGBB_API_KEY
環境変数も設定する必要があります。Ultraモデルは高解像度画像を生成しますが、Printifyへのbase64直接アップロードにはサイズが大きすぎます。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
(文字列、オプション): 否定的なプロンプト (デフォルト: "低品質、品質が悪い、スケッチ")seed
(数値、オプション):再現可能な生成のためのランダムシードraw
(ブール値、オプション):処理が少なく、より自然な見た目の画像を生成します(Flux 1.1 Pro Ultraのみ)
**注:**このツールを使用するには、有効なReplicate APIトークンを指定したREPLICATE_API_TOKEN
環境変数を設定する必要があります。トークンはreplicate.comから取得できます。
generate-and-upload-image
ツールとは異なり、このツールはローカルファイルに直接保存するため、ImgBB API キーは必要ありません。
upload-image
Printifyアカウントに画像をアップロードしてください。3種類の入力方法をサポートしています。
- 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を超えるファイルの場合は、base64エンコードよりもURLアップロードが推奨されます。
パラメータ:
fileName
(文字列): ファイル名url
(文字列): アップロードする画像のURL、ローカルファイルへのパス、またはbase64でエンコードされた画像データ
プロンプト
generate-product-description
説得力のある製品説明を作成します。
パラメータ:
productName
(文字列): 製品名category
(文字列): 製品カテゴリtargetAudience
(文字列、オプション): 製品のターゲットオーディエンスkeyFeatures
(文字列、オプション): 主要な製品機能のコンマ区切りリスト
APIキーの設定
Printify APIキー
このMCPサーバーのPrintify機能を使用するには、Printify APIキーが必要です。取得方法と設定方法は次のとおりです。
- printify.comでPrintifyアカウントにログインしてください。
- 「マイプロフィール」>「接続」へ移動
- 接続セクションでは、個人アクセストークンを生成できます。
- APIキーは生成後すぐに表示されるため、安全に保管してください。
- プロジェクト ルートに次の内容の
.env
ファイルを作成します。サーバーは環境変数のAPIキーを使用してPrintify APIクライアントを自動的に初期化します。ショップIDを指定しない場合は、サーバーはアカウントの最初のショップをデフォルトとして使用します。環境変数を直接設定することもできます。CopyCopy
APIトークンを複製する
このMCPサーバーの画像生成機能を使用するには、Replicate APIトークンが必要です。取得方法は次のとおりです。
- Replicate.comでアカウントを作成するかログインしてください
- アカウント設定に移動
- APIトークンを生成する
- 上記のようにトークンを
.env
ファイルに追加します。
ImgBB APIキー
Flux 1.1 Pro Ultraモデルを画像生成に使用する場合は、ImgBB APIキーが必要です。Ultraモデルは高解像度画像を生成しますが、Printifyに直接base64でアップロードするにはサイズが大きすぎるため、ImgBBを仲介として利用しています。APIキーの取得方法は以下の通りです。
- imgbb.comでアカウントを作成するかログインしてください
- api.imgbb.comにアクセスして API キーを取得してください
- 上記のように、
.env
ファイルにキーを追加します。
ワークフローの例
AI生成デザインでTシャツを作る
前面と背面にデザインがある T シャツを作成する完全な例を次に示します。
既存製品の管理
建築
主なコンポーネント
Printify MCP サーバーは、次の 3 つの主要コンポーネントで構成されています。
- MCP サーバー (
src/index.ts
) : Printify の API と対話するためのさまざまなツールを使用して MCP サーバーをセットアップします。 - Printify API クライアント (
src/printify-api.ts
) : 公式 SDK を使用して Printify の API との通信を処理します。 - Replicate Client (
src/replicate-client.ts
) : Replicate の API と統合して、製品デザイン用の画像を生成します。
Dockerアーキテクチャ
Docker セットアップは次のコンポーネントで構成されます。
- Dockerfile : Dockerイメージの構築方法を定義する
- 小さなフットプリントのためにNode.js 22 Alpineをベースイメージとして使用します
- 依存関係をインストールし、TypeScriptコードをビルドします
- 環境をセットアップし、サーバーを実行します
- docker-compose.yml : サービス構成を定義する
- 環境変数を設定する
- .env ファイルと temp ディレクトリのボリュームをマウントします
- stdioトランスポート用のstdinとttyを設定します
- 再起動ポリシーを設定する
- 巻数:
.env
: 環境変数の読み取り専用ボリュームとしてマウントされますtemp
: 一時ファイル(生成されたイメージなど)用のボリュームとしてマウントされます
Dockerイメージの公開
Docker イメージを Docker Hub またはその他のコンテナ レジストリに公開すると、他のユーザーが Node.js をインストールしたりリポジトリをクローンしたりしなくても、そのイメージを利用できるようにすることができます。
- Dockerイメージをビルドします。Copy
- Docker Hubにログインします:Copy
- イメージをDocker Hubにプッシュします。Copy
Node.js なしで Docker イメージを使用する
ユーザーは、Docker イメージを直接使用することで、Node.js をインストールせずに Printify MCP サーバーを実行できます。
- Dockerのインストール: ユーザーはシステムにDockerをインストールする必要があります
- 一時ファイル用の一時ディレクトリを作成します。Copy
- Docker コンテナを実行します(2 つのオプション):オプション A: 環境変数を直接使用する (推奨)**注:**画像生成機能 (画像生成およびアップロード ツール) を使用する場合は、Replicate API トークンを追加します。Copy**重要:**画像生成に Flux 1.1 Pro Ultra モデルを使用する場合は、ImgBB API キーも追加する必要があります。Copyオプション B: .env ファイルを使用するまず、API キーを含む .env ファイルを作成します。Copy次にコンテナを実行します。CopyCopy
- Claude デスクトップを構成する:
- クロードデスクトップを開く
- 設定 > MCPサーバーへ移動
- 「サーバーを追加」をクリックします
- サーバーの名前を入力します(例:「Printify MCP Docker」)
- トランスポートタイプとして「コマンド」を選択します
- コマンドとして
docker
と入力する - 引数として
exec -i printify-mcp node dist/index.js
を入力します。 - 「サーバーを追加」をクリックします
このアプローチにより、ユーザーは Node.js やその他の依存関係をインストールせずに Printify MCP サーバーを実行できます。必要なのは Docker だけです。
ファイル構造
APIドキュメント
コードベースの詳細なドキュメントについては、次のファイルを参照してください。
トラブルシューティング
よくある問題
Printify API クライアントが初期化されていません
「Printify API クライアントが初期化されていません」というエラーが表示された場合は、次の点を確認してください。
PRINTIFY_API_KEY
環境変数が.env
ファイルで正しく設定されている- APIキーは有効であり、適切な権限を持っています
レプリケート API クライアントが初期化されていません
「レプリケート API クライアントが初期化されていません」というエラーが表示される場合は、次の点を確認してください。
REPLICATE_API_TOKEN
環境変数が.env
ファイルで正しく設定されている- APIトークンは有効であり、適切な権限を持っています
製品作成エラー
製品の作成時にエラーが発生した場合は、次の点を確認してください。
- ブループリントIDとプリントプロバイダIDは有効です
- バリアントIDは、選択したブループリントおよびプリントプロバイダに対して有効です
- 印刷領域内の画像IDは有効でありアクセス可能である
- リクエストにはすべての必須フィールドが含まれています
画像のアップロード中にエラーが発生しました
画像のアップロード時にエラーが発生した場合は、次の点を確認してください。
- 画像は有効な形式です (PNG、JPEG など)
- 画像が大きすぎない(最大サイズは10MB)
- URLを使用する場合、公開アクセス可能
- ローカルファイルを使用する場合、ファイルが存在し、読み取り可能である
Docker固有の問題
Docker セットアップを使用していて問題が発生した場合:
- コンテナが起動しない:
docker logs printify-mcp
で Docker ログを確認する - 環境変数が機能しない:.envファイルを使用する場合は、docker-compose.ymlファイルと同じディレクトリ、または
docker run
コマンドを実行するディレクトリにあることを確認してください。-e
で環境変数を直接設定する場合は、変数名にタイプミスがないか確認してください。 - 一時ディレクトリの権限の問題: 一時ディレクトリはボリュームとしてマウントされています。適切な権限があることを確認してください。
- Claudeからの接続の問題: Dockerコンテナが
docker ps
で実行されていること、およびClaude Desktopが正しく設定されていることを確認してください。 - イメージが見つかりません: Docker Hub イメージを直接使用している場合は、
docker pull tsavo/printify-mcp:latest
でプルしたことを確認してください。
docker-compose を使用しているときに Docker コンテナを再起動するには:
docker の使用時に Docker コンテナを再起動するには、次のコマンドを実行します。
Windows ユーザーの場合、Docker イメージで PowerShell を直接使用します。
Docker イメージを直接コマンド プロンプトで使用する Windows ユーザーの場合:
デバッグ
サーバーには、問題のトラブルシューティングに役立つ詳細なログ機能が搭載されています。コンソール出力でエラーメッセージとデバッグ情報を確認してください。
Docker デプロイメントの場合、次のコマンドでログを表示できます。
ログをリアルタイムで追跡するには:
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
ライセンス
ISC
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Claude のような AI アシスタントが Printify のオンデマンド印刷プラットフォームと統合し、自然言語コマンドによる製品の作成、管理、AI 生成デザインのアップロードを可能にするモデル コンテキスト プロトコル サーバー。