メインコンテンツまでスキップ

AWS IoT SiteWise MCP サーバー

概要

産業用 IoT のアセット管理、データ取り込み、モニタリング、分析のための AWS IoT SiteWise の全機能を提供する包括的な MCP (Model Context Protocol) サーバーです。このサーバーにより、AI アシスタントは豊富なツールとプロンプトのセットを通じて AWS IoT SiteWise と連携できます。

機能

AWS IoT SiteWise のコア機能

🏭 アセット管理

  • アセットの作成と管理: 産業用アセットの作成、更新、削除、詳細取得
  • アセット階層: 階層構造におけるアセットの関連付けと関連付け解除
  • アセットモデル: プロパティ、階層、コンポジットモデルを持つアセットモデルの定義と管理
  • アセットプロパティ: 測定値、属性、変換、メトリクスの管理

📊 データ操作

  • データ取り込み: 品質インジケーター付きのバッチおよびリアルタイムのデータ取り込み
  • 履歴データ: 柔軟な時間範囲とフィルタリングによる時系列データの取得
  • 集計: 平均、合計、カウント、最小/最大、標準偏差の計算
  • 補間: 欠損データポイントの補間値の取得
  • バッチ操作: 複数アセットに対する効率的な一括データ操作

🌐 ゲートウェイと接続性

  • ゲートウェイ管理: IoT SiteWise Edge ゲートウェイの作成と設定
  • 機能設定: さまざまなプロトコルに対応するゲートウェイ機能の管理
  • 時系列管理: 時系列データストリームの関連付けと管理
  • エッジコンピューティング: ローカルデータ処理と断続的な接続のサポート

📦 一括操作とメタデータ転送

  • 一括エクスポート: メタデータ転送ジョブを使用して、すべての IoT SiteWise リソース(アセットモデル、アセットなど)を 1 回の操作でエクスポート
  • 一括インポートスキーマ: アセット/モデルの一括インポート用の構造化スキーマの作成と検証
  • メタデータ転送ジョブ: S3 と IoT SiteWise 間の大規模なデータ移行の管理
  • ジョブモニタリング: 一括操作の進捗とステータスの追跡
  • マルチソースサポート: S3 バケットと IoT SiteWise 間のデータ転送
  • スキーマ検証: インポート前の包括的な検証によるデータ整合性の確保

🤖 異常検出と計算モデル

  • 異常検出モデル: 産業用アセット向けの ML を活用した異常検出の作成と管理
  • 計算モデル: アセットプロパティに対するカスタムのデータ処理・分析ロジックの定義
  • トレーニングと推論: 異常検出のためのトレーニングジョブとリアルタイム推論の実行
  • モデルバージョニング: 自動プロモーションによるトレーニング済みモデルの複数バージョンの管理
  • 自動再トレーニング: 変化する運用パターンに適応するためのスケジュールされた再トレーニングの設定
  • アセットおよびアセットモデルレベルの設定: 特定のアセットへの柔軟なバインドやアセットモデル間での再利用
  • 実行モニタリング: トレーニングの進捗、推論のステータス、モデルパフォーマンスの追跡
  • アクション管理: 計算モデルとアセットに対するアクションの実行、監視、管理

🔒 セキュリティと設定

  • アクセスポリシー: ユーザーとリソースに対するきめ細かなアクセス制御
  • 暗号化: KMS 統合によるデフォルト暗号化設定の構成
  • ロギング: 包括的なロギング設定と管理
  • ストレージ設定: ホット層とウォーム層による多層ストレージ

インテリジェントプロンプト

🔍 アセット階層の可視化

以下を含むアセット階層の包括的な分析と可視化を提供します。

  • 完全な階層ツリー図
  • プロパティ分析と現在値
  • ヘルスチェックとステータスモニタリング
  • 最適化の推奨事項

📥 データ取り込みヘルパー

データ取り込みをセットアップするためのステップバイステップのガイダンスを提供します。

  • アセットモデル設計の推奨事項
  • ゲートウェイ設定テンプレート
  • データマッピング戦略
  • パフォーマンス最適化のヒント

インストール

KiroCursorVS Code
Add to KiroInstall MCP ServerInstall on VS Code

前提条件

  • Python 3.10 以上
  • IoT SiteWise へのアクセス権限が設定された AWS 認証情報
# Install UV if you don't have it yet
curl -sSf https://astral.sh/uv/install.sh | sh

# Clone the repository
git clone https://github.com/awslabs/mcp.git
cd mcp/src/aws-iot-sitewise-mcp-server

# Install as a uv tool (this makes it available globally via uvx)
uv tool install .

# The server is now available globally via uvx
uvx awslabs.aws-iot-sitewise-mcp-server
# use @latest flag for automatically pull updates on server
uvx awslabs.aws-iot-sitewise-mcp-server@latest

# Note: The server runs silently, waiting for MCP client connections.
# You'll need to configure an MCP client to connect to it.

オプション 2: Pip

# Install from PyPI (when published)
pip install awslabs.aws-iot-sitewise-mcp-server

# Or install from source
git clone https://github.com/awslabs/mcp.git
cd mcp/src/aws-iot-sitewise-mcp-server
pip install .

# Run the server
python -m awslabs.aws_iot_sitewise_mcp_server.server

AWS の設定

以下に対する権限を持つ AWS 認証情報を設定します。

  • AWS IoT SiteWise(書き込み操作にはフルアクセス)
  • AWS IoT TwinMaker(メタデータ転送操作用)
  • Amazon S3(一括インポート/エクスポート操作用)
# AWS CLI (recommended)
aws configure

# Environment variables
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_REGION=us-west-2

# Or use AWS profiles
export AWS_PROFILE=your-profile-name

MCP クライアントでの使用

Claude Desktop

claude_desktop_config.json に以下を追加します。

オプション 1: UVX(推奨)- 読み取り専用モード

{
"mcpServers": {
"aws-iot-sitewise": {
"command": "uvx",
"args": ["awslabs.aws-iot-sitewise-mcp-server@latest"],
"env": {
"AWS_REGION": "us-west-2",
"AWS_PROFILE": "your-profile-name",
"FASTMCP_LOG_LEVEL": "DEBUG"
},
"transportType": "stdio"
}
}
}

オプション 1: 書き込み操作を有効にした UVX

{
"mcpServers": {
"aws-iot-sitewise": {
"command": "uvx",
"args": ["awslabs.aws-iot-sitewise-mcp-server@latest"],
"env": {
"AWS_REGION": "us-west-2",
"AWS_PROFILE": "your-profile-name",
"FASTMCP_LOG_LEVEL": "DEBUG",
"SITEWISE_MCP_ALLOW_WRITES": "True"
},
"transportType": "stdio"
}
}
}

オプション 2: Python の直接実行 - 読み取り専用モード

{
"mcpServers": {
"aws-iot-sitewise": {
"command": "python",
"args": ["-m", "awslabs.aws_iot_sitewise_mcp_server.server"],
"env": {
"AWS_REGION": "us-west-2",
"AWS_PROFILE": "your-profile-name",
"FASTMCP_LOG_LEVEL": "DEBUG"
},
"transportType": "stdio"
}
}
}

オプション 2: 書き込み操作を有効にした Python の直接実行

{
"mcpServers": {
"aws-iot-sitewise": {
"command": "python",
"args": ["-m", "awslabs.aws_iot_sitewise_mcp_server.server"],
"env": {
"AWS_REGION": "us-west-2",
"AWS_PROFILE": "your-profile-name",
"FASTMCP_LOG_LEVEL": "DEBUG",
"SITEWISE_MCP_ALLOW_WRITES": "True"
},
"transportType": "stdio"
}
}
}

Claude Code

ワークスペースまたはグローバル設定で構成します。

オプション 1: UVX(推奨)- 読み取り専用モード

{
"mcpServers": {
"aws-iot-sitewise": {
"command": "uvx",
"args": ["awslabs.aws-iot-sitewise-mcp-server@latest"],
"env": {
"AWS_REGION": "us-west-2",
"AWS_PROFILE": "your-profile-name",
"FASTMCP_LOG_LEVEL": "DEBUG"
},
"transportType": "stdio"
}
}
}

オプション 1: 書き込み操作を有効にした UVX

{
"mcpServers": {
"aws-iot-sitewise": {
"command": "uvx",
"args": ["awslabs.aws-iot-sitewise-mcp-server@latest"],
"env": {
"AWS_REGION": "us-west-2",
"AWS_PROFILE": "your-profile-name",
"FASTMCP_LOG_LEVEL": "DEBUG",
"SITEWISE_MCP_ALLOW_WRITES": "True"
},
"transportType": "stdio"
}
}
}

オプション 2: Python の直接実行 - 読み取り専用モード

{
"mcpServers": {
"aws-iot-sitewise": {
"command": "python",
"args": ["-m", "awslabs.aws_iot_sitewise_mcp_server.server"],
"env": {
"AWS_REGION": "us-west-2",
"AWS_PROFILE": "your-profile-name",
"FASTMCP_LOG_LEVEL": "DEBUG"
},
"transportType": "stdio"
}
}
}

オプション 2: 書き込み操作を有効にした Python の直接実行

{
"mcpServers": {
"aws-iot-sitewise": {
"command": "python",
"args": ["-m", "awslabs.aws_iot_sitewise_mcp_server.server"],
"env": {
"AWS_REGION": "us-west-2",
"AWS_PROFILE": "your-profile-name",
"FASTMCP_LOG_LEVEL": "DEBUG",
"SITEWISE_MCP_ALLOW_WRITES": "True"
},
"transportType": "stdio"
}
}
}

注意事項:

  • your-profile-name は実際の AWS プロファイル名に置き換えるか、デフォルトの認証情報を使用する場合は AWS_PROFILE の行を削除してください
  • UVX オプションはよりシンプルでパス設定が不要なため推奨されます
  • 開発ワークフローについては、開発ガイドラインを参照してください

ツールリファレンス

アセット管理ツール

ツール名説明
create_assetアセットモデルから新しいアセットを作成
describe_assetアセットの詳細情報を取得
list_assetsフィルタリングオプション付きでアセットを一覧表示
update_assetアセットプロパティを更新
delete_assetアセットを削除
associate_assets親子関係を作成
disassociate_assetsアセットの関係を削除
list_associated_assets関連するアセットを一覧表示

アセットモデル管理ツール

ツール名説明
create_asset_modelアセットモデル定義を作成
describe_asset_modelアセットモデルの詳細を取得
list_asset_models利用可能なアセットモデルを一覧表示
update_asset_modelアセットモデルのプロパティを変更
delete_asset_modelアセットモデルを削除
list_asset_model_propertiesモデルのプロパティを一覧表示
create_asset_model_composite_modelコンポジットモデルを作成

データ操作ツール

ツール名説明
batch_put_asset_property_valueデータをバッチで取り込み
get_asset_property_value現在のプロパティ値を取得
get_asset_property_value_history履歴データを取得
get_asset_property_aggregates集計値を計算
get_interpl_asset_property_values補間データを取得
batch_get_asset_property_value現在値を一括取得
batch_get_asset_property_value_hist履歴データを一括取得
batch_get_asset_property_aggregates集計を一括取得
create_bulk_import_job一括データ取り込み用の一括インポートジョブを作成
create_buffered_ingestion_jobバッファリングされた取り込みジョブを作成
create_bulk_import_iam_role一括インポート操作用の IAM ロールを作成
list_bulk_import_jobs一括インポートジョブを一覧表示
describe_bulk_import_job一括インポートジョブの情報を取得
execute_query高度な分析のための SQL ライクなクエリを実行

ゲートウェイと時系列ツール

ツール名説明
create_gatewayIoT SiteWise Edge ゲートウェイを作成
describe_gatewayゲートウェイの情報を取得
list_gateways利用可能なゲートウェイを一覧表示
update_gatewayゲートウェイの設定を変更
delete_gatewayゲートウェイを削除
describe_gateway_capability_config機能設定を取得
update_gateway_capability_config機能を更新
list_time_series時系列データストリームを一覧表示
describe_time_series時系列の詳細を取得
link_time_series_asset_propertyデータストリームをリンク
unlink_time_series_asset_propertyストリームのリンクを解除
delete_time_series時系列を削除

計算モデルと異常検出ツール

ツール名説明
create_computation_modelカスタム設定とデータバインディングを持つ汎用計算モデルを作成 - アセットモデルレベル(再利用可能)とアセットレベル(特定)の設定をサポート
create_anomaly_detection_model🤖 専用ツール - 簡素化された設定で異常検出モデルを作成
describe_computation_modelアクション定義を含む計算モデルの詳細情報を取得
list_computation_modelsタイプによるオプションのフィルタリング付きで計算モデルを一覧表示
update_computation_model計算モデルの設定、データバインディング、メタデータを更新
delete_computation_model計算モデルを削除(取り消し不可能な操作)
describe_computation_model_execution_summaryインテリジェントな設定検出付きで実行サマリーを取得 - アセットモデルレベルとアセットレベルの設定を自動的に処理し、resolve パラメータのスマートな利用とオプションのパフォーマンス最適化に対応
list_computation_model_data_binding_usages特定のアセットまたはプロパティを使用している計算モデルを検索
list_computation_model_resolve_to_resources計算モデルの解決先リソースを一覧表示 - resolve-to 関係を通じて関連付けられた特定のアセットを表示

アクションと実行管理ツール

ツール名説明
execute_actionターゲットリソース(アセットまたは計算モデル)に対して汎用アクションを実行 - トレーニング、推論をサポート
execute_training_action🎯 専用ツール - 異常検出モデルのトレーニングアクションを実行
execute_inference_action🎯 専用ツール - リアルタイム異常検出のための推論アクションを実行
list_actionsフィルタリングオプション付きで特定のターゲットリソースのアクションを一覧表示
describe_actionペイロードと実行の詳細を含むアクションの詳細情報を取得
list_executionsステータスと進捗の追跡付きでアクションの実行を一覧表示
describe_execution結果とエラーの詳細を含む実行の詳細情報を取得

メタデータ転送と一括インポートツール

ツール名説明
create_bulk_import_schemaアセットモデルとアセット用の一括インポートスキーマを構築・検証
create_metadata_transfer_job🚀 一括エクスポート/インポート操作の主要ツール - すべてのリソースのエクスポートにはこれを使用
cancel_metadata_transfer_job実行中のメタデータ転送ジョブをキャンセル
get_metadata_transfer_jobメタデータ転送ジョブの詳細情報を取得
list_metadata_transfer_jobsフィルタリングオプション付きでメタデータ転送ジョブを一覧表示

アクセス制御と設定ツール

ツール名説明
create_access_policyアクセス制御ポリシーを作成
describe_access_policyポリシーの詳細を取得
list_access_policiesアクセスポリシーを一覧表示
update_access_policyアクセス権限を変更
delete_access_policyアクセスポリシーを削除
describe_default_encryption_config暗号化設定を取得
put_default_encryption_configuration暗号化を設定
describe_logging_optionsロギング設定を取得
put_logging_optionsロギングを設定
describe_storage_configurationストレージ設定を取得
put_storage_configurationストレージ層を設定

プロンプトリファレンス

アセット階層の可視化

/prompts get asset_hierarchy_visualization_prompt <asset_id>

ツリー図、プロパティ分析、ヘルスチェックを含むアセット階層の包括的な分析を提供します。

データ取り込みヘルパー

/prompts get data_ingestion_helper_prompt <data_source> <target_assets>

ベストプラクティスと例を用いて、産業データの取り込みをセットアップするためのステップバイステップのガイダンスを提供します。

データ探索ヘルパー

/prompts get data_exploration_helper_prompt <exploration_goal> <time_range>

SQL ライクな分析機能を持つ executeQuery API を使用して IoT データを探索するための包括的なガイダンスを提供します。

一括インポートワークフロー

/prompts get bulk_import_workflow_helper_prompt

CSV 検証、IAM ロールの作成、ジョブ設定、モニタリングを含む、S3 からの一括データインポートをセットアップするためのステップバイステップのガイダンスを提供します。

異常検出ワークフロー

/prompts get anomaly_detection_workflow_helper_prompt

AWS IoT SiteWise で異常検出をセットアップするための包括的なガイドで、以下を含みます。

  • 設定戦略: アセットモデルレベル(アセット間で再利用可能)またはアセットレベル(特定のアセットへのバインド)の選択
  • アセットとプロパティの検出: 入力プロパティと結果の保存先を特定するためのステップバイステップのガイダンス
  • モデルの作成: 適切なデータバインディングを持つ異常検出計算モデルの作成
  • トレーニングの実行: 履歴データ、サンプリングレート、評価オプションを用いたトレーニングジョブの設定と実行
  • 推論のセットアップ: 設定可能な頻度と稼働ウィンドウによるリアルタイム異常検出の開始
  • 自動再トレーニング: 変化する運用パターンに適応するためのスケジュールされた再トレーニングの設定
  • モニタリングと結果: 異常スコア、モデルパフォーマンス、実行ステータスの追跡
  • ベストプラクティス: 最適化戦略、トラブルシューティングのガイダンス、運用上の推奨事項

使用例

アセットモデルとアセットの作成

# Create an asset model for a wind turbine
asset_model = sitewise_create_asset_model(
asset_model_name="WindTurbineModel",
asset_model_description="Model for wind turbine assets",
asset_model_properties=[
{
"name": "WindSpeed",
"dataType": "DOUBLE",
"unit": "m/s",
"type": {
"measurement": {}
}
},
{
"name": "PowerOutput",
"dataType": "DOUBLE",
"unit": "kW",
"type": {
"measurement": {}
}
}
]
)

# Create an asset from the model
asset = sitewise_create_asset(
asset_name="WindTurbine001",
asset_model_id=asset_model["asset_model_id"],
asset_description="Wind turbine #001 in the north field"
)

データの取り込み

# Ingest real-time data
entries = [
{
"entryId": "entry1",
"assetId": asset["asset_id"],
"propertyId": "wind_speed_property_id",
"propertyValues": [
{
"value": {"doubleValue": 12.5},
"timestamp": {"timeInSeconds": 1640995200},
"quality": "GOOD"
}
]
}
]

result = sitewise_batch_put_asset_property_value(entries=entries)

異常検出のセットアップ

# Create an anomaly detection model for pump monitoring
anomaly_model = create_anomaly_detection_model(
computation_model_name="PumpAnomalyDetection",
input_properties=[
{"assetModelProperty": {"assetModelId": "pump_model_id", "propertyId": "temperature_property_id"}},
{"assetModelProperty": {"assetModelId": "pump_model_id", "propertyId": "pressure_property_id"}},
{"assetModelProperty": {"assetModelId": "pump_model_id", "propertyId": "vibration_property_id"}}
],
result_property={
"assetModelProperty": {"assetModelId": "pump_model_id", "propertyId": "anomaly_score_property_id"}
},
computation_model_description="Detects operational anomalies in industrial pumps using temperature, pressure, and vibration data"
)

# Train the model with historical data
training_result = execute_training_action(
training_action_definition_id="training_action_id", # From describe_computation_model
training_mode="TRAIN_MODEL",
target_resource={"computationModelId": anomaly_model["computationModelId"]},
export_data_start_time=1717225200, # 90 days ago
export_data_end_time=1722789360, # Recent data
target_sampling_rate="PT15M" # 15-minute intervals
)

# Start real-time inference
inference_result = execute_inference_action(
inference_action_definition_id="inference_action_id", # From describe_computation_model
inference_mode="START",
target_resource={"computationModelId": anomaly_model["computationModelId"]},
data_upload_frequency="PT15M", # Process data every 15 minutes
weekly_operating_window={
"monday": ["08:00-17:00"], # Business hours only
"tuesday": ["08:00-17:00"],
"wednesday": ["08:00-17:00"],
"thursday": ["08:00-17:00"],
"friday": ["08:00-17:00"]
},
inference_time_zone="America/Chicago"
)

# Monitor anomaly scores
anomaly_scores = get_asset_property_value_history(
asset_id="pump_asset_id",
property_id="anomaly_score_property_id",
start_date="2024-11-01T00:00:00Z",
end_date="2024-11-04T23:59:59Z"
)

テストと検証

包括的なテスト戦略

AWS IoT SiteWise MCP サーバーには、信頼性と API 準拠を確保するための複数のテストレイヤーが含まれています。

1. パラメータ検証

  • 入力検証: すべてのパラメータは AWS IoT SiteWise の制約に対して検証されます
  • フォーマットチェック: アセット名、ID、その他の識別子は AWS の命名規則に従います
  • クォータの適用: サービスクォータと制限は API 呼び出しの前に適用されます
  • 型安全性: mypy による完全な型チェック

2. 統合テスト

  • API 制約の検証: テストは実際の AWS API 仕様に対して検証を行います
  • エラーハンドリング: すべての AWS サービス例外に対する包括的なエラーハンドリング
  • 実世界のシナリオ: テストには現実的な産業用 IoT のユースケースが含まれます

3. 検証機能

  • 事前チェック: AWS API 呼び出しの前にパラメータを検証
  • サービスクォータの認識: AWS IoT SiteWise の制限に関する組み込みの知識
  • フォーマット検証: タイムスタンプ、ARN、その他の AWS フォーマットの適切な検証
  • 制約の適用: 文字数制限、配列サイズ、その他の制約を適用

テストの実行

# Run all tests
pytest

# Run tests with verbose output (shows individual test names)
pytest -v

# Run specific test file
pytest test/test_sitewise_tools.py -v

リソースクリーンアップの保証

テストスイートには、AWS リソースのリークを防ぐための包括的なリソースクリーンアップが含まれています。

自動クリーンアップ機能

  • コンテキストマネージャー: すべてのテストは sitewise_test_resources() コンテキストマネージャーを使用します
  • リソース追跡: 作成されたすべてのリソースはクリーンアップのために自動的に登録されます
  • 状態の待機: クリーンアップの前にリソースが削除可能な状態になるまで待機します
  • エラーハンドリング: 個々の削除が失敗してもクリーンアップは継続します

緊急クリーンアップ

  • シグナルハンドラー: Ctrl+C またはプロセス終了時にクリーンアップがトリガーされます
  • Atexit ハンドラー: テストが予期せずクラッシュした場合でもクリーンアップが実行されます
  • 孤立リソースの検出: 過去の失敗した実行によるリソースをスキャンしてクリーンアップします
  • リトライロジック: 一時的な障害に対する指数バックオフによる自動リトライ
  • グローバルレジストリ: プロセス全体のリソース追跡のための緊急クリーンアップレジストリ

クリーンアップの順序

  1. アセットの関連付けと時系列の関連付け
  2. ダッシュボード
  3. プロジェクト
  4. アクセスポリシー
  5. 時系列
  6. アセット
  7. ゲートウェイ
  8. アセットモデル(アセットが依存するため最後)

Pytest 統合

def test_asset_creation(sitewise_tracker):
"""Test using the pytest fixture for automatic cleanup."""
# Create asset model
model_result = create_asset_model(name="TestModel", ...)
sitewise_tracker.register_asset_model(model_result['asset_model_id'])

# Create asset
asset_result = create_asset(name="TestAsset", ...)
sitewise_tracker.register_asset(asset_result['asset_id'])

# Test operations...

# Resources automatically cleaned up when test ends

堅牢なエラーハンドリング

  • AWS 認証情報の検証: 認証情報が利用できない場合、テストは自動的にスキップされます
  • サービスの可用性: サービス停止時の適切な処理
  • 権限エラー: アクセス拒否シナリオの適切な処理
  • ネットワークの問題: 一時的なネットワーク問題に対するリトライロジック
  • リソース状態の競合: リソースが適切な状態になるまで待機します

検証の例

サーバーには包括的なパラメータ検証が含まれています。

# Asset name validation
create_asset("", "model-id") # ❌ Fails: Empty name
create_asset("a" * 257, "model-id") # ❌ Fails: Too long
create_asset("asset@invalid", "model-id") # ❌ Fails: Invalid characters
create_asset("Valid_Asset-Name", "model-id") # ✅ Passes validation

# Batch size validation
batch_put_asset_property_value([]) # ❌ Fails: Empty batch
batch_put_asset_property_value([...] * 11) # ❌ Fails: Too many entries
batch_put_asset_property_value([...] * 5) # ✅ Passes validation

# Service quota awareness
create_asset_model(properties=[...] * 201) # ❌ Fails: Too many properties
create_asset_model(properties=[...] * 50) # ✅ Passes validation

エラーハンドリング

すべてのツールは一貫したエラーハンドリングを提供します。

{
"success": False,
"error": "Validation error: Asset name cannot exceed 256 characters",
"error_code": "ValidationException"
}

API 準拠

実装は以下に対して検証されています。

  • AWS IoT SiteWise API リファレンス: すべてのパラメータは公式ドキュメントと一致します
  • サービスクォータ: 現在の AWS サービス制限が適用されます
  • データフォーマット: タイムスタンプ、ARN、識別子の適切な検証
  • エラーコード: AWS のエラーレスポンスパターンと一貫性があります
  • アセットとプロパティには意味のある名前と説明を使用してください
  • 適切なデータ型と単位を定義してください
  • アセットを論理的な階層に整理してください
  • 再利用可能なコンポーネントにはコンポジットモデルを使用してください

データ取り込み

  • 適切なエラーハンドリングとリトライロジックを実装してください
  • 効率のためにバッチ操作を使用してください
  • データポイントに品質インジケーターを含めてください
  • データの検証とクレンジングを計画してください

セキュリティ

  • 最小権限のアクセスポリシーを使用してください
  • 機密データの暗号化を有効にしてください
  • 包括的なロギングを設定してください
  • 定期的なセキュリティ監査とレビューを実施してください

トラブルシューティング

よくある問題

  1. 認証エラー

    • AWS 認証情報が適切に設定されていることを確認してください
    • IoT SiteWise 操作に対する IAM 権限を確認してください
    • リージョン設定を確認してください
  2. アセット作成の失敗

    • アセットモデル定義を検証してください
    • 命名の競合を確認してください
    • プロパティ設定が適切であることを確認してください
  3. データ取り込みの問題

    • プロパティエイリアスと ID を確認してください
    • タイムスタンプのフォーマットを確認してください
    • データ型と範囲を検証してください
  4. メタデータ転送の問題

    • IoT TwinMaker サービスの権限を確認してください
    • ソース/宛先操作のための S3 バケットへのアクセスを確認してください
    • 一括インポートスキーマのフォーマットを検証してください
    • 詳細なエラーメッセージについてはジョブステータスを監視してください
  5. 一括インポートスキーマのエラー

    • アセットモデルの外部 ID が一意であることを確認してください
    • プロパティのデータ型が要件と一致することを確認してください
    • 階層参照が有効であることを確認してください
    • 検証には create_bulk_import_schema ツールを使用してください

ヘルプの入手

  • AWS IoT SiteWise のドキュメントを確認してください
  • 詳細なエラーメッセージについては CloudWatch ログを確認してください
  • トラブルシューティングのガイダンスには診断プロンプトを使用してください

コントリビューション

この MCP サーバーは拡張可能なように設計されています。新しい機能を追加するには、以下の手順に従います。

  1. 適切なモジュールに新しいツール関数を作成する
  2. Tool.from_function パターンを使用してツール定義を追加する
  3. メインサーバー設定にツールを登録する
  4. ドキュメントと例を更新する

ライセンス

このプロジェクトは Apache License 2.0 のもとでライセンスされています。詳細は LICENSE ファイルを参照してください。


Built with ❤️ by AWS Gen AI Labs and AWS IoT Sitewise Engineering teams