SQLite Database Demo について
SQLite Database Demoは、FastMCPアプリケーションで非同期SQLiteデータベースを使う方法を示すプロジェクトです。MCPサーバーやクライアントの例を試す開発者向けで、初期化済みのサンプルデータとユーザー取得ツールを備えています。
主な機能
- 01aiosqliteによる非同期データベース操作
- 02データベースとサンプルデータの自動初期化
- 03型安全なデータベースコンテキスト管理
- 04接続ライフサイクルの管理とクリーンアップ
活用シーン
- 01FastMCPでの非同期SQLite利用の学習
- 02MCPツール経由でのユーザーデータ取得テスト
MCP 対応
FastMCPを使ったMCPサーバーの例で、データベースのユーザーを取得する`query_db`ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SQLite データベースのデモ
このプロジェクトでは、FastMCP アプリケーションで非同期処理に対応した SQLite データベースの使い方を紹介します。
特長
aiosqliteを使用した非同期 SQLite データベース操作- サンプルデータを含むデータベースの自動初期化
- 型安全なデータベースコンテキスト管理
- 適切な接続ライフサイクル管理
前提条件
- Python 3.7+
- pip(Python パッケージインストーラー)
インストール
- このリポジトリをクローンします
- 必要な依存関係をインストールします:
pip install -r requirements.txt
プロジェクト構成
server.py:データベースコンテキスト管理を備えた FastMCP サーバーのメイン実装database.py:非同期処理に対応した SQLite データベースの実装demo.db:SQLite データベースファイル(初回起動時に自動作成)
データベーススキーマ
デモデータベースには、次の構造を持つ users テーブルが含まれています:
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL
)
サンプルデータは初回起動時に自動的に挿入されます:
- John Doe([email protected])
- Jane Smith([email protected])
使い方
- サーバーを起動します:
python server.py
-
初回起動時に、サンプルデータを含むデータベースが自動的に初期化されます。
-
query_dbツールを使って、データベースからデータを取得します。
データベース操作
Database クラスには、次のメソッドが用意されています:
connect():新しいデータベース接続を作成し、スキーマを初期化しますquery():すべてのユーザーを取得するサンプルクエリを実行しますdisconnect():データベース接続を閉じます
カスタマイズ
データベーススキーマを変更したり、新しいテーブルを追加したりするには:
database.pyの_init_db()メソッドを編集します- カスタムクエリ用のメソッドを
Databaseクラスに追加します - 新しいメソッドを使用するよう、
server.pyのquery_dbツールを更新します
エラー処理
データベースの実装には、次の機能が含まれています:
- サーバー終了時の接続の自動クリーンアップ
- 適切な非同期コンテキスト管理
- Python の型ヒントによる型安全性
依存関係
- aiosqlite>=0.19.0:非同期 SQLite データベースドライバー
- pandas>=2.0.0:データ操作ライブラリ
- numpy>=1.24.0:数値計算ライブラリ
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。