ClaudeのModel Context Protocol (MCP) を使いたいのでローカルMCPサーバーを構築する手順-SQLite連携
AIツールの進化はXを通じて日々情報に触れるようにしています。何かコマンド一つでWEBアプリが出来上がったり、仕事の効率化に役立ちそうなものばかりで、すごいです✨
Claudeは普段少し使っているくらいで、それ自体もまだ使いこなせてないですが、
今回は、何やらいま話題になっていて、便利ということだったので、ClaudeのModel Context Protocol (MCP)を理解するために触ってみることにしました。
Anthropic社のModel Context Protocol(MCP)は、AIアシスタントをさまざまなデータソースに接続するためのオープンスタンダードです。これにより、AIシステムがコンテンツリポジトリ、ビジネスツール、開発環境などのデータにアクセスし、より適切な応答を生成できるようになります。
構築手順は公式情報を参考にして進めます。今回のクイックスタートでは、ClaudeからローカルのSQLiteデータベースに接続して、Claudeでやりとりを行いながらSQLiteとも連携するというものです。
SQLがわからなくても、データベース内にデータを自由に追加したり、読み込んだりできます。データベース内の格納されているデータを根拠に難しい統計分析などハードルが高いことも行えるということのようです。イメージ湧いてませんが、触りながら把握していきましょう。
手順を進めるにあたって前提を記載しておきます。
あらかじめ準備しておく必要があるもの
・Claude Desktopの最新バージョンがインストールされている
・Pythonパッケージ管理ツール「uv (0.4.18 以上)」
・「Git」
・「SQLite」
サンプルデータベースの作成
SQLiteを使用して、テスト用のデータベースを作成します。以下のコマンドを実行します。
sqlite3 ~/test.db <<EOF
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT,
price REAL
);
INSERT INTO products (name, price) VALUES
('Widget', 19.99),
('Gadget', 29.99),
('Gizmo', 39.99),
('Smart Watch', 199.99),
('Wireless Earbuds', 89.99),
('Portable Charger', 24.99),
('Bluetooth Speaker', 79.99),
('Phone Stand', 15.99),
('Laptop Sleeve', 34.99),
('Mini Drone', 299.99),
('LED Desk Lamp', 45.99),
('Keyboard', 129.99),
('Mouse Pad', 12.99),
('USB Hub', 49.99),
('Webcam', 69.99),
('Screen Protector', 9.99),
('Travel Adapter', 27.99),
('Gaming Headset', 159.99),
('Fitness Tracker', 119.99),
('Portable SSD', 179.99);
EOF
Claude Desktopの設定
~/Library/Application Support/Claude/claude_desktop_config.json
を開き、以下の設定を追加します。
自分の場合は、新規作成しました。(※YOUR_USERNAME
は、自身の環境で置き換え)
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/Users/YOUR_USERNAME/test.db"]
}
}
}
ファイルを保存し、Claude Desktop を再起動します。
動作確認
次のプロンプトを Claude Desktop に送信します。
私の SQLite データベースに接続して、利用可能な製品とその価格を教えてもらえますか?
接続できたようです🎉
このすごさを理解するため、日々アップデートしていきます♻️
今回は、いったん[Claude]⇔[ローカルのSQLite]接続まで🚧
おまけ
これって何がすごいの?
Claudeのような大規模言語モデル(LLM)がローカルのSQLiteデータベースに接続できるようになることで、SQLやデータベースの専門知識がなくても、以下のような高度なデータ操作や分析が誰でも可能になります。このような機能は、データの民主化や生産性の向上において革命的と言えるでしょう。
革命的な理由とその影響
1. SQLの専門知識が不要
- 自然言語で「売上が最も高い月を教えて」「今年の平均購入価格は?」と質問するだけで、内部的にSQLクエリを生成して回答が得られます。
- データベース操作のハードルが劇的に下がり、非技術者でも簡単にデータを活用可能。
2. 迅速なデータ分析
- これまでエンジニアやデータサイエンティストのサポートが必要だったデータ抽出や統計分析が、チャット形式で瞬時に完了。
- 例: 「カテゴリーごとの売上の割合を円グラフで見せて」と入力すれば、適切なクエリとグラフ生成が自動化。
3. インタラクティブなデータ探索
- 質問の流れで新しい分析を即座に行える。
- 例: 「このデータを期間別に比較して」「売上が落ち込んでいる地域は?」など。
- チャット形式なので結果を確認しながら次の指示を出せる。
4. 教育の場での活用
- SQLやデータ分析を学ぶ際のシミュレーターとしても有用。質問を繰り返す中で、SQLやデータ構造の理解が深まる。
5. 中小企業や個人の利便性向上
- データベースを扱う専任のIT担当がいなくても、経営データの活用が進む。
- 小規模事業者が売上データを分析し、より迅速な意思決定を行える。
可能性をさらに広げる次のステップ
1. 自動レポート生成
- 「毎月自動で売上データのレポートを作成してメールで送信して」といった自動化も可能になる。
2. 可視化ツールとの連携
- 生成されたデータを基に、グラフやダッシュボードをリアルタイムで作成。
- 例えば、
Matplotlib
やTableau
と連携することで視覚的なデータ分析が強化。
3. 複雑な分析
- 自然言語で「時系列予測をして」や「このデータに基づいて将来の需要を予測」といった高度なデータサイエンス機能も、AIと統計ライブラリを活用して実現可能。
4. ドメイン知識と組み合わせ
- 例: 医療データで患者の治療傾向を分析したり、ECサイトの顧客購入行動を深掘りしたりと、特定分野に特化した活用。
潜在的な課題
- データの信頼性
- AIの応答は正確さがSQLクエリの生成やデータの整合性に依存します。意図せぬミスや誤解が発生する可能性も。
- セキュリティ
- AIが接続するデータベースの権限設定やアクセス制御が不十分だと、データ漏洩のリスクがある。
- スケーラビリティ
- 大量データや高負荷なクエリ処理への対応が必要な場合、SQLiteの限界に注意。
まとめ
ClaudeをローカルのSQLiteデータベースに接続することで、データの活用方法が大きく広がります。特に、非エンジニアが高度なデータ分析を行える点は、データ分析の民主化において革命的な進展です。
「人がデータに合わせる」のではなく、「データが人に寄り添う」時代がさらに加速すると言えるでしょう!
データが人に寄り添う・・・
データが単なる数字の羅列から、人々の行動や感情を理解し、個々のニーズに応えるインテリジェントな存在へと進化しつつあります。これは単なるデジタル革命ではなく、テクノロジーと人間性の新しい共生の形を示しているのではないでしょうか。
そう、それを言いたかった。。。
今回はSQLiteに接続したけど、いろいろなサービスと接続できるようで、次回は、Notionにもトライしてみようと思っています。
↓↓↓↓↓↓
ん?これすごない。
— ParkLabo|ニッチなAI活用発信する人 (@Park_AI362489) December 1, 2024
Claude×Notionの連携
話題のMCPパワーでClaudeで書いた文章が自動でNotionに反映できた。
ClaudeからデータベースをNotionに作成して、その中身もClaudeからジロジロ覗けるわけやね。
なんだかPC内が一つのAIに統合されていくような。。 pic.twitter.com/HyMz0vuxax