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仕様を実装し、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 モデルを使用する場合に必要)

インストール

# 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

構成

サーバーに必要な環境変数を構成するには、次の 2 つのオプションがあります。

オプション 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 で使用するには、次の 3 つの方法があります。

オプション1: npmからインストールする(推奨)

  1. パッケージをグローバルにインストールします。
    npm install -g @tsavo/printify-mcp
  2. 現在のディレクトリ内の.envファイルまたは「構成」セクションで説明されているシステム環境変数を使用して、環境変数を構成します。
  3. 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 デスクトップを設定します。
    • クロードデスクトップを開く
    • 設定 > MCPサーバーへ移動
    • 「サーバーを追加」をクリックします
    • サーバーの名前を入力します(例:「Printify MCP」)
    • トランスポートタイプとして「コマンド」を選択します
    • コマンドとしてnpxを入力します
    • 引数として@tsavo/printify-mcpを入力します。
    • 「サーバーを追加」をクリックします

オプション 3: Docker を使用する (分離に推奨)

Docker コンテナ内でサーバーを実行する場合は、次の 2 つのオプションがあります。

オプション 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 コンテナを実行します (2 つのオプション):オプション 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
    **注:**画像生成機能 (画像生成およびアップロード ツール) を使用する場合は、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 デスクトップを設定します。
    • クロードデスクトップを開く
    • 設定 > 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. 環境変数を設定します (2 つのオプション):オプション 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 デスクトップを設定します。
    • クロードデスクトップを開く
    • 設定 > 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 デスクトップを設定します。
    • クロードデスクトップを開く
    • 設定 > MCPサーバーへ移動
    • 「サーバーを追加」をクリックします
    • サーバーの名前を入力します(例:「Printify MCP」)
    • トランスポートタイプとして「コマンド」を選択します
    • コマンドとしてNode.jsへのパスを入力します(例: node
    • 引数として構築されたサーバーへの完全な絶対パスを入力します
    • 「サーバーを追加」をクリックします
  6. サーバーを起動します。
    npm start
    Claude Desktop を使用している間は、このターミナル ウィンドウを開いたままにしておきます。

接続のテスト

クロードとの会話で、クロードに Printify のステータスを確認するように依頼することで、サーバーが動作しているかどうかをテストできます。

Can you check the status of my Printify connection?

Claudeさんはget-printify-statusツールを使用して接続状況を確認してください。また、 list-shopsツールを使用してPrintifyショップのリストを取得するようClaudeさんに依頼することもできます。

問題が発生した場合:

  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にアップロードする操作を1回で完了します。このツールは、AIによる画像生成とPrintifyとの連携を組み合わせ、シームレスなワークフローを実現します。

このツールは次の 4 つのステップを実行します。

  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 (文字列、オプション): 否定的なプロンプト (デフォルト: "低品質、品質が悪い、スケッチ")
  • 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種類の入力方法をサポートしています。

  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を超えるファイルの場合は、base64エンコードよりもURLアップロードが推奨されます。

パラメータ:

  • 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モデルは高解像度画像を生成しますが、Printifyに直接base64でアップロードするにはサイズが大きすぎるため、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 サーバーは、次の 3 つの主要コンポーネントで構成されています。

  1. MCP サーバー ( src/index.ts ) : Printify の API と対話するためのさまざまなツールを使用して MCP サーバーをセットアップします。
  2. Printify API クライアント ( src/printify-api.ts ) : 公式 SDK を使用して Printify の API との通信を処理します。
  3. Replicate Client ( src/replicate-client.ts ) : Replicate の API と統合して、製品デザイン用の画像を生成します。

Dockerアーキテクチャ

Docker セットアップは次のコンポーネントで構成されます。

  1. Dockerfile : Dockerイメージの構築方法を定義する
    • 小さなフットプリントのためにNode.js 22 Alpineをベースイメージとして使用します
    • 依存関係をインストールし、TypeScriptコードをビルドします
    • 環境をセットアップし、サーバーを実行します
  2. docker-compose.yml : サービス構成を定義する
    • 環境変数を設定する
    • .env ファイルと temp ディレクトリのボリュームをマウントします
    • stdioトランスポート用のstdinとttyを設定します
    • 再起動ポリシーを設定する
  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 イメージを直接使用することで、Node.js をインストールせずに Printify MCP サーバーを実行できます。

  1. Dockerのインストール: ユーザーはシステムにDockerをインストールする必要があります
  2. 一時ファイル用の一時ディレクトリを作成します
    mkdir -p temp
  3. Docker コンテナを実行します(2 つのオプション):オプション 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
    **注:**画像生成機能 (画像生成およびアップロード ツール) を使用する場合は、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 デスクトップを構成する:
    • クロードデスクトップを開く
    • 設定 > 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. PRINTIFY_API_KEY環境変数が.envファイルで正しく設定されている
  2. APIキーは有効であり、適切な権限を持っています
レプリケート API クライアントが初期化されていません

「レプリケート API クライアントが初期化されていません」というエラーが表示される場合は、次の点を確認してください。

  1. REPLICATE_API_TOKEN環境変数が.envファイルで正しく設定されている
  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 の使用時に 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

Windows ユーザーの場合、Docker イメージで PowerShell を直接使用します。

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

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

ライセンス

ISC

ID: b8ap8e8n8v