内容
# Boilerplate Paid MCP Server
一个使用 [PaidMCP](https://github.com/getAlby/paidmcp) 和 [官方 MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk) 的示例付费 MCP 服务器
该 MCP 服务器旨在与 [Alby Bitcoin Payments MCP Server](https://github.com/getAlby/mcp) 或其他可以进行闪电支付的 MCP 服务器结合使用。
## 工具
这个模板 MCP 服务器有 3 个工具:
- `get_weather` 是一个付费工具,用于获取指定城市的天气
- `get_food_delivery_menu` 是一个免费的工具,返回可以购买的食品项目
- `order_food_delivery` 从菜单中订购一个或多个项目
### 示例
#### 1. 天气
> 威灵顿的天气怎么样?
```
我将为您获取威灵顿的当前天气信息。
─── get_weather | weather ──────────────────────────
城市: 威灵顿
看起来这个天气服务需要进行小额闪电支付才能访问数据。如果您想继续,我可以帮助您使用连接的闪电钱包支付这个发票。
该发票为 21 sats,用于获取威灵顿的天气数据。让我支付这个发票,然后获取您的天气信息。
─── pay_invoice | alby-http ──────────────────────────
发票: ...
◇ Goose 想调用上述工具,您允许吗?
│ 允许
│
太好了!支付成功。现在让我使用支付哈希获取威灵顿的天气信息。
─── get_weather | weather ──────────────────────────
城市: 威灵顿
支付哈希: ...
## 威灵顿的天气
威灵顿的当前温度为 **14.2°C**(约 57.6°F)。
*此天气数据通过 21 sats 的闪电微支付获得。*
```
#### 2. 食品配送
> 给我订 2 个披萨
```
用户想要订购 2 个披萨。查看环境细节,我可以看到这是一个具有食品配送功能的模板 MCP 项目。我可以看到有可用的食品配送工具:
food_delivery_menu.ts
food_delivery_order.ts
我还注意到有一个连接的 boilerplate_paid_mcp MCP 服务器,提供食品配送工具:
food_delivery_menu: 显示可供购买的食品配送菜单项
food_delivery_order: 订购一个或多个食品配送项目
要订购披萨,我应该:
首先检查菜单,看看有哪些披萨选项可用
然后下单订购 2 个披萨
让我先检查菜单,看看有什么可用的。
我将帮助您订购 2 个披萨。让我先检查食品配送菜单,看看有哪些披萨选项可用。
─── boilerplate_paid_mcp | get_food_delivery_menu ──────────────────────────
{}
完美!我看到菜单上有披萨,每个 21 sats。现在我将下单订购 2 个披萨。
─── boilerplate_paid_mcp | order_food_delivery ──────────────────────────
订购一个或多个食品配送项目
{
"menu_items": [
{
"title": "Pizza"
},
{
"title": "Pizza"
}
]
}
食品配送服务在完成订单之前需要支付。我需要先支付闪电发票。让我使用 Alby MCP 服务器支付 42 sats(21 sats × 2 个披萨)的发票。
─── alby_mcp | pay_invoice ──────────────────────────
{
"invoice": "lnbc420n1p58vggudpyfaexgetjypnx7u3q2p5h57np9ss9q6t60fssnp4q228a2ztxkwzaypvzrsh823qngmv97f2v9puwvtsadetypmutyscwpp53jg4mzq70r7gj75wu0scphy3h46df8t9ehjfs5ae4w4wfm93fwgssp5a4pus38dey8e5mqw0y6cyn6gce9w3yq2gpn52cha636fzll29xrq9qyysgqcqpcxqyz5vqlg4ess44vklv7a3tsl59tuh29jz6g55dp5hg0dwnsfhg47p4g02nyzmlaawul8mscspgqkz00radh94kk7m0nn3a84x22yhree8s42qqe95prr"
}
太好了!支付成功,没有费用。现在我将通过提供支付哈希来完成披萨订单。
─── boilerplate_paid_mcp | order_food_delivery ──────────────────────────
{
"menu_items": [
{
"title": "Pizza"
},
{
"title": "Pizza"
}
],
"payment_hash": "8c915d881e78fc897a8ee3e180dc91bd74d49d65cde49853b9abaae4ecb14b91"
}
任务完成
您的 2 个披萨订单已成功下达!
订单详情:
订单 ID: 21
项目: 2 × Pizza
总费用: 42 sats(每个披萨 21 sats)
支付: 成功完成,费用为 0
您的披萨正在准备配送中。
```
## 开始使用
1. 按照下面的本地开发说明构建和检查 MCP 服务器
2. 用您自己的 [tools](./src/tools) 替换
3. 使用 `fly launch` 部署您的 MCP 服务器
## 本地开发
### 先决条件
- Node.js 20+
- Yarn
- 支持 NWC 的闪电钱包的连接字符串
### 安装
```bash
yarn install
```
### 添加您的 NWC 连接
将 `.env.example` 复制到 `.env` 并更新您的 NWC 连接密钥。
> 还没有吗?查看 [Alby Hub](https://albyhub.com)
### 在 Roo 代码中配置
将其添加到您的 MCP 服务器列表中,并更新 `args` 和 `env`:
```json
{
"mcpServers": {
"boilerplate_paid_mcp": {
"command": "node",
"args": ["/YOUR_PATH_TO_REPOSITORY/boilerplate-paid-mcp/build/index.js"],
"env": {
"NWC_CONNECTION_STRING": "nostr+walletconnect://..."
},
"disabled": false,
"autoApprove": [],
"alwaysAllow": [],
"disabledTools": []
}
}
}
```
> 还建议安装 [Alby MCP](https://github.com/getalby/mcp) 来测试支付功能。
### 构建
```bash
yarn build
```
### 检查工具(在没有 LLM 的情况下使用/测试)
`yarn inspect`
## 故障排除
### 模型使用
确保您使用的是一个合适的模型(例如 Claude Sonnet 3.7),否则 MCP 服务器将无法正常工作。
### 联系 Alby 支持
访问 [support.getalby.com](https://support.getalby.com),我们很乐意帮助您使 MCP 服务器正常工作。