mcpField
O
OpenStack MCP + Agent PoC

OpenStack MCP + Agent PoC

ローカル
github.com/AkrogAI・エージェント473 週間前に更新

OpenStack MCP + Agent PoC について

OpenStack MCP + Agent PoCは、OpenStack MCPサーバーと基本的なエージェントを試す概念実証です。OpenStack API仕様からコンポーネント別のMCPサーバーを生成し、LLM経由で環境を照会します。エージェントに会話メモリーはありません。

主な機能

  1. 01OpenAPI仕様からMCPサーバーを生成
  2. 02OpenStackコンポーネント別にサーバーを分割
  3. 03LLM経由で環境を照会
  4. 04有効にするREST APIパスを限定

活用シーン

  1. 01OpenStack環境の情報を照会
  2. 02Nova flavorの一覧を確認

MCP 対応

mcp-openapiを使い、フィルター済みのOpenStack OpenAPI仕様から複数のMCPサーバーを起動し、付属エージェントがLLM経由で呼び出します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

OpenStack MCP + Agent PoC

このリポジトリには、OpenStack MCP サーバーと、それをテストするための非常に基本的なエージェント用コンパニオンプログラムを実行するコードと手順が含まれています。

この PoC では、次の方法を採用しています。

  • OpenStack の codegenerator プロジェクト(openstack-code-generator)を使って、OpenStack の OpenAPI 仕様を生成します。

  • mcp-openapi プロジェクトを使って、OpenStack の各コンポーネントの OpenAPI 仕様全体をフィルタリングしたものから、それぞれのコンポーネント用の MCP サーバーを起動します。

  • agent のコードを使って、LLM 経由で MCP サーバーとやり取りします。

すぐにテストするだけなら、これらすべてを行う必要はありません。QuickStart ガイドに従うだけで実行できます。ただし、別のことをしたい場合は、実行方法ガイドを確認する必要があります。

QuickStart

実行には OpenStack デプロイメントと LLM へのアクセスが必要です。

また、uv パッケージマネージャーも必要です。インストールされていない場合は、sudo dnf install uv でインストールできます。

ターミナルを 2 つ使用します。1 つは MCP サーバー用、もう 1 つはエージェント用です。

このリポジトリをクローンする

実行に必要な最小限の外部プロジェクトのみを含めて、このリポジトリをクローンします。

$ git clone --shallow-submodules \
  --recurse-submodules=mcp-openapi \
  https://github.com/Akrog/mcp-openstack.git

$ cd mcp-openstack
MCP サーバーを実行する

まず MCP サーバーを設定します。そのために servers.yaml ファイルを編集し、<NOVA_PUBLIC_URL>、<CINDER_PUBLIC_URL>、<GLANCE_PUBLIC_URL> のプレースホルダーを、クラスターの値に置き換えます。

モデルのコンテキストウィンドウを超えるほど多くのツールが生成されたり、ハルシネーションが起きたりするのを避けるため、有効にする REST API パスが一部に限られていることがわかります。

これでサーバーを実行できます。

$ cd mcp-openapi

$ uv run main.py --config ../servers.yaml

このターミナルでサービスを実行したままにして、別のターミナルに移ります。

エージェントを実行する

別のターミナルで agent ディレクトリに移動します。

$ cd agent
OpenStack クライアントの設定

次に、ドキュメントで説明されている標準的な場所のいずれかで、OpenStack クライアントの設定を利用できることを確認します。

  • agent/
  • ~/.config/openstack/

OSP 18 クラウドを実行している場合は、次のコマンドで設定を取得できます。

$ oc cp openstackclient:/home/cloud-admin/.config/openstack/clouds.yaml ./clouds.yaml
$ oc cp openstackclient:/home/cloud-admin/.config/openstack/secure.yaml ./secure.yaml 
LLM の設定

使用する OpenAI LLM エンドポイントのシークレット/トークンを記載した llm.token ファイルを作成します。

次に agent.json ファイルを編集し、<LLM_URL> プレースホルダーを LLM のアドレスに置き換え、<MODEL> を使用するモデルに置き換えます。たとえば Anthropic の場合は、次のようになります。

{
  "base_url": "https://api.anthropic.com/v1",
  "model": "claude-3-5-haiku-20241022",
  < ... >
}
エージェントを実行する

あとはエージェントを起動するだけです。

$ uv run main.py
試してみる

これで、デプロイメントについて質問し、MCP サーバーのターミナルで REST API 呼び出しを確認できます。

たとえば、nova のフレーバーを取得するには、次のようにします。

$ uv run main.py
LLM: claude-3-5-haiku-20241022 @ https://api.anthropic.com/v1 Tools: 46
>>> What are my flavors?

エージェントにはメモリがないため、各プロンプトは LLM にとって新しいプロンプトになることに注意してください。

コメント

MCP は初めてですか?

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

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