mcpField
Q
Quickshell MCP

Quickshell MCP

ローカル
github.com/franklinnolasco7開発ツール011 週間前に更新

Quickshell MCP について

Quickshell MCPは、Quickshell、QML、Qtを扱うコーディングエージェント向けのMCPサーバーです。ドキュメント、公式サンプル、実プロジェクトの実装を根拠に、検索や検証、移行提案、プロジェクト調査を行います。

主な機能

  1. 01QuickshellとQt/QMLのドキュメント検索
  2. 02実装パターンとサンプルの検索
  3. 03QMLとAPI互換性の検証
  4. 04バージョン間の移行分析
  5. 05プロジェクトと実行セッションの調査・テスト
  6. 06根拠に基づくQMLコンポーネント生成

活用シーン

  1. 01QML作成前のAPI確認
  2. 02Quickshellの指定バージョンでのコンポーネント検証
  3. 03バージョン間のQML更新計画
  4. 04Quickshellプロジェクトの調査やテスト

MCP 対応

ドキュメント検索、QML検証、互換性確認、移行、プロジェクト、実行時のツールをMCPクライアントに公開します。stdioで動作し、設定によりHTTPトランスポートも利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"franklinnolasco7-quickshell": {
"command": "uvx",
"args": [
"quickshell-mcp"
]
}
}
}
起動コマンドuvx quickshell-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiquickshell-mcp2.17.0

ツール

102

掲載時のツール一覧 · 5 週間前に更新

パラメーター型必須説明
refreshbooleanいいえ

詳細

quickshell-mcp

AI コーディングエージェントを、Quickshell、QML、Qt の最新ドキュメントにつなぐ MCP サーバーです。

License: MIT PyPI MCP Registry Python codecov Tests


エージェントがコードを書いたり実行したりする前に、API を検索し、実装パターンを見つけ、エラーを説明し、QML を検証し、プロジェクトを調査し、テストを実行し、稼働中のシェルをプロファイリングできます。

Why

Quickshell は急速に変化しており、AI コーディングエージェントは、古い、または不完全なトレーニングデータから QML を生成することがあります。quickshell-mcp を使うと、エージェントは最新のドキュメントに照らして API を確認し、既存の実装パターンを見つけ、生成した QML を検証し、記憶に頼って推測するのではなく、プロジェクトを調査したりテストしたりできます。

重要

情報源の内容が食い違う場合は、常に公式ドキュメントを優先してください。

Table of Contents

クイックスタート

pip install quickshell-mcp        # or: uvx quickshell-mcp

次に、MCP クライアントの接続先を指定してください(詳しくは下記の設定を参照)。

Model Context Protocol Registryからもインストールできます。

ソースからインストール
git clone https://github.com/franklinnolasco7/quickshell-mcp
cd quickshell-mcp
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
Nix でインストール
nix run github:franklinnolasco7/quickshell-mcp
Docker でインストール
docker build -t quickshell-mcp .
docker run --rm -i quickshell-mcp     # speaks MCP over stdio
## 提供する機能
Quickshell ドキュメントバージョン対応の型リファレンス、ガイド、変更履歴
Qt/QML ドキュメントQtQuick、Controls、Layouts、その他の基本型
公式サンプル動作する Quickshell のサンプル設定
実際の実装例検索可能な Caelestia、Noctalia、dots-hyprland のパターン
エラーの説明QML と Quickshell のエラーを根拠に基づいて診断
QML の検証型、プロパティ、シグナル、インポート、バージョン互換性の静的チェック
バージョン互換性API または QML スニペットが特定の Quickshell リリースで動作するかを確認
移行アップグレード後も動作するよう、QML 設定で必要な変更を分析
コンポーネントの生成平易な言葉での説明から、ソースを根拠とした最小限の QML コンポーネントを生成
プロジェクトのインテリジェンスディスク上のプロジェクトを分析、マッピング、検索、分類
プロジェクトの検証ファイルごとにプロジェクト全体を検証、リント、互換性チェック、移行
ランタイムセッション分離された qs プロセスを起動して調査(オプトイン方式、状態を変更します)
ビジュアルおよび UI の調査ウィンドウ、スクリーンショット、UI ツリー、プロパティ、スナップショット
ランタイムテスト実行中のセッションに対する機械可読なテスト手順、スイート、アサーション
パフォーマンスプロファイリング上限付きサンプリングに加え、コンポーネント、バインディング、タイマーの静的分析
デスクトップアダプターHyprland、PipeWire、D-Bus、システムの読み取り専用調査
Knowledge 2.0バージョン差分、API グラフ、ベストプラクティス、パターン比較、来歴
インテリジェンスプロジェクトメモリ、アーキテクチャの推奨事項、リグレッション検出、タスク計画
エージェントオーケストレーション機能のビルド、デバッグ、移行、テスト、最適化をエンドツーエンドで実行
コーディングアシスタント平易な言葉による 1 つの依頼を適切なツールに振り分け、構造化されたソース根拠付きの結果を返す
CI エントリーポイントヘッドレス検証、スクリーンショット、ランタイムテスト、互換性チェック、移行用のスクリプト

外部ツール

ほとんどのツールは quickshell-mcp パッケージだけで動作します。実際のデスクトップを調査するツールは、実行時に依存関係を検出し、依存関係が見つからない場合はエラーを起こすのではなく、利用不可として報告します。これはランタイムセッション、UI の調査、デスクトップアダプターに適用されます。

依存関係使用元
qs(Quickshell バイナリ)ランタイムセッション、UI の調査、テスト、qs ipc
grimスクリーンショット
ImageMagick(compare、identify)スクリーンショットの差分、ビジュアルチェック
hyprctl、pw-cli、busctlデスクトップアダプター(それぞれ任意。利用できない場合も適切に動作します)

ヘッドレス CI シェル(nix develop .#ci)には quickshell、weston、grim、imagemagick が含まれており、デスクトップなしでランタイムテストやスクリーンショットのジョブを実行できます。

ナレッジソース

このサーバーは、Quickshell ドキュメント、Qt/QML ドキュメント、Quickshell 公式サンプル、実際の 3 つのシェル(Caelestia、Noctalia、dots-hyprland)の、6 つのソースを基盤としています。各シェルは実用的な参考資料であり、権威ある API 定義ではありません。競合がどのように解決されるかについては、ソースの優先順位を参照してください。

設定

opencode(opencode.json):

{
  "mcp": {
    "quickshell": {
      "type": "local",
      "command": ["/absolute/path/to/quickshell-mcp/.venv/bin/quickshell-mcp"],
      "enabled": true
    }
  }
}

Claude Desktop:同じ JSON を mcpServers でラップし、claude_desktop_config.json に記述します。

HTTP トランスポートを使用するには、QUICKSHELL_DOCS_MCP_TRANSPORT=http を設定します(必要に応じて HOST/PORT も設定します)。

ヒント

標準エラー出力に詳細なリクエストログを出力するには、QUICKSHELL_DOCS_MCP_LOG=DEBUG を設定します。

QUICKSHELL_DOCS_MCP_* という環境変数のプレフィックスは、以前のリリースとの後方互換性のために維持されています。

ツール

機能ごとに分類し、状態を変更するツールや高リスクのツールに印を付けた、ツール別の完全な一覧については、docs/TOOLS.md を参照してください。

一般的なワークフロー

flowchart TD
    A[Search] --> B[Find implementation pattern]
    B --> C[Verify API]
    C --> D[Write QML]
    D --> E[Validate]
    E -->|errors| F[Fix errors]
    F --> E
    E -->|clean| G[Done]

    classDef discover fill:#cdeaff,stroke:#1c6dd0,stroke-width:1px,color:#0b3661
    classDef build fill:#ffe3c2,stroke:#d8871b,stroke-width:1px,color:#5c3a05
    classDef check fill:#c9f2d8,stroke:#1f9e5c,stroke-width:1px,color:#0b3d24
    classDef fix fill:#ffd1d1,stroke:#d13b3b,stroke-width:1px,color:#5c0b0b
    classDef done fill:#e3d6ff,stroke:#7b3ff0,stroke-width:2px,color:#2f1466

    class A,B,C discover
    class D build
    class E check
    class F fix
    class G done
例

AI エージェントに Quickshell でワークスペースインジケーターを作成する方法を推測させる代わりに、エージェントは API を検索し、既存の実装を見つけ、要求されたバージョンを確認し、QML を生成して、実行前に検証できます。

flowchart LR
    A[quickshell_search_all] --> B[quickshell_find_pattern]
    B --> C[quickshell_list_versions /<br/>quickshell_get_type]
    C --> D[quickshell_generate_component]
    D --> E[quickshell_validate_qml]
    E --> F[quickshell_explain_error]

    classDef tool fill:#cdeaff,stroke:#1c6dd0,stroke-width:1px,color:#0b3661
    classDef action fill:#ffe3c2,stroke:#d8871b,stroke-width:1px,color:#5c3a05
    classDef debug fill:#ffd1d1,stroke:#d13b3b,stroke-width:1px,color:#5c0b0b

    class A,B,C tool
    class D,E action
    class F debug

高度な使い方

静的検証、バージョン互換性、移行、コンポーネントの生成、コーディングアシスタント:不正な QML の検出、リリースごとの API サポートの確認、アップグレードの計画、コンポーネントの生成、または開発タスク全体のアシスタントへの依頼ができます
静的検証

quickshell_validate_qml は、ほかのツールが使用するものと同じ Quickshell および Qt のドキュメントインデックスを使って QML をチェックします。次の問題を検出できます。

  • Quickshell および Qt の不明な型
  • 不明なプロパティ、メソッド、シグナル
  • 不足しているインポート
  • 明らかな型の不一致
  • 指定された Quickshell バージョンでは利用できない API

quickshell_validate_qml は qmlls を補完するものであり、置き換えるものではありません。動的な JavaScript とローカルコンポーネントの解決は対象外です。

{"source": "PanelWindow { foo: 123 }", "version": "latest", "filename": "panel.qml"}
バージョン互換性

quickshell_check_compatibility は、Quickshell の API、QML のプロパティ/メソッド/シグナル、型、またはコードスニペット全体が特定のリリースで動作するかを確認します。api、type、code のいずれかを渡し、version でリリースを指定します(または from_version/to_version を使って範囲を指定します)。

最新のドキュメントページだけで判断することはありません。指定されたバージョンの型インデックスやページを変更履歴と照合し、根拠が不十分な場合は uncertain を返します。Qt/QML の型(Rectangle、Item など)は、利用可能かどうかを決めるのが Quickshell のバージョンではなく Qt のバージョンであるため、origin: "qt" とともに compatible と表示されます。

{"api": "PanelWindow.exclusiveZone", "version": "v0.2.0"}
{"api": "Quickshell.shellRoot", "version": "v0.3.1"}
{"code": "PanelWindow { exclusiveZone: 1 }", "version": "v0.1.0"}

結果には、判定、バージョンの根拠(既知の最古/最新バージョン)、名前変更や変更内容および代替候補、該当する変更履歴のエントリー、引用されたドキュメント URL が含まれます。

バージョン間の移行

quickshell_migrate は、Quickshell のあるバージョンから別のバージョンへアップグレードする際に、QML 設定を引き続き動作させるために必要な変更を分析します。QML ソース(または単一の api/type)と、from_version および to_version(どちらも必須で、古い順に指定)を渡します。

削除、名前変更、非推奨化、または変更された API について、重大度、位置、変更前後の API、変更が必要な理由、推奨される移行方法、確信度、引用元を含めてすべて報告します。また、参照されたシンボルに言及するバージョン間の破壊的変更の変更履歴エントリーも調べるため、中間リリースで導入された名前変更は、その変更が導入されたバージョンとともに報告されます。検出結果は、ドキュメントまたは変更履歴に裏付けられた definite、文書化されているものの影響が小さい(非推奨化など)likely、変更を示す根拠はあるものの正確な移行方法を証明できない manual_review に分類されます。

このツールは分析と推奨を行いますが、コードやファイルを書き換えることはありません。

{
  "code": "Quickshell { shellRoot: \"/tmp\" }\nPanelWindow { exclusiveZone: 1 }",
  "from_version": "v0.1.0",
  "to_version": "v0.3.1"
}

レポートには、全体の判定(compatible、changes_required、uncertain)、問題ごとの検出結果、順序付けされた移行計画が含まれます。

コンポーネントの生成

quickshell_generate_component は、平易な言葉での説明から最小限の QML コンポーネントを生成します。たとえば、「Hyprland のワークスペースインジケーターを作成する」「アニメーション付きの音量 OSD」「ワークスペース、時計、システムトレイを備えたトップバー」「ポップアップコントロールセンター」「通知ポップアップ」などです。

{"description": "volume OSD", "version": "latest", "compositor": "hyprland"}

生成ツールは、リクエストを検索し(他の機能と同じ検索ツールとパターンツールを使用します)、セクションテンプレートから小さなコンポーネントを組み立てます。その後、参照するすべての Quickshell 型とプロパティ/メソッドを quickshell_check_compatibility で指定バージョンに照らして確認し、組み立てた QML を quickshell_validate_qml で検証します。確認できない API は結果に表示され、通知なしに出力されることはありません。そのため、未確認の API を有効なものとして提示することはありません。

結果には、生成された QML に加えて次の項目が含まれます。

  • dependencies:インポート、必要な Quickshell 型、Qt 型
  • verified_surface:コンポーネントが使用する各型の、ドキュメントに記載されたプロパティ/メソッド/シグナル。確認済みのメンバーに基づいて QML を書き換える際に利用できます
  • integration:コンポジターと外部サービスの要件(Hyprland ソケット、PipeWire、通知デーモンなど)
  • verification:API ごとの互換性判定と、全体の verified/unverified フラグ
  • validation:静的バリデーターからの診断情報
  • references:比較に利用できるドキュメント、公式サンプル、実際の実装
  • assumptions:行われた保守的な選択(デフォルトの配色、認識できないコンポジター、埋め込まれなかったリクエスト対象のウィンドウ)

compositor="hyprland" を指定すると Hyprland 固有の型が生成されます。それ以外の値は注記され、コンポジター固有のコードは生成されません。リクエストに一致するテンプレートがない場合も、verified_surface と references は返されるため、それらを使って自分でコンポーネントを組み立てられます。生成される各ファイルには、最上位のウィンドウが 1 つ含まれます。リクエストに複数のウィンドウ(バーと通知ポップアップなど)が含まれる場合は、主要なウィンドウが生成され、残りはネストされずに assumptions に記載されます。このツールがディスクに書き込むことはありません。

コーディングアシスタント

quickshell_coding_assistant は、複数のツールにまたがるタスク向けのオーケストレーションレイヤーです。平易な言葉で開発リクエストを 1 つ渡すと、検索、検証、生成、バリデーション、移行、調査(出典の確認)、および任意の実行という固定パイプラインの各段階を実行します。各段階では、リクエストに必要なツールのみが有効になります。結果は構造化され、出典に基づいており、理解、関連 API、推奨アプローチ、実装リファレンス、互換性、バリデーション、残りの問題、出典、出典情報、および末尾の grounded_result の各セクションで構成されます。

{"request": "Build a Hyprland workspace bar"}
{"request": "Why is this PanelWindow failing?", "code": "PanelWindow { foo: 1 }"}
{"request": "Migrate this shell from v0.2 to v0.3", "from_version": "v0.2.0", "to_version": "v0.3.1"}
{"request": "Find an implementation of a volume OSD and adapt the pattern"}

リクエストは 5 つのインテントに分類され、それぞれ関連するパイプラインの段階を実行します。

  • build(「build/add/make a ...」)では、検索と検証の段階を quickshell_generate_component に委ねます。このツールは内部でこれらの段階を実行し、バリデーション済みの QML が grounded_result になります。
  • debug(「why is X failing?」「fix this error」)では、検索(quickshell_explain_error)と検証(関連する型のページと互換性)を実行し、その後バリデーション(quickshell_validate_qml)を実行します。grounded_result は診断と修正です。
  • migrate(「migrate/upgrade from vX to vY」)では、検索(コードが指定されていない場合は破壊的変更のチェンジログ)、対象バージョンに対するバリデーション、および移行(quickshell_migrate)を実行します。grounded_result は順序付けられた移行計画です。
  • pattern(「find an implementation ... and adapt it」)では、検索(上位の実装から短い抜粋を含む quickshell_find_pattern)と検証(提示された API の互換性)を実行します。grounded_result は抜粋と検証済み API です。
  • research(「what is X?」「how do I ...?」)では、検索(すべての情報源)と検証(上位の型およびガイドのページと互換性)を実行します。grounded_result には解決された型とガイドが一覧表示されます。

実行はデフォルトで無効です。アシスタントがファイルを変更することはありません。明示的に指定したバリデーション済みの編集セットを適用させるには、permitted_execution=True を edits=[...](quickshell_apply_patch と同じ形式)および project= パスとともに渡します。許可されていないリクエストでは実行ステップを記録し、読み取り専用のまま続行します。

バージョンとコンポジターはリクエストテキスト(0.2、hyprland)または version/compositor/from_version/to_version パラメーターから取得されます。曖昧なバージョン指定は、実行時に公開済みの一覧に照らして解決されます。各ステップは個別に実行されるため、情報源の処理に失敗してもリクエスト全体が失敗するのではなく、errors に表示されます。結果には、使用したツールのオーケストレーショントレース orchestration と、重複を除いた sources の一覧が含まれます。アプローチの各ステップに付く basis タグと、API エントリーの verified フラグによって、検証済みの事実(公式ドキュメントに基づくもの)と推奨事項を区別できます。

使用する場面: 複数ステップにわたる開発リクエストや、どの単一ツールが適切かまだわからない場合に使用します。単一の対象に絞った検索(1 つの型のページ、1 つのエラーメッセージ、1 つのバージョン確認)には、該当するツールを直接呼び出してください。そのほうが低コストで、生の回答を得られます。

プロジェクト、ランタイム、検査、テスト、パフォーマンス、エージェント:ディスク上の実際のプロジェクトと実行中のシェルを対象に作業します
プロジェクト分析

quickshell_project_analyze、quickshell_project_map、quickshell_project_find は、何も実行せずにディスク上のプロジェクトを読み取ります。分析では不明な値が明示され、マップでは確認済みのエッジと推定されたエッジが区別され(循環も報告されます)、検索ではプロジェクトファイルを位置とコンテキストとともに検索します。quickshell_project_dependencies はインポートを必須、任意、検出済み、または欠落として分類します。

{"project": "/path/to/shell"}

quickshell_project_validate、quickshell_project_lint、quickshell_project_compatibility、quickshell_project_migrate は、単一ファイル用ツールと同じエンジンをすべての QML ファイルに対して実行し、ファイルおよび重大度ごとに結果をまとめます。Lint は拡張可能なルールテーブルを使用します。互換性の判定で、ランタイムの非互換性を過剰に主張することはありません。migrate は機械可読な編集案を生成しますが、書き込みは行いません。

### ランタイムセッション

ランタイムツールは、分離された XDG ディレクトリ内で実際の qs プロセスを起動するため、管理対象のシェルがデスクトップセッションに触れることはありません。これらはオプトイン方式で、状態を変更するため、PATH 上に qs が必要です。

{"project": "/path/to/shell", "entrypoint": "main.qml"}

quickshell_runtime_start はセッション ID を返します。quickshell_runtime_status、quickshell_runtime_logs、quickshell_runtime_ping でセッションを確認し、quickshell_runtime_stop と quickshell_runtime_reset でライフサイクルを管理します。プロファイルには名前とバージョンが付与され、エコシステムの quickshell_profile_* ツールで管理できます。また、start で再利用できます。

ビジュアルおよび UI の検査

quickshell_windows、quickshell_ui_tree、quickshell_ui_find で、実行中のセッションを検査します。スクリーンショットの撮影には grim とコンポジターが必要です。UI のイントロスペクションには、シェル内に inspector IpcHandler ターゲットが必要です。quickshell_ui_set_property と quickshell_ui_invoke は IPC を介してセッションを変更し、変更前後の状態を返します。quickshell_ui_eval は高リスク操作であり(明示的なオプトイン、時間制限、出力の上限あり)、ファイルシステムには一切触れません。

テスト

quickshell_test は、機械可読形式のテスト(ステップの実行後にアサーションを行い、失敗時にはスクリーンショットを撮影)を実行します。quickshell_test_suite は複数のテストを分離して実行します。quickshell_assert、quickshell_test_macro、quickshell_test_record でステップを組み立てます。quickshell_test_report はスイートの概要をまとめます。

{"session_id": "abc123", "tests": [{"name": "bar shows", "assertions": [{"type": "visible", "target": "bar"}]}]}
パフォーマンス

quickshell_profile は、指定された時間内にセッションの CPU/メモリ使用量をサンプリングします。quickshell_profile_component、quickshell_profile_bindings、quickshell_profile_timers、quickshell_profile_object_tree は、プロジェクトを静的に分析します。quickshell_performance_diagnose は証拠を関連付け、確信度付きの仮説を導き出します。証拠がない場合にコストの原因を断定することはありません。

エージェント

quickshell_build_feature、quickshell_debug、quickshell_migrate_project、quickshell_test_feature、quickshell_optimize、quickshell_engineer は、それぞれ低レベルのツールを使って、明示的な段階的計画を実行します。各段階は分離されているため、どれかが失敗しても計画全体が頓挫することはありません。quickshell_engineer は一連の作業全体(ビルド、テスト、デバッグ、最適化、検証)を組み合わせ、各段階の結果と、フラット化された計画を返します。

ソースの優先順位

ソース間で食い違いがある場合は、次の順に優先します。

  1. Quickshell の公式ドキュメント
  2. Qt の公式ドキュメント
  3. Quickshell の公式サンプル
  4. 実際の実装例

実際の実装例は実用的な参考資料であり、正式な API 定義ではありません。

キャッシュ

ドキュメントのインデックスは、~/.cache/quickshell-mcp の下にローカルキャッシュされます。

キャッシュの種類TTL
取得したページ(メモリ/ディスク)30 分
一括ドキュメントインデックス(ディスク)30 日

対応している場合は、refresh=True を使用すると有効期間の短いキャッシュをバイパスできます。キャッシュの場所とディスク上の TTL は、既存の QUICKSHELL_DOCS_MCP_* 環境変数で設定できます。

参考資料

ソースURL提供内容
Quickshell のドキュメントhttps://quickshell.org型のリファレンス、使用ガイド、変更履歴
Qt のドキュメントhttps://doc.qt.io/qt-6QtQuick の基本型(Rectangle、RowLayout など)
Quickshell のサンプルhttps://git.outfoxxed.me/quickshell/quickshell-examples公式の設定例
Caelestia シェルhttps://github.com/caelestia-dots/shell実際の実装例
Noctalia シェルhttps://github.com/noctalia-dev/noctalia (legacy-v4)実際の実装例
dots-hyprlandhttps://github.com/end-4/dots-hyprland実際の実装例(「ii」シェル)

開発

内部アーキテクチャ(4 層の機能/ソーススタック、CI スクリプト一覧、コーディングおよびコミット規約)については AGENTS.md を、セットアップとワークフローについては CONTRIBUTING.md を参照してください。

制限事項

  • 検証は静的かつヒューリスティックであり、qmllsを補完します。
  • 動的なJavaScriptやローカルコンポーネントの解決には制限があります。
  • 公式の例は、異なるバージョンのQuickshellを対象としている場合があります。
  • キャッシュが空の状態では、ドキュメントの詳細な検索に時間がかかることがあります。
  • 実際の実装は参考資料であり、古いパターンが含まれている場合があります。
  • ランタイムツールとインスペクションツールはオプトインであり、PATHにqsが必要です。スクリーンショットにはコンポジターも必要で、UIのイントロスペクションにはinspector IpcHandlerターゲットが必要です。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。