smithery.yaml•6.04 kB
# Smithery configuration file: https://smithery.ai/docs/config#smitheryyaml
startCommand:
  type: stdio
  configSchema:
    # JSON Schema defining the configuration options for the MCP.
    type: object
    required:
      - hassToken
    properties:
      hassToken:
        type: string
        description: The token for connecting to Home Assistant API.
      hassHost:
        type: string
        default: http://homeassistant.local:8123
        description: The host for connecting to Home Assistant API.
      hassSocketUrl:
        type: string
        default: ws://homeassistant.local:8123
        description: The socket URL for connecting to Home Assistant API.
      mcp-port:
        type: number
        default: 7123
        description: The port on which the MCP server will run.
      debug:
        type: boolean
        description: The debug mode for the MCP server.
  commandFunction:
    # A function that produces the CLI command to start the MCP on stdio.
    |-
    config => ({
      command: 'bun', 
      args: ['--smol', 'run', 'start:stdio'], 
      env: { 
        HASS_TOKEN: config.hassToken,
        HASS_HOST: config.hassHost || process.env.HASS_HOST,
        HASS_SOCKET_URL: config.hassSocketUrl || process.env.HASS_SOCKET_URL,
        PORT: config['mcp-port'].toString(),
        DEBUG: config.debug !== undefined ? config.debug.toString() : process.env.DEBUG || 'false'
      }
    })
# Define the tools that this MCP server provides
tools:
  - name: list_devices
    description: List all devices connected to Home Assistant
    parameters:
      type: object
      properties:
        domain:
          type: string
          enum:
            - light
            - climate
            - alarm_control_panel
            - cover
            - switch
            - contact
            - media_player
            - fan
            - lock
            - vacuum
            - scene
            - script
            - camera
        area:
          type: string
        floor:
          type: string
      required: []
  - name: control
    description: Control Home Assistant entities (lights, climate, etc.)
    parameters:
      type: object
      properties:
        command:
          type: string
          enum:
            - turn_on
            - turn_off
            - toggle
            - open
            - close
            - stop
            - set_position
            - set_tilt_position
            - set_temperature
            - set_hvac_mode
            - set_fan_mode
            - set_humidity
        entity_id:
          type: string
        state:
          type: string
        brightness:
          type: number
        color_temp:
          type: number
        rgb_color:
          type: array
          items:
            type: number
        position:
          type: number
        tilt_position:
          type: number
        temperature:
          type: number
        target_temp_high:
          type: number
        target_temp_low:
          type: number
        hvac_mode:
          type: string
        fan_mode:
          type: string
        humidity:
          type: number
      required:
        - command
        - entity_id
  - name: history
    description: Retrieve historical data for Home Assistant entities
    parameters:
      type: object
      properties:
        entity_id:
          type: string
        start_time:
          type: string
        end_time:
          type: string
        limit:
          type: number
      required:
        - entity_id
  - name: scene
    description: Activate scenes in Home Assistant
    parameters:
      type: object
      properties:
        scene_id:
          type: string
      required:
        - scene_id
  - name: notify
    description: Send notifications through Home Assistant
    parameters:
      type: object
      properties:
        message:
          type: string
        title:
          type: string
        target:
          type: string
      required:
        - message
  - name: automation
    description: Manage Home Assistant automations
    parameters:
      type: object
      properties:
        action:
          type: string
          enum:
            - trigger
            - enable
            - disable
            - toggle
            - list
        automation_id:
          type: string
      required:
        - action
  - name: addon
    description: Manage Home Assistant add-ons
    parameters:
      type: object
      properties:
        action:
          type: string
          enum:
            - list
            - info
            - start
            - stop
            - restart
            - update
        addon_slug:
          type: string
      required:
        - action
  - name: package
    description: Manage Home Assistant HACS packages
    parameters:
      type: object
      properties:
        action:
          type: string
          enum:
            - list
            - info
            - install
            - uninstall
            - update
        package_id:
          type: string
      required:
        - action
  - name: automation_config
    description: Get or update Home Assistant automation configurations
    parameters:
      type: object
      properties:
        action:
          type: string
          enum:
            - get
            - update
            - create
            - delete
        automation_id:
          type: string
        config:
          type: object
      required:
        - action
  - name: subscribe_events
    description: Subscribe to Home Assistant events via SSE
    parameters:
      type: object
      properties:
        events:
          type: array
          items:
            type: string
        entity_id:
          type: string
        domain:
          type: string
      required: []
  - name: get_sse_stats
    description: Get statistics about SSE connections
    parameters:
      type: object
      properties:
        detailed:
          type: boolean
      required: []