mcpField
A
AWS MCP Server with Agno Agent

AWS MCP Server with Agno Agent

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

AWS MCP Server with Agno Agent について

FastMCPとAgnoでAWS機能をMCPクライアントに公開するデモで、自然言語でAWS環境を調べたい開発者向けです。ローカルのOllamaモデルを使う対話型エージェントも含みます。

主な機能

  1. 01セキュリティグループとルールの一覧
  2. 02S3バケット情報の一覧
  3. 03VPC接続の分析
  4. 04対話型Agnoエージェント
  5. 05ローカルOllamaモデルの利用

活用シーン

  1. 01AWSセキュリティグループのルール確認
  2. 02S3バケットとアクセス方針の確認
  3. 03VPCネットワーク接続の分析

MCP 対応

MCPサーバーはSSE経由でAWSツールを公開し、互換クライアントからセキュリティグループやS3バケットの一覧、VPC接続分析を呼び出せます。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

Agno エージェントを使用した AWS MCP サーバー

このプロジェクトでは、FastMCP と Agno フレームワークを使用して、複数の AWS ツールを MCP(Model Context Protocol)サーバーに統合します。このサーバーは、セキュリティグループの一覧表示、S3 バケットの一覧表示、VPC 接続の分析などの AWS 機能を公開し、リモートクライアントが標準化された MCP 経由でこれらの機能を利用できるようにします。

これは aws meetup 向けのデモでした。主に、MCP とローカルエージェントでできることを紹介するデモです。

特長

  • AWS セキュリティグループツール:インバウンドルールとアウトバウンドルールの詳細を含む AWS セキュリティグループを一覧表示します。
  • AWS S3 バケットツール:リージョン、作成日、アクセス権限ポリシーの情報を含む S3 バケットを一覧表示します。
  • AWS VPC 接続ツール:ピアリング、エンドポイント、トランジットゲートウェイ、ルートテーブル、ネットワーク ACL など、VPC 接続を分析します。
  • MCP サーバー:上記のツールをネットワークエンドポイント経由で公開し、MCP に準拠した任意のクライアントから呼び出せるようにします。
  • 対話型 Agno エージェント:タスク管理、コマンド履歴、リアルタイムのツール呼び出しストリーミング機能を備えた高機能エージェントです。
  • Ollama 連携:ローカルの Ollama モデルを AI 機能に使用し、外部 API への依存を軽減します。

前提条件

  • Python 3.11 以降
  • boto3 用に設定された AWS 認証情報(環境変数、または AWS の設定/認証情報ファイル経由)
  • Ollama がインストールされ、ローカルで実行されていること(エージェントコンポーネント用)
  • 必要な Python パッケージ:
    • boto3
    • agno
    • fastmcp(サーバーコンポーネント用)
    • rich(対話型コンソール用)

インストール

  1. リポジトリをクローンします:

    git clone https://github.com/skjortans/aws-mcp-server.git
    cd aws-mcp-server
    
  2. 仮想環境を作成します(任意ですが、推奨):

    python -m venv venv
    source venv/bin/activate  # On Windows use: venv\Scripts\activate
    
  3. 依存関係をインストールします:

    requirements.txt がある場合は、次を実行します:

    pip install -r requirements.txt
    

    ない場合は、依存関係を手動でインストールします:

    pip install boto3 agno fastmcp rich click
    
  4. Ollama をインストールして起動します:

    使用するプラットフォームに応じた Ollama のインストール手順に従い、その後、モデルを取得します:

    ollama pull qwen3  # or another model of your choice
    

使用方法

MCP サーバーの実行

メインスクリプトは AWS ツールを FastMCP サーバーにまとめ、SSE トランスポートで起動します。サーバーを実行するには、次のコマンドを実行します:

python src/aws-security-mcp-server.py

実行すると、次のように表示されます:

[MCP Server] Listening on 127.0.0.1:5678 (TCP transport)

注:メッセージでは TCP トランスポートに言及していますが、コードではサーバーは SSE トランスポートを使用するように設定されています。

サーバーは受信した MCP リクエストを適切な AWS ツールに振り分けて処理します。

対話型エージェントの実行

このプロジェクトには、MCP サーバーに接続する対話型エージェントのサンプルが含まれています。エージェントを実行するには、次のコマンドを実行します:

python src/aws-demo-agent.py

これにより、次の操作ができる対話型コンソールが起動します:

  • バックグラウンドで実行されるクエリを実行する
  • 複数のタスクを同時に管理する
  • ツール呼び出しのストリーミングをリアルタイムで確認する
  • コマンド履歴とヘルプを利用する

コマンドの例:

red-team> list_security_groups us-east-1
red-team> list_s3_buckets
red-team> analyze_vpc_connections us-east-1
red-team> tasks  # List all running tasks
red-team> help   # Show help information
シンプルなエージェントの使用

よりシンプルな実装として、基本的なエージェントを使用できます:

python src/aws-agent.py
カスタムクライアントでの接続

MCP に準拠した任意のクライアントを使用して、MCP サーバーに接続することもできます。たとえば、Agno の MCPTools を使用する場合:

from agno.agent import Agent
from agno.tools.mcp import MCPTools
from agno.models.ollama import Ollama

# Connect to the MCP server
mcp_tools = MCPTools(url="http://127.0.0.1:8000/sse/", transport='sse')  # Adjust URL as needed for your setup

# Create an agent with the MCP tools
model = Ollama(id="qwen3")
agent = Agent(
    model=model,
    tools=[mcp_tools],
    instructions="You are an AWS security expert."
)

# Run a query
result = agent.run("What VPC connections do I have?")
print(result)

クライアントコードを実行する前に、MCP サーバーが起動していることを確認してください。

プロジェクト構成

aws-mcp-server/
├── README.md
├── requirements.txt  # List of dependencies
├── src/
│   ├── aws-security-mcp-server.py  # MCP server implementation with AWS tools
│   ├── aws-demo-agent.py           # Interactive Agno agent with task management
│   └── aws-agent.py                # Simple agent implementation

貢献

貢献を歓迎します。提案や改善案がある場合は、次の手順に従ってください:

  1. リポジトリをフォークします。
  2. 機能追加またはバグ修正用の新しいブランチを作成します。
  3. 変更内容の詳しい説明を添えて、プルリクエストを送信します。

アーキテクチャ

MCP サーバー

MCP サーバーは FastMCP を使用して構築され、AWS ツールを MCP に準拠したエンドポイントとして公開します。クライアントとのリアルタイム通信には、Server-Sent Events(SSE)トランスポートを使用します。

エージェントアーキテクチャ

このプロジェクトには、2 種類のエージェント実装が含まれています。

  1. 対話型 Agno エージェント(aws-demo-agent.py):

    • Agno フレームワークをベースに構築されています
    • AI 機能にローカルの Ollama モデルを使用します
    • リッチな書式設定に対応した、ブロッキングしない対話型コンソールを備えています
    • タスクの並列実行と管理に対応しています
    • ツール呼び出しと応答をリアルタイムにストリーミングします
    • コマンド履歴とヘルプ機能を備えています
  2. シンプルなエージェント(aws-agent.py):

    • smolagents ライブラリを使用します
    • 基本的なユースケース向けのシンプルな実装です
    • AWS ツールにアクセスするため、MCP サーバーに接続します
    • 注:この実装では MCPClientParameters のインポートが不足しているため、更新が必要な場合があります

ライセンス

すべての方が無料で利用できます!

このプロジェクトは MIT ライセンスのもとでライセンスされています。詳細については、LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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