花式控制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
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
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=&PASSX= |
| ` | |
| 倾斜检查 | /DIS/BOW |
| 倾斜保存 | /TX?TILTVAL= |
| 宠物训练冻结 | /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 -fMCP合规性
- 协议版本: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
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
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=&PASSX= |
| ` | |
| 倾斜(检查) | /DIS/BOW |
| 倾斜(保存) | /TX?TILTVAL= |
| 宠物训练冻结 | /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 -fMCP合规性
- 协议版本:2024-11-05
- 传输:HTTP流式传输
- 格式:JSON-RPC 2.0
- 方法:初始化、工具/列表、工具/调用、资源/列表、资源/读取、提示/列表、提示/获取、ping
______________________________________________________________________
许可证
MIT许可证
