蓝牙设备检测服务器

一个基于模型上下文协议(MCP)的服务器,用于扫描和交互附近的蓝牙设备,支持多平台和多种蓝牙协议。

  • by Hypijump31
  • Python
  • 本地部署
  • 24 星标
  • 更新于
在 GitHub 查看 Hypijump31/bluetooth-mcp-server

使用说明

蓝牙MCP服务器

蓝牙设备检测的模型上下文协议服务器

🔍 概述

该项目实现了一个模型上下文协议(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

与克劳德一起使用

  1. 使用ngrok将您的服务器暴露在互联网上或将其部署到服务器上:

    ngrok http 8000
    
  2. 配置Claude以使用您的MCP服务器:

    npx @anthropic-ai/sdk install-model-context-protocol <YOUR_SERVER_URL>
    
  3. 让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是否正确且可访问
  • 执行错误:检查服务器日志以获取详细的错误信息

👥 贡献

欢迎投稿!请按照以下步骤操作:

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 为您的功能编写测试
  4. 实现您的功能
  5. 确保所有测试通过
  6. 提交您的更改(git commit -m 'Add amazing feature')
  7. 推到分支(git push origin feature/amazing-feature)
  8. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢