Lulu Print MCP サーバー
Claude Desktop やその他の MCP クライアントを通じてオンデマンド印刷サービス用の Lulu Print API との統合を提供するモデル コンテキスト プロトコル (MCP) サーバー。
特徴
📚 印刷ジョブ管理
書籍やその他の印刷物の印刷ジョブの作成と管理
注文の作成から配送までのステータスを追跡
注文前にコストを計算する
注文ごとに複数の明細項目をサポート
📄 ファイル検証
印刷前に内部PDFファイルを検証する
寸法チェックで表紙PDFファイルを検証
ページ数に基づいて必要な表紙の寸法を計算する
詳細な検証ステータスとエラーレポートを取得する
💰 コスト計算
🚚 配送管理
目的地別に利用可能な配送オプションを取得する
国際配送のサポート
通常郵便から速達便まで、さまざまなサービスレベル
🔔 ウェブフック
印刷ジョブのステータス変更を購読する
Webhookエンドポイントを管理する
Webhook配信のテスト
Webhook の送信履歴を表示する
Related MCP server: Fused MCP Agents
インストール
グローバルインストール
# Install the package globally
npm install -g @devlimelabs/lulu-print-mcp
# Start the server
lulu-print-mcp
地域開発
# Clone the repository
git clone https://github.com/devlimelabs/lulu-print-mcp.git
cd lulu-print-mcp
# Install dependencies
npm install
# Set up development environment
npm run setup:dev
# Start the development server
npm run dev
Dockerのインストール
# Build and run with Docker Compose
docker-compose up -d
# Or build and run the Docker image directly
docker build -t lulu-print-mcp .
docker run -p 3000:3000 lulu-print-mcp
構成
1. Lulu API認証情報を取得する
https://developers.lulu.com/で Lulu 開発者アカウントにサインアップしてください。
テストするには、 https://developers.sandbox.lulu.com/でサンドボックス アカウントを作成してください。
APIキーページに移動します
クライアントキーとクライアントシークレットをコピーします
2. 環境変数を設定する
# Create a configuration file
cp .env.example .env
Lulu API 資格情報を使用して.envファイルを編集します。
# Required: Your Lulu API credentials
LULU_CLIENT_KEY=your_client_key_here
LULU_CLIENT_SECRET=your_client_secret_here
# Optional: API endpoints (defaults are provided)
LULU_API_URL=https://api.lulu.com
LULU_SANDBOX_API_URL=https://api.sandbox.lulu.com
LULU_AUTH_URL=https://api.lulu.com/auth/realms/glasstree/protocol/openid-connect/token
LULU_SANDBOX_AUTH_URL=https://api.sandbox.lulu.com/auth/realms/glasstree/protocol/openid-connect/token
# Use sandbox environment for testing (default: false)
LULU_USE_SANDBOX=false
# Enable debug logging (default: false)
DEBUG=false
Claude Desktopでの使用
この MCP サーバーを Claude Desktop 構成ファイルに追加します。
# Run the Claude Desktop setup script
npm run setup:claude
指示に従ってClaude Desktopの設定ファイルを更新してください。スクリプトは次のような設定ファイルを生成します。
{
"mcpServers": {
"lulu-print": {
"command": "lulu-print-mcp",
"env": {
"LULU_CLIENT_KEY": "your_client_key",
"LULU_CLIENT_SECRET": "your_client_secret"
}
}
}
}
カーソルとの使用
この MCP サーバーをカーソル構成ファイルに追加します。
カーソル設定を開く( Cursor → Settings 、またはMacの場合はCmd+, )
機能セクションに移動する
「モデルコンテキストプロトコル」の設定を見つける
次の構成を追加します。
{
"mcpServers": {
"lulu-print": {
"command": "node",
"args": ["/path/to/global/lulu-print-mcp/dist/index.js"],
"env": {
"LULU_CLIENT_KEY": "your_client_key",
"LULU_CLIENT_SECRET": "your_client_secret"
}
}
}
}
またはグローバルにインストールされている場合:
{
"mcpServers": {
"lulu-print": {
"command": "lulu-print-mcp",
"env": {
"LULU_CLIENT_KEY": "your_client_key",
"LULU_CLIENT_SECRET": "your_client_secret"
}
}
}
}
ウィンドサーフィンでの使用
この MCP サーバーを Windsurf 構成に追加します。
プロジェクトディレクトリに.windsurf/config.jsonファイルを作成または編集します。
次の構成を追加します。
{
"mcpServers": {
"lulu-print": {
"command": "lulu-print-mcp",
"env": {
"LULU_CLIENT_KEY": "your_client_key",
"LULU_CLIENT_SECRET": "your_client_secret"
}
}
}
}
Windsurf を使用した開発セットアップの場合:
{
"mcpServers": {
"lulu-print": {
"command": "tsx",
"args": ["src/index.ts"],
"cwd": "/path/to/lulu-print-mcp",
"env": {
"LULU_CLIENT_KEY": "your_client_key",
"LULU_CLIENT_SECRET": "your_client_secret"
}
}
}
}
利用可能なツール
コスト計算
印刷ジョブのコストを計算する
印刷ジョブを作成せずにコストを計算します。
calculate-print-job-cost
line_items: Array of items to price
- pod_package_id: Product SKU (e.g., "0600X0900BWSTDPB060UW444MXX")
- page_count: Number of pages
- quantity: Number of copies
shipping_address: Delivery address
- street1: Street address
- city: City name
- country_code: 2-letter ISO country code
- postcode: Postal code
- phone_number: Contact phone
shipping_option: MAIL | PRIORITY_MAIL | GROUND | EXPEDITED | EXPRESS
印刷ジョブ管理
印刷ジョブの作成
新しい印刷ジョブ注文を作成します。
create-print-job
line_items: Array of books to print
- title: Book title
- cover_url: URL to cover PDF
- interior_url: URL to interior PDF
- pod_package_id: Product SKU
- quantity: Number of copies
shipping_address: Delivery address
- name: Recipient name
- street1: Street address
- city: City
- country_code: 2-letter ISO code
- postcode: Postal code
- phone_number: Phone
contact_email: Email for order communication
shipping_level: MAIL | PRIORITY_MAIL | GROUND | EXPEDITED | EXPRESS
external_id: Your order reference (optional)
印刷ジョブの一覧
オプションのフィルターを使用して印刷ジョブを一覧表示します。
list-print-jobs
page: Page number (optional)
page_size: Results per page (optional)
status: Filter by status (optional)
created_after: Filter by creation date (optional)
created_before: Filter by creation date (optional)
印刷ジョブの取得
特定の印刷ジョブの詳細を取得します。
get-print-job
id: Print job ID
印刷ジョブの更新
印刷ジョブを更新する(支払い前のみ):
update-print-job
id: Print job ID
external_id: New reference (optional)
contact_email: New email (optional)
印刷ジョブのキャンセル
印刷ジョブをキャンセルする(未払いの場合のみ):
cancel-print-job
id: Print job ID
印刷ジョブのステータスを取得する
印刷ジョブの現在のステータスを取得します。
get-print-job-status
id: Print job ID
印刷ジョブのコストを取得する
印刷ジョブの詳細なコストを取得します。
get-print-job-costs
id: Print job ID
印刷ジョブの統計情報を取得する
一定期間にわたる印刷ジョブの統計を取得します。
get-print-job-statistics
start_date: Start date (YYYY-MM-DD) (optional)
end_date: End date (YYYY-MM-DD) (optional)
group_by: DAY | WEEK | MONTH (optional)
ファイル検証
内部ファイルの検証
内部 PDF ファイルを検証します。
validate-interior-file
file_url: URL to interior PDF
pod_package_id: Product SKU (optional, for normalization)
内部検証の取得
検証ステータスを確認します:
get-interior-validation
validation_id: ID from validate-interior-file
カバー寸法を計算する
必要なカバー寸法を計算します。
calculate-cover-dimensions
pod_package_id: Product SKU
page_count: Number of interior pages
unit: IN | MM | PT (optional, default: PT)
カバーファイルの検証
表紙の PDF ファイルを検証します。
validate-cover-file
file_url: URL to cover PDF
pod_package_id: Product SKU
page_count: Number of interior pages
カバー検証を取得する
カバー検証ステータスを確認します:
get-cover-validation
validation_id: ID from validate-cover-file
配送
配送オプションを取得する
利用可能な配送オプションを取得します:
get-shipping-options
country_code: 2-letter ISO country code
state_code: State/province code (optional)
quantity: Number of items (optional)
pod_package_id: Product SKU (optional)
page_count: Number of pages (optional)
level: Filter by specific level (optional)
ウェブフック
ウェブフックの作成
Webhook サブスクリプションを作成します。
create-webhook
url: Webhook endpoint URL
topics: Array of events (currently supports ["PRINT_JOB_STATUS_CHANGED"])
ウェブフック一覧
すべての Webhook サブスクリプションを一覧表示します。
ウェブフックを取得する
Webhook の詳細を取得します。
get-webhook
id: Webhook ID
更新ウェブフック
Webhook を更新します。
update-webhook
id: Webhook ID
url: New URL (optional)
topics: New topics (optional)
is_active: Enable/disable (optional)
ウェブフックの削除
Webhook を削除します。
delete-webhook
id: Webhook ID
テストウェブフック
テスト Webhook を送信します。
test-webhook
id: Webhook ID
topic: PRINT_JOB_STATUS_CHANGED
Webhook 送信リスト
Webhook 配信の試行を一覧表示します。
list-webhook-submissions
webhook_id: Filter by webhook (optional)
page: Page number (optional)
page_size: Results per page (optional)
Lulu製品SKU
Lulu では、製品を識別すべく 27 文字の SKU システムを使用しています。
フォーマット: Trim Size + Color + Print Quality + Bind + Paper + PPI + Finish + Linen + Foil
一般的な例
SKU | 説明 |
0850X1100BWSTDLW060UW444MNG
| 8.5インチ x 11インチの白黒標準リネンラップ。ネイビーのリネンとゴールドの箔を使用。 |
0600X0900FCSTDPB080CW444GXX
| 6インチ×9インチのフルカラー標準ペーパーバック(光沢カバー付き) |
0700X1000FCPRECO060UC444MXX
| 7インチ×10インチのフルカラープレミアムコイル綴じ、マットカバー付き |
0600X0900BWSTDPB060UW444MXX
| 6インチ×9インチの白黒標準ペーパーバック(マットカバー付き) |
Lulu 価格計算ツールを使用すると、特定のニーズに合わせた SKU を生成できます。
サンドボックスでのテスト
テストに Lulu サンドボックス環境を使用するには:
https://developers.sandbox.lulu.com/でサンドボックス アカウントを作成します。
サンドボックスAPI認証情報を取得する
.envファイルでLULU_USE_SANDBOX=true設定します。
または、CLIを実行するときに--sandboxフラグを使用します: lulu-print-mcp --sandbox
サンドボックスモードの場合:
コマンドラインオプション
lulu-print-mcp [options]
Options:
-s, --sandbox Use Lulu sandbox environment instead of production
-d, --debug Enable debug logging
-h, --help Display help
-V, --version Display version
トラブルシューティング
認証の問題
ファイル検証エラー
PDFファイルがURL経由で公開されていることを確認する
Luluのドキュメントでファイル形式の要件を確認してください
ページ数と寸法が製品仕様と一致していることを確認します
ネットワークの問題
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
ライセンス
マサチューセッツ工科大学