MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

I
Im Syau Ble Esp Mcpy Loader

为 沈阳农业大学昆虫博物馆 编写的基于 micropython 的loader,包含esp32-c3和esp32-s3

Created 2/23/2026
Updated about 9 hours ago
Repository documentation and setup instructions

沈阳农业大学校徽

IM-SYAU-ble-esp-mcpy-loader

ESP32 MicroPython 采集端:BLE 信标(C3)广播 + 扫描器(S3)上报到 XRK-AGT(/device),供 IM-SYAU-Core 聚合与展示

关联项目: IM-SYAU-Core

ESP32-C3 beacon (advertiser) ESP32-S3 scanner (reporter)

ESP32-C3(信标广播) · ESP32-S3(扫描上报)


与 IM-SYAU-Core 的关系

graph LR
  subgraph Device["ESP32 设备侧(本仓库)"]
    S3[ESP32-S3 扫描与上报]
    C3[ESP32-C3 信标广播]
  end

  subgraph Server["XRK-AGT 服务端"]
    WS["system-Core\nWebSocket /device"]
    BLE["IM-SYAU-Core\n蓝牙插件/HTTP API"]
    DB[(data/blues/ble_data.json)]
  end

  C3 -->|BLE 广播| S3
  S3 -->|type=data,data_type=ble_beacon_batch| WS
  WS -->|device.ble_beacon_batch 事件| BLE
  BLE --> DB

目录结构

IM-SYAU-ble-esp-mcpy-loader/
├── README.md
├── LICENSE
├── esp32s3/
│   ├── boot.py            # 启动入口:检测配网/正常模式
│   ├── loader.py          # 设备加载器:WiFi + WS + 插件系统
│   ├── plugins/
│   │   ├── blue.py        # BLE 扫描并上报 ble_beacon_batch
│   │   └── base/plugin.py # 插件基类
│   └── lib/               # 依赖库(随项目上传到设备)
└── esp32c3mini/
    └── boot.py            # C3 广播脚本(模拟/固定信标)

ESP32-S3:连接与上报

  • WebSocket 地址ws://<server_host>:<server_port>/device
  • 注册:启动后发送 type=register(包含 device_id/device_type/device_name/...
  • 数据上报:插件通过 loader.send_data() 发送 type=data 的消息

上报数据协议(关键字段)

esp32s3/plugins/blue.py 会调用:

  • send_data('ble_beacon_batch', report)

report 结构(示例字段):

{
  "timestamp": 1730000000,
  "batch": 1,
  "total_batches": 1,
  "update_interval": 2,
  "beacons": [
    {
      "mac": "AA:BB:CC:DD:EE:FF",
      "name": "ESP-C3-001",
      "online": true,
      "rssi": { "current": -58.2, "average": -58.2, "samples": 5 },
      "last_seen": 0,
      "sample_count": 123
    }
  ]
}

服务端(XRK-AGT)会把 type=data,data_type=ble_beacon_batch 转成事件:

  • device.ble_beacon_batch(细分事件,event_data = report

IM-SYAU-Core 的蓝牙插件监听 device.ble_beacon_batch 并写入 data/blues/ble_data.json,供前端 /kb/api/ble/* 查询展示。


插件加载(默认启用所有插件)

esp32s3/loader.py 的插件加载逻辑:

  • 未配置 enabled_plugins(或为空)时,会扫描 plugin_dir(默认 /plugins)并 默认启用目录下所有可用插件(排除 _ 前缀与 base*)。
  • 若你希望只启用部分插件,可在设备配置里显式设置 enabled_plugins(例如 ["blue"])。

许可证

本仓库采用 MIT License。与配套项目 IM-SYAU-Core 一起作为同一套“昆虫博物馆智能导览”解决方案的组成部分。


鸣谢

本采集端固件基于 XRK-AGT 框架的 /device 通道、 事件系统与 Core 机制完成端到端集成,感谢 XRK-AGT 项目提供可靠的底层能力。

Quick Setup
Installation guide for this server

Install Package (if required)

uvx im-syau-ble-esp-mcpy-loader

Cursor configuration (mcp.json)

{ "mcpServers": { "sunflowermm-im-syau-ble-esp-mcpy-loader": { "command": "uvx", "args": [ "im-syau-ble-esp-mcpy-loader" ] } } }