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-mcpLokale 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 devDocker-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-mcpKonfiguration
1. Holen Sie sich die Lulu API-Anmeldeinformationen
Registrieren Sie sich für ein Lulu-Entwicklerkonto unter https://developers.lulu.com/
Erstellen Sie zum Testen ein Sandbox-Konto unter https://developers.sandbox.lulu.com/
Navigieren Sie zu Ihrer API-Schlüsselseite
Kopieren Sie Ihren Client-Schlüssel und Ihr Client-Geheimnis
2. Umgebungsvariablen konfigurieren
# Create a configuration file
cp .env.example .envBearbeiten 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=falseVerwendung mit Claude Desktop
Fügen Sie diesen MCP-Server zu Ihrer Claude Desktop-Konfigurationsdatei hinzu:
# Run the Claude Desktop setup script
npm run setup:claudeFolgen 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:
Öffnen Sie die Cursoreinstellungen (
Cursor → SettingsoderCmd+,auf dem Mac).Navigieren Sie zum Abschnitt „Funktionen“
Suchen Sie nach den Einstellungen für „Model Context Protocol“
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:
Erstellen oder bearbeiten Sie die Datei
.windsurf/config.jsonin Ihrem ProjektverzeichnisFü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 | EXPRESSDruckauftragsverwaltung
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 IDDruckauftrag 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 IDDruckauftragsstatus abrufen
Aktuellen Status eines Druckauftrags abrufen:
get-print-job-status
id: Print job IDKosten für Druckaufträge abrufen
Erhalten Sie detaillierte Kosten für einen Druckauftrag:
get-print-job-costs
id: Print job IDDruckauftragsstatistiken 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-fileDeckungsmaß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 pagesGet-Cover-Validierung
Überprüfen Sie den Status der Cover-Validierung:
get-cover-validation
validation_id: ID from validate-cover-fileVersand
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-webhooksWebhook abrufen
Webhook-Details abrufen:
get-webhook
id: Webhook IDUpdate-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 IDTest-Webhook
Senden Sie einen Test-Webhook:
test-webhook
id: Webhook ID
topic: PRINT_JOB_STATUS_CHANGEDListe-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 |
| 8,5 x 11 Zoll großes schwarz-weißes Standard-Leinenpapier mit marineblauem Leinen und Goldfolie |
| 6" x 9" Standard-Taschenbuch in Farbe mit Hochglanzeinband |
| 7" x 10" Vollfarbe Premium Spiralbindung mit mattem Einband |
| 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:
Erstellen Sie ein Sandbox-Konto unter https://developers.sandbox.lulu.com/
Holen Sie sich Ihre Sandbox-API-Anmeldeinformationen
Setzen Sie
LULU_USE_SANDBOX=truein Ihrer.envDateiOder 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 versionFehlerbehebung
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