{"name":"io.github.jarahkon/hass-mcp-server","slug":"jarahkon-hass-mcp-server","title":"Home Assistant MCP Server","description":"MCP server for full Home Assistant control — dashboards, files, automations, add-ons, and more","url":"https://mcp.market/server/jarahkon-hass-mcp-server","rating":null,"grade":"B","score":72,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":19,"stars":0,"forks":0,"downloads_week":116,"last_push_at":"2026-04-10T18:12:49.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/jarahkon/hass-mcp-server","website":"https://github.com/jarahkon/hass-mcp-server","version":"1.0.6","remotes":[],"packages":[{"registryType":"npm","identifier":"@jarahkon/hass-mcp-server","version":"1.0.6","transport":{"type":"stdio"},"environmentVariables":[{"description":"Home Assistant base URL (e.g. http://homeassistant.local:8123)","isRequired":true,"name":"HA_URL"},{"description":"Home Assistant long-lived access token","isRequired":true,"isSecret":true,"name":"HA_TOKEN"},{"description":"SSH hostname for file management (optional)","name":"HA_SSH_HOST"},{"description":"SSH port (default: 22)","name":"HA_SSH_PORT"},{"description":"SSH username (must be root)","name":"HA_SSH_USER"},{"description":"Path to SSH private key","name":"HA_SSH_KEY_PATH"},{"description":"SSH password (alternative to key)","isSecret":true,"name":"HA_SSH_PASSWORD"}]}],"tools":[{"name":"ha_addon_info","description":"Get detailed information about a specific add-on","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_addon_options","description":"Get or set configuration options for an add-on","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_call_service","description":"Call a Home Assistant service (e.g. turn on a light, lock a door, send a notification)","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_check_api","description":"Check if the Home Assistant API is accessible and responding","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_check_config","description":"Validate the Home Assistant configuration. Run this before reloading to catch errors.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_create_area","description":"Create a new area (room) in Home Assistant","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_create_automation","description":"Create a new automation in Home Assistant","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_create_backup","description":"Create a Home Assistant backup","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_create_dashboard","description":"Create a new Lovelace dashboard","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_create_helper","description":"Create a new input helper (input_boolean, input_number, input_text, input_select, input_datetime, input_button, counter, timer)","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_create_scene","description":"Create a new scene in Home Assistant","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_create_script","description":"Create a new script in Home Assistant","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_delete_automation","description":"Delete an automation","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_delete_dashboard","description":"Delete a Lovelace dashboard","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_delete_file","description":"Delete a file from the Home Assistant server. Path is relative to /config/. Restricted to safe directories.","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_delete_helper","description":"Delete an input helper","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_delete_scene","description":"Delete a scene","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_delete_script","description":"Delete a script","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_delete_state","description":"Delete an entity state from Home Assistant","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_file_exists","description":"Check if a file or directory exists on the Home Assistant server. Path is relative to /config/.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_fire_event","description":"Fire a custom event in Home Assistant to trigger automations or integrations","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_get_automation","description":"Get the full configuration of an automation by its ID","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_get_calendar_events","description":"Get events from a specific calendar entity","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_get_calendars","description":"List all calendar entities in Home Assistant","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_get_components","description":"List all currently loaded Home Assistant integrations/components","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_get_config","description":"Get the Home Assistant configuration (location, unit system, version, components, etc.)","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_get_dashboard_config","description":"Get the full Lovelace configuration of a dashboard (all views, cards, etc.)","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_get_entity","description":"Get the full state and attributes of a specific entity","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_get_error_log","description":"Get the Home Assistant error log contents","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_get_events","description":"List all available event types in Home Assistant","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_get_history","description":"Get the state history for an entity over a time period","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_get_logbook","description":"Get logbook entries (activity log) for a time period, optionally filtered by entity","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_get_states","description":"Get the current state of all entities, optionally filtered by domain (e.g. 'light', 'switch', 'sensor')","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_handle_intent","description":"Handle a conversation/voice intent in Home Assistant (e.g. natural language commands)","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_install_addon","description":"Install a Home Assistant add-on by slug","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_list_addons","description":"List all installed Home Assistant add-ons with their status","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_list_areas","description":"List all areas (rooms) in Home Assistant","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_list_automations","description":"List all automations in Home Assistant with their IDs, aliases, and states","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_list_backups","description":"List all Home Assistant backups","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_list_dashboards","description":"List all Lovelace dashboards in Home Assistant","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_list_devices","description":"List all devices from the device registry","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_list_entity_registry","description":"List all entities from the entity registry with their IDs, names, platforms, and areas","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_list_files","description":"List files and directories on the Home Assistant server. Path is relative to /config/ (e.g. 'www' lists /config/www/).","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_list_helpers","description":"List all input helpers (input_boolean, input_number, input_text, input_select, input_datetime, input_button, counter, timer)","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_list_scenes","description":"List all scenes in Home Assistant","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_list_scripts","description":"List all scripts in Home Assistant","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_list_services","description":"List all available services, optionally filtered by domain","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_mkdir","description":"Create a directory on the Home Assistant server (recursively). Path is relative to /config/.","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_read_file","description":"Read a file from the Home Assistant server. Path is relative to /config/.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_render_template","description":"Render a Jinja2 template using Home Assistant's template engine","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_restart_addon","description":"Restart a Home Assistant add-on","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_restart_core","description":"Restart the Home Assistant core. This will briefly make HA unavailable.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_save_dashboard_config","description":"Save/overwrite the full Lovelace configuration of a dashboard. Provide the complete config with views and cards.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_set_state","description":"Set or create the state of an entity. Useful for creating virtual sensors or overriding states.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_start_addon","description":"Start a Home Assistant add-on","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_stop_addon","description":"Stop a running Home Assistant add-on","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_system_info","description":"Get Home Assistant system information (core version, OS, supervisor, host info)","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_uninstall_addon","description":"Uninstall a Home Assistant add-on","write_action":false,"price_micros":0,"input_schema":null},{"name":"ha_update_automation","description":"Update an existing automation's configuration","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_update_core_config","description":"Update Home Assistant core configuration (internal_url, external_url, location, etc.)","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_update_dashboard","description":"Update an existing Lovelace dashboard's properties (title, icon, etc.)","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_update_helper","description":"Update an existing input helper's configuration","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_update_scene","description":"Update an existing scene's configuration","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_update_script","description":"Update an existing script's configuration","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_upload_file","description":"Upload a file from the local machine to the Home Assistant server. Remote path is relative to /config/. Restricted to safe directories (www/, custom_components/, blueprints/, themes/).","write_action":true,"price_micros":0,"input_schema":null},{"name":"ha_upload_file_content","description":"Create/overwrite a file on the Home Assistant server with the provided text content. Remote path is relative to /config/. Parent directories are created automatically.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":72,"grade":"B","scanned_at":"2026-09-27T23:34:24.768Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-09-27T23:34:24.682Z","components":{"code":{"score":25,"max":25,"notes":["22 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":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":8,"max":15,"notes":["last push 170 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@jarahkon/hass-mcp-server","version":"1.0.6","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-03-25T15:27:02.403Z","repositoryUrl":"git+https://github.com/jarahkon/hass-mcp-server.git","weeklyDownloads":116}],"repo":{"found":true,"owner":"jarahkon","repo":"hass-mcp-server","archived":false,"pushedAt":"2026-04-10T18:12:49Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/10908382?v=4","ownerCreatedAt":"2015-02-08T13:02:49Z","license":"MIT"},"icon":{"url":"https://raw.githubusercontent.com/jarahkon/hass-mcp-server/main/icon.png","source":"registry","width":512,"height":512},"presence":{"stars":0,"forks":0,"downloadsWeek":116,"license":"MIT","lastPushAt":"2026-04-10T18:12:49.000Z","score":19}}}},"grade_history":[],"reviews":[]}