mcpField
M
MCP Server for AWS Resources

MCP Server for AWS Resources

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

MCP Server for AWS Resources について

SyntropAIの抽象化レイヤーを通じてAWSサービスにアクセスするMCPサーバーです。固定のサービス一覧に頼らず、SDKの動的呼び出しとサンドボックス実行を行います。

主な機能

  1. 01AWSサービスへの動的アクセス
  2. 02AST検証とサンドボックス実行
  3. 03実行時のAPIスキーマ生成
  4. 04Dockerによるデプロイ
  5. 05AWS認証情報の管理

活用シーン

  1. 01EC2インスタンスの照会
  2. 02S3バケットの作成
  3. 03Lambda関数の一覧取得

MCP 対応

SyntropAIの抽象化レイヤーを介して、MCPクライアントにAWSサービスへのアクセスを提供します。クエリはAST検証済みのサンドボックス内で、タイムアウト保護付きで実行されます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"for-aws": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
起動コマンドdocker run -i --rm build

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

パッケージ
ocibuild

ツール

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

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

詳細

AWS MCP サーバー - SyntropAI エコシステム

SyntropAI MCP エコシステムの一部 - 統合型マルチクラウド抽象化フレームワークです。

この MCP(Model Context Protocol)サーバーは、革新的な SyntropAI 抽象化レイヤーを通じて、AWS サービスへの安全で動的なアクセスを提供します。従来のハードコードされたサービスカタログとは異なり、このサーバーは組み込みのセキュリティサンドボックス機能を備えた動的な SDK アクセスにより、あらゆる AWS サービスに対応します。

🚀 主な機能

  • AWS へのユニバーサルアクセス:ハードコードによる制限なしで、すべての AWS サービスに動的にアクセスできます
  • 安全なコード実行:AST ベースの検証とサンドボックス実行環境を備えています
  • プロバイダーに依存しない設計:SyntropAI の統合抽象化パターンを基盤としています
  • 将来にわたって使えるアーキテクチャ:更新なしで新しい AWS サービスに自動対応します
  • Docker コンテナ化:本番環境に対応したデプロイが可能です

🏗️ アーキテクチャ

このサーバーは SyntropAI 抽象化パターンを実装しています。

Claude Desktop → MCP Protocol → AWS MCP Server → SyntropAIBox → boto3 → AWS Services
コアコンポーネント:
  • AWSSession:BaseSessionを使用した統合 AWS 認証情報管理
  • AWSResourceQuerier:BaseQuerierを拡張した安全なクエリ実行
  • AST サンドボックス:タイムアウト保護機能を備えた安全なコード実行
  • 動的スキーマ:実行時の API ドキュメント生成

📋 前提条件

  • Python 3.10 以降
  • AWS 認証情報が設定済みであること(~/.aws/credentials、環境変数、または IAM ロール経由)
  • Docker(推奨)
  • SyntropAIBox コアライブラリ

🐳 Docker のインストール(推奨)

ビルドと実行
# Build the image
docker build -t mcp-server-aws-resources .

# Run with AWS profile
docker run -i --rm \
  -e AWS_PROFILE=default \
  -v ~/.aws:/root/.aws \
  mcp-server-aws-resources:latest

# Run with environment variables
docker run -i --rm \
  -e AWS_ACCESS_KEY_ID=your_key \
  -e AWS_SECRET_ACCESS_KEY=your_secret \
  -e AWS_DEFAULT_REGION=us-east-1 \
  mcp-server-aws-resources:latest

⚙️ Claude Desktop との連携

claude_config.jsonに追加します。

{
  "mcpServers": {
    "aws-resources": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "AWS_PROFILE=default", 
        "-v", "/Users/yourusername/.aws:/root/.aws",
        "mcp-server-aws-resources:latest"
      ]
    }
  }
}

🛡️ セキュリティ機能

AST ベースの検証
  • 悪意のあるコードインジェクションを防止します
  • インポートと関数をホワイトリストで管理します
  • 制御された実行環境を提供します
安全な実行
  • タイムアウト保護(デフォルトは2秒)
  • 分離された名前空間
  • JSON シリアライズされた応答
安全なクエリの例
# User provides this code snippet:
import boto3
ec2 = session.client('ec2')
result = ec2.describe_instances()

システムは以下を行います。

  1. ✅ AST 構文を検証します
  2. ✅ 許可されたインポートを確認します(boto3は承認済みです)
  3. ✅ タイムアウト付きのサンドボックス内で実行します
  4. ✅ JSON シリアライズされた結果を返します

🔧 使用例

EC2 インスタンスの一覧表示
import boto3
ec2 = session.client('ec2')
result = ec2.describe_instances()
S3 バケットの作成
import boto3
s3 = session.client('s3')
result = s3.create_bucket(Bucket='my-unique-bucket-name')
Lambda 関数
import boto3
lambda_client = session.client('lambda')
result = lambda_client.list_functions()

🌟 SyntropAI エコシステムの利点

統合型マルチクラウド
  • AWS、Azure、OCI で同じパターンを利用できます
  • 認証とエラー処理に一貫性があります
  • プロバイダーに依存しない抽象化を提供します
ハードコードされていないサービス
  • あらゆる AWS サービスに自動対応します
  • サービスカタログによる制限はありません
  • 今後追加されるサービスもすぐに利用できます
エンタープライズ対応
  • セキュリティを最優先した設計
  • Docker コンテナ化
  • 包括的なログ記録

🔗 関連プロジェクト

🏆 技術的な特長

この実装では、以下の技術を紹介しています。

  • 高度な抽象化パターン:関心事を明確に分離します
  • セキュリティエンジニアリング:AST 検証とサンドボックス実行
  • クラウドアーキテクチャ:スケーラブルで保守しやすいマルチクラウド設計
  • 優れた DevOps:コンテナ化され、設定可能なデプロイ

📞 サポート

SyntropAI MCP エコシステムに関するご質問は、以下をご利用ください。


このサーバーは最先端のクラウド抽象化技術を実証し、革新的なアーキテクチャパターンを通じて、AWS サービスへの安全で統合されたアクセスを提供します。

コメント

MCP は初めてですか?

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

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