mcpField
L
Llama MCP Streamlit

Llama MCP Streamlit

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

Llama MCP Streamlit について

Llama MCP Streamlit は Streamlit で構築された AI アシスタントで、LLM バックエンドとして NVIDIA NIM(LLaMa 3.3:70B)または Ollama に接続します。MCP を通じて外部ツールを呼び出し、データの取得や操作を行います。ローカルや自前の環境で MCP ツールを試したい開発者に向いています。

主な機能

  1. 01NVIDIA NIM と Ollama の両方のバックエンドに対応
  2. 02API エンドポイントとキーを .env ファイルで設定
  3. 03MCP による外部ツールのリアルタイム実行
  4. 04Streamlit によるチャットインターフェース
  5. 05Docker によるデプロイ方式

活用シーン

  1. 01Ollama とファイルシステムツールを使ったローカルアシスタントの実行
  2. 02チャット画面からの MCP ツール経由のデータ照会
  3. 03Docker を用いた MCP 対応アシスタントのデプロイ

MCP 対応

本プロジェクトは MCP クライアントであり、NPX または Docker で stdio 経由の MCP サーバー(例: @modelcontextprotocol/server-filesystem)を起動し、チャット中にそのツールを呼び出します。

詳細

Llama MCP Streamlit

このプロジェクトは、Streamlit、NVIDIA NIM の API (LLaMa 3.3:70b)/Ollama、Model Control Protocol (MCP) を使用して構築されたインタラクティブな AI アシスタントです。LLM と対話して MCP 経由でリアルタイム外部ツールを実行し、データを取得し、シームレスにアクションを実行できる会話型インターフェースを提供します。

アシスタントは以下をサポートしています:

  • カスタムモデル選択 (NVIDIA NIM / Ollama)
  • 異なるバックエンド向け API 設定
  • MCP 経由のツール統合 で使いやすさとリアルタイムデータ処理を向上
  • Streamlit による ユーザーフレンドリーなチャットベース体験

📸 スクリーンショット

ホームページスクリーンショット

ツールスクリーンショット

チャットスクリーンショット

チャット (何ができますか?) スクリーンショット


📁 プロジェクト構成

llama_mcp_streamlit/
│── ui/
│   ├── sidebar.py       # UI components for Streamlit sidebar
│   ├── chat_ui.py       # Chat interface components
│── utils/
│   ├── agent.py         # Handles interaction with LLM and tools
│   ├── mcp_client.py    # MCP client for connecting to external tools
│   ├── mcp_server.py    # Configuration for MCP server selection
│── config.py            # Configuration settings
│── main.py              # Entry point for the Streamlit app
.env                      # Environment variables
Dockerfile                # Docker configuration
pyproject.toml            # Poetry dependency management

🔧 環境変数

プロジェクトを実行する前に、.env ファイルを API キーで設定してください:

# Endpoint for the NVIDIA Integrate API
API_ENDPOINT=https://integrate.api.nvidia.com/v1
API_KEY=your_api_key_here

# Endpoint for the Ollama API
API_ENDPOINT=http://localhost:11434/v1/
API_KEY=ollama

🚀 プロジェクトの実行

Poetry を使用する場合
  1. 依存関係をインストール:
    poetry install
    
  2. Streamlit アプリを実行:
    poetry run streamlit run llama_mcp_streamlit/main.py
    
Docker を使用する場合
  1. Docker イメージをビルド:
    docker build -t llama-mcp-assistant .
    
  2. コンテナを実行:
    docker compose up
    

🔄 MCP サーバー設定の変更

使用する MCP サーバーを変更するには、utils/mcp_server.py ファイルを更新してください。 MCP サーバーとして NPX または Docker を使用できます:

NPX サーバー
server_params = StdioServerParameters(
    command="npx",
    args=[
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/path/to/other/allowed/dir"
    ],
    env=None,
)
Docker サーバー
server_params = StdioServerParameters(
    command="docker",
    args=[
        "run",
        "-i",
        "--rm",
        "--mount", "type=bind,src=/Users/username/Desktop,dst=/projects/Desktop",
        "--mount", "type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro",
        "--mount", "type=bind,src=/path/to/file.txt,dst=/projects/path/to/file.txt",
        "mcp/filesystem",
        "/projects"
    ],
    env=None,
)

必要に応じて server_params 設定を変更してセットアップに合わせてください。


📌 機能

  • MCP 経由のリアルタイムツール実行
  • LLM 駆動チャットインターフェース
  • インタラクティブなチャット要素を備えた Streamlit UI
  • 複数 LLM バックエンド (NVIDIA NIM & Ollama) のサポート
  • 簡単なデプロイメント向け Docker サポート

🛠 依存関係

  • Python 3.11+
  • Streamlit
  • OpenAI API (NVIDIA NIM 統合向け)
  • MCP (Model Control Protocol)
  • Poetry (依存関係管理向け)
  • Docker (オプション、コンテナ化されたデプロイメント向け)

📜 ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています。


🤝 貢献

プルリクエストの送信またはイシューの報告をお気軽にしてください!


📬 お問い合わせ

ご質問がある場合は、GitHub Issues 経由でお問い合わせください。


コメント

MCP は初めてですか?

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

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