Sqltocode について
SqlToCodeは、SQLのフィールド定義からJavaエンティティを生成するSpring Boot製のサンプルMCPサーバーです。一般的なSQL型のマッピングに対応し、SSEまたはstdioでクライアントに接続できます。
主な機能
- 01SQLフィールドからJavaエンティティを生成
- 02一般的なSQLデータ型をマッピング
- 03@Data付きJavaクラスを生成
- 04SSEとstdioのトランスポートに対応
活用シーン
- 01フィールド定義からJavaエンティティを生成
- 02SQL型をJava型にマッピング
MCP 対応
SQLからJavaへの変換機能をMCPツールとして公開し、SSEまたはstdio経由でMCPクライアントから呼び出せます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SqlToCode MCP Server
プロジェクト概要
SqlToCode は、Spring Boot 3.4 と Spring AI MCP Server Starter を基盤に構築されたサンプルサービスで、SQL フィールド定義 → Java エンティティコードへの自動変換機能を提供します。プロジェクトでは @Tool アノテーションを使って SqlToCodeService を MCP ツールとして公開しており、MCP プロトコルに対応したクライアント(Claude、Cursor、vscode 拡張機能など)から直接呼び出せます。
主な機能
- SQL→Java 自動変換:簡略化した
CREATE TABLEのフィールド一覧を、@Dataアノテーション付きの Java クラスに変換します。 - 組み込みの型マッピング:
BIGINT / INT / VARCHAR / DECIMAL / DATETIMEなどの一般的な SQL 型を Java 型に自動マッピングします。 - 標準 MCP 機能:
tool / resource / prompt / completion機能が有効になっており、SSE または stdio モードで接続できます。 - ログと設定:デフォルトでは実行ログを
data/log/SqlToCode.logに出力するため、問題の調査に役立ちます。
技術スタック
- Java 17
- Spring Boot 3.4.3
- Spring AI MCP Server & WebFlux Starter
- Lombok
- Maven
ディレクトリ構成
├─src/main/java/cn/maysjl/ai
│ ├─Application.java // Spring Boot 启动类
│ ├─config/ToolConfig.java // 注册 MCP ToolCallbackProvider
│ ├─model/ // 请求/响应模型
│ └─service/SqlToCodeService // 核心 SQL→Code 逻辑
├─src/main/resources/application.yml
├─data/log/SqlToCode.log
└─pom.xml
動作環境
- JDK 17+
- Maven 3.9+
クイックスタート
-
クローンとビルド
git clone <repo-url> cd SqlToCode mvn clean package -DskipTests -
サービスの実行
mvn spring-boot:runデフォルトでは
http://localhost:8701で待ち受け、MCP SSE エンドポイント/mcp/messagesも公開します。 -
MCP クライアントの接続
- SSE:クライアントの接続先として
http://localhost:8701/mcp/messagesを設定します。 - stdio:
application.ymlでspring.main.web-application-type: noneのコメントを解除し、必要に応じて調整します。
- SSE:クライアントの接続先として
ツールの入力例
{
"codeType": "java",
"sqlTableName": "Product",
"sql": [
{ "name": "id", "type": "BIGINT" },
{ "name": "name", "type": "VARCHAR(100)" },
{ "name": "price", "type": "INT" }
]
}
ツールの戻り値の例
{
"codeType": "java",
"resCode": "import lombok.Data;\n\n@Data\npublic class Product {\n\n private Long id;\n private String name;\n private Integer price;\n}"
}
設定
server.port:デフォルトは 8701 です。必要に応じて変更できます。spring.ai.mcp.server.*:MCP サーバーの名前、バージョン、機能、SSE エンドポイントを設定します。必要に応じてinstructionsを調整し、クライアントにツールの用途を説明してください。logging.file.name:ログファイルの保存先です。デフォルトではdata/log/SqlToCode.logに出力します。
開発とデバッグ
SqlToCodeService.sqlToJavaTypeを変更すると、型マッピングを拡張できます。MethodToolCallbackProviderを使って、さらに多くのツールを登録できます。- リソースやプロンプトなどの MCP 機能を追加する場合は、
application.ymlで該当する設定を有効にし、関連コンポーネントを実装してください。
今後の予定
- 対応するプログラミング言語を増やします(Kotlin、TypeScript DTO など)。
- 完全な
CREATE TABLE文からフィールド一覧を自動解析し、手入力を減らします。 - コアとなる型マッピングのロジックを対象に、単体テストを追加します。
業務上のニーズに応じた二次開発を歓迎します。ご質問がある場合は、issue を作成するか作者にお問い合わせください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。