local-mysql

local-mysql

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.

Category
访问服务器

README

local-mysql MCP サーバー

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 のような完全修飾名を使用してください。許可されているスキーマ: fooabocmnepro

インストールとビルド

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 は未対応)
  • 結果の上限: 1000 行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 で始まる必要あり
  • DELETEDROPALTERCREATETRUNCATERENAMEGRANTREVOKEREPLACEMERGECALLLOADHANDLERLOCKUNLOCKSETUSESTARTBEGINCOMMITROLLBACKSAVEPOINT — すべて拒否

組み込み方

本サーバーを利用するプロジェクトと並ぶ位置にこのリポジトリをクローンし、以下のディレクトリ構成にしてください:

parent/
├── mcp-local-mysql/        ← このリポジトリ
└── your-project/
    └── .vscode/mcp.json    (Copilot CLI の場合は .mcp.json)

VSCode

プロジェクトのルートに .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
}

Copilot CLI

プロジェクトのルートに .mcp.json を追加します。ルートキーは mcpServers です:

{
  "mcpServers": {
    "local-mysql": {
      "command": "node",
      "args": ["../mcp-local-mysql/dist/index.js"],
      "env": {}
    }
  }
}

セキュリティに関する注意

  • ドライバレベルで multipleStatements: false を設定(バリデータに加えた多層防御)
  • すべてのクエリはパラメータ化されています — 値は必ず params 経由で渡し、SQL 文字列に直接埋め込まないでください
  • スキーマ名はホワイトリストと照合した上で USE `...` に埋め込まれます
  • サーバーのログは stderr のみに出力されます。stdout は MCP プロトコルのフレーム専用です

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选