Ollama MCP データベースアシスタント
OllamaのLLM機能と、モデルコンテキストプロトコル(MCP)を介したPostgreSQLデータベースアクセスを組み合わせたインタラクティブなチャットインターフェースです。データに関する質問を自然言語で投げかけると、AIが実際のSQLクエリに基づいた回答を返してくれます。
特徴
- PostgreSQL データベースへの自然言語インターフェース
- 自動SQLクエリ生成
- スキーマ認識応答
- インタラクティブなチャットインターフェース
- 安全な読み取り専用データベースアクセス
前提条件
- Node.js 16以上
- 実行中のPostgreSQLデータベース
- Ollamaをローカルにインストールして実行
- qwen2.5-coder:7b-instructモデルはOllamaに取り込まれました
設定
- リポジトリをクローンします。
git clone [your-repo-url]
cd [your-repo-name]
- 依存関係をインストールします:
- 必要な Ollama モデルを取得します。
ollama pull qwen2.5-coder:7b-instruct
- プロジェクト ルートに
.env
ファイルを作成します。
DATABASE_URL=postgresql://user:password@localhost:5432/dbname
OLLAMA_MODEL=qwen2.5-coder:7b-instruct # Optional - this is the default
使用法
- チャット インターフェイスを開始します。
- 自然言語でデータについて質問します。
Connected to database. You can now ask questions about your data.
Type "exit" to quit.
What would you like to know about your data? Which products generated the most revenue last month?
Analyzing...
[AI will generate and execute a SQL query, then explain the results]
- アプリケーションを終了するには、「exit」と入力します。
仕組み
- アプリケーションはPostgreSQL MCPサーバーを介してPostgreSQLデータベースに接続します。
- データベーススキーマをロードしてキャッシュします
- 質問するときは:
- スキーマと質問はOllamaに送信されます
- Ollamaは適切なSQLクエリを生成する
- クエリはMCPを通じて実行される
- 結果は解釈のためにオラマに送り返される
- 自然言語による応答を受け取ります
環境変数
変数 | 説明 | デフォルト |
---|
データベースURL | PostgreSQL接続文字列 | 必須 |
OLLAMA_モデル | 使用するオラマモデル | qwen2.5-コーダー:7b-命令 |
安全
- すべてのデータベースアクセスは読み取り専用です
- SQLクエリはSELECT文に制限されます
- データベースの資格情報は .env ファイルで安全に保管されます
発達
搭載コンポーネント:
- タイプスクリプト
- モデルコンテキストプロトコル(MCP)
- オラマ
- PostgreSQL
トラブルシューティング
よくある問題
- 「データベースへの接続に失敗しました」
- .env の DATABASE_URL を確認してください
- PostgreSQLが実行中であることを確認する
- ネットワーク接続を確認する
- 「Ollamaへの接続に失敗しました」
- Ollama が実行中であることを確認する (
ollama serve
) - モデルがインストールされていることを確認します(
ollama list
)
- 「クエリ実行エラー」
- データベースの権限を確認する
- スキーマ内のテーブル/列名を確認する
ライセンス
マサチューセッツ工科大学
貢献
- リポジトリをフォークする
- 機能ブランチを作成する
- 変更をコミットする
- ブランチにプッシュする
- プルリクエストを開く