蓝牙MCP服务器
 ](https://www.python.org/)  
蓝牙设备检测的模型上下文协议服务器
🔍 概述
该项目实现了一个模型上下文协议(MCP)服务器,使Claude和其他AI助手能够扫描您附近的蓝牙设备并与之交互。它采用测试驱动开发方法构建,为跨多个平台的蓝牙操作提供了一个强大的、经过测试的接口。
✨ 特性
- 📡 多协议扫描:检测BLE和经典蓝牙设备
- 🔎 灵活的过滤:按名称、类型或其他属性筛选设备
- 🔄 自动设备识别:识别和分类常见设备(如Freebox、电视等)
- 📱 增强的设备信息:获取制造商信息、设备类型和详细特性
- 🖥️ 与跨平台支持:适用于Windows、macOS和Linux
- ⚡ 平台特定优化:增强了Windows上的检测功能
- 🤖 MCP集成:与Claude和兼容的AI助手无缝集成
📋 需求
- Python 3.7+
- 蓝牙适配器 (内置或外置)
- 管理员/sudo权限 (某些蓝牙操作需要)
- Internet连接 (用于包装安装)
🚀 快速开始
安装
# 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与克劳德一起使用
- 使用ngrok将您的服务器暴露在互联网上或将其部署到服务器上:
ngrok http 8000- 配置Claude以使用您的MCP服务器:
npx @anthropic-ai/sdk install-model-context-protocol - 让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.
🔧 故障排除
蓝牙问题
- “拒绝访问”错误:使用admin/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许可证获得许可-请参阅 许可证 文件以获取详细信息。
