Skip to main content
Glama
devlimelabs

Lulu Print MCP Server

by devlimelabs

Lulu Print MCP Server

Ein Model Context Protocol (MCP)-Server, der die Integration mit der Lulu Print API für Print-on-Demand-Dienste über Claude Desktop und andere MCP-Clients ermöglicht.

Merkmale

📚 Druckauftragsverwaltung

  • Erstellen und verwalten Sie Druckaufträge für Bücher und andere Druckerzeugnisse

  • Verfolgen Sie den Bestellstatus von der Erstellung bis zur Lieferung

  • Berechnen Sie die Kosten, bevor Sie Bestellungen aufgeben

  • Unterstützung mehrerer Positionen pro Bestellung

📄 Dateivalidierung

  • Validieren Sie die PDF-Dateien vor dem Drucken

  • Validieren Sie Cover-PDF-Dateien mit Dimensionsprüfung

  • Berechnen Sie die erforderlichen Cover-Abmessungen basierend auf der Seitenanzahl

  • Erhalten Sie detaillierte Validierungsstatus- und Fehlerberichte

💰 Kostenberechnung

  • Berechnen Sie die Produktkosten anhand der Spezifikationen

  • Versand- und Steuerberechnungen einschließen

  • Unterstützung verschiedener Versandstufen (MAIL bis EXPRESS)

  • Erhalten Sie detaillierte Kostenaufschlüsselungen

🚚 Versandmanagement

  • Verfügbare Versandoptionen nach Zielort abrufen

  • Unterstützung für den internationalen Versand

  • Verschiedene Service-Levels vom Standardbrief bis zum Expressversand

🔔 Webhooks

  • Abonnieren Sie Statusänderungen von Druckaufträgen

  • Verwalten von Webhook-Endpunkten

  • Testen der Webhook-Übermittlung

  • Webhook-Übermittlungsverlauf anzeigen

Related MCP server: Fused MCP Agents

Installation

Globale Installation

# Install the package globally
npm install -g @devlimelabs/lulu-print-mcp

# Start the server
lulu-print-mcp

Lokale Entwicklung

# 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-Installation

# 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

Konfiguration

1. Holen Sie sich die Lulu API-Anmeldeinformationen

  1. Registrieren Sie sich für ein Lulu-Entwicklerkonto unter https://developers.lulu.com/

  2. Erstellen Sie zum Testen ein Sandbox-Konto unter https://developers.sandbox.lulu.com/

  3. Navigieren Sie zu Ihrer API-Schlüsselseite

  4. Kopieren Sie Ihren Client-Schlüssel und Ihr Client-Geheimnis

2. Umgebungsvariablen konfigurieren

# Create a configuration file
cp .env.example .env

Bearbeiten Sie die .env Datei mit Ihren Lulu-API-Anmeldeinformationen:

# 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

Verwendung mit Claude Desktop

Fügen Sie diesen MCP-Server zu Ihrer Claude Desktop-Konfigurationsdatei hinzu:

# Run the Claude Desktop setup script
npm run setup:claude

Folgen Sie den Anweisungen, um Ihre Claude Desktop-Konfigurationsdatei zu aktualisieren. Das Skript generiert eine Konfiguration ähnlich der folgenden:

{
  "mcpServers": {
    "lulu-print": {
      "command": "lulu-print-mcp",
      "env": {
        "LULU_CLIENT_KEY": "your_client_key",
        "LULU_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

Verwendung mit Cursor

Fügen Sie diesen MCP-Server zu Ihrer Cursor-Konfigurationsdatei hinzu:

  1. Öffnen Sie die Cursoreinstellungen ( Cursor → Settings oder Cmd+, auf dem Mac).

  2. Navigieren Sie zum Abschnitt „Funktionen“

  3. Suchen Sie nach den Einstellungen für „Model Context Protocol“

  4. Fügen Sie die folgende Konfiguration hinzu:

{
  "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"
      }
    }
  }
}

Oder bei globaler Installation:

{
  "mcpServers": {
    "lulu-print": {
      "command": "lulu-print-mcp",
      "env": {
        "LULU_CLIENT_KEY": "your_client_key",
        "LULU_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

Verwendung mit Windsurf

Fügen Sie diesen MCP-Server zu Ihrer Windsurf-Konfiguration hinzu:

  1. Erstellen oder bearbeiten Sie die Datei .windsurf/config.json in Ihrem Projektverzeichnis

  2. Fügen Sie die folgende Konfiguration hinzu:

{
  "mcpServers": {
    "lulu-print": {
      "command": "lulu-print-mcp",
      "env": {
        "LULU_CLIENT_KEY": "your_client_key",
        "LULU_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

Für das Entwicklungs-Setup mit 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"
      }
    }
  }
}

Verfügbare Tools

Kostenberechnung

Druckauftragskosten berechnen

Berechnen Sie die Kosten eines Druckauftrags, ohne ihn zu erstellen:

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

Druckauftragsverwaltung

Druckauftrag erstellen

Erstellen Sie einen neuen Druckauftrag:

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)

Liste-Druckaufträge

Druckaufträge mit optionalen Filtern auflisten:

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)

Druckauftrag abrufen

Erhalten Sie Details zu einem bestimmten Druckauftrag:

get-print-job
  id: Print job ID

Druckauftrag aktualisieren

Aktualisieren eines Druckauftrags (nur vor der Zahlung):

update-print-job
  id: Print job ID
  external_id: New reference (optional)
  contact_email: New email (optional)

Druckauftrag abbrechen

Druckauftrag stornieren (nur wenn unbezahlt):

cancel-print-job
  id: Print job ID

Druckauftragsstatus abrufen

Aktuellen Status eines Druckauftrags abrufen:

get-print-job-status
  id: Print job ID

Kosten für Druckaufträge abrufen

Erhalten Sie detaillierte Kosten für einen Druckauftrag:

get-print-job-costs
  id: Print job ID

Druckauftragsstatistiken abrufen

Erhalten Sie Statistiken zu Druckaufträgen über einen bestimmten Zeitraum:

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)

Dateivalidierung

Validieren der inneren Datei

Validieren Sie eine interne PDF-Datei:

validate-interior-file
  file_url: URL to interior PDF
  pod_package_id: Product SKU (optional, for normalization)

get-interior-validation

Validierungsstatus prüfen:

get-interior-validation
  validation_id: ID from validate-interior-file

Deckungsmaße berechnen

Benötigte Deckelmaße berechnen:

calculate-cover-dimensions
  pod_package_id: Product SKU
  page_count: Number of interior pages
  unit: IN | MM | PT (optional, default: PT)

Cover-Datei validieren

Validieren Sie eine Cover-PDF-Datei:

validate-cover-file
  file_url: URL to cover PDF
  pod_package_id: Product SKU
  page_count: Number of interior pages

Get-Cover-Validierung

Überprüfen Sie den Status der Cover-Validierung:

get-cover-validation
  validation_id: ID from validate-cover-file

Versand

Versandoptionen erhalten

Erhalten Sie verfügbare Versandoptionen:

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)

Webhooks

Webhook erstellen

Erstellen Sie ein Webhook-Abonnement:

create-webhook
  url: Webhook endpoint URL
  topics: Array of events (currently supports ["PRINT_JOB_STATUS_CHANGED"])

Liste-Webhooks

Alle Webhook-Abonnements auflisten:

list-webhooks

Webhook abrufen

Webhook-Details abrufen:

get-webhook
  id: Webhook ID

Update-Webhook

Aktualisieren Sie einen Webhook:

update-webhook
  id: Webhook ID
  url: New URL (optional)
  topics: New topics (optional)
  is_active: Enable/disable (optional)

Webhook löschen

Löschen Sie einen Webhook:

delete-webhook
  id: Webhook ID

Test-Webhook

Senden Sie einen Test-Webhook:

test-webhook
  id: Webhook ID
  topic: PRINT_JOB_STATUS_CHANGED

Liste-Webhook-Einreichungen

Listen Sie die Webhook-Übermittlungsversuche auf:

list-webhook-submissions
  webhook_id: Filter by webhook (optional)
  page: Page number (optional)
  page_size: Results per page (optional)

Lulu-Produkt-SKUs

Lulu verwendet ein 27-stelliges SKU-System zur Identifizierung von Produkten:

Format : Trim Size + Color + Print Quality + Bind + Paper + PPI + Finish + Linen + Foil

Häufige Beispiele

Artikelnummer

Beschreibung

0850X1100BWSTDLW060UW444MNG

8,5 x 11 Zoll großes schwarz-weißes Standard-Leinenpapier mit marineblauem Leinen und Goldfolie

0600X0900FCSTDPB080CW444GXX

6" x 9" Standard-Taschenbuch in Farbe mit Hochglanzeinband

0700X1000FCPRECO060UC444MXX

7" x 10" Vollfarbe Premium Spiralbindung mit mattem Einband

0600X0900BWSTDPB060UW444MXX

6 x 9 Zoll großes Schwarzweiß-Taschenbuch mit mattem Einband

Verwenden Sie den Lulu-Preisrechner, um SKUs für Ihre spezifischen Anforderungen zu generieren.

Testen mit Sandbox

So verwenden Sie die Lulu-Sandbox-Umgebung zum Testen:

  1. Erstellen Sie ein Sandbox-Konto unter https://developers.sandbox.lulu.com/

  2. Holen Sie sich Ihre Sandbox-API-Anmeldeinformationen

  3. Setzen Sie LULU_USE_SANDBOX=true in Ihrer .env Datei

  4. Oder verwenden Sie das Flag --sandbox , wenn Sie die CLI ausführen: lulu-print-mcp --sandbox

Im Sandbox-Modus:

  • Test-Kreditkartennummern für Zahlungen verwenden

  • Bestellungen werden nicht an die eigentliche Produktion gesendet

  • Perfekt für Entwicklung und Tests

Befehlszeilenoptionen

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

Fehlerbehebung

Authentifizierungsprobleme

  • Überprüfen Sie, ob Ihr Client-Schlüssel und Ihr Geheimnis korrekt sind

  • Überprüfen Sie, ob Sie die richtige Umgebung verwenden (Produktion vs. Sandbox).

  • Stellen Sie sicher, dass Ihre API-Anmeldeinformationen über die erforderlichen Berechtigungen verfügen

Dateivalidierungsfehler

  • Stellen Sie sicher, dass PDF-Dateien über eine URL öffentlich zugänglich sind

  • Überprüfen Sie die Dateiformatanforderungen in der Dokumentation von Lulu

  • Überprüfen Sie, ob die Seitenanzahl und Abmessungen den Produktspezifikationen entsprechen

Netzwerkprobleme

  • Überprüfen Sie Ihre Internetverbindung

  • Überprüfen Sie, ob die Firewall-Einstellungen HTTPS-Verbindungen zu api.lulu.com zulassen

  • Aktivieren Sie den Debug-Modus, um detaillierte Anforderungs-/Antwortprotokolle anzuzeigen

Beitragen

Beiträge sind willkommen! Senden Sie gerne einen Pull Request.

Lizenz

MIT

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/devlimelabs/lulu-print-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server