使用说明
花式控制MCP服务器
🇬🇧 英语
用于控制PowerExchange/Fancy Control设备的HTTP流式MCP(模型上下文协议)服务器。
特性
| 工具 | 说明 |
|---|---|
device_config |
检查或保存设备配置(SSID、密码、序列号、密钥) |
tilt |
检查或保存设备倾斜位置值 |
pet_training_freeze |
宠物训练冻结(BETA)-激活宠物训练冻结模式(S2Z)-必须保持静止 |
pet_training_fast |
宠物训练快速-激活宠物训练快速模式(S2F)-更快的响应 |
warning_buzzer |
启用/禁用警告蜂鸣器 |
pet_training |
宠物训练模式(正常/S2) |
sleep_deprivation |
睡眠剥夺模式 |
random_mode |
随机模式-随机激活 |
timer |
定时器模式(开/关、获取、t1_up/t1_down、t2_up/t2_down) |
beep |
发出蜂鸣声(相当于短按) |
shock |
以1-100%的功率发出冲击(相当于长按) |
power_control |
功率电平控制 |
send_raw_command |
高级用户的原始HTTP命令 |
建筑
MCP Client ──────► Raspberry Pi ──────► Fancy Device
eth0 (Ethernet) wlan0 (WiFi)
Port 8000 Port 80
快速开始
使用Docker在Raspberry Pi(ARM64)上运行
git clone <repository-url>
cd fancy-mcp-server
# Build the image
docker build -t fancy-mcp-server .
# Run the container
docker run -d \
--name fancy-mcp-server \
--restart unless-stopped \
-p 8000:8000 \
-e MCP_AUTH_TOKEN=your-secure-token \
-e DEVICE_IP=192.168.4.1 \
-e DEVICE_PORT=80 \
-e MCP_CONTEXT_DESCRIPTION="My Fancy device" \
fancy-mcp-server
使用docker编写
git clone <repository-url>
cd fancy-mcp-server
cp .env.example .env
# Edit .env with your settings
docker compose up -d
看 RASPBERRY_PI_SETUP.md 用于完整的WiFi配置。
没有Docker(Python)
pip install -r requirements.txt
export MCP_AUTH_TOKEN=your-token
export DEVICE_IP=192.168.4.1
python server.py
环境变量
基本配置
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
MCP_AUTH_TOKEN |
是 | - | MCP身份验证令牌 |
DEVICE_IP |
是 | - | 设备IP地址 |
DEVICE_PORT |
无 | 80 | 设备HTTP端口 |
MCP_CONTEXT_DESCRIPTION |
所有描述均未添加 | - | 前缀 |
PORT |
无 | 8000 | MCP服务器端口 |
MCP_SAFETY_MAX_POWER_0_100 |
否 | - | 安全:最大功率限制(0-100)。如果设置,所有电源命令(冲击、电源控制)将限制在此值 |
工具说明(可定制)
每个工具都有自己的变量来自定义其描述:
| 变量 | 默认描述 |
|---|---|
TOOL_DESC_DEVICE_CONFIG |
设备配置-检查或保存设备配置。.. |
TOOL_DESC_TILT |
倾斜-检查或保存设备倾斜位置值 |
TOOL_DESC_PET_TRAINING_FREEZE |
宠物训练冻结(BETA)-激活宠物训练冻结模式。.. |
TOOL_DESC_PET_TRAINING_FAST |
宠物训练快速-激活宠物训练快速模式。.. |
TOOL_DESC_WARNING_BUZZER |
警告蜂鸣器-启用或禁用警告蜂鸣器。.. |
TOOL_DESC_PET_TRAINING |
宠物训练模式-启用或禁用宠物训练。.. |
TOOL_DESC_SLEEP_DEPRIVATION |
睡眠剥夺模式-启用或禁用。.. |
TOOL_DESC_RANDOM_MODE |
随机模式-启用或禁用随机激活。.. |
TOOL_DESC_TIMER |
定时器模式-启用或禁用定时器模式。.. |
TOOL_DESC_BEEP |
蜂鸣-向设备发送蜂鸣信号。.. |
TOOL_DESC_SHOCK |
冲击-发送具有指定功率的冲击信号。.. |
TOOL_DESC_POWER_CONTROL |
功率控制-调整设备功率水平 |
TOOL_DESC_SEND_RAW_COMMAND |
向设备发送原始HTTP命令。.. |
API终点
| 端点 | 方法 | 描述 |
|---|---|---|
/mcp |
POST | 主MCP端点(JSON-RPC) |
/health |
GET | 健康检查 |
/ |
GET | 服务器信息 |
认证
服务器接受带有或不带有“Bearer”前缀的令牌:
# With Bearer
-H "Authorization: Bearer your-token"
# Without Bearer
-H "Authorization: your-token"
使用示例
健康检查
curl http://192.168.1.100:8000/health
列出工具
curl -X POST http://192.168.1.100:8000/mcp \
-H "Content-Type: application/json" \
-H "Authorization: your-token" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}'
发送蜂鸣声
curl -X POST http://192.168.1.100:8000/mcp \
-H "Content-Type: application/json" \
-H "Authorization: your-token" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "beep", "arguments": {}}}'
50%功率下的冲击
curl -X POST http://192.168.1.100:8000/mcp \
-H "Content-Type: application/json" \
-H "Authorization: your-token" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "shock", "arguments": {"power": 50}}}'
启用宠物训练冻结
curl -X POST http://192.168.1.100:8000/mcp \
-H "Content-Type: application/json" \
-H "Authorization: your-token" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "pet_training_freeze", "arguments": {"action": "on"}}}'
启用定时器模式
curl -X POST http://192.168.1.100:8000/mcp \
-H "Content-Type: application/json" \
-H "Authorization: your-token" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "timer", "arguments": {"action": "on"}}}'
获取计时器值
curl -X POST http://192.168.1.100:8000/mcp \
-H "Content-Type: application/json" \
-H "Authorization: your-token" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "timer", "arguments": {"action": "get"}}}'
增加定时器1
curl -X POST http://192.168.1.100:8000/mcp \
-H "Content-Type: application/json" \
-H "Authorization: your-token" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "timer", "arguments": {"action": "t1_up"}}}'
设备端点
| 函数 | 端点 |
|---|---|
| 设备配置检查 | /TX? |
| 设备配置保存 | /TX?SSIDX=<ssid>&PASSX=<password> |
| 倾斜检查 | /DIS/BOW |
| 倾斜保存 | /TX?TILTVAL=<value> |
| 宠物训练冻结 | /mode/S2Z |
| 宠物训练冻结 | /mode/0 |
| 宠物训练快速开启 | /mode/S2F |
| 宠物训练快速关闭 | /mode/0 |
| 蜂鸣器打开 | /S1/1 |
| 蜂鸣器关闭 | /S1/0 |
| 宠物训练 | /mode/S2 |
| 睡眠剥夺 | /mode/S4 |
| 随机 | /mode/RN |
| 定时器模式 | /mode/TM |
| 定时器获取 | /DIS/TM |
| 定时器1+ | /T1/+ |
| 定时器1- | /T1/- |
| 定时器2+ | /T2/+ |
| 定时器2- | /T2/- |
| 模式关闭 | /mode/0 |
| 嘟嘟 | /B1/1 |
| 震惊 | /Z1/1 |
| 电源+ | /PW/+ |
| 电源- | /PW/- |
码头工人
构建
docker build -t fancy-mcp-server .
运行(最小配置)
docker run -d \
--name fancy-mcp-server \
--restart unless-stopped \
-p 8000:8000 \
-e MCP_AUTH_TOKEN=your-token \
-e DEVICE_IP=192.168.4.1 \
fancy-mcp-server
运行(带有自定义描述的完整配置)
docker run -d \
--name fancy-mcp-server \
--restart unless-stopped \
-p 8000:8000 \
-e MCP_AUTH_TOKEN=your-token \
-e DEVICE_IP=192.168.4.1 \
-e DEVICE_PORT=80 \
-e MCP_CONTEXT_DESCRIPTION="My Device" \
-e MCP_SAFETY_MAX_POWER_0_100=50 \
-e TOOL_DESC_DEVICE_CONFIG="Device config" \
-e TOOL_DESC_TILT="Tilt" \
-e TOOL_DESC_PET_TRAINING_FREEZE="Freeze training mode" \
-e TOOL_DESC_PET_TRAINING_FAST="Fast training mode" \
-e TOOL_DESC_WARNING_BUZZER="Warning buzzer" \
-e TOOL_DESC_PET_TRAINING="Training mode" \
-e TOOL_DESC_SLEEP_DEPRIVATION="Sleep deprivation mode" \
-e TOOL_DESC_RANDOM_MODE="Random mode" \
-e TOOL_DESC_TIMER="Timer" \
-e TOOL_DESC_BEEP="Send a beep" \
-e TOOL_DESC_SHOCK="Send a shock" \
-e TOOL_DESC_POWER_CONTROL="Power control" \
-e TOOL_DESC_SEND_RAW_COMMAND="Raw command" \
fancy-mcp-server
安全须知:The
MCP_SAFETY_MAX_POWER_0_100变量限制了最大功率。在上面的例子中,即使要求100%的电击,也将限制在50%。
停止/删除
docker stop fancy-mcp-server
docker rm fancy-mcp-server
日志
docker logs -f fancy-mcp-server
使用docker编写
docker compose build
docker compose up -d
docker compose logs -f
MCP合规性
- 协议版本:2024-11-05
- 传输:HTTP流式传输
- 格式:JSON-RPC 2.0
- 方法:初始化、工具/列表、工具/调用、资源/列表、资源/读取、提示/列表、提示/获取、ping
🇫🇷 法语
MCP(模型上下文协议)HTTP流服务器,用于控制PowerExchange/Fancy控制设备。
功能
| 输出 | 描述 |
|---|---|
device_config |
检查或保存设备配置(SSID、密码、序列号、密钥) |
tilt |
检查或保存设备的倾斜位置值 |
pet_training_freeze |
宠物训练冷冻(BETA)-主动模式宠物训练冷冻 |
pet_training_fast |
宠物训练快速-激活宠物训练快速(S2F)模式-更快的响应 |
warning_buzzer |
打开/关闭警告蜂鸣器 |
pet_training |
模式宠物训练(正常/S2) |
sleep_deprivation |
睡眠剥夺模式 |
random_mode 随机模式-随机激活 |
|
timer |
模式定时器(开/关、获取、t1_up/t1_down、t2_up/t2_down) |
beep |
发送嘟嘟声(相当于短按) |
shock |
发出1-100%功率冲击(相当于长时间按压) |
power_control |
功率电平控制 |
send_raw_command 高级用户的原始HTTP命令 |
建筑
Client MCP ──────► Raspberry Pi ──────► Device Fancy
eth0 (Ethernet) wlan0 (WiFi)
Port 8000 Port 80
安装速度快
带Docker的Raspberry Pi(ARM64)
git clone <repository-url>
cd fancy-mcp-server
# Build de l'image
docker build -t fancy-mcp-server .
# Lancer le container
docker run -d \
--name fancy-mcp-server \
--restart unless-stopped \
-p 8000:8000 \
-e MCP_AUTH_TOKEN=votre-token-securise \
-e DEVICE_IP=192.168.4.1 \
-e DEVICE_PORT=80 \
-e MCP_CONTEXT_DESCRIPTION="Mon device Fancy" \
fancy-mcp-server
使用Docker Compose
git clone <repository-url>
cd fancy-mcp-server
cp .env.example .env
# Éditer .env avec vos paramètres
docker compose up -d
见 RASPBERRY_PI_SETUP.md 配置完整的WiFi。
无Docker(Python)
pip install -r requirements.txt
export MCP_AUTH_TOKEN=votre-token
export DEVICE_IP=192.168.4.1
python server.py
环境变量
基础配置
| 变量 | 必需 | 默认 | 描述 |
|---|---|---|---|
MCP_AUTH_TOKEN |
是 | - | MCP身份验证令牌 |
DEVICE_IP |
是 | - | 设备的IP地址 |
DEVICE_PORT |
非 | 80 | 端口HTTP du设备 |
MCP_CONTEXT_DESCRIPTION |
否 | - | 前缀已添加到所有描述中 |
PORT |
否 | 8000 | MCP服务器端口 |
MCP_SAFETY_MAX_POWER_0_100 |
非 | - | 安全 最大功率限制(0-100)。如果设置,所有功率命令(shock、power-control)将上限为该值 |
工具说明(可自定义)
每个工具都有自己的变量来自定义其描述:
| 变量 | 默认描述 |
|---|---|
TOOL_DESC_DEVICE_CONFIG |
设备配置-检查或保存设备配置。.. |
TOOL_DESC_TILT |
倾斜-检查或保存设备倾斜位置值 |
TOOL_DESC_PET_TRAINING_FREEZE |
宠物训练冻结(BETA)-激活宠物训练冻结模式。.. |
TOOL_DESC_PET_TRAINING_FAST |
宠物训练快速-激活宠物训练快速模式。.. |
TOOL_DESC_WARNING_BUZZER |
警告蜂鸣器-启用或禁用警告蜂鸣器。.. |
TOOL_DESC_PET_TRAINING |
宠物训练模式-启用或禁用宠物训练。.. |
TOOL_DESC_SLEEP_DEPRIVATION |
睡眠剥夺模式-启用或禁用。.. |
TOOL_DESC_RANDOM_MODE |
随机模式-启用或禁用随机激活。.. |
TOOL_DESC_TIMER |
定时器模式-启用或禁用定时器模式。.. |
TOOL_DESC_BEEP |
蜂鸣-向设备发送蜂鸣信号。.. |
TOOL_DESC_SHOCK |
冲击-发送具有指定功率的冲击信号。.. |
TOOL_DESC_POWER_CONTROL |
功率控制-调整设备功率水平 |
TOOL_DESC_SEND_RAW_COMMAND |
向设备发送原始HTTP命令。.. |
端点API
| 端点 | 方法 | 描述 |
|---|---|---|
/mcp |
POST | 端点MCP主体(JSON-RPC) |
/health |
GET | 健康检查 |
/ |
获取 | 服务器信息 |
认证
服务器接受带有或不带有前缀“bearer”的令牌:
# Avec Bearer
-H "Authorization: Bearer votre-token"
# Sans Bearer
-H "Authorization: votre-token"
使用示例
健康检查
curl http://192.168.1.100:8000/health
工具列表
curl -X POST http://192.168.1.100:8000/mcp \
-H "Content-Type: application/json" \
-H "Authorization: votre-token" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}'
发送蜂鸣声
curl -X POST http://192.168.1.100:8000/mcp \
-H "Content-Type: application/json" \
-H "Authorization: votre-token" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "beep", "arguments": {}}}'
50%功率冲击
curl -X POST http://192.168.1.100:8000/mcp \
-H "Content-Type: application/json" \
-H "Authorization: votre-token" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "shock", "arguments": {"power": 50}}}'
活跃宠物训练冻结
curl -X POST http://192.168.1.100:8000/mcp \
-H "Content-Type: application/json" \
-H "Authorization: votre-token" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "pet_training_freeze", "arguments": {"action": "on"}}}'
激活定时器模式
curl -X POST http://192.168.1.100:8000/mcp \
-H "Content-Type: application/json" \
-H "Authorization: votre-token" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "timer", "arguments": {"action": "on"}}}'
读取计时器值
curl -X POST http://192.168.1.100:8000/mcp \
-H "Content-Type: application/json" \
-H "Authorization: votre-token" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "timer", "arguments": {"action": "get"}}}'
增量器定时器1
curl -X POST http://192.168.1.100:8000/mcp \
-H "Content-Type: application/json" \
-H "Authorization: votre-token" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "timer", "arguments": {"action": "t1_up"}}}'
设备端点
| 功能 | 端点 |
|---|---|
| 配置设备(检查) | /TX? |
| 配置设备(保存) | /TX?SSIDX=<ssid>&PASSX=<password> |
| 倾斜(检查) | /DIS/BOW |
| 倾斜(保存) | /TX?TILTVAL=<valeur> |
| 宠物训练冻结 | /mode/S2Z |
| 宠物训练冻结 | /mode/0 |
| 宠物训练快速开启 | /mode/S2F |
| 宠物训练快速关闭 | /mode/0 |
| 蜂鸣器打开 | /S1/1 |
| 蜂鸣器关闭 | /S1/0 |
| 宠物训练 | /mode/S2 |
| 睡眠剥夺 | /mode/S4 |
| 随机 | /mode/RN |
| 定时器模式 | /mode/TM |
| 定时器获取 | /DIS/TM |
| 定时器1+ | /T1/+ |
| 定时器1- | /T1/- |
| 定时器2+ | /T2/+ |
| 定时器2- | /T2/- |
| 模式关闭 | /mode/0 |
| 嘟嘟 | /B1/1 |
| 震惊 | /Z1/1 |
| 电源+ | /PW/+ |
| 电源- | /PW/- |
码头工人
构建
docker build -t fancy-mcp-server .
Lancer(配置最小值)
docker run -d \
--name fancy-mcp-server \
--restart unless-stopped \
-p 8000:8000 \
-e MCP_AUTH_TOKEN=votre-token \
-e DEVICE_IP=192.168.4.1 \
fancy-mcp-server
启动(具有自定义描述的完整配置)
docker run -d \
--name fancy-mcp-server \
--restart unless-stopped \
-p 8000:8000 \
-e MCP_AUTH_TOKEN=votre-token \
-e DEVICE_IP=192.168.4.1 \
-e DEVICE_PORT=80 \
-e MCP_CONTEXT_DESCRIPTION="Mon Device" \
-e MCP_SAFETY_MAX_POWER_0_100=50 \
-e TOOL_DESC_DEVICE_CONFIG="Configuration device" \
-e TOOL_DESC_TILT="Inclinaison" \
-e TOOL_DESC_PET_TRAINING_FREEZE="Mode dressage freeze" \
-e TOOL_DESC_PET_TRAINING_FAST="Mode dressage rapide" \
-e TOOL_DESC_WARNING_BUZZER="Buzzer d'avertissement" \
-e TOOL_DESC_PET_TRAINING="Mode dressage" \
-e TOOL_DESC_SLEEP_DEPRIVATION="Mode privation de sommeil" \
-e TOOL_DESC_RANDOM_MODE="Mode aléatoire" \
-e TOOL_DESC_TIMER="Minuterie" \
-e TOOL_DESC_BEEP="Émettre un bip" \
-e TOOL_DESC_SHOCK="Envoyer une décharge" \
-e TOOL_DESC_POWER_CONTROL="Contrôle de puissance" \
-e TOOL_DESC_SEND_RAW_COMMAND="Commande brute" \
fancy-mcp-server
安全说明 :La变量
MCP_SAFETY_MAX_POWER_0_100允许限制最大功率。在上面的示例中,即使要求100%电击,也将限制为50%。
停止/删除
docker stop fancy-mcp-server
docker rm fancy-mcp-server
日志
docker logs -f fancy-mcp-server
使用Docker Compose
docker compose build
docker compose up -d
docker compose logs -f
MCP合规性
- 协议版本:2024-11-05
- 传输:HTTP流式传输
- 格式:JSON-RPC 2.0
- 方法:初始化、工具/列表、工具/调用、资源/列表、资源/读取、提示/列表、提示/获取、ping
许可证
MIT许可证