4.1
MCP(Model Context Protocol)

1. 概要

サーバー機能として、MCP(Model Context Protocol)に対応した機能を提供できます。

1.1. サーバー機能概要

メタデータを設定することで、MCP Tools 機能を提供することが可能です。

  • MCP Tools: Command として定義した機能を MCP クライアントから呼び出すことで利用することができます。

1.2. クライアント機能概要

MCP クライアントでは、サーバーで定義された機能を実行することができます。
サーバーの機能を利用するためには認証が必要であり、認証方法として、OAuth、個人アクセストークン(Bearer トークンによる認証)を利用することが可能です。

2. サーバーの設定

MCPサーバーを利用するための設定手順は以下の通りです。

2.1. iplass-ee-mcp モジュールの取り込み

MCPサーバーを利用するには、iplass-ee-mcp モジュールをプロジェクトに取り込む必要があります。

Gradle を利用している場合は、以下の依存関係を build.gradle に追加してください。

dependencies {
    implementation "org.iplass.ee:iplass-ee-mcp:${iPLAssVersion}"
}

2.2. web.xml へ mtp_mcp フラグメントの追加

web.xml に mtp_mcp フラグメントを追加することで、MCPサーバーのリクエストを処理するための初期化処理が設定されます。
mtp_mcp フラグメントは、iplass-ee-mcp モジュールに含まれています。

web.xml 設定例(抜粋)
<web-app>
    <absolute-ordering>
        <name>mtp</name>
        :
        :
        <!-- mcp -->
        <name>mtp_mcp</name>
    </absolute-ordering>
    :
    :
</web-app>

2.3. Service Config の設定

Service Config 設定ファイルにMCPサーバーの設定を行います。
MCPサーバーの設定を行う際のポイントは以下の通りです。

  • mcp-service-config.xml を読み込む

  • McpService のプロパティ設定

    • プロパティ enableMcptrue に設定する

    • プロパティ tenantServerInfo に、有効化したいテナントのテナントID、サーバー名、バージョン情報を設定する

    • 必要に応じて allowOrigin, allowHost プロパティを設定する。

<serviceDefinition>
    (1)
    <inherits>/mcp-service-config.xml</inherits>

    (2)
    <service>
        <interface>org.iplass.mtp.impl.mcp.McpService</interface>
        <class>org.iplass.mtp.impl.mcp.McpService</class>

        <!-- MCPサーバーの有効化 -->
        <property name="enableMcp" value="true" />

        <!-- テナントIDは環境に合わせて設定してください。 -->
        <!-- MCPサーバー利用テナント サーバー情報 -->
        <property name="tenantServerInfo" class="org.iplass.mtp.impl.mcp.McpServerInfo">
            <property name="tenantId" value="1" />
            <property name="serverName" value="tenant1-mcp" />
            <property name="version" value="1.0.0" />
        </property>
    </service>
</serviceDefinition>
1 mcp-service-config.xml の読み込み
2 McpService の設定。設定の詳細は Configuration - McpService を参照してください。

3. メタデータの設定

メタデータは AdminConsole で設定します。
AdminConsole メニューのパスは AI Integration > MCP です。

setup server setup metadata adminconsole menu

3.1. Tools メタデータの作成

Tools メタデータは、AdminConsole メニューの AI Integration > MCP > Tools で作成します。
設定項目は以下の通りです。

項目 説明

有効

定義した MCP Tools を有効にするかどうかを設定します。

Tool名

名前を設定します。必須項目です。
クライアントから MCP Tools を呼び出す際に利用する項目です。

Toolタイトル

タイトルを設定します。クライアントから MCP Tools 一覧を取得した際に表示される項目です。

Tool説明

説明を設定します。クライアントから MCP Tools 一覧を取得した際に表示される項目です。

Meta

メタ情報を設定します。クライアントから MCP Tools 一覧を取得した際に表示される項目です。

設定項目 説明

キー

メタ情報のキーを設定します。

メタ情報の値を設定します。

HTTPメソッド

Command 実行時の HTTP メソッドを設定します。任意項目です。

WebAPI で利用しているコマンドを MCP で流用する際に必要となる項目です。
HTTP メソッドによって振る舞いが変わるコマンドの場合、本項目を設定することでコマンドの動作を決定します。

パラメータマッピング

クライアントから MCP Tools を呼び出す際のパラメータと、コマンドに渡すパラメータのマッピングを設定します。

設定項目 説明

MCPリクエストパラメータ

MCPクライアントから MCP Tools を呼び出す際のリクエストパラメータを設定します。必須項目です。

データ型

パラメータのデータ型を設定します。完全修飾クラス名を設定します。
項目を設定しない場合は、 java.lang.String として扱われます。

必須

パラメータが必須かどうかを設定します。チェックすることで必須となります。デフォルトは false(チェック無し) です。

説明

パラメータの説明を設定します。Tools 一覧を取得した際に inputSchema のパラメータの説明として表示される項目です。

マッピングタイプ

パラメータのマッピングタイプを設定します。必須項目です。
設定方法によって、コマンドからパラメータを取得する方法が異なります。

ATTRIBUTE:: コマンドでパラメータを取得する場合、リクエストコンテキストの RequestContext#getAttribute メソッドでパラメータを取得します。

PARAMETER:: コマンドでパラメータを取得する場合、リクエストコンテキストの RequestContext#getParam メソッドでパラメータを取得します。

マッピング先キー

受け取ったパラメータを RequestContext に設定する際のキーを設定します。任意項目です。
設定が無い場合は、MCPリクエストパラメータの値をそのままキーとして利用します。

デフォルト値

クライアントから MCP Tools を呼び出す際に、MCPリクエストパラメータが渡されなかった場合のデフォルト値を設定します。任意項目です。

Execute Commands

コマンドを実行するための設定を行います。
コマンド設定の詳細は、WebAPIのCommandの設定を参照してください。

結果マッピング

コマンド実行後の結果を MCPクライアントに返すための設定を行います。

設定項目 説明

コマンド結果キー

コマンド実行後に返却したい結果が格納されている RequestContext の属性のキーを設定します。必須項目です。
予約語については、MCPレスポンスキーと同様です。

MCPレスポンスキー

MCPクライアントに返すレスポンスのキーを設定します。
項目を設定しない場合は、コマンド結果キーと同じ値が設定されます。
以下のキー項目は予約語として設定されているため利用できません。

  • status : コマンドの実行結果のステータスコードが設定されます。

4. クライアントの設定

クライアントからMCPサーバーに接続するためには、リクエストするエンドポイントの指定と、認証情報の設定が必要です。

4.1. エンドポイント

クライアントから接続する場合のエンドポイントは、McpService で設定することが可能です。
McpService のプロパティ requestEndpoint にエンドポイントのパス( /mcp/ から始まるパス )を設定してください。
McpService の詳細は Configuration - McpService を参照してください。

エンドポイントの設定値がデフォルト /mcp/message の場合、クライアントから接続する際のエンドポイントは以下のようになります。

(http|https)://<host><:port>/<context>/<tenant>/mcp/message

構成要素の説明
  • <host>: ホスト名

  • <:port>: ポート番号 (省略可能)

  • <context>: アプリケーションコンテキスト。サーバー構築時の設定により異なります。

  • <tenant>: テナント名。テナント構築時に設定したテナント名を指定します。

4.2. 認証

MCPサーバーの利用にあたり、認証が必須となります。

サポートしている認証方法

OAuth 2.0 Bearer Token 認証

OAuth 2.0のアクセストークン。リクエストヘッダーの AuthorizationBearer トークンとして設定してください。

個人アクセストークン Bearer Token 認証

GEM(TopView) - アプリの管理 を参照し個人アクセストークンを発行してください。
発行した個人アクセストークンは、リクエストヘッダーの AuthorizationBearer トークンとして設定してください。

認証情報の設定例

以下は、リクエストヘッダーの AuthorizationBearer トークンとして設定する例です。

Header 設定例
Authorization: Bearer <token>

5. 標準提供機能

5.1. メタデータCRUD

メタデータの操作(作成、読み取り、更新、削除)を行うための機能を、MCP Tool として提供します。

メタデータCRUD機能は、WebAPI のメタデータCRUDで利用しているコマンドを MCP Tool として提供するものです。
メタデータCRUD機能を利用するには、以下の設定が必要となります。

  • WebApiService の enableDefinitionApi プロパティの設定を行う必要があります。
    詳細については、 Configuration - WebApiService を参照してください。

  • ツールを実行する利用者は、管理者としての権限が必要です。

メタデータCRUD機能は、開発時の利用を想定した機能です。

メタデータ取得

メタデータの定義の一覧や詳細を取得するための機能です。

ツール名

getDefinition

パラメータ
項目 説明

path

メタデータの定義のパスを設定します。/ で終わる場合は一覧を取得します。それ以外の場合、定義が存在すればメタデータを取得します。

recursive

一覧取得時に利用します。true または false を設定します。 true が設定された場合、メタデータパス以下の階層を辿って一覧を取得します。

レスポンス(一覧取得の場合)
項目 説明

status

ツールの実行結果を表します。成功した場合は "SUCCESS" を返却します。

list

指定されたパスのメタデータの一覧が返ります。

レスポンス(詳細取得の場合)
項目 説明

status

ツールの実行結果を表します。成功した場合は "SUCCESS" を返却します。

definition

指定されたパスのメタデータの詳細が返ります。

メタデータ作成

メタデータの定義を新規に作成する機能です。
指定された path のメタデータを作成します。作成するメタデータの定義は definition で指定します。

ツール名

createDefinition

パラメータ
項目 説明

path

登録するメタデータのパスを設定します。必須項目です。

definition

登録するメタデータの定義を設定します。必須項目です。

レスポンス
項目 説明

status

ツールの実行結果を表します。成功した場合は "SUCCESS" を返却します。

メタデータ更新

メタデータの定義を更新する機能です。
指定された path のメタデータを更新します。更新するメタデータの定義は definition で指定します。
更新元のメタデータは、メタデータ取得 で取得することを想定しています。

ツール名

updateDefinition

パラメータ
項目 説明

path

更新するメタデータのパスを設定します。必須項目です。

definition

更新するメタデータの定義を設定します。必須項目です。

レスポンス
項目 説明

status

ツールの実行結果を表します。成功した場合は "SUCCESS" を返却します。

メタデータ削除

メタデータの定義を削除する機能です。
パラメータで指定されたパスのメタデータ定義を削除します。

ツール名

deleteDefinition

パラメータ
項目 説明

path

削除するメタデータのパスを設定します。必須項目です。

レスポンス
項目 説明

status

ツールの実行結果を表します。成功した場合は "SUCCESS" を返却します。

6. その他の設定

MCPサーバーの機能に関連する設定について説明します。

6.1. MCPサーバー機能の権限管理

MCPサーバーの機能は、ロールベースで実行可能な機能を制御することができます。

認可に関しては、認可 を参照してください。
MCPサーバーの権限管理については、認可 - 権限管理 - MCPサーバー権限 を参照してください。

iPLAss 4.0 以前のバージョンから移行した場合、MCPサーバー権限エンティティがメニューに表示されません。
エンティティのデータを編集するためには、MCPサーバー権限エンティティをメニューに追加してください。

6.2. 閉塞機能の設定

MCPサーバーの機能は、サービス閉塞機能に対応しています。
サービス閉塞することで、MCPサーバーの機能を一時的に利用不可能にすることができます。

サービス閉塞機能については、開発・運用サポート - サービス閉塞機能 を参照してください。