VISO TRUST MCP Server について
VISO TRUST MCP Serverは、AIアシスタントをVISO TRUSTに接続し、サードパーティのリスク管理や評価を支援します。評価、取引先関係、ベンダー検索、監査イベントのツールを備え、ホスト型Streamable HTTPエンドポイントまたは独自環境で利用できます。
主な機能
- 01評価の作成と管理
- 02ベンダー関係とリスクの確認
- 03ベンダーディレクトリの検索
- 04監査ログイベントの取得
- 05ビジネスケースとデータ型の一覧
活用シーン
- 01ベンダー評価の開始や更新
- 02評価状況とリスクの確認
- 03ドメインからベンダー情報を検索
- 04組織の監査イベントを確認
MCP 対応
VISO TRUST APIの操作をMCPクライアント向けのツールとして公開します。ホスト型Streamable HTTPエンドポイントへの接続、またはローカルや独自インフラでの実行に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
VISO TRUST MCP サーバー
VISO TRUST API の機能を AI アシスタントと連携するための Model Context Protocol(MCP)サーバーです。
ホスト型リモートサーバー
VISO TRUST は、この MCP サーバーのマネージドインスタンスをホストしているため、すぐに利用を始めるにあたり、何かをビルド、実行、セルフホストする必要はありません。
https://mcp.visotrust.com/mcp
Streamable HTTP トランスポートを使用して、このエンドポイントに任意の MCP クライアントを接続し、VISO TRUST API トークンで認証してください。API トークンの生成方法については、VISO TRUST サポートドキュメントを参照してください。
クライアント設定の例:
{
"mcpServers": {
"viso-mcp": {
"type": "streamable-http",
"url": "https://mcp.visotrust.com/mcp",
"headers": {
"Authorization": "Bearer <your-api-token>"
}
}
}
}
MCP Inspector でホスト型エンドポイントをテストするには、npx @modelcontextprotocol/inspector を実行し、Transport Type を Streamable HTTP に設定して、上記の URL を使用してください。
このドキュメントの残りの部分では、サーバーを自分で実行する方法(ローカルまたは独自のインフラストラクチャ)について説明します。
要件
- Java 21+
- Gradle
- Docker(コンテナ化されたデプロイの場合は任意)
- MCP Inspector(テストの場合は任意)
設定
VISO TRUST API の設定
VISO TRUST API では、次のプロパティを設定できます。
visotrust.api.base-url:VISO TRUST API のベース URL(デフォルト:http://localhost:8080)visotrust.api.token:VISO TRUST プラットフォームの API トークン(必須)visotrust.api.timeout:API リクエストのタイムアウト(ミリ秒、デフォルト:30000)visotrust.api.connect-timeout:API 接続のタイムアウト(ミリ秒、デフォルト:5000)
visotrust.api.token 環境変数に設定する API トークンの生成方法については、VISO TRUST サポートドキュメントを参照してください。
アプリケーションプロファイル
このアプリケーションでは、デプロイシナリオに応じて異なる設定を適用するために、Spring Boot プロファイルをサポートしています。
リモートプロファイル
remote プロファイルは、Streamable HTTP トランスポートを介したリモート MCP のサポートを目的としています。このプロファイルでは、サーバーを Web アプリケーションとして実行し、HTTP 経由でリモートクライアントと通信できるようにします。(Streamable HTTP は非推奨の SSE トランスポートに代わるもので、ここではステートレスモードで設定されています。)
リモートプロファイルの主な違い:
- 標準入出力ではなく、ポート
3001でサーブレット Web アプリケーション(Tomcat)として実行されます - MCP エンドポイントを
POST /mcp(Streamable HTTP)で公開します - ステートレスモードで実行されます。セッションごとのサーバー状態を保持しないため、セッションアフィニティを必要とせず、ロードバランサーの背後で水平方向にスケールできます
- リモートクライアント接続向けに最適化されたサーバー設定
- 分散デバッグ向けに強化されたロギング
注: クライアントは単一の Streamable HTTP エンドポイント
…/mcpに接続します。従来の SSE エンドポイント(/sse+/mcp/message)は提供されなくなりました。
リモートプロファイルを有効にする方法:
Java を直接実行する場合:
java -jar viso-mcp-server-<version>.jar --spring.profiles.active=remote
Gradle を使用する場合:
./gradlew bootRun --args="--spring.profiles.active=remote"
Docker を使用する場合:
docker run -i --rm \
-e VISOTRUST_API_TOKEN=<your-api-token> \
-e SPRING_PROFILES_ACTIVE=remote \
viso-mcp-server
リモートプロファイルを使用する場面:
- MCP サーバーをリモートサーバーまたはクラウド環境にデプロイする場合
- クライアントが標準入出力による直接接続ではなく、Streamable HTTP 経由で接続する場合
- 分散デプロイで強化されたロギングと監視が必要な場合
- Streamable HTTP 経由で接続する Web ベースの AI アシスタントと連携する場合
ローカル開発や標準入出力による直接通信には、デフォルトプロファイルを使用してください(プロファイルの指定は不要です)。
インストール
クイックインストール
以下のいずれかのボタンをクリックして、VISO MCP サーバーを VS Code にインストールします。
VS Code での手動セットアップ
以下の JSON ブロックを VS Code のユーザー設定(JSON)ファイルに追加します。Ctrl + Shift + P を押し、「Preferences: Open User Settings (JSON)」と入力すると追加できます。
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "viso_baseurl",
"description": "VISO TRUST API Base URL",
"default": "https://app.visotrust.com"
},
{
"type": "promptString",
"id": "viso_token",
"description": "VISO TRUST API Token",
"password": true
}
],
"servers": {
"viso-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"VISOTRUST_API_TOKEN",
"-e",
"VISOTRUST_API_BASEURL",
"visotrustai/viso-mcp-server:latest"
],
"env": {
"VISOTRUST_API_BASEURL": "${input:viso_baseurl}",
"VISOTRUST_API_TOKEN": "${input:viso_token}"
}
}
}
}
}
必要に応じて、同様の例(つまり、mcp キーを含まない例)をワークスペース内の .vscode/mcp.json というファイルに追加できます。これにより、設定を他のユーザーと共有できます。
{
"inputs": [
{
"type": "promptString",
"id": "viso_baseurl",
"description": "VISO TRUST API Base URL",
"default": "https://app.visotrust.com"
},
{
"type": "promptString",
"id": "viso_token",
"description": "VISO TRUST API Token",
"password": true
}
],
"servers": {
"viso-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"VISOTRUST_API_TOKEN",
"-e",
"VISOTRUST_API_BASEURL",
"visotrustai/viso-mcp-server:latest"
],
"env": {
"VISOTRUST_API_BASEURL": "${input:viso_baseurl}",
"VISOTRUST_API_TOKEN": "${input:viso_token}"
}
}
}
}
Claude Desktop およびその他の MCP クライアントでの使用
Docker の設定
{
"mcpServers": {
"viso-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "VISOTRUST_API_TOKEN",
"-e", "VISOTRUST_API_BASEURL",
"visotrustai/viso-mcp-server:latest"
],
"env": {
"VISOTRUST_API_TOKEN": "<your-api-token>",
"VISOTRUST_API_BASEURL": "https://app.visotrust.com"
}
}
}
}
Java の設定
{
"mcpServers": {
"viso-mcp": {
"command": "java",
"args": [
"-jar",
"viso-mcp-server-<version>.jar",
"--port",
"8080",
"--host",
"localhost"
],
"env": {
"JAVA_TOOL_OPTIONS": "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005",
"VISOTRUST_API_TOKEN": "<your-api-token>",
"VISOTRUST_API_BASEURL": "https://app.visotrust.com"
}
}
}
}
注:JAVA_TOOL_OPTIONS 環境変数は、リモートデバッグ用の JVM オプションを設定するために使用されます。アドレスとポートは必要に応じて変更できます。
💻 開発
Docker のセットアップ
Docker イメージのビルド
docker build -t viso-mcp-server .
Docker コンテナーの実行
docker run -i --rm -e VISOTRUST_API_TOKEN=<your-api-token> viso-mcp-server
デバッグ
MCP Inspector のインストール
npm -g install @modelcontextprotocol/inspector
テスト用の MCP Inspector の実行
- MCP サーバーの Jar ファイルをビルド
./gradlew bootJar
- MCP Inspector を実行
npx @modelcontextprotocol/inspector \
-e JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=\*:5005 \
-e VISOTRUST_API_TOKEN=<your-api-token> \
java -jar build/libs/viso-mcp-server-<version>.jar \
--port 8080 --host localhost
<version> をプロジェクトの現在のバージョン(例:1.0.0 または最新リリースのバージョン)に置き換えてください。
CI/CD パイプライン
このプロジェクトでは、継続的インテグレーションとデプロイに GitHub Actions を使用しています。ワークフローには以下のジョブが含まれます。
Lint
Spotless を使用してコードのフォーマットをチェックします。
./gradlew spotlessCheck
ビルド
アプリケーションをビルドし、JAR ファイルを作成します。
./gradlew build
公開
新しいリリースが作成されると、以下を実行します。
- build.gradle のプロジェクトバージョンをリリースタグに合わせて更新します
- リリースタグのバージョンを使用して、JAR ファイルを GitHub リリースにアップロードします
- Docker イメージをビルドし、以下のタグを付けて Docker Hub にプッシュします。
latest- リリースタグ(例:
v1.0.0)
公開に必要なシークレット
Docker Hub への公開を有効にするには、GitHub リポジトリに以下のシークレットを追加します。
DOCKERHUB_USERNAME:Docker Hub のユーザー名DOCKERHUB_TOKEN:Docker Hub のアクセストークン
🛠️ ツール
このセクションでは、VISO MCP Server が公開するツールについて説明します。各ツールには、特定の目的、入力パラメーター、出力形式があります。
評価
get_assessment - IDで評価を取得
- id: 評価ID(数値、必須)
特定の評価に関する詳細情報を返します。
get_assessment_summary - IDで評価の概要を取得
- id: 評価ID(数値、必須)
特定の評価の概要を返します。
create_assessment - 既存の関係に対する評価を開始
- relationshipId: 評価を作成する関係のID(数値、必須)
- recipientEmail: 評価の回答者のメールアドレス(文字列、任意)
- recipientFirstName: 評価の回答者の名(文字列、任意)
- recipientLastName: 評価の回答者の姓(文字列、任意)
- publicDocumentUrls: 評価に含める公開ドキュメントのURL(文字列[]、任意)
- followupType: フォローアップの種類(文字列の列挙型、任意)
- followupRiskThreshold: フォローアップを開始するリスクレベルのしきい値(文字列の列挙型、任意)
- followupTimeline: フォローアップのスケジュール(文字列の列挙型、任意)
- collectionTimeline: ベンダーが評価の回答を提出するまでのスケジュール(文字列の列挙型、任意)
- noVendorResponseAction: ベンダーから回答がない場合の対応(文字列の列挙型、任意)
- aiProcessingOnly: 人によるレビューを行わず、AI のみで処理するかどうか(ブール値、任意)
- requestedAuditTypes: この評価で要求する監査の種類(文字列[]、任意)
作成された評価の詳細を返します。
update_assessment_expiration_date - ベンダーが評価の回答を提出する期限を更新
- id: 評価ID(数値、必須)
- expirationDate: 新しい有効期限日時。オフセット付きの ISO-8601 形式で、未来の日付である必要があります(文字列、必須)
確認メッセージを返します。
update_assessment_followup - 評価のフォローアップ設定を更新
- id: 評価ID(数値、必須)
- followupType: フォローアップの種類(文字列の列挙型、必須)
- followupRiskThreshold: フォローアップ評価を開始するしきい値となるリスクレベル(文字列の列挙型、任意)
- followupTimeline: フォローアップのスケジュール(文字列の列挙型、任意)
確認メッセージを返します。
監査ログ
get_user_audit_log_events - 組織のユーザー単位の監査ログイベントを取得
- start: クエリの開始日時。オフセット付きの ISO-8601 形式(文字列、必須)
- end: クエリの終了日時。オフセット付きの ISO-8601 形式(文字列、必須)
- eventTypes: 絞り込むイベントの種類(任意のセット。例:
USER_LOGGED_IN)。すべてを対象にする場合は空のままにします(文字列[]、任意)
最大500件のユーザー監査ログイベントを返します。
get_audit_log_events - 絞り込んだ監査ログイベントを取得(ユーザー、組織、評価、関係のイベント)
- start: クエリの開始日時。オフセット付きの ISO-8601 形式(文字列、必須)
- end: クエリの終了日時。オフセット付きの ISO-8601 形式(文字列、必須)
- eventTypes: 絞り込むイベントの種類(任意のセット。例:
ASSESSMENT_COMPLETED、RELATIONSHIP_CREATED)。すべてを対象にする場合は空のままにします(文字列[]、任意)
ポリモーフィックな監査ログイベントレコードを返します。各項目には、少なくとも auditEventType と dateTime が含まれます。
ビジネスケース
get_all_business_cases - 組織で利用可能なすべてのビジネスケースを取得
パラメーターは不要です。
組織で利用可能なすべてのビジネスケースのリストを返します。
データ型
get_all_datatypes - 組織で利用可能なすべてのデータ型を取得
パラメーターは不要です。
組織で利用可能なすべてのデータ型のリストを返します。
ベンダーディレクトリ
search_vendor_directory - URL またはドメインで VISO TRUST ベンダーディレクトリからベンダーを検索します
- urlOrDomain: 検索する URL またはドメイン名。例:
example.com(string、必須)
ベンダーの基本メタデータ(名前、ホームページ、説明、ファビコン、既知のドメイン)を返します。
関係
get_all_relationships - すべての関係とその評価の詳細の一覧を取得します
パラメーターは不要です。
サードパーティベンダーの評価ステータス、リスクレベル、連絡先情報を含む情報を返します。
get_relationship_by_id - ID で特定の関係とその評価の詳細を取得します
- id: 関係 ID(number、必須)
評価ステータス、リスクレベル、連絡先情報など、サードパーティベンダーの詳細情報を返します。
get_relationship_assessment_history - 関係の評価履歴を取得します
- id: 関係 ID(number、必須)
指定した関係に関連する評価の一覧を返します。
create_relationship - サードパーティベンダーとの新しい関係を作成します
- name: 関係/ベンダーの名前(string、必須)
- homepage: ベンダーのホームページ URL(string、必須)
- businessOwnerEmail: ビジネスオーナーのメールアドレス(string、必須)
- businessOwnerFirstName: ビジネスオーナーの名(string、任意)
- businessOwnerLastName: ビジネスオーナーの姓(string、任意)
- description: 関係/ベンダーの説明(string、任意)
- contextTypes: この関係のビジネスコンテキストタイプの一覧(object[]、任意)
- dataTypes: この関係で扱われるデータタイプの一覧(object[]、任意)
- tags: この関係を分類するタグの一覧(string[]、任意)
- thirdPartyContact: サードパーティベンダーの担当者の連絡先情報(object、任意)
作成された関係の詳細を返します。
create_relationship_by_domain - ベンダーのドメインのみを使用して新しい関係を作成します
- domain: ベンダーのドメイン。例:
visotrust.com(string、必須) - vendorName: ベンダーの名前(string、必須)
- product: ベンダーが提供する製品(string、任意)
- description: ベンダーとの関係の説明(string、任意)
作成された関係の詳細を返します。
update_relationship - サードパーティベンダーとの既存の関係を更新します
- id: 関係 ID(number、必須)
- name: 関係/ベンダーの名前(string、必須)
- homepage: ベンダーのホームページ URL(string、任意)
- description: 関係/ベンダーの説明(string、任意)
- contextTypes: ビジネスコンテキストタイプの一覧(object[]、任意)
- dataTypes: この関係で扱われるデータタイプの一覧(object[]、任意)
- businessOwnerEmail: ビジネスオーナーのメールアドレス(string、任意)
- businessOwnerFirstName: ビジネスオーナーの名(string、任意)
- businessOwnerLastName: ビジネスオーナーの姓(string、任意)
- tags: タグの一覧(string[]、任意)
更新された関係の詳細を返します。
partially_update_relationship - 既存の関係を部分的に更新します
update_relationship と同じフィールドを受け付けます。リクエストで指定したフィールドのみが変更され、その他のフィールドはそのまま保持されます。
更新された関係の詳細を返します。
search_relationships - ドメイン名またはベンダー名で関係を検索します
- domains: 検索するドメイン名の一覧(string[]、必須)
- name: 検索するベンダー/関係の名前(string、必須)
評価の詳細を含む、一致した関係の一覧を返します。
create_tags - 関係を分類する新しいタグを作成します
- tags: 作成するタグ名の一覧(string[]、必須)
新しく作成されたタグを含む、すべてのタグの一覧を返します。
update_third_party_contact - サードパーティベンダーの連絡先情報を更新します
- relationshipId: 関係 ID(数値、必須)
- email: 連絡先メールアドレス(文字列、必須)
- firstName: 連絡先の名(文字列、必須)
- lastName: 連絡先の姓(文字列、必須)
更新された関係の詳細を返します。
onboard_relationship - 関係をオンボーディングします。承認概要とライフサイクル管理設定を任意で指定できます
- id: 関係 ID(数値、必須)
- approvalSummary: オンボーディング時に記録する任意の承認概要(文字列、任意)
- lifecycleManagementUpdateRequest: 任意のライフサイクル管理設定(オブジェクト、任意)
- artifactUpdateSettings.artifactUpdateType: アーティファクトの更新タイプ(文字列の列挙型)
- recertificationSettings.recertificationType: 再認証タイプ(文字列の列挙型)
- recertificationSettings.recertificationDate: 次回の再認証日時。オフセット付き ISO-8601 形式(文字列)
- recertificationSettings.reviewFrequency:
THREE_YEARS、TWO_YEARS、ANNUAL、SEMIANNUAL、またはQUARTERLY(文字列の列挙型)
オンボーディングされた関係の詳細を返します。
offboard_relationship - 関係をオフボーディングします
- id: 関係 ID(数値、必須)
オフボーディングされた関係の詳細を返します。
archive_relationship - 関係をアーカイブします
- id: 関係 ID(数値、必須)
アーカイブされた関係の詳細を返します。
Webhooks
get_all_webhooks - すべての Webhook を取得します
パラメーターは不要です。
すべての Webhook 設定のリストを返します。
get_webhook - ID で Webhook 設定を取得します
- id: Webhook ID(数値、必須)
特定の Webhook 設定の詳細を返します。
create_webhook_configuration - Webhook 設定を作成します
- request: Webhook 作成パラメーター(オブジェクト、必須)
- url: Webhook URL(文字列、必須)
- secret: Webhook シークレット(文字列、必須)
- eventTypes: Webhook をトリガーするイベントの種類(文字列[]、必須)
- serviceType: Webhook のサービスの種類(文字列、必須)
作成された Webhook 設定を返します。
update_webhook_configuration - Webhook 設定を更新します
- request: Webhook 更新パラメーター(オブジェクト、必須)
- id: Webhook ID(数値、必須)
- url: Webhook URL(文字列、任意)
- secret: Webhook シークレット(文字列、任意)
- eventTypes: Webhook をトリガーするイベントの種類(文字列[]、任意)
- serviceType: Webhook のサービスの種類(文字列、任意)
更新された Webhook 設定を返します。
delete_webhook_configuration - Webhook 設定を削除します
- id: Webhook ID(数値、必須)
指定された Webhook 設定を削除します。
インテリジェンスレポート
create_bitsight_intelligence_report - 新しい BitSight インテリジェンスレポートを作成します
- request: BitSight レポートのパラメーター(オブジェクト、必須)
- vendorDomain: ベンダーのプライマリドメイン名(文字列、必須)
- reportDate: レポートが生成された日時(ISO 8601 形式の文字列、必須)
- link: プロバイダーの UI への任意のリンク(文字列、任意)
- guid: エンティティの BitSight GUID(文字列、必須)
- customId: BitSight のカスタム識別子(文字列、任意)
- name: BitSight エンティティの表示名(文字列、任意)
- description: BitSight エンティティの説明(文字列、任意)
- primaryDomain: BitSight エンティティのプライマリドメイン(文字列、任意)
- ratingRange: BitSight の評価範囲(文字列、任意)
- ratingColor: BitSight の評価色(文字列、任意)
- confidence: BitSight 評価の信頼度(文字列、任意)
作成されたインテリジェンスレポートを返します。
create_security_scorecard_intelligence_report - 新しいSecurityScorecardインテリジェンスレポートを作成
- request: SecurityScorecardレポートのパラメーター(オブジェクト、必須)
- vendorDomain: ベンダーのプライマリドメイン名(文字列、必須)
- reportDate: レポートの生成日時(ISO 8601形式の文字列、必須)
- link: プロバイダーのUIへの任意のリンク(文字列、任意)
- grade: SecurityScorecardのレターグレード(文字列、必須)
- domain: スコアカードのエンティティに関連付けられたドメイン(文字列、任意)
- score: SecurityScorecardの数値スコア(数値、任意)
作成されたインテリジェンスレポートを返します。
create_recorded_future_intelligence_report - 新しいRecorded Futureインテリジェンスレポートを作成
- request: Recorded Futureレポートのパラメーター(オブジェクト、必須)
- vendorDomain: ベンダーのプライマリドメイン名(文字列、必須)
- reportDate: レポートの生成日時(ISO 8601形式の文字列、必須)
- entityType: Recorded Futureのエンティティタイプ。例:
Company(文字列、必須) - entity: Recorded Futureのエンティティ識別子(文字列、必須)
- riskScore: 数値リスクスコア(数値、必須)
- riskLevel: リスクレベルのラベル。例:
Critical/High/Medium/Low(文字列、必須) - link: プロバイダーのUI内にあるレポートへの任意のリンク(文字列、任意)
- firstSeen: エンティティが最初に観測された日付(ISO 8601形式、文字列、任意)
- lastSeen: エンティティが最後に観測された日付(ISO 8601形式、文字列、任意)
- triggeredRuleCount: トリガーされたRecorded Futureルールの数(数値、任意)
- maxRuleCount: 評価されたRecorded Futureルールの最大数(数値、任意)
- summary: Recorded Futureからの任意の概要テキスト(文字列、任意)
- criticalityLabel: エンティティのRecorded Future重要度ラベル(文字列、任意)
作成されたインテリジェンスレポートを返します。
get_intelligence_reports_by_vendor - ベンダーのすべてのインテリジェンスレポートを取得
- vendorDomain: ベンダーのプライマリドメイン名(文字列、必須)
指定したベンダーのインテリジェンスレポートのリストを返します。
get_latest_intelligence_report - 特定のソースからベンダーの最新インテリジェンスレポートを取得
- vendorDomain: ベンダーのプライマリドメイン名(文字列、必須)
- source: インテリジェンスプロバイダー(文字列の列挙型:
BITSIGHT、SECURITY_SCORECARD、またはRECORDED_FUTURE、必須)
指定したベンダーとソースの最新インテリジェンスレポートを返します。
ユーザー
get_all_users - 組織内のすべてのユーザーを取得
- page: 取得する結果ページ(数値、任意。デフォルトは0)
- size: 1ページあたりのレコード数(数値、任意。デフォルトは20)
- sort: 次の形式で指定する並べ替え条件:property(,asc|desc)(文字列、任意)
ページ分割されたユーザーのリストを返します。
get_user_by_email - メールアドレスでユーザーを取得
- email: ユーザーのメールアドレス(文字列、必須)
ユーザーの詳細を返します。
create_user - 新しいユーザーを作成
- request: ユーザー作成のパラメーター(オブジェクト、必須)
- email: 新しいユーザーのメールアドレス(文字列、必須)
- firstName: 新しいユーザーの名(文字列、必須)
- lastName: 新しいユーザーの姓(文字列、必須)
作成されたユーザーを返します。
コードのフォーマット
このプロジェクトでは、コードのフォーマットにGoogle Java Formatを使用するSpotlessを使用しています。一貫したコードスタイルを保つため、pre-commitフックが自動的に設定されます。
セットアップ
リポジトリをクローンした後、Gradleコマンドを実行するとpre-commitフックが自動的に設定されます。
手動でのフォーマット
すべてのファイルを手動でフォーマットするには:
./gradlew spotlessApply
ファイルが正しくフォーマットされているか確認するには:
./gradlew spotlessCheck
フォーマットの問題によりpre-commitフックがコミットを拒否した場合は、./gradlew spotlessApplyを実行してフォーマットを修正し、もう一度コミットしてください。
ライセンス
このプロジェクトはMIT Licenseのもとでライセンスされています。詳細はLICENSEファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。