{"name":"io.github.Nitmi/blea","slug":"nitmi-blea","title":"BLEA","description":"Safe BLE diagnostics, evidence workflows, and guarded automation for AI agents.","url":"https://mcp.market/server/nitmi-blea","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":37,"stars":10,"forks":0,"downloads_week":63,"last_push_at":"2026-09-09T06:39:00.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/Nitmi/blea","website":"https://github.com/Nitmi/blea","version":"0.6.5","remotes":[],"packages":[{"registryType":"pypi","identifier":"blea","version":"0.6.5","transport":{"type":"stdio"},"packageArguments":[{"value":"mcp","type":"positional"}]}],"tools":[{"name":"ble_capture","description":"Save a validated read-only BLE evidence package as .blea.jsonl.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_diff","description":"Compare two validated BLEA evidence files without accessing Bluetooth hardware.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_doctor","description":"Check whether the local Bluetooth adapter and OS BLE backend are usable.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_exchange","description":"Subscribe first, perform one guarded write, then collect resulting notifications.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_inspect","description":"Discover GATT; timeout applies separately to scan, connect, and GATT operations.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_observe","description":"Observe notify/indicate characteristics on one connection for a bounded duration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_probe","description":"Read one GATT page; inspect read_page and follow next_read_offset until null.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_read","description":"Read a characteristic; timeout applies separately to scan, connect, and GATT operations.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_replay","description":"Replay scan/inspect/probe/read/subscribe/observe/run from evidence without BLE hardware.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_scan","description":"Scan nearby BLE advertisements and return stable structured evidence.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_session_close","description":"Disconnect and forget an open BLE session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_session_close_all","description":"Recover unknown or leaked state by closing every session owned by this server.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_session_exchange","description":"Atomically subscribe, write, and collect notifications through one open session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_session_inspect","description":"Discover services on an open BLE session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_session_list","description":"List open BLE sessions, their devices, idle time, and lease timeout.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_session_observe","description":"Observe notify/indicate characteristics through one existing session connection.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_session_open","description":"Open a leased connection; timeout applies per backend operation for the session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_session_read","description":"Read a characteristic through an open BLE session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_session_subscribe","description":"Collect bounded notifications through an open BLE session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_session_write","description":"Write through an open session with the same explicit write guard.","write_action":true,"price_micros":0,"input_schema":null},{"name":"ble_subscribe","description":"Collect bounded notifications; timeout is per backend operation, not a total deadline.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ble_write","description":"Write with guards; timeout is per backend operation, not a total tool deadline.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-19T21:33:07.440Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-19T21:33:07.442Z","components":{"code":{"score":25,"max":25,"notes":["24 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 11 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"blea","version":"0.6.5","found":true,"weeklyDownloads":63,"dependencyCount":9,"publishedAt":"2026-09-09T06:48:48.845708Z","repositoryUrl":"https://github.com/Nitmi/blea"}],"repo":{"found":true,"owner":"Nitmi","repo":"blea","archived":false,"pushedAt":"2026-09-09T06:39:00Z","stars":10,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/114425147?v=4","ownerCreatedAt":"2022-09-26T15:48:22Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":10,"forks":0,"downloadsWeek":63,"license":"MIT","lastPushAt":"2026-09-09T06:39:00.000Z","score":37}}}},"grade_history":[],"reviews":[]}