loading…
Search for a command to run...
loading…
A local development MCP server that exposes MySQL databases to VSCode and Copilot CLI with read-only SELECT queries and INSERT/UPDATE operations. It provides se
A local development MCP server that exposes MySQL databases to VSCode and Copilot CLI with read-only SELECT queries and INSERT/UPDATE operations. It provides secure, schema-specific database access for development environments only.
FO MySQL データベースを VSCode(および Copilot CLI)に公開する、ローカル開発用 MCP サーバーです。query(SELECT 専用)と execute(INSERT / UPDATE 専用)の 2 つのツールを提供します。
本サーバーはローカル開発専用です。本番環境にデプロイしたり、本番 DB に接続したりしないでください。
デフォルト値は src/main/resources/application.yml と揃えています。
| 項目 | デフォルト | 環境変数での上書き |
|---|---|---|
| host | localhost |
FO_DB_HOST |
| port | 3306 |
FO_DB_PORT |
| user | root |
FO_DB_USER |
| password | admin |
FO_DB_PASS |
コネクションプールは スキーマ非依存 で、デフォルトのデータベースにはバインドしません。呼び出しごとに schema パラメータでスキーマを指定するか、oa.t_xxx のような完全修飾名を使用してください。許可されているスキーマ: fo、oa、bo、cm、nepro。
cd mcp-server
npm install
npm run build
ビルド後は、MCP クライアント(VSCode / Copilot CLI)を再起動して設定を読み直してください。
再ビルド不要で反復開発したい場合:
npm run dev
query — 読み取り専用 SELECT{
"sql": "SELECT id, name FROM m_article WHERE id = ?",
"params": [123],
"schema": "fo" // 省略可
}
戻り値:
{
"schema": "fo",
"rowCount": 1,
"truncated": false,
"maxRows": 1000,
"fields": [{ "name": "id", "type": 3 }, { "name": "name", "type": 253 }],
"rows": [{ "id": 123, "name": "..." }]
}
制約事項:
SELECT で始まる必要あり(v1 では CTE / WITH は未対応)truncated: true の場合は、それ以上の行が存在することを示しますexecute — INSERT または UPDATE{
"sql": "UPDATE m_article SET name = ? WHERE id = ?",
"params": ["new name", 123],
"schema": "fo"
}
戻り値:
{
"schema": "fo",
"affectedRows": 1,
"insertId": 0,
"changedRows": 1,
"warningStatus": 0
}
制約事項:
INSERT または UPDATE で始まる必要ありDELETE、DROP、ALTER、CREATE、TRUNCATE、RENAME、GRANT、REVOKE、REPLACE、MERGE、CALL、LOAD、HANDLER、LOCK、UNLOCK、SET、USE、START、BEGIN、COMMIT、ROLLBACK、SAVEPOINT — すべて拒否本サーバーを利用するプロジェクトと並ぶ位置にこのリポジトリをクローンし、以下のディレクトリ構成にしてください:
parent/
├── mcp-local-mysql/ ← このリポジトリ
└── your-project/
└── .vscode/mcp.json (Copilot CLI の場合は .mcp.json)
プロジェクトのルートに .vscode/mcp.json を追加します。ルートキーは servers です:
{
"servers": {
"local-mysql": {
"command": "node",
"args": ["../mcp-local-mysql/dist/index.js"],
"env": {}
}
}
}
ワークスペースごとに認証情報を上書きしたい場合は、env オブジェクトを編集します。例:
"env": { "FO_DB_USER": "devuser", "FO_DB_PASS": "devpass" }
また、VSCode が .vscode/mcp.json を認識できるように、.vscode/settings.json で MCP ディスカバリを有効にしておいてください:
{
"chat.mcp.discovery.enabled": true
}
プロジェクトのルートに .mcp.json を追加します。ルートキーは mcpServers です:
{
"mcpServers": {
"local-mysql": {
"command": "node",
"args": ["../mcp-local-mysql/dist/index.js"],
"env": {}
}
}
}
multipleStatements: false を設定(バリデータに加えた多層防御)params 経由で渡し、SQL 文字列に直接埋め込まないでくださいUSE `...` に埋め込まれますДобавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"local-mysql": {
"command": "npx",
"args": []
}
}
}