Llama MCP Streamlit について
Llama MCP Streamlit は Streamlit で構築された AI アシスタントで、LLM バックエンドとして NVIDIA NIM(LLaMa 3.3:70B)または Ollama に接続します。MCP を通じて外部ツールを呼び出し、データの取得や操作を行います。ローカルや自前の環境で MCP ツールを試したい開発者に向いています。
主な機能
- 01NVIDIA NIM と Ollama の両方のバックエンドに対応
- 02API エンドポイントとキーを .env ファイルで設定
- 03MCP による外部ツールのリアルタイム実行
- 04Streamlit によるチャットインターフェース
- 05Docker によるデプロイ方式
活用シーン
- 01Ollama とファイルシステムツールを使ったローカルアシスタントの実行
- 02チャット画面からの MCP ツール経由のデータ照会
- 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 を使用する場合
- 依存関係をインストール:
poetry install - Streamlit アプリを実行:
poetry run streamlit run llama_mcp_streamlit/main.py
Docker を使用する場合
- Docker イメージをビルド:
docker build -t llama-mcp-assistant . - コンテナを実行:
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 経由でお問い合わせください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。