BinaryLane MCP服务器
一种用于与客户端交互的模型上下文协议(MCP)服务器 BinaryLane 托管API的VPS。
特性
- API全面覆盖:70多个工具,涵盖所有BinaryLane API端点
- 输入验证:Zod模式验证,带有描述性错误消息
- 工具注释:只读、破坏性和幂等操作的正确提示
- 可操作错误:清除错误消息并给出解决建议
- 有据可查的:每个工具都包含详细的描述和示例
先决条件
在安装联芳醚mcp之前,请确保:
- Node.js 18.0.0或更高版本 -查看
node --version - npm或yarn包管理器
从以下位置安装Node.js:
- macOS/Windows:https://nodejs.org/
- Linux:https://nodejs.org/en/download/package-manager/
安装
npm install
npm run build配置
将BinaryLane API令牌设置为环境变量:
export BINARYLANE_API_TOKEN="your-api-token-here"从以下位置获取您的API令牌:https://home.binarylane.com.au/api-info
用法
使用克劳德桌面
添加到您的Claude Desktop配置(~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"binarylane": {
"command": "node",
"args": ["/path/to/bl-mcp/dist/index.js"],
"env": {
"BINARYLANE_API_TOKEN": "your-api-token-here"
}
}
}
}独立
npm start可用工具
账户管理
get_account-获取帐户信息get_balance-获取当前余额和使用情况list_invoices-列出所有发票get_invoice-获取特定发票详细信息get_unpaid_invoices-获取未付款的失败发票proceed_action-对未决行动作出回应
服务器管理
list_servers-列出所有VPS服务器get_server-获取服务器详细信息create_server-创建新服务器delete_server-取消/删除服务器server_action-执行服务器操作(电源、备份、调整大小等)list_server_actions-列出服务器操作历史记录get_server_action-获取具体操作状态get_server_backups-列出服务器备份get_server_snapshots-列出服务器快照upload_backup-上传外部备份get_server_firewall-获取防火墙规则get_server_console-获取VNC控制台访问权限get_data_usage-获取数据传输使用情况list_all_data_usage-列出所有服务器的使用情况get_server_kernels-列出可用内核get_server_features-获取可用功能get_server_threshold_alerts-获取资源警报list_exceeded_alerts-列出超过警报的服务器get_server_software-获取已安装的软件get_server_user_data-获取云初始化数据get_server_metrics-获取性能指标get_server_latest_metrics-获取最新指标
重要提示:端口阻塞
新服务器具有 默认情况下已启用出站端口阻止,阻止常见的垃圾邮件/攻击端口。这将防止:
- HTTPS出站连接(apt、wget、curl over HTTPS)
- DNS解析在某些情况下
- SSL证书续订(certbot、Let’s Encrypt)
如果您的服务器需要出站连接,请设置 port_blocking: false 在创建或使用过程中 change_port_blocking 服务器操作。
图像管理
list_images-列出操作系统映像和备份get_image-获取图像详细信息delete_image-删除备份映像update_image-更新图像元数据get_image_download-获取下载URL
图像块格式
重要: BinaryLane图像片段不包含架构后缀。
✅ 正确格式:
ubuntu-24.04(不是ubuntu-24.04-x64)debian-12(不是debian-12-amd64)fedora-40centos-stream-9
❌ 格式不正确:
- ~~
ubuntu-24.04-x64~~-未使用体系结构后缀 - ~~
debian-12-arm64~~-服务器计划处理的架构
SSH密钥管理
list_ssh_keys-列出SSH密钥get_ssh_key-获取SSH密钥详细信息create_ssh_key-添加新的SSH密钥update_ssh_key-更新SSH密钥delete_ssh_key-删除SSH密钥
域管理
list_domains-列出DNS域get_domain-获取域详细信息create_domain-添加新域delete_domain-删除域list_domain_records-列出DNS记录get_domain_record-获取记录详细信息create_domain_record-创建DNS记录update_domain_record-更新DNS记录delete_domain_record-删除DNS记录list_nameservers-列出BinaryLane名称服务器refresh_nameserver_cache-刷新DNS缓存list_ipv6_reverse_names-列出IPv6 PTR记录update_ipv6_reverse-更新IPv6 PTR记录
DNS管理说明
TTL约束: BinaryLane DNS支持3600-86400秒(1-24小时)的TTL范围,标准和默认值为3600秒(1小时)。最小TTL为3600秒。
VPC管理
list_vpcs-列出VPCget_vpc-获取VPC详细信息create_vpc-创建新VPCupdate_vpc-更新VPC设置delete_vpc-删除VPCget_vpc_members-列出VPC成员
负载均衡器管理
list_load_balancers-列出负载平衡器get_load_balancer-获取负载平衡器详细信息create_load_balancer-创建负载平衡器update_load_balancer-更新负载平衡器delete_load_balancer-删除负载平衡器get_load_balancer_availability-检查可用性/价格add_servers_to_load_balancer-添加后端服务器remove_servers_from_load_balancer-删除后端服务器add_forwarding_rules-添加转发规则remove_forwarding_rules-删除转发规则
负载平衡器设置要求
BinaryLane负载平衡器 任播 无地域性。创建负载平衡器后:
- 不要指定区域参数 创建时(导致IP分配错误)
- 每个后端服务器必须在其环回接口上配置LB的任意播IP:
ip addr add /32 dev lo- 坚持VIP 使用netplan(创建
/etc/netplan/60-lb-loopback.yaml):
network:
version: 2
ethernets:
lo:
addresses:
- /32- 健康检查主机名 默认为LB名称。如果后端使用server_name匹配,请将健康检查主机名更新为您的实际域。
如果没有环回VIP,健康检查将失败,流量将无法转发。
基础设施信息
list_regions-列出可用区域list_sizes-列出服务器大小和定价list_actions-列出最近的行动get_action-获取操作详细信息
软件
list_software-列出可用软件get_software-获取软件详细信息list_software_for_os-列出特定操作系统的软件
服务器操作
这 server_action 该工具支持多种操作类型:
电源操作:电源开启、电源关闭、重新启动、关机、电源循环
状态检查:ping、正常运行时间、is_running
备份操作:获取备份、还原、启用备份、禁用备份、附加备份、分离备份、定时备份
配置:重建、调整大小、重命名、更改区域、更改内核
网络:enable_ipv6,change_ipv6、change_port_blocking、change_network、change_vpc_ipv4、change_reverse_name
磁盘操作:add_disk、resize_disk、delete_disk
高级:change_addvanced_features、change_addvance防火墙规则、change_threshold警报
高级防火墙规则
BinaryLane防火墙是 无状态 随着 无隐含否认关键要求:
- 对规则进行评估 依次 (首场比赛获胜)
- 必须包含明确的DROP规则 最后或允许所有交通
- 在任何UDP DROP之前,必须允许UDP 53(DNS) 或者服务器无法解析主机名
- 仅数据库服务器 仍然需要HTTP/HTTPS规则 适合工作
- Web服务器需要 TCP 3306接受 MySQL返回流量(无状态)
例子: SSH、HTTP、HTTPS、DNS、ICMP允许,所有其他都被阻止:
[
{"source_addresses": ["0.0.0.0/0"], "destination_addresses": ["0.0.0.0/0"], "destination_ports": ["22"], "protocol": "tcp", "action": "accept"},
{"source_addresses": ["0.0.0.0/0"], "destination_addresses": ["0.0.0.0/0"], "destination_ports": ["80"], "protocol": "tcp", "action": "accept"},
{"source_addresses": ["0.0.0.0/0"], "destination_addresses": ["0.0.0.0/0"], "destination_ports": ["443"], "protocol": "tcp", "action": "accept"},
{"source_addresses": ["0.0.0.0/0"], "destination_addresses": ["0.0.0.0/0"], "protocol": "icmp", "action": "accept"},
{"source_addresses": ["0.0.0.0/0"], "destination_addresses": ["0.0.0.0/0"], "destination_ports": ["53"], "protocol": "udp", "action": "accept"},
{"source_addresses": ["0.0.0.0/0"], "destination_addresses": ["0.0.0.0/0"], "protocol": "tcp", "action": "drop"},
{"source_addresses": ["0.0.0.0/0"], "destination_addresses": ["0.0.0.0/0"], "protocol": "udp", "action": "drop"}
]常见工作流和示例
本节提供使用MCP工具的常见任务的分步说明。
创建Web服务器
- 创建对出站HTTPS禁用port_blocking的服务器:
create_server({
name: "web-app-1",
region: "syd",
image: "ubuntu-24.04",
size: "vps-1vcpu-1gb",
port_blocking: false // Enable outbound HTTPS
})- 等待服务器处于活动状态,然后配置防火墙:
server_action({
server_id: ,
type: "change_advanced_firewall_rules",
firewall_rules: [
{source_addresses: ["0.0.0.0/0"], destination_ports: ["22"], protocol: "tcp", action: "accept"},
{source_addresses: ["0.0.0.0/0"], destination_ports: ["80"], protocol: "tcp", action: "accept"},
{source_addresses: ["0.0.0.0/0"], destination_ports: ["443"], protocol: "tcp", action: "accept"},
{source_addresses: ["0.0.0.0/0"], destination_ports: ["53"], protocol: "udp", action: "accept"},
{source_addresses: ["0.0.0.0/0"], protocol: "tcp", action: "drop"},
{source_addresses: ["0.0.0.0/0"], protocol: "udp", action: "drop"}
]
})设置负载平衡应用程序
- 创建后端服务器:
create_server({name: "app-1", region: "syd", image: "ubuntu-24.04", size: "vps-2vcpu-4gb"})
create_server({name: "app-2", region: "mel", image: "ubuntu-24.04", size: "vps-2vcpu-4gb"})- 创建负载均衡器(无区域/任意播):
create_load_balancer({
name: "app-lb",
forwarding_rules: [{entry_protocol: "http", entry_port: 80, target_protocol: "http", target_port: 80}],
health_check: {protocol: "http", port: 80, path: "/health"}
})- 将服务器添加到负载平衡器:
add_servers_to_load_balancer({
load_balancer_id: ,
server_ids: [, ]
})- 在每个后端配置环回VIP(必需):
SSH连接到每台服务器并运行:
ip addr add /32 dev lo
# Persist with netplan in /etc/netplan/60-lb-loopback.yaml备份和恢复服务器
- 拍摄快照:
server_action({
server_id: ,
type: "take_backup",
backup_type: "snapshot",
label: "pre-upgrade-backup"
})- 从备份还原:
server_action({
server_id: ,
type: "restore",
image:
})发展
# Build
npm run build
# Watch mode (development)
npm run dev故障排除
身份验证错误
问题: API调用失败,出现401/403个错误 解决:
- 验证令牌是否已设置:
echo $BINARYLANE_API_TOKEN - 检查令牌格式(应该是原始令牌,而不是括在引号中)
- 如果已过期,请在BinaryLane控制台中重新生成令牌
- 测试用
get_account验证身份验证的工具
服务器创建失败
问题: create_server 返回验证或配额错误 解决:
- 使用
list_regions验证有效的地区代码 - 使用
list_sizes获取有效尺寸的蛞蝓 - 通过以下方式检查账户限额
get_account - 确保图像段格式正确(无架构后缀)
DNS更新不起作用
问题: DNS更改不会传播 解决:
- BinaryLane上的TTL最小值为3600秒(1小时)
- 允许24-48小时进行全球传播
- 使用
refresh_nameserver_cache强制缓存更新 - 清除本地DNS缓存以进行测试
负载平衡器运行状况检查失败
问题: 后端标记为不健康 解决:
- 确保每个后端都配置了环回VIP(
ip addr add /32 dev lo) - 验证应用程序是否监听所有接口(0.0.0.0,而不仅仅是公共IP)
- 检查健康检查路径返回200 OK
- 检查防火墙规则不会阻止健康检查流量
防火墙规则中断连接
问题: 防火墙更改后服务器失去网络 解决:
- 记住防火墙是 无状态 -需要明确的双向规则
- 没有含蓄的否认 -必须在末尾添加明确的DROP规则
- 在UDP DROP规则之前包含UDP 53(DNS)
- 增量测试,从SSH访问开始
项目结构
bl-mcp/
├── src/
│ ├── index.ts # Main entry point
│ ├── api-client.ts # BinaryLane API client
│ ├── tools.ts # Tool definitions with annotations
│ ├── handlers.ts # Tool handler implementations
│ └── schemas.ts # Zod validation schemas
├── dist/ # Compiled JavaScript
├── package.json
└── tsconfig.jsonAPI 参考
有关API的详细文档,请参阅:https://api.binarylane.com.au/reference/
许可证
麻省理工学院
