d

devlimelabs

ecommerce-and-retailapp-automation

317 查看 · 2026-07-07 更新

Lulu Print MCP 服务器

一个提供与 Lulu 打印 API 集成的 Model Context Protocol (MCP) 服务器,通过 Claude Desktop 和其他 MCP 客户端为按需打印服务。

功能

📚 打印作业管理

  • 创建和管理书籍及其他印刷材料的打印作业
  • 从创建到交付跟踪订单状态
  • 在下单前计算成本
  • 支持每个订单中的多个项目行

📄 文件验证

  • 在打印前验证内部 PDF 文件
  • 通过尺寸检查验证封面 PDF 文件
  • 根据页数计算所需的封面尺寸
  • 获取详细的验证状态和错误报告

💰 成本计算

  • 根据规格计算产品成本
  • 包含运费和税费计算
  • 支持不同的运输级别(从 MAIL 到 EXPRESS)
  • 获取详细的成本明细

🚚 运输管理

  • 按目的地检索可用的运输选项
  • 支持国际运输
  • 从标准邮件到快递的不同服务级别

🔔 Webhooks

  • 订阅打印作业状态变更
  • 管理 webhook 终端
  • 测试 webhook 传递
  • 查看 webhook 提交历史记录

安装

全局安装

bash

全局安装包

npm install -g @devlimelabs/lulu-print-mcp

启动服务器

lulu-print-mcp

本地开发

bash

克隆仓库

git clone https://github.com/devlimelabs/lulu-print-mcp.git cd lulu-print-mcp

安装依赖

npm install

设置开发环境

npm run setup:dev

启动开发服务器

npm run dev

Docker 安装

bash

使用 Docker Compose 构建并运行

docker-compose up -d

或者直接构建并运行 Docker 镜像

docker build -t lulu-print-mcp . docker run -p 3000:3000 lulu-print-mcp

配置

1. 获取 Lulu API 凭证

  1. https://developers.lulu.com/ 注册 Lulu 开发者账户
  2. 为了测试,在 https://developers.sandbox.lulu.com/ 创建沙盒账户
  3. 导航到您的 API Keys 页面
  4. 复制您的客户端密钥和客户端密文

2. 配置环境变量

bash

创建配置文件

cp .env.example .env

编辑 .env 文件以包含您的 Lulu API 凭证:

必填:您的 Lulu API 凭证

LULU_CLIENT_KEY=your_client_key_here LULU_CLIENT_SECRET=your_client_secret_here

可选:API 端点(已提供默认值)

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

使用沙盒环境进行测试(默认:false)

LULU_USE_SANDBOX=false

启用调试日志(默认:false)

DEBUG=false

与 Claude Desktop 一起使用

将此 MCP 服务器添加到您的 Claude Desktop 配置文件中:

bash

运行 Claude Desktop 设置脚本

npm run setup:claude

按照说明更新您的 Claude Desktop 配置文件。该脚本将生成类似以下的配置:

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

与 Cursor 一起使用

将此 MCP 服务器添加到您的 Cursor 配置文件中:

  1. 打开 Cursor 设置 (Cursor → Settings 或在 Mac 上 Cmd+,)
  2. 导航到功能部分
  3. 找到“Model Context Protocol”设置
  4. 添加以下配置:

json { "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" } } } }或者如果全局安装:

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

使用Windsurf

将此MCP服务器添加到您的Windsurf配置中:

  1. 在项目目录中创建或编辑.windsurf/config.json文件
  2. 添加以下配置:

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

对于使用Windsurf的开发设置:

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

计算打印作业的成本而不创建它:

calculate-print-job-cost line_items: 要定价的项目数组 - pod_package_id: 产品SKU(例如:"0600X0900BWSTDPB060UW444MXX") - page_count: 页数 - quantity: 副本数量 shipping_address: 交货地址 - street1: 街道地址 - city: 城市名称 - country_code: 两位ISO国家代码 - postcode: 邮政编码 - phone_number: 联系电话 shipping_option: MAIL | PRIORITY_MAIL | GROUND | EXPEDITED | EXPRESS

打印作业管理

create-print-job

创建一个新的打印作业订单:

create-print-job line_items: 要打印的书籍数组 - title: 书名 - cover_url: 封面PDF的URL - interior_url: 内页PDF的URL - pod_package_id: 产品SKU - quantity: 副本数量 shipping_address: 交货地址 - name: 收件人姓名 - street1: 街道地址 - city: 城市 - country_code: 两位ISO代码 - postcode: 邮政编码 - phone_number: 电话 contact_email: 订单通信邮箱 shipping_level: MAIL | PRIORITY_MAIL | GROUND | EXPEDITED | EXPRESS external_id: 您的订单参考(可选)

list-print-jobs

列出打印作业,可选过滤器:

list-print-jobs page: 页码(可选) page_size: 每页结果数(可选) status: 按状态过滤(可选) created_after: 按创建日期过滤(可选) created_before: 按创建日期过滤(可选)

get-print-job

获取特定打印作业的详细信息:

get-print-job id: 打印作业ID

update-print-job

更新打印作业(仅在付款前):

update-print-job id: 打印作业ID external_id: 新参考(可选) contact_email: 新邮箱(可选)

cancel-print-job

取消打印作业(仅当未付款时):

cancel-print-job id: 打印作业ID

get-print-job-status

获取打印作业的当前状态:

get-print-job-status id: 打印作业ID

get-print-job-costs

获取打印作业的详细成本:

get-print-job-costs id: 打印作业ID

get-print-job-statistics

获取一段时间内的打印作业统计信息:

get-print-job-statistics start_date: 开始日期 (YYYY-MM-DD)(可选) end_date: 结束日期 (YYYY-MM-DD)(可选) group_by: DAY | WEEK | MONTH(可选)

文件验证

validate-interior-file

验证内页PDF文件:

validate-interior-file file_url: 内页PDF的URL pod_package_id: 产品SKU(可选,用于标准化)

get-interior-validation

检查验证状态:

get-interior-validation validation_id: 来自validate-interior-file的ID

calculate-cover-dimensions

计算所需的封面尺寸:

calculate-cover-dimensions pod_package_id: 产品SKU page_count: 内页页数 unit: IN | MM | PT(可选,默认:PT)#### validate-cover-file 验证封面PDF文件:

validate-cover-file file_url: 封面PDF的URL pod_package_id: 产品SKU page_count: 内页页数

get-cover-validation

检查封面验证状态:

get-cover-validation validation_id: 从validate-cover-file获取的ID

运输

get-shipping-options

获取可用的运输选项:

get-shipping-options country_code: 2位ISO国家代码 state_code: 州/省代码(可选) quantity: 物品数量(可选) pod_package_id: 产品SKU(可选) page_count: 页数(可选) level: 按特定级别筛选(可选)

Webhooks

create-webhook

创建Webhook订阅:

create-webhook url: Webhook端点URL topics: 事件数组(当前支持["PRINT_JOB_STATUS_CHANGED"])

list-webhooks

列出所有Webhook订阅:

list-webhooks

get-webhook

获取Webhook详情:

get-webhook id: Webhook ID

update-webhook

更新Webhook:

update-webhook id: Webhook ID url: 新URL(可选) topics: 新主题(可选) is_active: 启用/禁用(可选)

delete-webhook

删除Webhook:

delete-webhook id: Webhook ID

test-webhook

发送测试Webhook:

test-webhook id: Webhook ID topic: PRINT_JOB_STATUS_CHANGED

list-webhook-submissions

列出Webhook交付尝试:

list-webhook-submissions webhook_id: 按Webhook过滤(可选) page: 页码(可选) page_size: 每页结果数(可选)

Lulu 产品SKU

Lulu使用27个字符的SKU系统来标识产品:

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

常见示例

SKU描述
0850X1100BWSTDLW060UW444MNG8.5" x 11" 黑白标准亚麻封面,海军蓝亚麻和金色烫金
0600X0900FCSTDPB080CW444GXX6" x 9" 全彩标准平装书,光面封面
0700X1000FCPRECO060UC444MXX7" x 10" 全彩高级线圈装订,哑光封面
0600X0900BWSTDPB060UW444MXX6" x 9" 黑白标准平装书,哑光封面

使用Lulu定价计算器生成符合您需求的SKU。

使用沙盒进行测试

要使用Lulu沙盒环境进行测试:

  1. https://developers.sandbox.lulu.com/创建一个沙盒账户
  2. 获取您的沙盒API凭据
  3. 在您的.env文件中设置LULU_USE_SANDBOX=true
  4. 或者在运行CLI时使用--sandbox标志:lulu-print-mcp --sandbox

在沙盒模式下:

  • 使用测试信用卡号码进行支付
  • 订单不会被发送到实际生产环境
  • 非常适合开发和测试

命令行选项

bash lulu-print-mcp [options]

选项: -s, --sandbox 使用Lulu沙盒环境而不是生产环境 -d, --debug 启用调试日志 -h, --help 显示帮助 -V, --version 显示版本

故障排除

身份验证问题

  • 确认您的客户端密钥和密钥是否正确
  • 检查您是否使用了正确的环境(生产环境与沙盒环境)
  • 确保您的API凭据具有必要的权限

文件验证错误

  • 确保PDF文件可以通过URL公开访问
  • 检查Lulu文档中的文件格式要求
  • 确认页数和尺寸与产品规格匹配

网络问题

  • 检查您的互联网连接
  • 确认防火墙设置允许HTTPS连接到api.lulu.com
  • 启用调试模式以查看详细的请求/响应日志

贡献

欢迎贡献!请随时提交Pull Request。

许可证

MIT

服务配置

[{'mcpServers': {'lulu-print': {'command': 'lulu-print-mcp', 'env': {'LULU_CLIENT_KEY': 'your_client_key', 'LULU_CLIENT_SECRET': 'your_client_secret'}}}}, {'mcpServers': {'lulu-print': {'args': ['/path/to/global/lulu-print-mcp/dist/index.js'], 'command': 'node', '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'}}}}, {'mcpServers': {'lulu-print': {'command': 'lulu-print-mcp', 'env': {'LULU_CLIENT_KEY': 'your_client_key', 'LULU_CLIENT_SECRET': 'your_client_secret'}}}}, {'mcpServers': {'lulu-print': {'args': ['src/index.ts'], 'command': 'tsx', 'cwd': '/path/to/lulu-print-mcp', 'env': {'LULU_CLIENT_KEY': 'your_client_key', 'LULU_CLIENT_SECRET': 'your_client_secret'}}}}]

来源