Skip to main content
Glama
danroblewis
by danroblewis

get_g1_connection_status

Retrieve the current connection status and device details for G1 Bluetooth devices. Check connection state, UART service availability, pending messages, and total message count for effective device management.

Instructions

Get current connection status and device info.

Returns: Dict[str, Any]: JSON response with detailed connection status including: - result: "success" or "error" - connected: Boolean indicating connection state - device_name: Name of connected device (if connected) - device_address: Address of connected device (if connected) - uart_service_available: Boolean indicating UART service availability - tx_characteristic_available: Boolean indicating TX characteristic availability - rx_characteristic_available: Boolean indicating RX characteristic availability - pending_messages_count: Number of pending messages - total_messages: Total message count - error: Error message if status check failed Note: This returns detailed status information including: - Connection state (connected/disconnected) - Device name and address (if connected) - UART service availability - Number of pending messages - Total message count

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The main MCP tool handler function for get_g1_connection_status, decorated with @server.tool() for registration. It retrieves connection status from the BLE manager and formats the JSON response.
    @server.tool() async def get_g1_connection_status() -> Dict[str, Any]: """Get current connection status and device info. Returns: Dict[str, Any]: JSON response with detailed connection status including: - result: "success" or "error" - connected: Boolean indicating connection state - device_name: Name of connected device (if connected) - device_address: Address of connected device (if connected) - uart_service_available: Boolean indicating UART service availability - tx_characteristic_available: Boolean indicating TX characteristic availability - rx_characteristic_available: Boolean indicating RX characteristic availability - pending_messages_count: Number of pending messages - total_messages: Total message count - error: Error message if status check failed Note: This returns detailed status information including: - Connection state (connected/disconnected) - Device name and address (if connected) - UART service availability - Number of pending messages - Total message count """ try: status = ble_manager.get_connection_status() except Exception as e: logger.error(f"Status check failed: {e}") return { "result": "error", "connected": False, "error": f"Status check failed: {str(e)}" } return { "result": "success", "connected": status['connected'], "device_name": status.get('device_name'), "device_address": status.get('device_address'), "uart_service_available": status.get('uart_service_available', False), "tx_characteristic_available": status.get('tx_characteristic_available', False), "rx_characteristic_available": status.get('rx_characteristic_available', False), "pending_messages_count": status.get('pending_messages_count', 0), "total_messages": status.get('total_messages', 0) }
  • Supporting method in NordicBLEUARTManager class that provides detailed BLE connection status, which is called by the tool handler.
    def get_connection_status(self) -> Dict[str, Any]: """Get current connection status and device info""" connection_duration = None if self.connection_start_time: connection_duration = (datetime.now() - self.connection_start_time).total_seconds() last_activity = None if self.last_activity_time: last_activity = (datetime.now() - self.last_activity_time).total_seconds() return { "connected": self.is_connected, "device_name": self.target_device.name if self.target_device else None, "device_address": self.target_device.address if self.target_device else None, "uart_service_available": self.uart_service is not None, "tx_characteristic_available": self.tx_characteristic is not None, "rx_characteristic_available": self.rx_characteristic is not None, "pending_messages_count": len(self.pending_messages), "total_messages": len(self.communication_log), "connection_duration_seconds": connection_duration, "last_activity_seconds": last_activity, "reconnect_attempts": self.reconnect_attempts, "auto_reconnect_enabled": self.auto_reconnect_enabled }

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/danroblewis/g1_uart_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server