Skip to main content
Glama

DB Agent MCP Server

by webshoten
README.md5.25 kB
# DB Agent MCP Server MySQLデータベースにクエリを実行するMCPサーバーです。 ## セットアップ ### 1. 依存関係のインストール ```bash bun install ``` ### 2. 環境変数の設定 `.env`ファイルを作成し、以下の環境変数を設定してください: ```bash # データベース設定(必須) DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASS=root DB_NAME=appdb # サーバー設定(オプション) PORT=3000 # 認証設定(オプション) AUTH_ENABLED=false # 認証を有効にする場合は true API_KEY=your-secret-api-key # 認証が有効な場合に使用するAPIキー ``` **認証について:** - `AUTH_ENABLED=false`(デフォルト): 認証なしで動作します(開発環境向け) - `AUTH_ENABLED=true`: 認証が有効になります。この場合、`API_KEY`の設定が必須です - 認証が有効な場合、リクエストには以下のいずれかの方法でAPIキーを含める必要があります: - `Authorization: Bearer <API_KEY>` ヘッダー - `Authorization: ApiKey <API_KEY>` ヘッダー - `X-API-Key: <API_KEY>` ヘッダー ### 3. MySQLデータベースの起動 ```bash docker build -t local-mcp-mysql ./docker/mysql docker run -d \ -p 3306:3306 \ --name mcp-mysql \ -e MYSQL_ROOT_PASSWORD=root \ local-mcp-mysql docker exec -it mcp-mysql mysql -uroot -proot appdb ``` #### Dockerコンテナの停止・削除 コンテナを停止する場合: ```bash docker stop mcp-mysql ``` コンテナを停止して削除する場合: ```bash docker stop mcp-mysql docker rm mcp-mysql ``` コンテナを停止せずに削除する場合(強制削除): ```bash docker rm -f mcp-mysql ``` ### 4. MCPサーバーの起動 HTTPサーバーとして起動します: ```bash bun run start ``` デフォルトで`http://localhost:3000/mcp`で起動します。ポートを変更する場合は環境変数`PORT`を設定してください。 ```bash PORT=8080 bun run start ``` **認証について:** - デフォルトでは認証が無効(`AUTH_ENABLED=false`)です - 本番環境では`AUTH_ENABLED=true`と`API_KEY`を設定して認証を有効にしてください ### 5. MCPクライアントの設定 #### Cursorの場合 **認証が無効な場合(開発環境):** Cursorの設定ファイル(`~/.cursor/mcp.json` または設定UI)に以下を追加: ```json { "mcpServers": { "db-agent": { "url": "http://localhost:3000/mcp" } } } ``` **認証が有効な場合(本番環境):** `headers`セクションを使用してAPIキーを指定します。以下のいずれかの方法を使用できます: **方法1: X-API-Keyヘッダーを使用** ```json { "mcpServers": { "db-agent": { "url": "http://localhost:3000/mcp", "headers": { "X-API-Key": "your-secret-api-key" } } } } ``` **方法2: Authorizationヘッダーを使用(Bearer形式)** ```json { "mcpServers": { "db-agent": { "url": "http://localhost:3000/mcp", "headers": { "Authorization": "Bearer your-secret-api-key" } } } } ``` **方法3: Authorizationヘッダーを使用(ApiKey形式)** ```json { "mcpServers": { "db-agent": { "url": "http://localhost:3000/mcp", "headers": { "Authorization": "ApiKey your-secret-api-key" } } } } ``` #### Claude Desktopの場合 **認証が無効な場合(開発環境):** `~/Library/Application Support/Claude/claude_desktop_config.json` に以下を追加: ```json { "mcpServers": { "db-agent": { "url": "http://localhost:3000/mcp" } } } ``` **認証が有効な場合(本番環境):** `headers`セクションを使用してAPIキーを指定します: ```json { "mcpServers": { "db-agent": { "url": "http://localhost:3000/mcp", "headers": { "X-API-Key": "your-secret-api-key" } } } } ``` または ```json { "mcpServers": { "db-agent": { "url": "http://localhost:3000/mcp", "headers": { "Authorization": "Bearer your-secret-api-key" } } } } ``` **重要**: MCPサーバーを起動してから、CursorやClaude Desktopを再起動してください。 ## 使用方法 MCPクライアントから以下の2つのツールを使用してSQLクエリを実行できます。 ### `run_query_readonly` - 読み取り専用クエリ(承認不要) SELECT、SHOW、DESCRIBE、DESC、EXPLAINクエリを実行します。このツールは承認を求めません。 例: - `SELECT * FROM users LIMIT 10;` - `SELECT COUNT(*) FROM sessions;` - `SHOW TABLES;` - `DESCRIBE users;` - `EXPLAIN SELECT * FROM users;` ### `run_query_write` - 書き込みクエリ(承認必要) INSERT、UPDATE、DELETE、CREATE、DROP、ALTERなどの書き込み操作を実行します。このツールはユーザーの承認を求めます。 例: - `INSERT INTO users (name, email) VALUES ('John', 'john@example.com');` - `UPDATE users SET name = 'Jane' WHERE id = 1;` - `DELETE FROM sessions WHERE expired_at < NOW();` - `CREATE TABLE products (id INT PRIMARY KEY, name VARCHAR(255));`

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/webshoten/data_investigator_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server