mcpField
M
MCP-ChatBot

MCP-ChatBot

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

MCP-ChatBot について

MCP-ChatBotは、MCPを使ったLLMアプリケーションを試す人向けの、コンテナ化された天気チャットボットの例です。Streamlitの画面、FastMCPの天気サービス、GPT-4oを組み合わせ、サーバーを追加できる構成です。

主な機能

  1. 01Streamlitチャット画面
  2. 02自然言語での天気検索
  3. 03WeatherAPIからのデータ取得
  4. 04クライアントとサーバーの分離コンテナ
  5. 05拡張可能なMCPサーバー構成

活用シーン

  1. 01都市ごとの現在の天気の確認
  2. 02コンテナ型MCPチャットボットの検証
  3. 03サンプルへのサービスバックエンド追加

MCP 対応

FastMCPサーバーがMCP経由でStreamlitクライアントに天気情報の取得機能を提供します。追加のMCPサーバーを接続できる構成です。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

MCP-ChatBot

MCP(Modular Capability Protocol)を使用して、複数のサービスバックエンドと連携する多用途のチャットボットアプリケーションです。

MCP Chatbot License Python Docker

概要

MCP-ChatBotは、Modular Capability Protocol(MCP)を活用して、LLMが外部サービスとやり取りできるようにするコンテナ化アプリケーションです。この実装には、天気サービスのバックエンドと、自然言語で天気情報を問い合わせられるStreamlitベースのフロントエンドが含まれています。

特長

  • コンテナ化アーキテクチャ:MCP サーバーとクライアントアプリケーション用の個別コンテナ
  • 天気サービスとの連携:WeatherAPIを使用したリアルタイムの天気データ
  • Streamlit UI:チャットボットとやり取りするための、すっきりとしたレスポンシブなユーザーインターフェイス
  • 拡張性の高い設計:追加機能に対応するMCP サーバーを追加できる設計
  • GPT-4oとの連携:自然言語理解にOpenAIのGPT-4oモデルを使用

アーキテクチャ

アプリケーションは、次の2つの主要コンポーネントで構成されています。

  1. MCP サーバー:天気データの取得を処理するFastMCPベースのサービス
  2. Streamlitクライアント:チャットボットとやり取りするためのウェブベースのUI

はじめに

前提条件
  • DockerとDocker Compose
  • WeatherAPIキー(WeatherAPIで登録してください)
  • OpenAI APIキー(OpenAIで登録してください)
インストール
  1. リポジトリをクローンします。
git clone https://github.com/yourusername/MCP-ChatBot.git
cd MCP-ChatBot
  1. サンプルを基に.envファイルを作成します。
cp .env.example .env
  1. .envファイルを編集し、APIキーを追加します。
PYTHONUNBUFFERED=1
OPENAI_API_KEY=your_openai_api_key_here
WEATHER_API_KEY=your_weather_api_key_here
  1. Docker Composeを使用してアプリケーションを起動します。
docker-compose up --build
  1. http://localhost:8501でStreamlit UIにアクセスします。

使用方法

アプリケーションの起動後、Streamlitインターフェイスからチャットボットを利用できます。

  1. テキスト入力欄に、天気について自然言語で質問を入力します。
  2. 質問の例:
    • 「ニューヨークの天気はどうですか?」
    • 「東京は今、どれくらい暑いですか?」
    • 「ロンドンの天気について教えてください」

アプリケーションの拡張

MCP サーバーの追加
  1. serversディレクトリに新しいサーバーファイルを作成します。
  2. docker-compose.ymlファイルに新しいサービスを追加します。
  3. エージェントの設定に新しいサーバーを含めるよう、client.pyを更新します。

client.pyに新しいサーバーを追加する例:

server_1 = MCPServerHTTP(url="http://mcp_server:8001/sse")
server_2 = MCPServerHTTP(url="http://new_server:8002/sse")  # New server

return Agent("openai:gpt-4o", mcp_servers=[server_1, server_2])

開発

プロジェクト構成
MCP-ChatBot/
├── .env.example             # Example environment variables
├── .gitignore               # Git ignore file
├── client.py                # Streamlit client application
├── docker-compose.yml       # Docker Compose configuration
├── Dockerfile.client        # Dockerfile for Streamlit client
├── Dockerfile.server        # Dockerfile for MCP server
├── LICENSE                  # MIT license
├── README.md                # Project documentation
└── servers/                 # MCP server implementations
    └── server.py            # Weather service implementation
技術スタック
  • FastMCP:MCP サーバーを作成するためのフレームワーク
  • Streamlit:UI用のウェブフレームワーク
  • Pydantic-AI:LLMとのやり取りを行うエージェントシステム
  • Docker:コンテナ化プラットフォーム
  • OpenAI GPT-4o:自然言語処理用のLLM

トラブルシューティング

よくある問題
  1. 接続に失敗する:すべてのサービスが起動していることを確認してください。クライアントには再試行の仕組みがありますが、失敗する場合はアプリケーションを再起動してください。

  2. APIキーのエラー:有効なAPIキーが.envファイルに追加されていることを確認してください。

  3. Dockerネットワークの問題:コンテナ間で通信できない場合は、Dockerネットワークの設定を確認し、サービス名がコード内の名前と一致していることを確認してください。

ライセンス

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

謝辞

  • MCP サーバーの実装にはFastMCPを使用しています。
  • フロントエンドのフレームワークにはStreamlitを使用しています。
  • 天気データにはWeatherAPIを使用しています。

Murali Anand作成 © 2025

コメント

MCP は初めてですか?

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

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