MCPDatabases について
MCPDatabasesは、PostgreSQLのデータ管理とSQLiteへのテーブル・レコード移行を行うPythonサーバーです。CRUD、テーブル管理、カスタムクエリのSQL操作を公開します。
主な機能
- 01PostgreSQLレコードの照会と変更
- 02テーブルの作成、変更、削除
- 03カスタムSQLクエリの実行
- 04PostgreSQLからSQLiteへテーブルとデータを移行
活用シーン
- 01MCPツールでデータベースのCRUD操作
- 02PostgreSQLのテーブル構造を変更
- 03分析や保守のためにSQLクエリを実行
- 04PostgreSQLのテーブルとデータをSQLiteへコピー
MCP 対応
レコードの照会・変更、テーブル管理、SQL実行のためのデータベースツールを公開します。設定例ではPostgreSQLとSQLiteへの接続を示しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🗄️ データベースプロジェクト(PostgreSQL と SQLite の管理)
⚡ Server-Sent Events(SSE)に対応した、このプロジェクトの代替バージョンもあります: GitHub の mcpDataBasesSSE
このプロジェクトは、PostgreSQL と SQLite のデータベース間でデータを管理および移行するために設計されており、データベースエンジン間の柔軟性を必要とするアプリケーションで、CRUD 操作と管理を簡単に実行できます。
📁 主な構成
- main.py:🖥️ PostgreSQL データベースのテーブルに対するクエリ、挿入、更新、削除、変更を行うツールを備えた MCP サーバー。
- connection.py:🔗 PostgreSQL データベースへの接続を管理します。
- migrate_postgres_to_sqlite.py:🔄 PostgreSQL から SQLite にすべてのテーブルとそのデータを移行するスクリプト。
- ecommerce.db:🗃️ 移行によって生成される SQLite データベース(任意)。
⚙️ 機能
- CRUD 操作:➕ PostgreSQL データベースのテーブルでレコードを作成、🔎 読み取り、✏️ 更新、❌ 削除します。
- テーブル管理:🏗️ テーブルの作成、🛠️ 変更、🗑️ 削除を簡単に行えます。
- データ移行:🔄 PostgreSQL と SQLite の間で構造とデータを自動的に転送します。
- 高度なクエリ:🧮 分析やメンテナンスのために、カスタム SQL クエリを実行します。
🚀 使用例
1. MCP サーバー(main.py)
- MCP サーバーを実行して、データベース管理ツールを公開します:
python3 main.py - 使用可能なツール:
- 🔎
query_db(query):SELECT クエリを実行して結果を返します。 - ➕
insert_db(query):INSERT 文を実行します。 - ✏️
update_db(query):UPDATE 文を実行します。 - ❌
delete_db(query):DELETE 文を実行します。 - 🏗️
create_table(query):CREATE TABLE 文を実行します。 - 🛠️
alter_table(query):ALTER TABLE 文を実行します。 - 🗑️
drop_table(query):DROP TABLE 文を実行します。
- 🔎
2. データベース間のデータ移行
- 移行スクリプトを実行して、PostgreSQL から SQLite にすべてのテーブルとデータをコピーします:
python3 migrate_postgres_to_sqlite.py - スクリプトを調整して、双方向または異なるスキーマ間でデータを移行できます。
3. CRUD 操作の例
- レコードの作成: 📝
INSERT INTO users (email, password) VALUES ('[email protected]', 'secret'); - レコードの読み取り: 🔍
SELECT * FROM products WHERE is_active = TRUE; - レコードの更新: 🔄
UPDATE categories SET name = 'New Technologies' WHERE id = 1; - レコードの削除: 🚮
DELETE FROM carts WHERE created_at < '2024-01-01';
📊 MCP の設定(mcp_config.json または claude_desktop_config.json)
MCP ツールが正しく動作するように、設定ファイル(例:~/.codeium/windsurf/mcp_config.json または ~/.config/Claude/claude_desktop_config.json)で各サービスを定義します。例:
{
"SqliteManagement": {
"command": "/home/slendy/MCPProjects/DataBase/.venv/bin/python",
"args": [
"/home/slendy/MCPProjects/DataBase/main.py",
"--engine", "sqlite",
"--url", "sqlite:////home/slendy/MCPProjects/DataBase/ecommerce.db"
]
},
"PostgressManagement": {
"command": "/home/slendy/MCPProjects/DataBase/.venv/bin/python",
"args": [
"/home/slendy/MCPProjects/DataBase/main.py",
"--engine", "postgresql",
"--url", "postgresql://user:password@localhost:5432/ecommerce"
]
}
}
- 環境に合わせてパス、認証情報、ポートを変更してください。
- PostgreSQL のデフォルトのポートは 5432 です。そのポートですでにデータベースを使用している場合は、別のポート(例:5433)を指定できます。
- 設定ファイルに実際のパスワードを記載しないでください。
userとpasswordを適切な値に置き換えてください。 - 他のエンジンやデータベース用のサービスを追加できます。
- ブロック名(例:
SqliteManagement)が MCP ツールの識別子になります。
📈 依存関係
- Python 3.8+
- psycopg2-binary
- sqlite3
- PostgreSQL(サーバーと設定済みデータベース)
📝 注意事項
- 上記の例に従って、
mcp_config.json(またはclaude_desktop_config.json)ファイルで MCP サービスを適切に設定してください。 - また、環境とデータベースに合わせて、
connection.pyの接続認証情報も設定してください。 - データベース構造を変更した後は、接続の問題を避けるために MCP サーバーを再起動してください。
- 必要に応じて、スクリプトを調整して他のカタログを移行または管理できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。