商品管理服务器

Sphere MCP Merch Server是一个基于Nostr协议和Unicity区块链的商品管理服务器,提供商品浏览、订单管理和支付功能。

  • by MastaP
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 MastaP/unicity-mcp-merch

使用说明

Sphere MCP Merch服务器

Unicity商品店的MCP(模型上下文协议)服务器。提供LLM访问权限,通过Nostr使用UCT代币浏览和购买Unicity品牌商品。

特性

  • 产品目录:印有图案的T恤、连帽衫、杯子、帽子
  • 订单管理:创建订单,跟踪状态
  • Nostr集成:通过Nostr协议发送的付款请求
  • Unicity区块链:使用名称标签进行身份和支付路由
  • 自动标识:服务器在首次运行时创建自己的区块链身份
  • HTTP传输:支持传统SSE和现代可流式HTTP

可用产品

ID 名称 价格 尺寸
tshirt-black Unicity黑色T恤 25 UCT S、M、L、XL、XXL
tshirt-white Unicity白色T恤 25 UCT S、M、L、XL、XXL
hoodie-black Unicity黑色连帽衫 50 UCT S、M、L、XL、XXL
mug-classic Unicity经典杯 15 UCT -
cap-black Unicity黑色帽子 20 UCT -

MCP工具

工具 参数 说明
list_products category (可选) 列出所有商品及其价格
get_product product_id 通过图片获取产品详细信息
place_order unicity_id, product_id, quantity, size 下订单(发起付款)
confirm_order unicity_id, order_id 等待付款确认
get_orders unicity_id 获取用户的所有订单
get_wallet_balance password 获取MCP钱包余额(管理员)

HTTP端点

服务器在HTTP(默认端口3001)上运行,具有两种传输协议:

传统SSE(MCP检查员,老客户)

端点 方法 描述
/sse GET 建立SSE流,返回POST端点
/messages?sessionId=xxx POST 发送JSON-RPC消息

流式HTTP(现代客户端)

端点 方法 描述
/mcp POST 发送JSON-RPC请求
/mcp GET SSE流用于响应

健康检查

端点 方法 描述
/health GET 返回 { status, sseSessions, httpSessions }

快速开始

1.配置环境

cp .env.example .env

编辑 .env 具有所需值:

MCP_NAMETAG=merch-mcp
PAYMENT_COIN_ID=your_coin_id_here

2.添加产品图片

将产品图片放在 assets/ 目录:

  • tshirt-black.png
  • tshirt-white.png
  • hoodie-black.png
  • mug-classic.png
  • cap-black.png

3.使用Docker Compose运行

docker compose up -d

4.查看日志

docker compose logs -f

测试MCP

MCP检查员

npx @modelcontextprotocol/inspector

然后在浏览器UI中,选择“SSE”传输并输入URL: http://localhost:3001/sse

健康检查

curl http://localhost:3001/health

工作流示例

  1. 用户列出可用产品:

    Tool: list_products
    
  2. 用户查看带有图像的产品:

    Tool: get_product
    Args: { "product_id": "tshirt-black" }
    
  3. 用户下订单:

    Tool: place_order
    Args: { "unicity_id": "alice", "product_id": "tshirt-black", "quantity": 1, "size": "M" }
    
  4. 付款请求已发送。 用户在其Unicity钱包中收到付款请求。

  5. 用户确认付款:

    Tool: confirm_order
    Args: { "unicity_id": "alice", "order_id": "abc123" }
    
  6. 成功付款后,订单即被确认。

配置

变量 必填 默认 描述
MCP_NAMETAG 是 - 此MCP服务器的名称标签
PAYMENT_COIN_ID 是 - 用于支付的硬币ID
MCP_PRIVATE_KEY_HEX 否 自动生成 私钥(十六进制)
NOSTR_RELAY_URL 没有 wss://nostr-relay.testnet.unicity.network 诺斯特接力
AGGREGATOR_URL 没有 https://goggregator-test.unicity.network Unicity聚合器
AGGREGATOR_API_KEY 否 (测试网密钥) 聚合器API密钥
PAYMENT_TIMEOUT_SECONDS 没有 120 付款超时
DATA_DIR 没有 ./data 数据持久性目录
ASSETS_DIR 没有 ./assets 产品图片目录
ADMIN_PASSWORD 否 自动生成 钱包访问的管理员密码
HTTP_PORT 没有 3001 HTTP服务器端口

发展

# Install dependencies
npm install

# Build
npm run build

# Run locally
npm start

# Watch mode
npm run dev

许可证

麻省理工学院