MCPを使ったテストデータ作成の効率化
作成したModelContext Protocol(MCP)を使ってLLMと連携し、テストデータを簡単に作成できるようにしてみたので、その手順をまとめます。
スマートマットクラウドの基本構造
弊社のスマートマットクラウドではIoT機器「スマートマット」に載せた商品等の重量を定期的に自動計測・通信することで在庫管理や、在庫の改善サポートするプロダクトです。
テスト環境でこの重量データを効率よく再現するにはどうすればよいかが課題でした。
テストデータ作成の課題と解決策
テストデータを作成する際に、毎回JSONデータを編集して送信するのが非常に手間だったため、日本語テキストでパラメーター等を指示し、データ編集からデータ送信までを簡単に行えるようにすることを目指しました。そこで、MCPサーバーの作成を始めました。
処理の大まかな流れは以下の通りです。
MCPサーバーの作成方法
今回はClineに指示してMCPサーバーを作成しました。
まず、MCPサーバーの作成を依頼し、テキスト解析で必要となるパラメーターやJSONの雛形を与えました。最初の指示では曖昧な部分がありましたが、何度かやりとりを繰り返すことで、処理手順を明確にしていきました。
MCPサーバーで考慮した要素
- JSONの雛形、初期値
- テキストで指定する必須要件
- データを送る対象のID
- データを送る対象の数値
- 日付(未入力なら現在時刻)
- 各パラメーターの意味
- エラー処理の要件
- JSONのヘッダー
Claude DesktopでのMCPサーバー利用
MCPサーバーが完成したので、Claude Desktopで実際に使用してみました。今回作成したMCPサーバーでは、JSONヘッダー部分にSecret-Keyを設定する必要がありました。そのため、Claude Desktopの設定フォルダ内にclaude_desktop_config.jsonというファイルを作成し、Secret-Keyを設定しました。ファイル自体の作成は、Clineに指示すれば対応可能です。
実際に特定のIDに1000のデータを送信しようとすると、以下のようにテキストを解析し、データを送ってくれました。
テキストを解析し、データを送信します。IDや送信データを解析したテキストに基づいて変更し、必要に応じてタイムスタンプなども更新できます。
以下のような形式でデータが送信されます。(ダミーデータ)
"sentData": {
"identifier": {
"primaryID": "----3801",
"secondaryID": "WXYZ-5432",
"timestamp": "2025-04-02T15:30:45Z"
},
"metadata": {
"version": 3,
"status": "active",
"data": 1000,
"tags": ["test", "data", "complex"]
},
単純なデータ送信であれば手作業でもそれほど差はありませんが、例えば「3月1日〜3月31日まで毎日送信」「指定したID100個に対してデータをそれぞれ送信」といった指示も可能です。これにより、JSON編集を行わずにテストデータの送信が容易になります。
テキストで指示するだけで誰でも簡単にテストデータを作成できるようになり、その可能性を感じます。
今後の課題
実際に何度か使ってみると、課題はいくつか見えてきました。
- 送信前確認機能の追加
- エラーデータの送信サポート
- テキスト解析の精度向上
確認なしに作成されたJSONデータを送信してしまうと、想定外のデータを送ってしまったことがあったので確認フェーズの必要は感じました。また重量超過などのエラーの場合の特殊なデータのパラメータの処理やテキスト解析の判断なども必要でした。

IoT重量計スマートマットを活用した在庫管理・発注自動化DXソリューション「SmartMat Cloud」を運営しています。一緒に働く仲間を募集しています。 s-mat.co.jp/recruit
Discussion