Skip to content

[FEATURE] Use MCP Apps to expose server settings via in-client UI #863

Description

@kingpanther13

What would you like to see?

FastMCP 3.2 introduced MCP Apps — tools that can return interactive UIs rendered directly inside the client. ha-mcp could use this to let users view and change server settings (tool visibility, pinned tools, tool search result count, and potentially other settings) through an interactive UI within their MCP client, rather than only through the add-on configuration.

Beyond settings, this could also be used with tools to let users control things directly in their Home Assistant interface — dashboards, entity controls, etc. There are a lot of possibilities here.

Why do you need this?

Currently, changing settings like which tools are disabled or pinned requires editing the add-on configuration and restarting. An in-client UI (e.g., toggle switches for tool groups, sliders for result counts) would make this faster and more discoverable. This would complement the add-on settings — add-on config sets defaults, and the in-client UI allows adjustments during use.

Additional context

Related: #857 (user-configurable tool disable/pin in add-on settings) introduces the tool visibility configuration that could be a first candidate for an in-client UI (closed in favor of #960 which uses a web UI).

See latest comment; reopened this because Claude Desktop users connecting with quick connect from the setup guide using STDIO don't have an easy way to access settings other than modifying their settings json; therefore, this is still relevant for people with similar setups. They also don't have an easy way to access the web UI set up with #960; so I think that this mostly should just piggyback off of #960 if possible and provide the same settings (and #960 will start including more configuration options, like what's currently available in the addon version). We also should update the astro site to tell users how to access the settings menus when using Claude Desktop, by A) accessing the #960 web UI directly via the URL or B) by using this method within the LLM itself, if it is supported. Also should allow the LLM to control the settings as well if asked by the user, though this may need to have some kind of safety toggle or something....but when working properly the user can simply say "hey, enable/disable toolsearch" and it can do it. Definitely needs a manual toggle though because we don't want a confused LLM just randomly doing it.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions