このページでは

MCPクライアントを使う

Qt Creator はモデルコンテキストプロトコル(MCP)をサポートしており、AIアシスタントがデバッグ、ビルド、プロジェクト管理のためにMCPを制御することができます。

MCPクライアントを使用するには、MCPクライアントをインストールし、Qt Creator MCPサーバエクステンションを有効にしてMCPサーバを起動します。

MCPサーバーステータスの表示

Qt Creator は、Qt Creator MCPサーバー拡張機能を有効にすると、MCPサーバーを起動します。サーバは127.0.0.1 で実行され、ポート3001 で接続を受け付けます。セキュリティ上の理由から、リモート・コンピュータで実行することはできません。

MCPサーバーのステータスを表示するには、Tools >MCP Server >About MCP Server にアクセスしてください。

MCPサーバーステータスダイアログ

サーバーが起動しない場合は、General Messages にポートが使用中である旨の警告が表示されているかどうかを確認してください。

他のプロセスがそのポートにバインドされていないことを確認します。例えば、Linuxの場合、Terminallsof -i :3001 と入力します。

3001 以外のポートを使用するには、Qt Creator が起動する前に、MCP_SERVER_PORT 環境変数を設定してポートを構成します。

単純なMCPクライアントのセットアップ

POST要求を送信し、SSE応答を読み取ることができる任意のHTTPクライアントを使用できます。このセクションでは、pip を使用して、単純な MCP クライアントをインストールする方法と、それを構成する方法について説明します。

単純な MCP クライアントをインストールして構成するには、以下の手順に従います:

  1. Terminal にアクセスし、次のように入力します:
    pip install simple-mcp-client
  2. qtcreator MCPサーバを指すように、simple_mcp_client\config.json 構成ファイルを変更します:
    "mcpServers": {
      "qtcreator": {
        "enable": false,
        "type": "sse",
        "url": "http://127.0.0.1:3001/sse",
        "command": null,
        "args": [],
        "env": {}
      }
    }

config.json ファイルは以下の場所にあります:

  • Linuxの場合:~/.config/simple_mcp_client/
  • Windowsの場合:C:\Users\<username>\AppData\Roaming\simple_mcp_client

Qt Creator ツールの実行

MCP クライアントからQt Creator ツールを実行するには、クライアントを起動し、Qt Creator MCP サーバに接続します。

MCPクライアントを起動し、Qt Creator ツールのリストを表示します:

  1. Terminal にアクセスし、次のように入力します:
    python -m simple_mcp_client.main
  2. Mini MCP Client Network Hub に次のように入力します:
    connect qtcreator
  3. ツールのリストを表示するには、次のように入力します:
    tools qtcreator

    MCP クライアントの Qt Creator ツール

  4. ツールを実行するには
    execute qtcreator <tool-name>

    例えば

    execute qtcreator list_sessions

SSE接続が失敗する場合は、MCPクライアントがCORS(cross-origin resource sharing)をサポートしていることを確認してください。CORSはHTTPヘッダーに基づくメカニズムで、サーバーが他のドメイン、スキーム、 ポートのリソースをロードすることを許可します。

Windowsの場合、ファイアウォールがlocalhost へのインバウンド接続をブロックしている可能性があります。Qt Creator の実行ファイルがローカル・トラフィックを受け入れられることを確認してください。

Qt Creator が終了してもデバッグ・セッションが停止しない場合は、Debug モードでデバッグを手動で停止するか、MCP_QUIT_TIMEOUT 環境変数を 60 秒に設定してタイムアウトを増やすことができます。

ツールの概要

以下の表は、サーバーが登録するQt Creator ツールをまとめたものである。各ツールはJSON-RPCメソッドで、名前、人間が読めるタイトル、説明、入出力JSONスキーマ、およびツールが読み取り専用かどうかを示すフラグを持つ。

名前タイトル説明パラメータ結果読み取り専用
get_build_status現在のビルド状況を取得現在のビルド・アクティビティの短いテキスト説明を返します。空のオブジェクト:{}"result": "string"はい
open_fileファイルを開くQt Creator与えられたファイル(URI)をエディタで開きます。ファイルは自動的に保存されません。path:URI文字列または絶対ファイルパス"success": true|falseいいえ
file_plain_textファイルをプレーンテキストとして読み込むファイルの生のテキストを返します。path:URI"success": "text": "<plain_text>"はい
set_file_plain_textファイルへのプレーンテキストの書き込み指定されたテキストでファイルを上書きします。ファイルがエディタで開かれている場合、変更は自動的に保存されない。path:URI

plainText文字列

"success": true|falseいいえ
save_fileファイルの保存エディター文書が変更された場合に保存する。path:URI"success": true|falseいいえ
close_fileファイルを閉じるドキュメントが開かれている場合、それを閉じます。path:URI"success": true|falseいいえ
list_projects利用可能なプロジェクトをすべてリストアッププロジェクトの表示名の配列を返します。"projects": ["MyApp", "LibA", ...]はい
list_build_configs使用可能なビルド設定の一覧アクティブなプロジェクトのビルド設定名の配列を返します。"buildConfigs": ["Debug", "Release"]はい
switch_build_config特定のビルド構成に切り替える現在のプロジェクトの指定したビルド設定をアクティブにします。name構成名を文字列で返します。"success": true|falseいいえ
list_open_files現在開いているファイルのリストファイルの絶対パスの配列を返します。"openFiles": ["/path/to/file1.cpp", ...]はい
list_sessions利用可能なQt Creator セッションの一覧セッション名の配列を返します。"sessions": ["default", "work", "debug"]はい
load_session特定のセッションをロード指定したセッションに非同期で切り替わる。sessionNameセッション名を文字列で返す"success": true|falseいいえ
save_session現在のセッションの保存現在のセッションをディスクに保存します。Empty"success": true|falseいいえ
list_issues現在の問題(警告とエラー)のリストIssues からissue文字列の配列を返します。Empty"issues": ["error: <string>", "warning: <string>"]はい
quit終了Qt Creator優雅なシャットダウン(デバッグを停止し、セッションを保存し、QApplication::quit() を呼び出す)を実行する。Empty"success": true|falseいいえ
get_current_project現在アクティブなプロジェクトの取得起動中のプロジェクトの表示名を返します。"project": "MyApp"はい
get_current_build_configアクティブなビルド構成を取得現在選択されているビルド構成の名前を返します。"buildConfig": "Debug"Yes
get_current_sessionアクティブなセッション名の取得現在ロードされているセッション名を返します。Empty"session": "default"はい

静的ツールに加えて、プラグインは最も一般的なQt Creator アクションをトリガーするための動的ツールを登録します:

  • run_project Run アクションをトリガーします。
  • build Build アクションを起動します。
  • clean_project Clean アクションを起動します。
  • debug Debug アクションをトリガーします。

動的ツールは空のparams オブジェクトを受け取り、{ "success": true|false } を返します。

ツールの追加

MCP Serverエクステンションは、Core::ActionManager 、表に示す名前のツールを作成します。この実装では、McpServer::runOnGuiThread() を介して、UIスレッドでQAction::trigger() を呼び出します。

したがって、McpServer::initializeToolsForCommands() に小さなラッパーを追加することで、ActionManager を介して公開されるその他のコマンドをMCPツールに変換できます。

拡張機能の有効化も参照してください

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.