mcpField
L
localstack

localstack

ローカル
github.com/giovanemartinsクラウド・インフラ134 週間前に更新

localstack について

localstackは、開発やテストでAIエージェントがローカルのAWSインフラを操作できるよう、LocalStackのAWSサービスをツールとして公開します。ストレージ、メッセージング、データベース、コンピューティングなどに対応します。

主な機能

  1. 01S3バケットとオブジェクトの管理
  2. 02SQSキューとメッセージの操作
  3. 03SNSトピックとサブスクリプションの管理
  4. 04EventBridgeルールとイベントの設定
  5. 05Kinesis、DynamoDB、Lambdaの操作
  6. 06Secrets Manager、SSM、SESの管理

活用シーン

  1. 01仕様に沿ったローカル開発環境の初期化
  2. 02統合テスト用のDynamoDBやS3データの投入
  3. 03イベントを発行して後続処理を確認
  4. 04ローカルデバッグでのLambda実行とログ確認

MCP 対応

このMCPサーバーは、LocalStackが管理するAWSサービスをMCPクライアント向けのツールとして公開します。環境変数でLocalStackのエンドポイント、リージョン、認証情報を設定します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"giovanemartins-localstack": {
"command": "npx",
"args": [
"-y",
"@giovane.martins/localstack"
],
"env": {
"LOCALSTACK_ENDPOINT": "<LOCALSTACK_ENDPOINT>",
"AWS_REGION": "<AWS_REGION>",
"AWS_ACCESS_KEY_ID": "<AWS_ACCESS_KEY_ID>",
"AWS_SECRET_ACCESS_KEY": "<AWS_SECRET_ACCESS_KEY>"
}
}
}
}
起動コマンドnpx -y @giovane.martins/localstack
設定が必要な環境変数
LOCALSTACK_ENDPOINTLocalStack endpoint URL
AWS_REGIONAWS region
AWS_ACCESS_KEY_IDシークレットAWS access key ID
AWS_SECRET_ACCESS_KEYシークレットAWS secret access key

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@giovane.martins/localstack1.1.5

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

LocalStack MCP サーバー

MCP Registry npm

LocalStack で管理される AWS サービスを AI エージェント向けのツールとして公開する MCP サーバーです。LLM や AI エージェントが、開発やテスト中にローカルの AWS インフラストラクチャを操作できるようにします。

インストール

このサーバーは npm と MCP Registry に公開されています。ローカルでのビルドは不要です。

npm install -g @giovane.martins/localstack

または、npx で直接実行できます(インストール不要です)。

npx @giovane.martins/localstack

必要条件

  • Node.js 20+
  • Docker(LocalStack 用)

ローカル開発

# 1. Start LocalStack
docker compose up -d

# 2. Install dependencies
pnpm install

# 3. Build
pnpm run build

# 4. Run
pnpm start

設定

設定はすべて環境変数で行います。

変数デフォルト説明
LOCALSTACK_ENDPOINThttp://localhost:4566LocalStack のベース URL
AWS_REGIONus-east-1AWS リージョン
AWS_ACCESS_KEY_IDtestLocalStack 用の偽の認証情報
AWS_SECRET_ACCESS_KEYtestLocalStack 用の偽の認証情報

テストの実行

LocalStack が実行中である必要があります(docker compose up -d)。

pnpm test

MCP クライアントの設定

公開済み npm パッケージを使用する場合(推奨)

MCP クライアントの設定に追加します(例:~/.config/claude/claude_desktop_config.json)。

{
  "mcpServers": {
    "localstack": {
      "command": "npx",
      "args": ["-y", "@giovane.martins/localstack"],
      "env": {
        "LOCALSTACK_ENDPOINT": "http://localhost:4566",
        "AWS_REGION": "us-east-1",
        "AWS_ACCESS_KEY_ID": "test",
        "AWS_SECRET_ACCESS_KEY": "test"
      }
    }
  }
}
ローカルビルドを使用する場合
{
  "mcpServers": {
    "localstack": {
      "command": "node",
      "args": ["/path/to/mcp-servers/localstack/dist/index.js"],
      "env": {
        "LOCALSTACK_ENDPOINT": "http://localhost:4566",
        "AWS_REGION": "us-east-1",
        "AWS_ACCESS_KEY_ID": "test",
        "AWS_SECRET_ACCESS_KEY": "test"
      }
    }
  }
}
開発に tsx を使用する場合(ビルド手順なし)
{
  "mcpServers": {
    "localstack": {
      "command": "npx",
      "args": ["tsx", "/path/to/mcp-servers/localstack/src/index.ts"],
      "env": {
        "LOCALSTACK_ENDPOINT": "http://localhost:4566",
        "AWS_REGION": "us-east-1",
        "AWS_ACCESS_KEY_ID": "test",
        "AWS_SECRET_ACCESS_KEY": "test"
      }
    }
  }
}

利用可能なツール

S3
ツール説明
s3_list_bucketsすべての S3 バケットを一覧表示
s3_create_bucketバケットを作成
s3_delete_bucketバケットを削除
s3_put_objectオブジェクトをアップロード(テキスト/JSON コンテンツ)
s3_get_objectオブジェクトをテキストとしてダウンロード
s3_delete_objectオブジェクトを削除
s3_list_objectsオプションのプレフィックスフィルターを指定してオブジェクトを一覧表示
SQS
ツール説明
sqs_list_queuesすべてのキューを一覧表示
sqs_create_queue標準キューまたは FIFO キューを作成
sqs_delete_queueキューを削除
sqs_send_messageメッセージを送信
sqs_receive_messages最大 10 件のメッセージを受信(ロングポーリングに対応)
sqs_delete_messageレシートハンドルでメッセージを削除
sqs_purge_queueキューからすべてのメッセージを消去
SNS
ツール説明
sns_list_topicsすべてのトピックを一覧表示
sns_create_topic標準トピックまたは FIFO トピックを作成
sns_delete_topicトピックを削除
sns_subscribeエンドポイントをトピックにサブスクライブ
sns_unsubscribeトピックのサブスクリプションを解除
sns_list_subscriptions_by_topicトピックのすべてのサブスクリプションを一覧表示
sns_publishトピックにメッセージを発行
EventBridge
ツール説明
eventbridge_list_busesすべてのイベントバスを一覧表示
eventbridge_create_busカスタムイベントバスを作成
eventbridge_delete_busカスタムイベントバスを削除
eventbridge_list_rulesバスのルールを一覧表示
eventbridge_put_ruleルールを作成または更新(イベントパターンまたはスケジュール)
eventbridge_delete_ruleルールを削除
eventbridge_describe_ruleルールの詳細を表示
eventbridge_enable_ruleルールを有効化
eventbridge_disable_ruleルールを無効化
eventbridge_put_targetsルールのターゲットを追加または更新
eventbridge_list_targetsルールのターゲットを一覧表示
eventbridge_remove_targetsルールからターゲットを削除
eventbridge_put_eventsカスタムイベントをバスに送信(最大 10 件)
Kinesis
ツール説明
kinesis_list_streamsすべてのストリームを一覧表示します
kinesis_create_streamストリームを作成します
kinesis_delete_streamストリームを削除します
kinesis_describe_streamストリームの詳細を表示します(ステータス、シャード)
kinesis_put_recordレコードを1件登録します
kinesis_put_records複数のレコードを登録します(最大500件)
kinesis_get_recordsシャードからレコードを取得します
DynamoDB
ツール説明
dynamodb_list_tablesすべてのテーブルを一覧表示します
dynamodb_create_tableテーブルを作成します(パーティションキー+任意のソートキー)
dynamodb_delete_tableテーブルを削除します
dynamodb_describe_tableテーブルの詳細を表示します
dynamodb_put_itemアイテムを登録します(作成または置換)
dynamodb_get_itemキーを指定してアイテムを取得します
dynamodb_delete_itemキーを指定してアイテムを削除します
dynamodb_scanすべてのアイテムをスキャンします(任意のフィルター式を指定可能)
dynamodb_queryキー条件でクエリを実行します
Lambda
ツール説明
lambda_list_functionsすべての関数を一覧表示します
lambda_get_function関数の詳細を取得します
lambda_create_functionBase64エンコードされたZIPから関数を作成します
lambda_delete_function関数を削除します
lambda_invoke関数を呼び出し、応答とログを返します
Secrets Manager
ツール説明
secretsmanager_list_secretsすべてのシークレットを一覧表示します
secretsmanager_create_secret新しいシークレットを作成します
secretsmanager_get_secretシークレットの値を取得します
secretsmanager_update_secretシークレットの値を更新します
secretsmanager_describe_secretシークレットのメタデータを表示します
secretsmanager_delete_secretシークレットを削除します(強制削除は任意)
secretsmanager_restore_secret削除済みのシークレットを復元します
SSM Parameter Store
ツール説明
ssm_get_parameter名前を指定してパラメーターを取得します
ssm_put_parameterパラメーターを作成または更新します
ssm_delete_parameterパラメーターを削除します
ssm_delete_parameters最大10個のパラメーターをまとめて削除します
ssm_get_parameters_by_pathパスのプレフィックス以下にあるすべてのパラメーターを取得します
ssm_describe_parametersパラメーターを一覧表示して詳細を確認します
SES
ツール説明
ses_list_identities検証済みのすべての ID を一覧表示します
ses_verify_email_identityメールアドレスを検証します
ses_get_identity_verification_attributesID の検証ステータスを取得します
ses_delete_identityID を削除します
ses_send_emailメールを送信します(プレーンテキストおよび/またはHTML)

使用例

  • 開発環境のセットアップ — 仕様から S3 バケット、SQS キュー、DynamoDB テーブル、SSM パラメーターを一括作成します
  • テストデータの投入 — 統合テストの実行前に DynamoDB または S3 にデータを投入します
  • イベント駆動型のデバッグ — IDE を離れずに EventBridge/SNS/Kinesis にイベントを発行し、後続の影響を確認します
  • シークレット/設定の管理 — ローカルのデバッグセッション中に Secrets Manager/SSM の値を読み取り、更新します
  • Lambda のスモークテスト — Lambda 関数を呼び出して応答とログを取得し、すばやく反復します
  • キューの取得/確認 — コンシューマーを起動せずに SQS メッセージを受信して確認します

プロジェクト構成

localstack/
├── docker-compose.yml      # LocalStack container
├── package.json
├── tsconfig.json
├── vitest.config.ts
├── src/
│   ├── index.ts            # MCP server entry point
│   ├── config.ts           # Environment config
│   ├── tools/              # One file per AWS service
│   │   ├── s3.ts
│   │   ├── sqs.ts
│   │   ├── sns.ts
│   │   ├── eventbridge.ts
│   │   ├── kinesis.ts
│   │   ├── dynamodb.ts
│   │   ├── lambda.ts
│   │   ├── secretsmanager.ts
│   │   ├── ssm.ts
│   │   └── ses.ts
│   └── utils/
│       ├── client.ts       # Shared AWS client factory (LocalStack endpoint)
│       └── errors.ts       # Standardised MCP error formatting
└── tests/                  # Integration tests (real LocalStack)
    ├── s3.test.ts
    ├── sqs.test.ts
    ├── sns.test.ts
    ├── eventbridge.test.ts
    ├── kinesis.test.ts
    ├── dynamodb.test.ts
    ├── lambda.test.ts
    ├── secretsmanager.test.ts
    ├── ssm.test.ts
    └── ses.test.ts

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。