MCP Client について
MCP Clientは、Claude 3.5 Sonnetと対話し、ツールベースのクエリを処理するPythonクライアントです。コマンドラインとChainlit UIを備え、MCP経由でPostgreSQLにアクセスします。
主な機能
- 01Claude 3.5 Sonnetとのチャット
- 02コマンドラインとChainlit UI
- 03MCP経由のPostgreSQLアクセス
- 04PythonとJavaScriptのMCPサーバー
活用シーン
- 01CLIでClaudeと対話
- 02Web UIでのデータベースクエリ
- 03PostgreSQLへのツールベースのクエリ
MCP 対応
PostgreSQL MCPサーバーなどのMCPサーバーに接続し、PythonとJavaScriptの両方のサーバー実装に対応します。
詳細
MCP クライアント
Model Context Protocol (MCP) の Python クライアント実装で、Claude 3.5 Sonnet と統合します。
前提条件
- Python 3.12 以上
- PostgreSQL データベース
- Node.js (PostgreSQL MCP サーバーを実行するため)
uvパッケージマネージャー (推奨) またはpip
インストール
-
リポジトリをクローンします:
-
仮想環境を作成してアクティベートします:
# Create virtual environment
uv venv
# Activate virtual environment
# On Windows:
.venv\Scripts\activate
# On Unix or MacOS:
source .venv/bin/activate
- 依存関係をインストールします
# For python equivalent of:
# Install required packages
uv add mcp anthropic python-dotenv chainlit asyncpg
# or install from requirements.txt
# For node:
npm init
npm install @modelcontextprotocol/server-postgres
- プロジェクトルートに
.envファイルを作成し、Anthropic API キーを追加します:
ANTHROPIC_API_KEY=your_api_key_here
使用方法
クライアントは 2 つのモードで実行できます:
- コマンドラインインターフェース:
uv run client.py <path-to-mcp-server> <database-url>
例:
uv run client.py ./node_modules/@modelcontextprotocol/server-postgres/dist/index.js postgresql://localhost/your_database
- Chainlit を使用した UI 初回セットアップ:
- postgres で
chat_historyという名前のデータベースを作成します init_db.pyを実行してデータベースのテーブルを初期化します。bash python app/init_db.py
Chainlit を起動するには:
chainlit run app/chainlit_app.py
ここで:
<path-to-mcp-server>は MCP サーバーの JavaScript ファイルへのパスです<database-url>は PostgreSQL 接続文字列です
実行中は、コマンドラインインターフェース経由でクライアントと対話できます。クエリを入力し、'quit' と入力して終了します。
機能
- Claude 3.5 Sonnet を使用したインタラクティブなチャットインターフェース
- MCP 経由での PostgreSQL データベース統合
- Python および JavaScript MCP サーバーへの対応
- ツールベースのクエリ処理
開発
プロジェクトは以下を使用しています:
anthropic- Claude API 統合用mcp- Model Context Protocol 実装用python-dotenv- 環境変数管理用
ライセンス
MIT ライセンス
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。