Amazon Web Services ブログ

生成AIで開発ツール操作を自動化 – Kiro × MCP Server × dSPACE ControlDesk

はじめに

SILS/HILS(Software/Hardware-in-the-Loop Simulation)などを用いたECU開発において、dSPACE ControlDeskは欠かせないツールです。計測・キャリブレーション・レイアウト設計など多彩な機能を備える一方で、dSPACE ControlDeskの操作は複雑であり、習得のためには時間を要します。また、自動化する場合はさらにAPIの知識やPythonコーディングが求められます。

本記事では、AWS上に構築したMCP(Model Context Protocol)サーバとAgentic IDE「Kiro」を組み合わせ、ControlDeskの操作を自然言語で実現するアプローチをご紹介します。MCPとは、AIがdSPACE ControlDeskが提供するAPIのような外部のツールやデータソースに動的に接続するためのオープンプロトコルです。

課題:ControlDesk操作の自動化に立ちはだかる壁

ControlDeskはGUIベースの操作が基本ですが、繰り返し作業やプロジェクト横断での設定変更を効率化するにはCLI (Command Line Interface)からアクセス可能なAPIによる自動化が有効です。しかし、実際にAPIを活用するには以下のようなハードルがあります。

  • ControlDesk APIは多岐にわたり(Status Control、Recording、Platform/Devices操作、Variables Access、Signal Editor、Instrument Script等)、目的のAPIを探すだけでも時間がかかる
  • カスタム計器(Selection BoxやPush Buttonの組み合わせ)にInstrument Scriptを埋め込むような高度な設定は、さらに専門知識が求められる

つまり、「やりたいことは明確だが、それを実現するために、どのAPIをどう組み合わせて使えば良いのかを調べるだけで、非常に長い時間を要する」という状況が生まれがちです。

ソリューション:Kiro × MCP Server による自然言語オートメーション

本記事では、上記の課題を解決するために、Agentic IDE「Kiro」とMCPサーバを組み合わせ、自然言語の指示から適切なControlDesk APIを呼び出すPythonコードを自動生成するアプローチを提案します。このアプローチにより、ユーザーはAPIの仕様を調べることなく、対話的にControlDeskの操作を進めることができます。

以下にアーキテクチャと処理フローを示します。

image of kiro with MCP to control Control Desk

図1:Kiro × MCP Server × ControlDesk のアーキテクチャ概要

コンポーネント 役割
Kiro(Agentic IDE) ユーザーの意図を解釈し、MCPサーバと連携してコードを生成
MCP Server(AWS EC2上) ControlDeskのAPIマニュアル・サンプルコードをナレッジとして保持。チーム共有・常時稼働を目的にクラウド上に配置
Amazon S3 ControlDeskのドキュメントおよびサンプルコードを保持
ControlDesk 生成されたAPIコードにより操作が実行される

処理フロー

  1. ユーザーが自然言語で指示を入力(例:「Time Plotterを左上に配置して、スロットル変数を紐づけて」)
  2. KiroがMCPサーバに問い合わせ、関連するAPIドキュメントやサンプルコードを取得
  3. 取得した情報をもとに、ControlDesk APIを呼び出すPythonコードを生成
  4. 生成されたコードをユーザーが確認・実行し、ControlDeskの操作を自動化

kiro_with_mcp_control_desk_demo

図2:Kiro から ControlDesk を自然言語で操作するデモの様子

MCPサーバのナレッジ構築と活用の可能性

MCPサーバの価値は、ControlDeskに関するナレッジを構造化して保持し、AIが適切なAPIコードを生成するための情報源となる点にあります。

ControlDesk APIの探索とナレッジ化

ControlDesk APIはPython(COM経由)で利用でき、付属ドキュメントや公開サンプルコードからその使い方を学ぶことができます。

今回のPoCでは、以下の情報源をMCPサーバのナレッジとして活用しました。

  • ControlDeskに付属するAPIリファレンス(ヘルプドキュメント)
  • dSPACE社が公開しているサンプルスクリプト
  • 実際のプロジェクトで試行錯誤しながら蓄積した操作手順やコードスニペット

今後、より精度の高いコード生成を実現するためには、以下のような情報源をさらに整理・格納していくことが考えられます。

  • ControlDesk APIの全カテゴリ(Status Control、Recording、Layout Management等)の体系的なドキュメント
  • dSPACEコミュニティやFAQで公開されているユースケース別のコード例
  • 実プロジェクトで蓄積したベストプラクティスやトラブルシューティング記録

⚠️ dSPACEドキュメント利用に関する注意事項
dSPACE社のドキュメント利用ガイドラインでは、ドキュメントの内容をAIモデルの学習データとして使用することは許可されていません。本ブログのワークフローを実施する際は、以下のいずれかの条件を満たしてください:

  • Kiroを AWS IAM Identity Center または外部IDプロバイダー経由で利用する(コンテンツがサービス改善に使用されません)
  • または データ共有のopt-out設定を行う手順はこちら

詳細は Kiro FAQ: Does Kiro use my content to train any models? をご参照ください。
なお、Kiroにドキュメントを参照させてMCPサーバを構築する(コード生成の参考情報として利用する)といった用途は許容されています。

ナレッジの充実度に応じて、自然言語で「GoOnlineして計測を開始して」と伝えるだけで、裏側で適切なAPIが呼び出されるような体験を実現できる可能性があります。

活用例:レイアウト操作の自然言語化

ControlDeskのレイアウト操作をAPIで自動化するには、計器の種類・名前・配置座標・サイズ・紐づける変数パスなど、多くのパラメータを正確に指定する必要があります。従来はAPIの仕様を理解したうえでPythonコードを記述していました。

# 従来:APIの仕様を理解してコードを記述
cd_instruments = Application.LayoutManagement.Layouts[layout_name].Instruments
cd_instruments.Add(instrument_type, instrument_name, x, y, width, height)
cd_instrument = cd_instruments[instrument_name]
cd_instrument.MainVariable = variable_path

MCPサーバにControlDeskのAPI情報が十分に蓄積されていれば、Kiroを通じて自然言語からこうしたコードを生成できるようになります。

「Time Plotterをレイアウトの左上に配置して、スロットル変数を紐づけて」 → Kiro が MCPサーバのナレッジを参照し、API コードを自動生成

# Kiroが自然言語から自動生成するコードのイメージ
Application.LayoutManagement.Layouts["MyLayout"].Instruments.Add(
    "Time Plotter", "ThrottlePlotter", 0, 0, 400, 300
)
plotter = Application.LayoutManagement.Layouts["MyLayout"].Instruments["ThrottlePlotter"]
plotter.ActivePlot.ActiveYAxis.Signals.Add()
plotter.ActivePlot.ActiveYAxis.Signals.Item(0).MainVariable = \
    "Platform()://Model Root/Throttle_act_pos"

このように、MCPサーバに蓄積するナレッジの質と量が、自然言語オートメーションの精度を左右する重要な要素となります。

さらなる可能性:計器カスタマイズへの展開

ControlDeskでは、計器にPythonスクリプト(Instrument Script)を埋め込むことで、高度なカスタマイズも可能です。たとえば、GoOnline(シミュレーションプラットフォームとの接続を確立し、リアルタイムでの変数モニタリングやパラメータ変更を可能にする操作)やGoOffline(接続を切断し、安全にプロジェクト設定を変更できる状態に戻す操作)の切り替え、レコーダーの動的選択といった、ControlDesk固有の制御フローをスクリプト化できます。

こうした設定にはAPIの深い理解が求められますが、MCPサーバの作り込み次第では「レコーダーを動的に切り替えられる計測ボタンを作って」といった自然言語からスクリプトの雛形を生成することも将来的に視野に入ります。

メリットと付加価値

API知識不要で操作可能

自然言語で意図を伝えるだけで適切なコードが生成されるため、新しいメンバーのオンボーディングコストを大幅に削減できます。

設計書・仕様書の同時生成

Kiroはコード生成と合わせて、レイアウト構成や変数マッピングをMarkdown形式の設計書として出力できます。テスト仕様書の作成にも応用可能です。

チーム全体の生産性向上

MCPサーバにナレッジを蓄積・共有することで、個人の暗黙知がチーム全体の資産になります。

対応デバイスの幅広さ

ControlDesk APIはVEOS、SCALEXIO、MicroAutoBox II/IIIなど主要なdSPACEプラットフォームに対応しており、MCPサーバ経由でこれらすべてを自然言語で操作できます。

まとめと今後の展望

ControlDeskは計測・キャリブレーション・レイアウト設計・Instrument Scriptなど、ECU開発に必要な機能を豊富に備えた強力なツールです。しかし、その機能の豊富さゆえに使いこなす難度が高く、APIの複雑さが障壁となり、豊富な機能のポテンシャルを引き出せないまま運用されるケースが多く見られました。

Kiro × MCP Serverの組み合わせは、この状況を変える可能性を持っています。自然言語でやりたいことを伝えるだけで、適切なAPIが呼び出される体験を実現できます。

  • 従来手動にて作成していたレイアウトが自然言語で実現可能に
  • ControlDeskの公開ドキュメントやサンプルAPIを活用し、MCPサーバのナレッジとして構造化
  • カスタム計器やInstrument Scriptのような高度な設定も、自然言語からの生成が視野に

一方で、各機能のAPIをMCPのToolとして最適に定義するには、dSPACE社の豊富な開発経験に基づくノウハウが不可欠です。今後はdSPACE社との協業を通じてToolの最適化を進めるとともに、ControlDeskに限らず他のdSPACEツールへの横展開や、テスト自動化パイプラインとの統合など、生成AI × MCPの可能性はさらに広がっていくと考えています。

著者について

Akihiro_Kinugasa_Sr_Solutions_Architect 衣笠 昭弘
AWSのシニアソリューションアーキテクトとして、製造業(自動車)のお客様のクラウド活用をご支援しています。2020年にProfessional ServicesのコンサルタントとしてAWSに入社し製造業・電力など様々なエンタープライズのお客様のクラウド基盤構築のご支援に従事し、2025年より現職。