Skip to main content
Glama

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ツールに動的に変換します。

実行手順:

  1. データベースからプロシージャメタデータを読み込む

  2. プロシージャのパラメータを検出する

  3. MCPツール関数を動的に生成する

  4. 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/ ディレクトリで確認できます。

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A MySQL MCP server for secure database interaction, enabling schema inspection, query execution, and RBAC via AI coding assistants.
    1,352 npm
    5
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that connects AI agents to MySQL databases for schema exploration, data querying, and SQL execution via natural language.
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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 npm
    MIT