MCP-CRUD-Interview-Question について
MCP-CRUD-Interview-Question は、Spring Boot と Spring AI を使って MySQL 内の面接問題を管理するサーバーです。MCP ツールを通じて、カテゴリ別検索や CRUD 操作をエージェントや AI モデルに提供します。
主な機能
- 01面接問題の作成・取得・更新・削除
- 02カテゴリによる問題の絞り込み
- 03MySQL へのデータ永続化
- 04Spring AI ツールによる操作の公開
活用シーン
- 01指定カテゴリの面接問題の検索
- 02面接問題データベースの管理
- 03エージェントから問題レコードへの接続
MCP 対応
MCP サーバーは、全件またはカテゴリ別の問題取得、問題の保存・更新、削除を行うツールを公開します。プロジェクトの概要によると、STDIO で通信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP-CRUD-Interview-Question
面接質問のデータベースを管理するために設計された、Spring Boot ベースの Model Control Protocol(MCP)サーバーです。このプロジェクトでは、Spring AI の MCP 機能を活用して、ツールを介した面接質問データへのアクセスを提供します。
概要
このプロジェクトは、Spring Boot と Spring AI で構築された MCP(Model Control Protocol)サーバーです。ツールを介した操作で面接質問を管理するサービスを提供し、データベース内の面接質問の取得、作成、更新、削除を簡単に行えます。
機能
- 面接質問の管理:面接質問の作成、読み取り、更新、削除
- カテゴリによる絞り込み:指定したカテゴリの質問を取得
- ツールベースの API:簡単に連携できる Spring AI のツールアノテーション
- MySQL データベースとの連携:面接質問を永続化
プロジェクト構成
src/
├── main/
│ ├── java/
│ │ └── io/
│ │ └── michaeljgkopp/
│ │ └── github/
│ │ ├── dao/
│ │ │ └── InterviewQuestionRepository.java
│ │ ├── entity/
│ │ │ └── InterviewQuestion.java
│ │ ├── service/
│ │ │ └── InterviewQuestionService.java
│ │ └── SpringMcpServerApplication.java
│ └── resources/
│ ├── application.properties
│ └── create_db.sql
要件
- Java 24
- MySQL データベース
- Maven 3.6 以降、または互換性のあるビルドツール
インストール
リポジトリをクローンする
git clone https://github.com/MichaelJGKopp/MCP-CRUD-Interview-Question.git
cd MCP-CRUD-Interview-Question
データベースのセットアップ
- 必要な MySQL データベースを作成します。
CREATE DATABASE IF NOT EXISTS mcp_interview_questions_db;
- 適切な権限を持つ MySQL ユーザーを設定します(または、適切なアクセス権を持つ既存の認証情報を使用します)。
設定
アプリケーションは application.properties で設定します。これらの設定はカスタマイズでき、環境変数を使用して上書きすることもできます。
spring.application.name=interview-questions-mcp-server
spring.main.web-application-type=none
spring.ai.mcp.server.name=interview-questions-mcp-server
spring.ai.mcp.server.version=0.0.1
server.port=${SERVER_PORT:3001}
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=${DB_URL:jdbc:mysql://localhost:3306/mcp_interview_questions_db}
spring.datasource.username=${DB_USERNAME:springstudent}
spring.datasource.password=${DB_PASSWORD:springstudent}
プロジェクトをビルドする
mvn clean package
サーバーを起動する
java -jar target/spring-mcp-server-0.0.1-SNAPSHOT.jar
または、カスタム環境変数を指定して起動します。
SERVER_PORT=3002 DB_USERNAME=custom_user DB_PASSWORD=secure_password java -jar target/spring-mcp-server-0.0.1-SNAPSHOT.jar
利用可能なツール
MCP サーバーは、操作用に次のツールを公開します。
| ツール名 | 説明 |
|---|---|
iqs_get_interview_questions_by_category | 指定したカテゴリで絞り込んだ面接質問を取得します |
iqs_get_interview_questions_all | データベース内のすべての面接質問を取得します |
iqs_save_interview_question | 面接質問を新規作成するか、既存の質問を更新します |
iqs_delete_interview_question_by_id | ID を指定して面接質問を削除します |
iqs_delete_all_interview_questions | すべての面接質問を削除します(慎重に使用してください) |
面接質問のモデル
各面接質問は、次のフィールドで構成されます。
| フィールド | 説明 |
|---|---|
| id | 一意の識別子(自動生成) |
| difficulty | 質問の難易度(最大 10 文字) |
| category | 質問のカテゴリ(例:「Java」、「SQL」、「Spring」) |
| title | 質問の簡潔なタイトル |
| question | 面接質問の本文(最大 1000 文字) |
| answer | 回答または解決策(最大 10000 文字) |
AI モデルとの連携
この MCP サーバーは Spring AI と連携するよう設計されており、提供されるツールを使用して AI モデルが面接質問のデータベースを操作できます。設定で spring.main.web-application-type=none が指定されているとおり、このサーバーは従来型のウェブインターフェースを公開しません。
開発
新しいカテゴリの追加
このシステムは、文字列で指定する任意のカテゴリに対応しています。新しいカテゴリの質問を追加するには、質問の作成時にそのカテゴリ名を指定するだけです。
モデルの拡張
InterviewQuestion モデルにフィールドを追加するには、次の手順を実行します。
InterviewQuestion.javaエンティティクラスを更新します- 適切なゲッターとセッターを追加します
- アプリケーションを再起動します(
spring.jpa.hibernate.ddl-auto=updateにより、データベーススキーマは自動的に更新されます)
ライセンス
このプロジェクトはオープンソースです。ライセンスの詳細については、リポジトリの所有者にお問い合わせください。
お問い合わせ
質問やサポートについては、Michael J.G. Kopp までお問い合わせください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。