> For the complete documentation index, see [llms.txt](https://docs.maiagent.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.maiagent.ai/maiagent-user-guide/ja/build/tools/mcp-setup.md).

# MCP ツールの作成

プラットフォームで新しい MCP ツールを作成する手順を説明します。

## MCP とは？ <a href="#what-is-mcp" id="what-is-mcp"></a>

MCP（Model Context Protocol）は、AI を外部ツールに接続する標準プロトコルです。Agent は URL を通じてリモートの MCP サーバーに接続し、そのサービスが提供するツールを利用できます。

### **MCP ソリューション** <a href="#mcp-solution" id="mcp-solution"></a>

MCP サーバーを一度開発すれば、MCP をサポートするすべての AI プラットフォームで利用できます。プロトコルの仕組み、MaiAgent がサポートするトランスポートと制限については、技術マニュアルの [MCP（Model Context Protocol）](https://docs.maiagent.ai/tech/mcp/mcp-model-context-protocol)を参照してください。

## MCP ツールをすばやく作成する <a href="#quick-create-mcp-tool" id="quick-create-mcp-tool"></a>

### 1. ツール管理画面を開く <a href="#step-1-enter-tool-management" id="step-1-enter-tool-management"></a>

まず、左側のメニューから <mark style="color:blue;">AI 機能</mark> → <mark style="color:blue;">ツール</mark> に進みます。ツール一覧ページで、右上の <mark style="color:blue;">ツールを追加</mark> ボタンをクリックします。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-dd5576c2a8c64ec454893eb5c08dcae07b072918%2FMCP%E5%B7%A5%E5%85%B7%20(1).png?alt=media" alt="ツール一覧ページと追加ボタン"><figcaption><p>「ツールを追加」をクリックして作成を開始します</p></figcaption></figure>

### 2. ツールの種類を選択する <a href="#step-2-select-tool-type" id="step-2-select-tool-type"></a>

ツールの種類は <mark style="color:blue;">MCP</mark> を選択します。

### 3. 表示名を設定する <a href="#step-3-set-display-name" id="step-3-set-display-name"></a>

ツールにわかりやすい表示名を設定します。ここでは <mark style="color:blue;">Composio mcp for google calendar</mark> とします。

* **用途**：この名前はプラットフォームの画面に表示され、すべてのユーザーが確認できます。
* **推奨**：ツールの主な機能が明確に伝わる名前を選ぶと、ユーザーが理解しやすくなります。名前に厳密な形式の制限はありません。

### 4. MCP 設定を入力する <a href="#step-4-configure-mcp" id="step-4-configure-mcp"></a>

MaiAgent は URL を使ってリモートの MCP サーバーに接続します（SSE と Streamable HTTP のストリーミングプロトコルをサポートします）。`npx` や `node` などのローカルコマンドで起動する MCP サーバーはサポートしません。そのため、「<mark style="color:blue;">MCP 設定</mark>」ではサーバーの URL と認証方法のみを設定し、サーバーに必要なキーはすべてヘッダーまたは OAuth 認可で提供します。

まず MCP サーバーの認証方法を確認し、次の表に従って設定してください。

| サーバーの認証方法                               | 設定方法                                                                                                                                                                     |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| OAuth ログイン（ユーザーが相手のサービスにログインし、認可に同意します） | 「<mark style="color:blue;">接続するサービスを選択</mark>」でコネクタを選択します。[b. OAuth コネクタと認可対象](#oauth-connector)を参照してください                                                                |
| 固定の API Key または Token（組織全体で共有）、または認証不要  | 「<mark style="color:blue;">または直接入力（認証なし / Service Account）</mark>」の下に URL を入力します。[a. MCP サーバー URL](#mcp-server-url)を参照してください。キーは [c. ヘッダー (JSON)](#mcp-headers) に入力します   |
| 各連絡先が自分の API Key または Token を使用します       | 前の行の手順でツールを作成し、連絡先の「<mark style="color:blue;">MCP 認証情報</mark>」タブで設定します。[連絡先の MCP 認証情報設定](/maiagent-user-guide/ja/build/tools/setup-contacts-mcp-credentials.md)を参照してください |

#### a. 🔗MCP サーバー URL <a href="#mcp-server-url" id="mcp-server-url"></a>

* **用途**：Agent はこの URL を通じて MCP サーバーに接続し、サーバーが提供するツールを取得・呼び出します。
* **入力場所**：
  * サーバーが OAuth を使用する場合：「<mark style="color:blue;">接続するサービスを選択</mark>」でコネクタのカードをクリックすると、URL が自動入力されます。以下の [b. OAuth コネクタと認可対象](#oauth-connector)を参照してください。
  * サーバーが認証不要、または固定キーを使用する場合：「<mark style="color:blue;">または直接入力（認証なし / Service Account）</mark>」の下の入力欄に、`https://mcp.example.com/mcp` などの完全な URL を貼り付けます。
* **形式**：`https://` で始まる、インターネットから接続できるリモートサーバーのアドレスである必要があります。`localhost` や内部ネットワークのアドレスは保存できません。オンプレミス環境で内部ネットワークの MCP サーバーに接続する必要がある場合は、MaiAgent にアクセス許可の対応を依頼してください。
* **注意**：この項目は必須です。

{% hint style="info" %}
MCP URL の取得方法は、[技術担当者向けマニュアル—Remote MCP サービスの概要](https://docs.maiagent.ai/tech/mcp/remote-mcp)を参照してください
{% endhint %}

{% hint style="info" %}
MCP サーバーが「現在の会話のユーザー」を識別する必要がある場合：訪問者が Keycloak で Web Chat にログインするとき、会話プラットフォームで [Keycloak のログイン ID を引き継いでツールを呼び出す](/maiagent-user-guide/ja/build/choose-channel/web-chat.md#keycloak-token-passthrough)を有効にし、この MCP サーバーのホストを許可リストに追加できます。プラットフォームは `Authorization` ヘッダーに訪問者本人の Keycloak 認証情報を付加します。
{% endhint %}

URL を直接入力したツールを保存する際、システムは URL と「<mark style="color:blue;">ヘッダー (JSON)</mark>」を使ってサーバーに接続し、ツール一覧を取得します。接続に失敗すると「<mark style="color:blue;">MCP ツールの検証に失敗しました。MCP サーバーに接続できません</mark>」と表示されるため、URL とヘッダーを確認してください。OAuth コネクタを使用するツールは先に保存され、認可完了後にツール一覧を取得します。

#### b. 🔐 OAuth コネクタと認可対象 <a href="#oauth-connector" id="oauth-connector"></a>

MCP サーバーが OAuth を使用する場合、MaiAgent が認可フローを代行し、呼び出し時にアクセストークンを自動付加します。ヘッダーにキーを入力する必要はありません。

{% stepper %}
{% step %}

### コネクタを選択する <a href="#oauth-select-connector" id="oauth-select-connector"></a>

「<mark style="color:blue;">接続するサービスを選択</mark>」で、接続するサービスのカード（<mark style="color:blue;">OAuth 2.0</mark> と表示されています）をクリックすると、サーバー URL が自動入力されます。一覧には、プラットフォームで検証済みのサービスと、組織がカスタマイズしたコネクタが含まれます。
{% endstep %}

{% step %}

### サービスが見つからない場合はコネクタをカスタマイズする <a href="#oauth-custom-connector" id="oauth-custom-connector"></a>

最後の「<mark style="color:blue;">カスタムコネクタの接続先</mark>」カードをクリックし、以下の項目を入力してから「<mark style="color:blue;">コネクタを追加</mark>」をクリックします。システムはまずサーバーに接続できるかをテストし、成功するとカード一覧に戻って新しいコネクタを自動選択します。

| 項目                                                   | 必須  | 説明                                                                                                                                                                        |
| ---------------------------------------------------- | --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:blue;">名前</mark>                  | はい  | コネクタの識別名です。英字、数字、アンダースコア、ハイフンのみを使用できます。例：`my-mcp-server`                                                                                                                  |
| <mark style="color:blue;">表示名</mark>                 | いいえ | カードに表示される名前です                                                                                                                                                             |
| <mark style="color:blue;">説明</mark>                  | いいえ | この MCP サーバーの用途を簡単に説明します                                                                                                                                                   |
| <mark style="color:blue;">ツールカテゴリ</mark>             | いいえ | サーバーのツールが個別に分類されていない場合に適用するデフォルトカテゴリです。会話内のツールカードに表示される文言に影響します                                                                                                           |
| <mark style="color:blue;">Logo</mark>                | いいえ | カードのアイコンです                                                                                                                                                                |
| <mark style="color:blue;">サーバー URL</mark>            | はい  | MCP サーバーの URL です。`https://` を使用する必要があります                                                                                                                                  |
| <mark style="color:blue;">OAuth サーバー URL</mark>      | いいえ | 認可サーバーの URL です。空欄の場合、MCP サーバーが公開する情報から自動検出します。自動検出に失敗する場合、または認可サーバーと MCP サーバーが異なるドメインにある場合のみ入力します（例：Supabase の MCP は `mcp.supabase.com`、認可サーバーは `api.supabase.com` にあります） |
| <mark style="color:blue;">Resource Identifier</mark> | いいえ | 認可サーバーにトークンを申請する際に指定するリソース識別子です。空欄の場合は自動検出します。検出に失敗する場合、またはサーバーが公開する情報が誤っている場合のみ入力します（例：Asana は `https://mcp.asana.com` です）                                               |
| <mark style="color:blue;">OAuth Client ID</mark>     | いいえ | サーバーがクライアントの自動登録をサポートする場合は空欄にします。サポートしない場合は、相手の OAuth サービスでアプリケーションを作成し、取得した Client ID をここに入力します                                                                          |
| <mark style="color:blue;">OAuth Client Secret</mark> | いいえ | Client ID と組み合わせて使用します。相手が機密クライアント（confidential client）を要求する場合のみ入力します。設定済みの場合はマスク表示され、空欄にすると元の値を保持し、再入力すると上書きします                                                          |

作成したコネクタは、「<mark style="color:blue;">ツール</mark>」ページの「<mark style="color:blue;">コネクタを管理</mark>」で変更・削除できます。「サーバー URL」を変更すると、このコネクタを使用するツールの認可が無効になるため、慎重に変更してください。
{% endstep %}

{% step %}

### 認可対象を選択する <a href="#oauth-auth-subject" id="oauth-auth-subject"></a>

コネクタを選択したら、「<mark style="color:blue;">認可対象</mark>」で、Agent が誰のアカウントを使ってこのサービスを操作するかを選択します。

| 認可対象                                      | 説明                                                                                                                                          |
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:blue;">組織共用</mark>     | 組織全体で同じ認可を共有し、管理者またはメンバーが最初に一度認可します。その後、この Agent（LINE、Web Chat など）を利用するすべてのユーザーが、認可した人のアカウントでサービスにアクセスします。各自のアカウントを使うべき個人向けサービスでは選択しないでください |
| <mark style="color:blue;">連絡先ごとの認可</mark> | 各連絡先が会話内で個別にログインして認可し、Agent はその連絡先本人として操作します。ログイン済みのユーザーが必要です。未ログインの匿名訪問者との会話では、Agent はこのツールを取得しません                                         |
| {% endstep %}                             |                                                                                                                                             |

{% step %}

### 認可を完了する <a href="#oauth-authorize" id="oauth-authorize"></a>

* **組織共用**：「<mark style="color:blue;">認可へ進む</mark>」をクリックします。ツールが未保存の場合は先に保存し、相手のサービスの認可ウィンドウを開きます。ログインして同意すると「<mark style="color:blue;">認可済み</mark>」と表示され、システムがツール一覧を自動取得・保存して編集ウィンドウを閉じます。別のアカウントに変更する場合は、ツールを開き直して「<mark style="color:blue;">認可を解除</mark>」をクリックし、再度認可します。
* **連絡先ごとの認可**：ここでの認可は不要です。各連絡先が会話内で個別にログインして認可します。認可状態の確認・取り消し・再認可の実行は、「<mark style="color:blue;">連絡先</mark>」編集ウィンドウの「<mark style="color:blue;">Connector 認可</mark>」タブで行えます。

{% hint style="warning" %}
認可ウィンドウはポップアップで開きます。「<mark style="color:blue;">ポップアップがブロックされました。ポップアップを許可して再試行してください</mark>」と表示された場合は、ブラウザーでこのサイトのポップアップを許可し、再度「認可へ進む」をクリックしてください。
{% endhint %}
{% endstep %}
{% endstepper %}

#### c. 📰 ヘッダー (JSON) <a href="#mcp-headers" id="mcp-headers"></a>

* **用途**：固定の API Key や Token など、MCP サーバーへの接続ごとに付加する HTTP ヘッダーを設定します。
* **形式**：有効な JSON オブジェクトを使用します。キー（Key）はヘッダー名、値（Value）はヘッダーの内容（文字列）です。不要な場合は `{}` のままにします。
* **URL を直接入力する場合**：サーバーが要求する認証ヘッダーをここに入力します。キーには実際の値を直接入力してください。

  ```json
  {
    "Authorization": "Bearer ここにサービス提供元の Token を貼り付けます"
  }
  ```
* **OAuth コネクタを選択した場合**：認証は自動処理されるため、ここには追加のカスタムヘッダーのみを入力します（任意）。認可対象が「組織共用」の場合、`Authorization` をここに入力しないでください。自動付加される認可情報を置き換えてしまいます。
* **共用・個別の認証情報**：ここで設定するヘッダーはすべての会話で共有されます。各連絡先が自分のキーを使用する場合は、[連絡先の MCP 認証情報](/maiagent-user-guide/ja/build/tools/setup-contacts-mcp-credentials.md)で連絡先ごとに設定してください。呼び出し時に同名のヘッダーがある場合、連絡先の設定が優先されます。
* **使用できる変数**：値には、項目の下の「<mark style="color:blue;">使用可能なコンテキスト変数</mark>」に表示される変数（`{{contact_id}}`、`{{conversation_id}}` など）を使用できます。システムは会話ごとに実際の値に置き換えます。それ以外の `{{…}}` 名は置き換えられず、保存時に「<mark style="color:blue;">不明なテンプレート変数が含まれています</mark>」というエラーが表示されます。そのため、キーを独自の変数で代用することはできません。実際の値を入力してください。
* **閲覧できる内容**：保存後に編集ウィンドウを開き直すと、各ヘッダー値は先頭と末尾の各 4 文字のみが表示され、中央は `****` に置き換わります。そのまま保存しても元の値は変わりません。ヘッダーは AI モデルに提供されず、MCP ツールの実行記録にもリクエストヘッダーは保存されません。

### 5. 「<mark style="color:blue;">許可するツール（JSON 配列）</mark>」を見つけ、「再取得」をクリックする <a href="#step-5-fetch-allowed-tools" id="step-5-fetch-allowed-tools"></a>

* **用途**：この MCP クライアントで Agent に利用を許可する具体的なサブツールの一覧を指定します。1 つの MCP クライアントが複数の機能やサブツールを提供することがあります。
* **ツールの取得と選択**：「<mark style="color:blue;">再取得</mark>」をクリックすると、システムは現在のサーバー URL とヘッダーを使って接続し、サーバーが提供するすべてのツールを一覧表示します。各ツールの右側のスイッチで Agent が利用できるツールを選択できます。「<mark style="color:blue;">すべて有効にする</mark>」「<mark style="color:blue;">すべて無効にする</mark>」で一括切り替えもできます。保存前に少なくとも 1 つのツールを有効にしてください。
* **OAuth コネクタ**：認可対象が「組織共用」の場合、認可完了後にツール一覧を自動取得・保存します。

クリックすると、そのサーバーに関連するツールの内容を自動取得し、一覧に表示します。

<figure><img src="https://2584873290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTvHx8hgwYGDTLD3A7xoW%2Fuploads%2Fgit-blob-cdb6eda7289d961c6228647418f17eee69a0e801%2Fimage%20(113).png?alt=media" alt=""><figcaption></figcaption></figure>

### 6. 💾 ツールを保存する <a href="#step-6-save-tool" id="step-6-save-tool"></a>

すべての設定を確認したら、ページの一番下までスクロールし、「<mark style="color:blue;">確認</mark>」ボタンをクリックします。これで新しいツールの作成が完了します！

MCP サーバーがツールにインタラクティブなインターフェースを付加している場合、Agent が呼び出すと、会話に直接操作できるカードが表示されます。追加設定は不要です。[MCP インタラクティブカード（MCP Apps）](/maiagent-user-guide/ja/build/tools/mcp-apps.md)を参照してください。

## ⚠️ 重要な注意事項 <a href="#important-notes" id="important-notes"></a>

**接続テスト**

* ツール作成後は、MCP 接続が正常かテストすることをお勧めします
* テスト環境でツールの機能を検証できます

**権限管理**

* 不要な機能を過剰に許可しないよう、許可するツールを慎重に選択してください
* ツールの使用状況を定期的に確認してください

**トラブルシューティング**

* 接続に失敗する場合は、MCP サーバー URL が正しいか確認してください
* 「ヘッダー (JSON)」が有効な JSON オブジェクトで、キーに実際の値が入力されていることを確認してください
* OAuth コネクタ（組織共用）を使用する場合は、ツールに「<mark style="color:blue;">認可済み</mark>」と表示されていることを確認してください


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.maiagent.ai/maiagent-user-guide/ja/build/tools/mcp-setup.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
