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

AWS Transform MCPサーバー

PyPI Downloads PyPI Downloads/month

AWS Transform 向けのMCPサーバーで、AIアシスタントがIDEから直接、変換ワークスペース、ジョブ、コネクタ、ヒューマンインザループ (HITL) タスク、アーティファクト、チャットを管理できるようにします。

AWS Transformは、発見、計画、実行の各段階にわたって特化型AIエージェントを活用し、エンタープライズワークロードの移行とモダナイゼーションを加速します。このMCPサーバーは、19個のツールを通じてTransformのライフサイクルを公開し、メインフレームモダナイゼーション、VMware移行、.NETモダナイゼーション、カスタムコード変換をサポートします。

[!IMPORTANT] このサーバーはstdioトランスポートを使用し、MCPクライアントによって起動される長時間稼働プロセスとして動作します。

機能

  1. ワークスペースとジョブの管理 - 変換ワークスペースおよびジョブの作成、開始、停止、削除
  2. ヒューマンインザループタスク - 完全なコンポーネント検証、出力スキーマ、レスポンステンプレートを備えたHITLタスクへの応答
  3. アーティファクトの取り扱い - 最大500 MBのアーティファクト (JSON、ZIP、PDF、HTML、TXT) のアップロードとダウンロード
  4. コネクタ管理 - S3およびコードソースコネクタの作成、プロファイルの管理、IAMロールの関連付けによるコネクタの承認
  5. チャット - 自動レスポンスポーリング付きでTransformアシスタントへメッセージを送信
  6. ジョブステータスとポーリング - AI生成のサマリーまたは詳細な生スナップショットによるジョブステータスの確認、遷移状態に対するアダプティブポーリング
  7. リソースの閲覧 - ワークスペース、ジョブ、コネクタ、タスク、アーティファクト、ワークログ、プラン、エージェント、コラボレーター、ユーザーなど、あらゆるリソースの一覧表示と確認

前提条件

  1. Python 3.10以降
  2. テナントへのアクセス権を持つ AWS Transform アカウント

インストール

クイックスタート

uvx awslabs.aws-transform-mcp-server@latest

MCPクライアントの設定

Claude Code
claude mcp add awslabs.aws-transform-mcp-server -- uvx awslabs.aws-transform-mcp-server@latest
Kiro

~/.kiro/settings/mcp.json に追加します:

{
"mcpServers": {
"awslabs.aws-transform-mcp-server": {
"command": "uvx",
"args": ["awslabs.aws-transform-mcp-server@latest"],
"env": {
"AWS_REGION": "us-east-1",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
}
Claude Desktop

お使いのOSに応じた設定ファイルを編集します:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

macOS/Linuxの場合:

{
"mcpServers": {
"awslabs.aws-transform-mcp-server": {
"command": "uvx",
"args": ["awslabs.aws-transform-mcp-server@latest"],
"env": {
"AWS_REGION": "us-east-1",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
}

Windowsの場合:

{
"mcpServers": {
"awslabs.aws-transform-mcp-server": {
"command": "uvx",
"args": [
"--from",
"awslabs.aws-transform-mcp-server@latest",
"awslabs.aws-transform-mcp-server.exe"
],
"env": {
"AWS_REGION": "us-east-1",
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false
}
}
}
Cursor / VS Code / Cline

MCP設定ファイル (.cursor/mcp.json.vscode/mcp.json、またはClineのMCP設定) に追加します:

macOS/Linuxの場合:

{
"mcpServers": {
"awslabs.aws-transform-mcp-server": {
"command": "uvx",
"args": ["awslabs.aws-transform-mcp-server@latest"],
"env": {
"AWS_REGION": "us-east-1",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
}

Windowsの場合:

{
"mcpServers": {
"awslabs.aws-transform-mcp-server": {
"command": "uvx",
"args": [
"--from",
"awslabs.aws-transform-mcp-server@latest",
"awslabs.aws-transform-mcp-server.exe"
],
"env": {
"AWS_REGION": "us-east-1",
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false
}
}
}

Windowsでのインストール

Windowsユーザーの場合、MCPサーバーの設定形式が少し異なります:

{
"mcpServers": {
"awslabs.aws-transform-mcp-server": {
"command": "uvx",
"args": [
"--from",
"awslabs.aws-transform-mcp-server@latest",
"awslabs.aws-transform-mcp-server.exe"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_REGION": "us-east-1"
},
"disabled": false
}
}
}

動作確認

設定後、MCPクライアントを再起動して次のように尋ねてください: 「AWS Transformの接続ステータスを確認して」。アシスタントは get_status を呼び出し、サーバーのバージョンと認証状態を返します。

認証

ほとんどのツールは Transform Web API認証 (ブラウザログイン) を必要とします。1つのツール (accept_connector) は加えて AWS認証情報 を必要としますが、これは環境から自動的に検出されます。

Web API認証 (必須)

以下のいずれかを選択してください:

AIアシスタントに次のように依頼します: 「AWS TransformをSSOで設定して」

ツールはIdCスタートURL (例: https://d-xxx.awsapps.com/start) の入力を求め、ログイン用のブラウザウィンドウを開き、認証情報を ~/.aws-transform-mcp/config.json に保存します。トークンは再起動時に自動的に読み込まれます。

  1. AWS Transformコンソール にログインします
  2. DevTools (F12) を開き、Application > Cookies を選択します
  3. セッションCookieの値をコピーします
  4. AIアシスタントに 「AWS TransformをCookie認証で設定して」 と依頼し、Cookieとテナント URLを提供します

AWS認証情報による認証 (自動検出)

accept_connector などのControl Planeツールで必要です。

AWS認証情報は環境から自動的に検出されるため、ツールの呼び出しは不要です。特定のプロファイルを選択するには、MCPクライアント設定の env ブロックで AWS_PROFILE を設定します。一時トークンの有効期限が切れると、認証情報は自動的に更新されます。

起動時に、サーバーはサポートされているすべてのリージョンを検査します。複数のリージョンにアクティブなプロファイルがある場合は、switch_profile を使用して使用するリージョンを選択してください。

認証情報が機能しているか確認するには、AIアシスタントに 「AWS Transformの接続ステータスを確認して」 と依頼します。get_status がSTS経由で検証を行い、アカウントID、ARN、解決されたTCPエンドポイントを表示します。

[!IMPORTANT] accept_connector ツールは、Web API認証とAWS認証情報の 両方 を必要とします。

利用可能なツール

設定

ツール説明認証
configureセッションCookieまたはSSO/IdCベアラートークンで接続します。なし
get_statusすべての接続ステータスを確認し、STS経由でAWS認証情報を検証し、サーバーのバージョンを表示します。なし
switch_profile認証情報が有効なプロファイルが複数検出された場合に、利用可能なリージョンを切り替えます。Web API

ワークスペース管理

ツール説明認証
create_workspace新しい変換ワークスペースを作成します。Web API
delete_workspaceワークスペースを完全に削除します。confirm: true が必要です。Web API

ジョブ管理

ツール説明認証
create_job変換ジョブを作成して即時に開始します。利用可能なエージェントを確認するには list_resources(resource="agents") を使用します。Web API
control_job既存のジョブを開始または停止します。Web API
delete_jobジョブを完全に削除します。confirm: true が必要です。Web API

HITLタスク管理

ツール説明認証
complete_task検証、ファイルアップロード、送信を伴うHITLタスクを処理します。サポートするアクション: APPROVE、REJECT、SEND_FOR_APPROVAL、SAVE_DRAFT。TOOL_APPROVALタスク (エージェントのツール実行リクエスト) ではAPPROVEとREJECTのみが有効で、アーティファクトのアップロードは自動的にスキップされます。Web API
upload_artifactファイル (JSON、ZIP、PDF、HTML、TXT) をアーティファクトとしてアップロードします。最大500 MB。Web API

チャット

ツール説明認証
send_messageTransformアシスタントにメッセージを送信し、最大60秒間返信をポーリングします。タイムアウト時は、後で取得できるよう sentMessageId を返します。Web API

ジョブステータスとポーリング

ツール説明認証
get_job_status実行中のジョブのステータスを確認します。デフォルトでは、Transformアシスタントに簡潔なサマリーを問い合わせます。完全な生スナップショット (ワークログ、タスク、メッセージ、プランステップ) を取得するには detailed=true を渡します。Web API
adaptive_poll指定された時間待機してから、フォローアップメッセージを返します。リソースが遷移状態にあるときに使用します。API呼び出しは行わず、スリープするだけです。なし

ジョブの指示

ツール説明認証
load_instructionsジョブに取り組む前に必ず呼び出す必要があります。アーティファクトストアをスキャンしてワークフローの指示を探し、見つかった場合はダウンロードします。このツールが呼び出されるまで、他のジョブスコープのツールは INSTRUCTIONS_REQUIRED でブロックされます。Web API

コネクタ

ツール説明認証
create_connectorワークスペースにS3またはコードソースコネクタを作成します。Web API
accept_connectorコネクタにIAMロールを関連付けます。Web API + AWS認証情報

リソースの一覧と詳細

ツール説明認証
list_resourcesあらゆるリソースタイプを一覧表示します: ワークスペース、ジョブ、コネクタ、タスク、アーティファクト、メッセージ、ワークログ、プラン、エージェント、コラボレーター、ユーザー。保留中のツール承認を一覧表示するには、category="TOOL_APPROVAL"taskStatus="AWAITING_APPROVAL" を使用します。Web API
get_resourceIDを指定して任意のリソースの詳細を取得します。アーティファクトを自動ダウンロードし、HITLタスクに出力スキーマを付加します。Web API

コラボレーター

ツール説明認証
manage_collaboratorワークスペースのコラボレーターを追加または削除します。Web API

サポートされている変換タイプ

  • アセスメント - 移行準備状況の評価
  • メインフレームモダナイゼーション - IBM z/OSおよび富士通GS21からJavaへの変換 (COBOL、JCL、CICS、DB2、VSAM)
  • VMware移行 - アプリケーションの発見、依存関係のマッピング、ネットワーク変換、ウェーブ計画、EC2へのサーバーリホスト
  • .NETモダナイゼーション - .NET FrameworkからLinux向けクロスプラットフォーム.NETへの変換
  • フルスタックWindows - アプリケーション (.NET) + SQL Server + デプロイのエンドツーエンドなモダナイゼーション
  • カスタム変換 - Javaアップグレード、Node.js、Python、APIおよびフレームワークの移行、言語間変換

設定

永続化される設定

認証状態は ~/.aws-transform-mcp/config.json に保存され、再起動時に自動的に読み込まれます。これには認証モード、トークン、テナントURL、リージョンが含まれます。

環境変数

MCPクライアント設定の env ブロックで以下を設定します:

変数必須デフォルト説明
AWS_PROFILEいいえdefault プロファイルControl Planeツール (例: accept_connector) に使用する ~/.aws/credentials のAWSプロファイル。複数のAWSプロファイルがある場合は、Transformアカウントへのアクセス権を持つものを設定してください。未設定の場合、boto3は [default] プロファイルを使用し、次に環境変数 (AWS_ACCESS_KEY_ID)、その次にインスタンスメタデータにフォールバックします。完全な解決順序については boto3 credential chain を参照してください。
AWS_REGIONいいえプロファイルのリージョン、次に us-east-1Control Plane API呼び出しに使用するAWSリージョン。未設定の場合、AWSプロファイル (~/.aws/config) のリージョンを使用し、次に us-east-1 にフォールバックします。
FASTMCP_LOG_LEVELいいえINFOMCPサーバーのログレベル (DEBUGINFOWARNINGERROR)。

HITLタスクレスポンスシステム

resource="task" を指定して get_resource でタスクを取得すると、レスポンスには以下が含まれます:

  • _outputSchema - フィールドの説明、型、列挙値、必須フィールドを含むJSON Schema
  • _responseTemplate - スキーマに合致する具体的なレスポンス例
  • _responseHint - レスポンスを構築するための人間が読める形式のガイダンス

実行時にフィールドが定義されるコンポーネント (AutoForm、DynamicHITLRenderEngine) については、サーバーがエージェントアーティファクトから動的スキーマを構築するため、フィールド名は常に正確です。

[!IMPORTANT] ユーザーによる明示的なレビューなしにHITLタスクのレスポンスを自動送信しないでください。必ずタスクの詳細とエージェントアーティファクトをユーザーに提示し、ユーザーの判断を待ってから complete_task を呼び出してください。

トラブルシューティング

問題原因解決策
AccessDeniedException: INVALID_SESSIONセッションCookieの期限切れDevTools > Application > Cookies から再度コピーする
サーバーが起動しないPython 3.10以降がない、依存関係の不足python --version が3.10以上であることを確認し、uvx awslabs.aws-transform-mcp-server@latest を再実行する
結果が空認証が未設定またはIDが誤っているget_status を実行して認証を確認し、ワークスペース/ジョブIDを確認する
SSOトークンの期限切れベアラートークンの有効期間超過SSOで configure を再実行して更新する

制限事項

  • Cookie認証のセッションは期限切れになります - 自動更新はありません。定期的にブラウザから再度コピーしてください。
  • SSOトークンは期限切れになります - ツールが認証エラーを返した場合は、SSO設定を再実行してください。

セキュリティ

アーキテクチャ

このMCPサーバーはユーザーのマシン上で ローカルプロセス として動作し、stdio (stdin/stdout) を介してMCPクライアントと通信します。ネットワークリスナー、HTTPサーバー、オープンポートは一切公開しません。すべてのアウトバウンド通信は、AWSが管理するTransform APIエンドポイントへのHTTPSを使用します。

認証と認証情報の保存

サーバーは3つの認証モードをサポートし、いずれも呼び出し元自身の認証情報を使用します:

  • セッションCookie — Transform Web API用のユーザーのブラウザセッションCookie
  • SSO / OAuthベアラートークン — PKCEを使用してIAM Identity Center経由で取得され、期限切れ前に自動更新されます
  • SigV4 — Transform Control Plane API用の標準AWS認証情報チェーン

トークンを含む設定は ~/.aws-transform-mcp/config.json に永続化され、0o700 のディレクトリ内に 0o600 のパーミッションでアトミックに書き込まれます (一時ファイル + リネーム)。SigV4認証情報は標準のAWS認証情報チェーン (boto3) を通じて解決されます。

転送時の暗号化

すべてのアウトバウンドHTTP呼び出しは HTTPS のみを使用します。APIエンドポイントはハードコードされた https:// プレフィックスから導出され、http:// URLを構築または受け入れるコードパスは存在しません。TLS証明書の検証は httpxcertifi によりデフォルトで有効です。

認証情報の持ち出し防止

サーバーは、ツールの誤用による認証情報の持ち出しを防ぐため、機密性の高いファイルやディレクトリへの読み書きをブロックします:

  • ブロックされるファイル名: .env.netrc.pgpass、SSHキー (id_rsaid_ed25519 など)、credentialsauthorized_keys など
  • ブロックされるディレクトリ: ~/.aws~/.ssh~/.gnupg~/.docker~/.aws-transform-mcp
  • パストラバーサル防止: すべてのファイルパスは解決され、ディレクトリ境界に対して検証されます
  • 拡張子の許可リスト: 承認されたファイル拡張子のみダウンロードできます

監査ログ

すべてのツール呼び出しは、サニタイズされた引数とともにログに記録されます。機密性の高いパラメータ (secretpasswordcredentialtokencookiecontentclientSecretArnstartUrl) はログ出力から自動的に除外されます。監査ログはフォールトトレラントであり、ログ処理の失敗がツールの実行をブロックすることはありません。

ファイルダウンロードの安全性

アーティファクトのダウンロードでは以下が強制されます:

  • パストラバーサルチェック (解決されたパスがターゲットディレクトリの外に出てはいけません)
  • ブロック対象ファイル名のチェック
  • 拡張子の許可リスト (json、pdf、html、txt、csv、md、zip、gz、tar、yaml、xmlなど)

VPC設定

サーバーはAWSが管理するエンドポイントへアウトバウンドHTTPS呼び出しを行います。直接のインターネットアクセスがないVPC内のインスタンスで実行する場合は、これらのエンドポイントに到達できることを確認してください。

[!IMPORTANT] サーバーはインバウンドポートを一切開きません。MCPクライアントとのすべての通信はstdio経由です。必要なのはアウトバウンドTCP 443のみです。

必要なエンドポイント

サーバーは以下のエンドポイントに接続します。{region} はお使いのAWSリージョン (例: us-east-1) に置き換えてください。

コアAPI:

エンドポイント用途PrivateLinkサービス名
api.transform.{region}.on.awsTransform API — ジョブ、ワークスペース、アーティファクト、チャットcom.amazonaws.{region}.api.transform
transform.{region}.api.awsTCP — コネクタ、プロファイル、エージェントcom.amazonaws.{region}.transform

これらのサービス名の詳細については AWS Transform and interface VPC endpoints を参照してください。

認証:

エンドポイント用途PrivateLinkサービス名
oidc.{region}.amazonaws.comSSO OIDCトークンの交換と更新なし — NAT Gatewayが必要
sts.{region}.amazonaws.com認証情報の検証、コネクタ操作com.amazonaws.{region}.sts

アーティファクトストレージ:

エンドポイント用途PrivateLinkサービス名
*.s3.{region}.amazonaws.com署名付きURLによるアップロードとダウンロードcom.amazonaws.{region}.s3 (Gateway)

サーバーはS3を直接呼び出さず、Transform APIから返される署名付きURLを使用します。ドメインは仮想ホスト形式 ({bucket}.s3.{region}.amazonaws.com) になる場合があります。

SSOブラウザログイン (SSO認証での configure 実行時のみ):

エンドポイント用途
oidc.{region}.amazonaws.comOAuth認可リダイレクト
portal.sso.{region}.amazonaws.comSSOポータルログイン
assets.sso-portal.{region}.amazonaws.comSSOポータル静的アセット
{directory-id}.awsapps.comIAM Identity Centerポータル
{region}.signin.awsSSOサインインリダイレクト

これらのドメインは Accessing the AWS Transform web application from a VPC に記載されています。AWS認証情報による認証 (SigV4) では、これらのブラウザ用エンドポイントは不要です。

VPCエンドポイント

NAT Gatewayなしでプライベート接続を行うには、以下のエンドポイントを作成します。サービス名は AWS Transform and interface VPC endpoints に記載されています。

サービス名用途プライベートDNS
com.amazonaws.{region}.api.transformTransform API必須
com.amazonaws.{region}.transformControl Plane任意
com.amazonaws.{region}.stsSTS任意
com.amazonaws.{region}.s3S3 (Gateway)該当なし

[!IMPORTANT] com.amazonaws.{region}.api.transform エンドポイントにはプライベートDNSの有効化が必要です。有効化しないと、api.transform.{region}.on.aws がパブリックIPに解決され、API呼び出しは接続タイムアウトで失敗します。

SSO OIDCとSSOポータルはPrivateLinkをサポートしていません。これらにはNAT GatewayまたはHTTPプロキシを使用してください。

セキュリティグループ

インスタンス (プライベートサブネット)0.0.0.0/0 へのアウトバウンドTCP 443 (またはVPCエンドポイントENIとNAT Gatewayにスコープ)。

VPCエンドポイントENI — プライベートサブネットCIDRからのインバウンドTCP 443。

Network Firewall (制御されたエグレス)

厳格なドメインベースのフィルタリングを行うには、TLS SNI検査を備えたAWS Network Firewallをデプロイします。VPC web application access guide では以下がカバーされています:

  • ドメイン許可リストを持つステートフルルールグループ
  • プライベート、ファイアウォール、パブリックサブネット間の対称ルーティング
  • 各サブネット層のルートテーブル設定
  • 検証用コマンド

推定基本コスト: AZあたり月額約325ドル (Network Firewall + NAT Gateway + Elastic IP)。最新の料金は AWS Network Firewall pricing を参照してください。

トラブルシューティング

問題原因解決策
Transform API呼び出しの接続タイムアウトVPCエンドポイントがない、またはプライベートDNSが無効プライベートDNSを有効にして com.amazonaws.{region}.api.transform を作成する
TCP呼び出しの接続タイムアウトTCPエンドポイントへのルートがないcom.amazonaws.{region}.transform エンドポイントを作成するか、NAT Gatewayルートを追加する
SSOトークンの更新失敗OIDCエンドポイントに到達できないNAT Gatewayが oidc.{region}.amazonaws.com にルーティングしているか確認する
アーティファクトのアップロード/ダウンロード失敗S3に到達できないS3 Gateway Endpointを作成し、ルートテーブルのエントリを確認する
api.transform.{region}.on.aws のDNSがパブリックIPを返すプライベートDNSが有効になっていないVPCエンドポイントを削除し、Enable DNS name を選択して再作成する

インスタンスからの接続確認:

# Should return a private IP address if VPC endpoint is configured
nslookup api.transform.us-east-1.on.aws

# Should return HTTP 403 or similar (confirms network path works)
curl -v --connect-timeout 15 'https://api.transform.us-east-1.on.aws/'

# Should return account info (confirms STS reachability)
aws sts get-caller-identity

# Should list buckets (confirms S3 Gateway Endpoint)
aws s3 ls --region us-east-1

ライセンス

このプロジェクトはApache-2.0ライセンスの下でライセンスされています。