uc-remote-mcp

uc-remote-mcp

Enables reading and configuring an Unfolded Circle Remote Two or Remote 3 through the official Core REST API, exposing activities, touchscreen pages, profiles, integration entities, and physical-button mappings to MCP clients.

Category
访问服务器

README

Unfolded Circle Remote MCP

An independent Model Context Protocol server for reading and configuring an Unfolded Circle Remote Two or Remote 3 through the official Core REST API.

The server exposes activities, touchscreen pages, profiles, integration entities, physical-button mappings, and a generic Core API request tool to MCP clients such as GitHub Copilot CLI.

[!WARNING] This server uses an admin API key and includes write, replacement, delete, and unrestricted request tools. A mistaken tool call can change or remove remote configuration. Back up important setups and test with the core simulator first.

Requirements

  • Python 3.10 or newer
  • uv for the examples below
  • An Unfolded Circle Remote or core simulator reachable from the MCP host
  • An admin API key for authenticated endpoints

Run directly from GitHub

UC_REMOTE_URL=http://192.168.1.50 \
UC_API_KEY=replace-me \
uvx --from git+https://github.com/msvinth/uc-remote-mcp uc-remote-mcp

For a local checkout:

uv run uc-remote-mcp

The server uses stdio transport. Configure environment variables in the MCP client rather than expecting the server to read a .env file automatically.

Create an API key

On the remote, generate a web-configurator PIN from the profile/settings view. Then run the helper from a clone:

./scripts/setup-api-key.sh 192.168.1.50

The PIN is read from a hidden prompt instead of a command-line argument. The new key is printed once; store it securely.

MCP client configuration

Add this entry under mcpServers:

{
  "mcpServers": {
    "unfolded-circle": {
      "type": "local",
      "command": "uvx",
      "args": [
        "--python",
        "3.12",
        "--from",
        "git+https://github.com/msvinth/uc-remote-mcp",
        "uc-remote-mcp"
      ],
      "env": {
        "UC_REMOTE_URL": "http://192.168.1.50",
        "UC_API_KEY": "replace-me"
      },
      "tools": ["*"]
    }
  }
}

Keep the configuration file private because it contains the API key.

Home Assistant Copilot Terminal

The Copilot Terminal app in /Users/msvinth/private/home-assistant-apps/copilot-terminal already includes uvx, uses Python 3.12 for MCP servers, starts in /config, and persists Copilot data at /data/home/.copilot/.

Its MCP config is:

/data/home/.copilot/mcp-config.json

Retain the existing home-assistant entry and add unfolded-circle beside it:

{
  "mcpServers": {
    "home-assistant": {
      "type": "local",
      "command": "uvx",
      "args": [
        "--index-strategy",
        "unsafe-best-match",
        "--python",
        "3.12",
        "ha-mcp"
      ],
      "env": {
        "HOMEASSISTANT_URL": "http://supervisor/core",
        "HOMEASSISTANT_TOKEN": "provided-by-the-app"
      },
      "tools": ["*"]
    },
    "unfolded-circle": {
      "type": "local",
      "command": "uvx",
      "args": [
        "--python",
        "3.12",
        "--from",
        "git+https://github.com/msvinth/uc-remote-mcp",
        "uc-remote-mcp"
      ],
      "env": {
        "UC_REMOTE_URL": "http://192.168.1.50",
        "UC_API_KEY": "replace-me"
      },
      "tools": ["*"]
    }
  }
}

The current Copilot Terminal setup-ha-mcp.sh regenerates this file at app startup with only the Home Assistant entry. A manual merge can therefore be overwritten on restart. Persistent automatic registration should be added later as an optional feature in that sibling project; this repository does not modify the app.

Configuration

Variable Required Description
UC_REMOTE_URL Yes Remote origin only, such as http://192.168.1.50; do not include /api.
UC_API_KEY For authenticated tools Admin API key created by the remote.
UC_TIMEOUT No Positive request timeout in seconds; defaults to 20.

Tools

Discovery and escape hatch: uc_ping, uc_ui_reference, uc_request, get_screen_layout.

Entities: list_entities, get_entity.

Integrations: list_integration_instances, list_available_entities, configure_entities.

Activities: list_activities, get_activity, get_activity_ui_pages, get_activity_ui_page, create_activity_ui_page, update_activity_ui_page, delete_activity_ui_page, reorder_activity_ui_pages, get_activity_buttons.

Profiles and groups: list_profiles, get_profile, get_profile_pages, get_profile_page, update_profile_page, get_profile_groups, list_activity_groups.

There are 25 tools in total. uc_request can call any Core REST API endpoint available to the configured key.

Suggested workflow

  1. Call uc_ping.
  2. Inspect the target activity, profile, or page.
  3. Call uc_ui_reference before constructing UI payloads.
  4. Make the smallest possible update.
  5. Read the object again to confirm the result.

An entity provided by Home Assistant or another integration must be configured on the remote before it can be placed on a page. Use list_integration_instances, list_available_entities, and configure_entities in that order.

Compatibility

The package targets the current MCP Python SDK v2 and Python 3.10+. Its endpoint coverage was reviewed against Unfolded Circle REST Core API 0.46.x. The Core API is pre-1.0 and may change between firmware releases.

Home Assistant entity support depends on the remote's integration driver: integration-home-assistant.

Development

uv sync
uv run ruff check .
uv run ruff format --check .
uv run pytest
uv build

See SECURITY.md before reporting credential or command-execution issues.

License and attribution

Original code and documentation in this repository are licensed under the MIT License.

Unfolded Circle API specifications and documentation have their own upstream licenses. This project links to those sources and does not relicense them. Unfolded Circle is a trademark of its respective owner. This community project is not affiliated with or endorsed by Unfolded Circle.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选