Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
GNOME Wayland desktop automation via AT-SPI discovery and Mutter input.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"gnome-ui": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0"
]
}
}
}ターミナルでこれを実行します
claude mcp add gnome-ui -- docker run -i --rm ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"gnome-ui": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"gnome-ui": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/asattelmaier/gnome-ui-mcp:0.5.0"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月9日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント asattelmaier で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.5.0)がレジストリに届いたのは5 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにDockerも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Geo Figure (지리 시험 지도·그래프)
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Small MCP server for GNOME Wayland desktop automation.
It exposes GNOME desktop inspection and interaction through AT-SPI for discovery and Mutter RemoteDesktop for input. In practice that means element lookup, activation, typing, screenshots, and wait helpers for the current desktop session.
For navigation it follows a snapshot-driven model: take a snapshot of the active window to get stable element uids, then click/fill/hover/fill_form those uids. Stale uids are rejected rather than silently mis-targeted, and actions auto-wait for the UI to settle. See Navigation below.
DBUS_SESSION_BUS_ADDRESS, XDG_RUNTIME_DIR, WAYLAND_DISPLAY, DISPLAY, XDG_SESSION_TYPEThe container must run on the same machine as the GNOME session and use the session environment plus runtime mounts.
The recommended way to run the server is via the published GHCR image:
ghcr.io/asattelmaier/gnome-ui-mcp:latest
latest tracks the most recent release. Version tags such as v0.1.0 publish matching image tags as well.
Direct docker run:
docker run --rm \
--security-opt apparmor=unconfined \ --network host \ --user "$(id -u):$(id -g)" \ -e DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS" \ -e XDG_RUNTIME_DIR="$XDG_RUNTIME_DIR" \ -e WAYLAND_DISPLAY="$WAYLAND_DISPLAY" \ -e DISPLAY="$DISPLAY" \ -e XDG_SESSION_TYPE="${XDG_SESSION_TYPE:-wayland}" \ -v "$XDG_RUNTIME_DIR:$XDG_RUNTIME_DIR" \ -v /tmp/.X11-unix:/tmp/.X11-unix:ro \ ghcr.io/asattelmaier/gnome-ui-mcp:latest
--user "$(id -u):$(id -g)" is required so the container joins the same user session as GNOME, D-Bus, and AT-SPI.
Local development via Compose:
This path additionally requires docker compose.
.env.example to .envdocker compose build
docker compose run --rm gnome-ui-mcp
The server supports three transports, both locally and in Docker:
stdio (default): recommended for local MCP clients that spawn the server processstreamable-http: recommended for HTTP-based integrations on http://127.0.0.1:8000/mcpsse: available for backwards compatibility on http://127.0.0.1:8000/sse with message POSTs to http://127.0.0.1:8000/messages/Examples:
gnome-ui-mcp
gnome-ui-mcp --transport streamable-http gnome-ui-mcp --transport sse
The same flags can be passed to the Docker image by appending them after the image name:
docker run ... ghcr.io/asattelmaier/gnome-ui-mcp:latest --transport streamable-http
docker run ... ghcr.io/asattelmaier/gnome-ui-mcp:latest --transport sse
The repository includes metadata for these distribution channels:
server.json.claude-plugin/plugin.json.github/plugin/plugin.jsonTo add this repository as a plugin marketplace in Claude Code:
/plugin marketplace add asattelmaier/gnome-ui-mcp
Then install the plugin:
/plugin install gnome-ui-mcp
The plugin starts the published Docker image through scripts/run-docker-mcp.sh, so Docker and the GNOME session environment must be available on the host.
{
"mcpServers": { "gnome-ui": { "command": "docker", "args": [ "run", "--rm", "--security-opt", "apparmor=unconfined", "--network", "host", "--user", "1000:1000", "-e", "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus", "-e", "XDG_RUNTIME_DIR=/run/user/1000", "-e", "WAYLAND_DISPLAY=wayland-0", "-e", "DISPLAY=:0", "-e", "XDG_SESSION_TYPE=wayland", "-v", "/run/user/1000:/run/user/1000", "-v", "/tmp/.X11-unix:/tmp/.X11-unix:ro", "ghcr.io/asattelmaier/gnome-ui-mcp:latest" ] } } }
The blessed way to drive the desktop is snapshot-first:
take_snapshot — capture the active window (or pass window from list_windows, or app_name). Every element gets a stable opaque uid such as 7_42.click / fill / hover / fill_form — reference elements by uid. Actions auto-wait for the shell to settle and report effect verification. Pass include_snapshot=true to get a fresh snapshot of the result in the same turn.select_window sets the implicit snapshot scope.A uid is only valid for the latest snapshot: if the UI changed and a uid is rejected as stale, call take_snapshot again and use a fresh one. The lower-level path-based tools (find_elements, click_element, set_element_text, …) remain available as advanced building blocks.
Tool categories can be enabled or disabled at startup with --category NAME / --no-category NAME (for example --category navigation --category input).
Complete tool reference available at https://asattelmaier.github.io/gnome-ui-mcp/
This server can inspect and control the active desktop session. Use it only with trusted MCP clients. Containerized execution on Ubuntu may require --security-opt apparmor=unconfined so the process can talk to the GNOME session buses.