Lovense MCP服务器
______________________________________________________________________
🇬🇧 英文版本
概述
模型上下文协议(MCP) 用于通过Lovense Remote应用程序的游戏模式控制Lovense玩具的服务器。此服务器遵循 MCP规范 并使用Python MCP SDK。
✨ 主要特点
MCP合规性:
- ✅ 使用FastAPI的HTTP传输
- ✅ StreamingResponse实现高效数据传输
- ✅ 完整的协议支持:工具、资源和提示
- ✅ 符合JSON-RPC 2.0标准
Lovense集成:
- 🎮 5控制工具:振动、旋转、泵送、停止、模式
- 📊 2资源:已连接玩具状态,API配置
- 🎯 3提示模板:控制播放、快速播放、模式播放
- 🔒 异步HTTP客户端,具有适当的错误处理功能
生产就绪:
- 🐳 Docker容器化
- 🔐 非root用户执行
- 🚀 始终异步/等待
- 📝 综合录井
______________________________________________________________________
📋 先决条件
- 码头工人 Docker Compose
- Lovense远程应用程序 启用游戏模式
- Lovense玩具的本地网络访问
- Python 3.11+(用于本地开发)
______________________________________________________________________
🚀 快速开始
1.克隆存储库
git clone
cd lovense-mcp-server2.配置环境
cp .env.example .env
nano .env # Edit with your settings所需的环境变量:
GAME_MODE_IP=192.168.1.100 # Your Lovense Remote local IP
GAME_MODE_PORT=30010 # HTTPS port (default: 30010)
MCP_AUTH_TOKEN=your-secret-token-here # Authentication token for MCP endpoint
PORT=8000 # HTTP server port (default: 8000)3.获取游戏模式IP地址
- 打开 乐范远程 应用
- 启用 游戏模式
- 注意显示的本地IP(例如。,
192.168.1.100) - 在中使用此IP
.env文件
4.使用Docker运行
# Build and start
docker-compose up -d
# View logs
docker-compose logs -f lovense-mcp
# Stop
docker-compose down______________________________________________________________________
🔧 用法
这是一个MCP服务器,通过以下方式进行通信 超文本传输协议 使用FastAPI。它暴露了一个 /mcp 接受JSON-RPC 2.0请求并返回流式响应的端点。
API终点
- 发布
/mcp:主MCP端点(需要承载令牌身份验证) - 获取
/health:健康检查端点(不需要身份验证)
认证
所有请求 /mcp 必须在Authorization标头中包含Bearer令牌:
curl -X POST http://localhost:8000/mcp \
-H "Authorization: Bearer your-secret-token-here" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'连接到MCP客户端
配置您的MCP客户端以连接到HTTP端点:
{
"lovense": {
"url": "http://localhost:8000/mcp",
"headers": {
"Authorization": "Bearer your-secret-token-here"
}
}
}______________________________________________________________________
🛠️ 可用工具
1. vibrate
向Lovense玩具发送振动指令。
参数:
toy(字符串,可选):玩具ID或所有玩具为空intensity(整数,必填):振动等级0-20duration(整数,必填):持续时间(秒)(1-60)
例子:
{
"name": "vibrate",
"arguments": {
"intensity": 15,
"duration": 5
}
}2. rotate
向具有旋转功能的玩具发送旋转指令。
参数:
toy(字符串,可选):玩具ID或所有玩具为空intensity(整数,必填):旋转级别0-20duration(整数,必填):持续时间(秒)(1-60)
3. pump
向具有泵功能的玩具发送泵指令。
参数:
toy(字符串,可选):玩具ID或所有玩具为空intensity(整数,必填):泵液位0-3duration(整数,必填):持续时间(秒)(1-60)
4. stop
立即停止所有正在运行的功能。
参数:
toy(字符串,可选):玩具ID或所有玩具为空
5. pattern
播放预设的振动模式。
参数:
toy(字符串,可选):玩具ID或所有玩具为空pattern(字符串,必填):其中之一pulse,wave,fireworks,earthquakeduration(整数,必填):持续时间(秒)(1-60)
______________________________________________________________________
📊 可用资源
资源公开了有关Lovense设置的实时信息。
1. lovense://toys/connected
列出所有当前连接的Lovense玩具及其状态。
2. lovense://config/api
查看当前API配置和连接的详细信息。
______________________________________________________________________
🎯 可用提示
提示提供有指导的交互模板。
1. control_toy
使用引导参数控制玩具的交互式提示。
论据:
action:要执行的动作(振动、旋转、泵送、停止、模式)intensity:强度级别(可选)duration:持续时间(秒)(可选)
2. quick_vibrate
具有预设强度的快速振动。
论据:
level:强度级别(低、中、高)
3. pattern_play
播放振动模式。
论据:
pattern_name:图案名称(脉冲、波、烟花、地震)duration:持续时间(秒)(可选)
______________________________________________________________________
🏗️ 发展
本地设置
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Set environment variables
export GAME_MODE_IP=192.168.1.100
export GAME_MODE_PORT=30010
# Run server
python server.py项目结构
lovense-mcp-server/
├── server.py # Main MCP server implementation
├── requirements.txt # Python dependencies
├── Dockerfile # Docker container configuration
├── docker-compose.yml # Docker Compose orchestration
├── .env.example # Environment variables template
├── .gitignore # Git ignore rules
├── LICENSE # MIT License
├── README.md # This file
└── REQUIREMENTS.md # Original project requirements______________________________________________________________________
🔒 安全功能
- 非根容器:以用户身份运行
mcpuser(UID 1000) - 异步HTTP客户端:使用具有适当超时处理的httpx
- 输入验证:所有工具参数均已验证
- 错误处理:全面的错误处理和记录
- 没有硬编码的秘密:所有配置均通过环境变量进行
______________________________________________________________________
🐛 故障排除
服务器无法启动
# Check logs
docker-compose logs lovense-mcp
# Verify environment variables
docker-compose config无法连接到玩具
- 验证Lovense Remote应用程序中是否启用了游戏模式
- 检查一下
GAME_MODE_IP匹配应用程序中显示的IP - 确保服务器和玩具位于同一本地网络上
- 验证端口30010是否可访问
MCP客户端无法连接
- 验证MCP客户端是否配置正确
- 检查stdio通信是否正常工作
- 查看服务器日志中的错误
- 确保容器具有stdin/stdout访问权限
______________________________________________________________________
📚 其他资源
______________________________________________________________________
📜 许可证
该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
🇫🇷 法文版
概述
服务器 模型上下文协议(MCP) 通过Lovense远程应用程序的游戏模式控制Lovense玩具。此服务器尊重 MCP规范 并使用MCP Python SDK。
✨ 主要特点
MCP合规性:
- ✅ 使用FastAPI的HTTP传输
- ✅ StreamingResponse实现高效数据传输
- ✅ 完整的协议支持:工具、资源和提示
- ✅ 符合JSON-RPC 2.0
Lovense集成:
- 🎮 5控制工具 :振动、旋转、泵送、停止、模式
- 📊 2资源 :连接玩具的状态、API配置
- 🎯 3个模板取消提示 :控制播放、快速播放、模式播放
- 🔒 具有适当错误处理的异步HTTP客户端
准备生产:
- 🐳 使用Docker容器化
- 🔐 以非root用户身份执行
- 🚀 异步/等待无处不在
- 📝 完整日志记录
______________________________________________________________________
📋 先决条件
- 码头工人 et Docker编写
- Lovense Remote应用程序 启用游戏模式时
- Lovense玩具的本地网络访问
- Python 3.11+(用于本地开发)
______________________________________________________________________
🚀 快速启动
1.克隆存储库
git clone
cd lovense-mcp-server2.配置环境
cp .env.example .env
nano .env # Modifier avec vos paramètres所需环境变量:
GAME_MODE_IP=192.168.1.100 # Votre IP locale Lovense Remote
GAME_MODE_PORT=30010 # Port HTTPS (défaut: 30010)
MCP_AUTH_TOKEN=votre-token-secret-ici # Token d'authentification pour l'endpoint MCP
PORT=8000 # Port du serveur HTTP (défaut: 8000)3.获取游戏模式的IP地址
- 打开应用程序 乐范远程
- 活动 游戏模式
- 注意显示的本地IP(例如:
192.168.1.100) - 在文件中使用此IP
.env
4.使用Docker运行
# Construire et démarrer
docker-compose up -d
# Voir les logs
docker-compose logs -f lovense-mcp
# Arrêter
docker-compose down______________________________________________________________________
🔧 使用
这是一个MCP服务器,通过 超文本传输协议 使用FastAPI。它暴露了一个端点 /mcp 它接受JSON-RPC 2.0请求并返回流式响应。
端点API
- 发布
/mcp:端点MCP主体(请求身份验证承载令牌) - 获取
/health:健康端点(无需身份验证)
认证
所有请求 /mcp 必须在授权标头中包含承载令牌:
curl -X POST http://localhost:8000/mcp \
-H "Authorization: Bearer votre-token-secret-ici" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'连接到MCP客户端
将MCP客户端配置为连接到HTTP端点:
{
"lovense": {
"url": "http://localhost:8000/mcp",
"headers": {
"Authorization": "Bearer votre-token-secret-ici"
}
}
}______________________________________________________________________
🛠️ 可用工具
1. vibrate
向Lovense玩具发送振动命令。
设置 :
toy(字符串,可选):玩具ID或所有玩具为空intensity(整数,必需):振动水平0-20duration(整数,必需):持续时间(秒)(1-60)
示例:
{
"name": "vibrate",
"arguments": {
"intensity": 15,
"duration": 5
}
}2. rotate
向具有旋转能力的玩具发送旋转命令。
设置 :
toy(字符串,可选):玩具ID或所有玩具为空intensity(整数,必需):旋转级别0-20duration(整数,必需):持续时间(秒)(1-60)
3. pump
向具有泵容量的玩具发送泵命令。
设置 :
toy(字符串,可选):玩具ID或所有玩具为空intensity(整数,必需):泵级0-3duration(整数,必需):持续时间(秒)(1-60)
4. stop
立即停止所有正在运行的功能。
设置 :
toy(字符串,可选):玩具ID或所有玩具为空
5. pattern
播放预先配置的振动模式。
设置 :
toy(字符串,可选):玩具ID或所有玩具为空pattern(字符串,必需):一个pulse,wave,fireworks,earthquakeduration(整数,必需):持续时间(秒)(1-60)
______________________________________________________________________
📊 可用资源
这些资源公开了有关Lovense配置的实时信息。
1. lovense://toys/connected
列出当前连接的所有Lovense玩具及其状态。
2. lovense://config/api
请参阅当前API配置和连接详细信息。
______________________________________________________________________
🎯 可用提示
Prompts提供了引导交互模板。
1. control_toy
交互式提示,通过引导设置控制玩具。
论据:
action:要执行的动作(振动、旋转、泵、停止、模式)intensity:强度等级(可选)duration:持续时间(秒)(可选)
2. quick_vibrate
具有预设强度的快速振动。
论据:
level强度等级(低、中、高)
3. pattern_play
播放振动模式。
论据:
pattern_name:Nom-du模式(脉冲、波浪、烟花、地震)duration:持续时间(秒)(可选)
______________________________________________________________________
🏗️ 发展
配置区域设置
# Créer un environnement virtuel
python -m venv venv
source venv/bin/activate # Sur Windows: venv\Scripts\activate
# Installer les dépendances
pip install -r requirements.txt
# Définir les variables d'environnement
export GAME_MODE_IP=192.168.1.100
export GAME_MODE_PORT=30010
# Exécuter le serveur
python server.py项目结构
lovense-mcp-server/
├── server.py # Implémentation principale du serveur MCP
├── requirements.txt # Dépendances Python
├── Dockerfile # Configuration du conteneur Docker
├── docker-compose.yml # Orchestration Docker Compose
├── .env.example # Template des variables d'environnement
├── .gitignore # Règles Git ignore
├── LICENSE # Licence MIT
├── README.md # Ce fichier
└── REQUIREMENTS.md # Exigences originales du projet______________________________________________________________________
🔒 安全功能
- 连续非根:以用户身份运行
mcpuser(UID 1000) - 客户端HTTP异步:使用具有适当超时管理的httpx
- 输入验证:所有工具参数均已验证
- 错误管理:完整的错误管理和日志记录
- 全天候的秘密:通过环境变量进行所有配置
______________________________________________________________________
🐛 故障排除
服务器无法启动
# Vérifier les logs
docker-compose logs lovense-mcp
# Vérifier les variables d'environnement
docker-compose config无法连接到玩具
- 确保在Lovense远程应用程序中启用游戏模式
- 检查
GAME_MODE_IP对应于应用程序中显示的IP - 确保服务器和玩具位于同一本地网络上
- 检查端口30010是否可访问
MCP客户端无法连接
- 验证MCP客户端配置是否正确
- 检查stdio通信是否正常工作
- 检查服务器日志以查找错误
- 确保容器可以访问stdin/stdout
______________________________________________________________________
📚 额外资源
______________________________________________________________________
📜 许可证
该项目获得MIT许可。查看文件 许可证 更多详情。
