mcpField
F
Flask Webapplicatie met LLM-integratie en MCP-tools

Flask Webapplicatie met LLM-integratie en MCP-tools

github.com/fbeunderチャットアプリ086 週間前に更新

Flask Webapplicatie met LLM-integratie en MCP-tools について

このFlaskウェブアプリは、ブラウザーからOpenAI GPT-3.5またはAnthropic Claude 2にプロンプトを送信する画面を提供します。Brave SearchとGitHubのMCPサーバーを管理し、そのコンテキストを追加したプロンプトを確認できます。

主な機能

  1. 01ブラウザーで使うプロンプト画面
  2. 02OpenAI GPT-3.5またはAnthropic Claude 2の選択
  3. 03Brave SearchとGitHubのMCPサーバーの起動と停止
  4. 04ツールのコンテキストをプロンプトに自動追加
  5. 05追加後のプロンプト全体の表示

活用シーン

  1. 01ウェブ画面から選択したモデルに質問
  2. 02送信前にウェブ検索のコンテキストを追加
  3. 03モデルへのリクエストにGitHub検索のコンテキストを含める
  4. 04ツールによるプロンプトの変更内容を確認

MCP 対応

画面からBrave SearchとGitHubのMCPサーバーを起動・停止できます。サーバーが有効な場合、選択したモデルへの送信前にツールのコンテキストがプロンプトへ追加されます。

詳細

LLM統合とMCPツールを備えたFlask Webアプリケーション

このFlask Webアプリケーションを使用することで、ユーザーは以下のことができます:

  • シンプルなWebインターフェース経由でLLMモデル (OpenAIおよびAnthropic) にアクセスする
  • プロンプトを入力し、回答を受け取る
  • MCPサーバー (Model Context Protocol) をGitHubおよびBrave Searchで起動および停止する
  • プロンプトをLLMに送信する前に、これらのツールからのコンテキストで自動的にプロンプトを拡張する

機能

  • LLMモデル選択: OpenAI GPT-3.5とAnthropicClaude 2の間で選択できます
  • プロンプト入力: 質問またはプロンプトを入力して、選択したモデルで回答を得ます
  • MCPツール管理: Webインターフェース上から外部ツール (Brave SearchおよびGitHub) を起動および停止します
  • コンテキスト拡張: アプリケーションはアクティブなツールからの関連情報でプロンプトを自動的に拡張します
  • 完全なプロンプト表示: 追加されたコンテキストを含む完全なプロンプトを確認できます

インストール

必要な環境
  • Python 3.7以上
手順
  1. リポジトリをクローンする

    git clone https://github.com/Fbeunder/MCP_FLASK.git
    cd MCP_FLASK
    
  2. 仮想環境を作成する (推奨)

    # Windows
    python -m venv venv
    venv\Scripts\activate
    
    # macOS/Linux
    python3 -m venv venv
    source venv/bin/activate
    
  3. 必要なパッケージをインストールする

    # Aanbevolen: installeer alle afhankelijkheden via requirements.txt
    pip install -r requirements.txt
    
    # Alternatief: installeer alleen de specifieke pakketten die je nodig hebt
    pip install flask requests
    
    # Voor OpenAI model-toegang
    pip install openai
    
    # Voor Anthropic model-toegang
    pip install anthropic
    
    # Voor .env bestandsondersteuning
    pip install python-dotenv
    
  4. API キーを設定する

    APIキーは環境変数または .env ファイルで設定できます。

    オプション 1: .env ファイルを作成する

    .env.example ファイルをコピーしてカスタマイズします:

    # Windows
    copy .env.example .env
    
    # macOS/Linux
    cp .env.example .env
    

    その後、.env ファイルを編集してAPIキーを入力します。

    オプション 2: 環境変数を設定する

    以下の環境変数を設定します:

    • OPENAI_API_KEY: OpenAI APIキー (GPTモデル用)
    • ANTHROPIC_API_KEY: Anthropic APIキー (Claudeモデル用)
    • BRAVE_API_KEY: Brave Search APIキー (Brave Search MCPサーバー用)
    • GITHUB_TOKEN: GitHub Personal Access Token (オプション、より高い制限用)

    例えばLinux/macOSの場合:

    export OPENAI_API_KEY="jouw-openai-api-sleutel"
    export ANTHROPIC_API_KEY="jouw-anthropic-api-sleutel"
    export BRAVE_API_KEY="jouw-brave-api-sleutel"
    export GITHUB_TOKEN="jouw-github-token"
    

    またはWindowsの場合:

    set OPENAI_API_KEY=jouw-openai-api-sleutel
    set ANTHROPIC_API_KEY=jouw-anthropic-api-sleutel
    set BRAVE_API_KEY=jouw-brave-api-sleutel
    set GITHUB_TOKEN=jouw-github-token
    

使用方法

アプリケーションを起動する

Flask アプリを起動します:

python app.py

アプリケーションはデフォルトで http://localhost:5000 で動作します。

Web インターフェースで作業する
  1. Web インターフェースをブラウザーで開く: http://localhost:5000

  2. MCPツールを起動する (オプション):

    • 「Brave Searchを起動」をクリックしてBrave Searchツールを起動します
    • 「GitHubを起動」をクリックしてGitHubツールを起動します
  3. プロンプトを入力する:

    • ドロップダウンリストから目的のLLMモデルを選択します
    • テキストボックスに質問またはプロンプトを入力します
    • 「AI に送信」をクリックします
  4. 回答を確認する:

    • AIモデルの回答が表示されます
    • オプションで「コンテキスト付き完全なプロンプトを表示」をクリックして、追加のコンテキストがどのように追加されたかを確認できます
MCP サーバー

アプリケーションは、インターフェース上から自動的に起動できる2つのMCPサーバーを使用します:

  • Brave Search MCPサーバー: ポート5001で実行され、Web検索機能を提供します
  • GitHub MCPサーバー: ポート5002で実行され、GitHub検索機能を提供します

これらのサーバーがアクティブな場合、これらのツールからのコンテキストがプロンプトに自動的に追加されます。

トラブルシューティング

仮想環境の問題

Flaskなどのモジュールがインストールされているはずなのに、モジュールが見つからないというエラーメッセージが表示される場合、これは仮想環境の問題に関連している可能性があります。これを解決するためのいくつかの手順は以下の通りです:

Windows仮想環境の問題
  1. 仮想環境が有効化されているか確認:

    新しいターミナルセッションごとに仮想環境を有効化する必要があります:

    venv\Scripts\activate
    

    コマンドプロンプトの開始時に (venv) が表示されるはずです。

  2. 使用されているPython実行ファイルを確認:

    where python
    

    最初のパスは仮想環境内の python.exe を指していなければなりません (例: \path\to\project\venv\Scripts\python.exe)。

  3. Windows での subprocess の問題:

    最新バージョンのアプリケーションは、メインアプリケーションと同じPython実行ファイルを MCP サーバーの起動に自動的に使用するようになっており、仮想環境の問題を防ぎます。

Linux/macOS仮想環境の問題
  1. 仮想環境が有効化されているか確認:

    source venv/bin/activate
    

    コマンドプロンプトの開始時に (venv) が表示されるはずです。

  2. 使用されているPython実行ファイルを確認:

    which python
    

    パスは仮想環境内の python を指していなければなりません (例: /path/to/project/venv/bin/python)。

ModuleNotFoundError: No module named 'flask'

アプリケーションまたは MCP サーバーの起動時にこのエラーが表示される場合は、以下を試してください:

  1. インストールを確認:

    pip list | grep flask
    

    リスト内に Flask が表示されるはずです。

  2. Flask を再インストール:

    pip uninstall flask
    pip install flask
    
  3. 実行時に絶対パスを使用:

    # Vind het volledige pad naar Python in je virtuele omgeving
    # Windows
    echo %VIRTUAL_ENV%\Scripts\python.exe
    
    # Linux/macOS
    echo $VIRTUAL_ENV/bin/python
    
    # Gebruik dit pad om de applicatie te starten
    /volledig/pad/naar/venv/bin/python app.py
    
  4. PYTHONPATH を確認:

    場合によっては、PYTHONPATH 環境変数が破損していることがあります:

    # Windows
    echo %PYTHONPATH%
    
    # Linux/macOS
    echo $PYTHONPATH
    

    プロジェクトに適切でない値がある場合は、一時的にクリアすることを検討してください:

    # Windows
    set PYTHONPATH=
    
    # Linux/macOS
    unset PYTHONPATH
    
その他のパッケージ関連エラー

その他の ModuleNotFoundError メッセージが表示される場合は、以下を確認してください:

  • すべてのパッケージが pip install -r requirements.txt 経由でインストールされているか
  • Python 環境が正しく設定されているか
  • 古いまたは互換性のないパッケージのバージョンをインストールしていないか

Model Context Protocol (MCP)

MCP (Model Context Protocol) は、AI モデルが標準化されたサーバーインターフェース経由で外部リソースと安全に相互作用するためのオープンプロトコルです。このアプリケーションでは、MCP サーバーは以下の目的で使用されます:

  1. ユーザープロンプトに基づいて追加コンテキストを収集する
  2. このコンテキストを LLM に送信する前にプロンプトに追加する
  3. 最新または特定の情報で応答を充実させる

注記

  • MCP サーバーの実装はデモンストレーション目的のため簡略化されています
  • 本番運用では、より良いエラー処理とセキュリティが推奨されます
  • アプリケーションは各サービス (OpenAI、Anthropic、Brave Search) の API キーが必要です

ライセンス

MIT

コメント

MCP は初めてですか?

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

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