DatabaseMCP
MCPデータベースインテリジェンスサーバーアーキテクチャ
システム概要
本システムは、Model Context Protocol (MCP) を使用してデータベース機能をAIエージェントに公開します。
MCPサーバーは、以下の橋渡し役として機能します。
AIアシスタント
データベースメタデータ
ストアドプロシージャ
データベース探索ツール
高レベルアーキテクチャ
AIエージェント / MCPクライアント │ ▼ MCPサーバー (FastMCP) │ ├── 探索ツール │ (データベース探索) │ ├── 動的プロシージャツール │ (データベースプロシージャから生成) │ ▼ インテリジェンスエンジン (プロシージャメタデータ + 分類) │ ▼ データベースアクセス層 │ ▼ MySQLデータベース
主要コンポーネント
Related MCP server: MySQL MCP Server
1. MCPサーバー (main.py)
MCPサーバーは FastMCP を使用して作成されています。
責務:
MCPサーバーの初期化
探索ツールの登録
動的プロシージャツールの登録
2. データベースアクセス層 (db.py)
このモジュールはすべてのデータベース通信を管理します。
責務:
データベース接続管理
ストアドプロシージャの実行
メタデータの取得
結果件数の制限の強制
すべてのデータベース操作はこの層を経由します。
3. ツールジェネレーター (tool_generator.py)
このモジュールは、データベースのストアドプロシージャをMCPツールに動的に変換します。
実行手順:
データベースからプロシージャメタデータを読み込む
プロシージャのパラメータを検出する
MCPツール関数を動的に生成する
MCPサーバーにツールを登録する
これにより、システムはデータベースに追加された新しいプロシージャを自動的にサポートできます。
4. インテリジェンスエンジン (intelligence_engine.py)
インテリジェンスエンジンはストアドプロシージャを分析してメタデータを生成します。
機能:
プロシージャの分類
説明文の生成
パラメータ分析
カテゴリ例:
プロシージャパターン | カテゴリ |
GetLinkCount | ネットワーク分析 |
GetWeekData | 時系列分析 |
InterfaceLinkType | インターフェース分析 |
このメタデータは、AIエージェントが各ツールの目的を理解するのに役立ちます。
5. 探索ツール (discovery_tools.py)
探索ツールにより、AIエージェントはデータベース構造を探索できます。
実装済みツール:
list_databases list_tables describe_table
これらのツールは、以下のデータベースメタデータに依存しています。
INFORMATION_SCHEMA
セキュリティアーキテクチャ
安全なデータベース操作を保証するために、いくつかの保護策が実装されています。
キーワード制限
危険なキーワードを含むプロシージャはブロックされます。
例:
DELETE DROP TRUNCATE UPDATE INSERT ALTER
クエリ結果の制限
システムは、設定可能な値を使用して結果サイズを制限します。
MAX_QUERY_ROWS
これにより、大量のデータ抽出を防ぎます。
レート制限
MCPサーバーは、過度な使用を防ぐためにリクエストレート制限を強制します。
制限付きデータベースユーザー
MCPサーバーが使用するデータベースユーザーには、以下の権限のみを付与する必要があります。
SELECT EXECUTE
これにより、本番データの変更を防ぎます。
メタデータソース
システムはMySQLのシステムテーブルからメタデータを取得します。
例:
INFORMATION_SCHEMA.ROUTINES INFORMATION_SCHEMA.PARAMETERS INFORMATION_SCHEMA.TABLES INFORMATION_SCHEMA.COLUMNS
これらのテーブルにより、MCPサーバーはデータベース構造を自動的に理解できます。
AIインタラクションフローの例
AIエージェントとデータベース間のインタラクション例:
list_databases() ↓ list_tables() ↓ describe_table("interface_stats") ↓ GetLinkCount("NodeA")
これにより、AIは分析プロシージャを実行する前にデータベース構造を探索できます。
拡張性
本システムは、追加のデータベースオブジェクトをサポートするように設計されています。
将来の拡張機能:
list_views list_functions list_triggers search_tables explain_query
モジュール式アーキテクチャにより、新しいツールを簡単に追加できます。
結論
このアーキテクチャは、MCPサーバーがどのようにしてデータベース機能をAIシステムに安全に公開できるかを示しています。
主要な設計原則:
• モジュール式アーキテクチャ • 動的ツール生成 • メタデータ駆動型の探索 • 安全なデータベースアクセス
このアプローチにより、安全でスケーラブルなAIとデータベースの統合が可能になります。
詳細なシステム図は docs/ ディレクトリで確認できます。
This server cannot be deployed
Maintenance
Related MCP Connectors
- dataOAuthco.thinair
PostgreSQL, MySQL, and SQL Server in one session. 26 read-only MCP tools for AI agents.
MCP server for building and testing AI agents with multi-model experimentation and insights.
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA high-performance MCP server that enables AI assistants to safely interact with MySQL databases through secure CRUD operations, schema inspection, and parameterized queries with built-in SQL injection prevention.1-
- AlicenseNot gradedqualityDmaintenanceA MySQL MCP server for secure database interaction, enabling schema inspection, query execution, and RBAC via AI coding assistants.1,352 npm5MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that connects AI agents to MySQL databases for schema exploration, data querying, and SQL execution via natural language.2MIT
- AlicenseNot gradedqualityDmaintenanceA production-ready MCP server for MySQL database integration with AI agents, enabling database exploration, CRUD operations, schema management, and performance monitoring through natural language.744 npmMIT