蓝牙 MCP 服务器
用于蓝牙设备检测的模型上下文协议服务器
🔍 概述
该项目实现了一个模型上下文协议 (MCP) 服务器,使 Claude 和其他 AI 助手能够扫描您附近的蓝牙设备并与之交互。它采用测试驱动开发方法构建,为跨多个平台的蓝牙操作提供了强大且经过测试的接口。
✨ 特点
- 📡多协议扫描:检测 BLE 和传统蓝牙设备
- 🔎灵活过滤:按名称、类型或其他属性过滤设备
- 🔄自动设备识别:识别和分类常见设备(如 Freebox、电视等)
- 📱增强的设备信息:获取制造商信息、设备类型和详细特性
- 🖥️跨平台支持:适用于 Windows、macOS 和 Linux
- ⚡平台特定优化:增强 Windows 上的检测功能
- 🤖 MCP 集成:与 Claude 和兼容的 AI 助手无缝集成
📋 要求
- Python 3.7+
- 蓝牙适配器(内置或外置)
- 管理员/sudo 权限(某些蓝牙操作需要)
- 互联网连接(用于包安装)
🚀 快速入门
安装
# Clone the repository
git clone https://github.com/yourusername/bluetooth-mcp-server.git
cd bluetooth-mcp-server
# Create and activate virtual environment
python -m venv venv
# On Windows
venv\Scripts\activate
# On macOS/Linux
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Configure environment variables
cp .env.example .env
# Edit the .env file as needed
运行服务器
# Start the Bluetooth API server
python run.py
# In another terminal, start the MCP server
python bluetooth_mcp_server.py
与 Claude 一起使用
- 使用 ngrok 将您的服务器暴露到互联网或将其部署到服务器:
- 配置 Claude 以使用您的 MCP 服务器:
npx @anthropic-ai/sdk install-model-context-protocol <YOUR_SERVER_URL>
- 要求 Claude 扫描蓝牙设备:
Could you scan for nearby Bluetooth devices?
🧪 测试
该项目采用测试驱动开发(TDD)方法,具有全面的测试覆盖范围:
# Run all tests
pytest
# Run specific test categories
pytest tests/api/ # API tests
pytest tests/models/ # Data model tests
pytest tests/services/ # Service logic tests
pytest tests/utils/ # Utility function tests
🏗️ 建筑
该项目采用模块化架构,关注点明确分离:
bluetooth-mcp-server/
├── app/ # Main application package
│ ├── api/ # FastAPI endpoints
│ ├── core/ # Core configuration
│ ├── data/ # Static data (Bluetooth identifiers, etc.)
│ ├── models/ # Data models
│ ├── services/ # Business logic
│ └── utils/ # Utility functions
├── mcp_sdk/ # MCP integration SDK
└── tests/ # Test suites
有关架构的详细信息,请参阅architecture.md 。
🔧 故障排除
蓝牙问题
- “访问被拒绝”错误:使用管理员/sudo 权限运行服务器
- 未检测到适配器:确保系统设置中已启用蓝牙
- 未找到设备:确保附近有可发现的蓝牙设备
- Windows 特定问题:检查蓝牙服务是否处于活动状态(
services.msc
)
MCP 问题
- Claude 未检测到该工具:请验证您的 MCP 服务器 URL 是否正确且可访问
- 执行错误:检查服务器日志以获取详细的错误信息
👥 贡献
欢迎贡献!请按以下步骤操作:
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature
) - 为你的功能编写测试
- 实现你的功能
- 确保所有测试通过
- 提交您的更改(
git commit -m 'Add amazing feature'
) - 推送到分支(
git push origin feature/amazing-feature
) - 打开拉取请求
📄 许可证
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。
🙏 致谢