> 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/tech/ja/mcp/mcp-model-context-protocol.md).

# MCP（Model Context Protocol）

MCP（Model Context Protocol）とは：AI アプリケーションを外部ツールやデータソースに接続するオープンなプロトコルです。動作原理、主な価値、MaiAgent の MCP ツールで MCP Server に接続する方法を説明します。

{% hint style="info" %}
**MCP 関連ページの読み方**：まず本ページで概念を確認してください → Agent に MCP ツールを追加する管理画面での操作は、ユーザーマニュアルの [MCP ツールの作成](https://docs.maiagent.ai/build/tools/mcp-setup)を参照してください → 自社システムを MCP Server にする場合は、[自社ホスト型 MCP Server の接続仕様](/tech/ja/mcp/self-hosted-mcp-server.md)を参照してください。Composio、Zapier などのホステッドサービスを使用する場合は、[Remote MCP サービスの概要](/tech/ja/mcp/remote-mcp.md)を参照してください → 逆方向に Claude、Cursor などの AI ツールから MaiAgent を操作する場合は、[MaiAgent MCP](/tech/ja/mcp/maiagent-mcp.md)を参照してください。
{% endhint %}

## MCP とは？

MCP は Model Context Protocol の略で、**モデルコンテキストプロトコル**と呼ばれる、AI アプリケーションを外部ツールやデータソースに接続するオープンなプロトコルです。MCP に対応したアプリケーションは、Anthropic Claude、OpenAI GPT、Google Gemini など、どの大規模言語モデルを使用していても、同じルールで MCP サーバーが提供するツールに接続できます。

### MCP でできること

MCP を使うと、LLM は質問に答えるだけでなく、外部データの取得や外部システムの操作もできます：

#### **外部データソースへのリアルタイム接続** <a href="#ji-shi-lian-jie-wai-bu-zi-liao-yuan" id="ji-shi-lian-jie-wai-bu-zi-liao-yuan"></a>

* データベースにアクセスします
* ファイルシステムを読み取ります
* クラウドサービスと連携します

#### **能動的なツール呼び出し** <a href="#zhu-dong-diao-yong-gong-ju" id="zhu-dong-diao-yong-gong-ju"></a>

* コードを実行します
* アプリケーションを操作します

***

## MCP の動作原理

MCP の動作原理を次の図に示します。各層は次のとおりです：

| 区分                   | 説明                                                                                                                                                                                                                                     |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **ユーザー側 (Frontend)** | ユーザーは UI または SDK を通じて指示を出します                                                                                                                                                                                                           |
| **AI モデル層**          | LLM がツール定義に基づいて呼び出すツールとパラメータを決定し、アプリケーション内の MCP Client が MCP リクエストに変換して送信します                                                                                                                                                           |
| **プロトコル層 (MCP)**     | <p><code>JSON-RPC 2.0</code> でメッセージをやり取りし、JSON Schema でツールのパラメータを記述します。また、stdio や Streamable HTTP などのトランスポートを定義します<br><code>JSON-RPC 2.0</code> は通信プロトコルです。送信する情報の「リクエストとレスポンス」の構造を JSON 形式で定義し、LLM が共通の言語でさまざまなプログラムと通信できるようにします。</p> |
| **MCP Servers**      | <p>モデルのリクエストを受け取り、実際のツールやデータシステムとやり取りします<br>MCP Servers を自社でホストするほか、<a href="/tech/ja/mcp/remote-mcp.md"> Remote MCP サービス</a>を通じて LLM と他のサービスを連携させることもできます。</p>                                                                        |
| **外部システム**           | データベース、API、Git、ファイルシステムなど、実世界のさまざまなリソースです                                                                                                                                                                                              |

### MCP の処理フロー図

<figure><img src="https://605688223-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVYMUz6J7vDZ0QTvb1rbN%2Fuploads%2Fgit-blob-fa14ca4d90a37aa88e2af9456fde10d36763b8b0%2Fplayma%20(8)%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

このフローにより、アプリケーションは MCP Client を一度実装するだけで、さまざまな MCP サーバーが提供するツールに接続できます。

### MCP の使用例

#### 使用例1：MCP による Google Drive ファイルの整理—ドキュメント検索と要約

自然言語で LLM にタスクを伝えます：

> Google Drive にある「2024年度予算」に関するすべてのドキュメントを探し、要約レポートにまとめてください

LLM は要求に応じて、`search_files` など、呼び出す MCP ツールを判断します。以下のツール名と結果は例です。

**MCP の処理フロー:**

<figure><img src="https://605688223-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVYMUz6J7vDZ0QTvb1rbN%2Fuploads%2Fgit-blob-3f72dbcd1c66f1e543bb4f4e6c65b9a40ff9ce48%2FUntitled%20diagram-2025-10-27-014125.png?alt=media" alt=""><figcaption></figcaption></figure>

**AI が実際に行う操作:**

1. 🔍 「2024年度予算」のキーワードを含むドキュメントを検索します
2. 📄 見つかった5件のドキュメントの内容を読み取ります
3. 🧠 各ドキュメントの要点を分析します
4. 📊 統合した要約レポートを生成します
5. 💡 予算分析に関する提案を行います

**ユーザーが受け取る結果:**

```
関連ドキュメントが5件見つかりました:

1. 【2024年度預算提案.docx】
   - 総予算: 日本円 50,000,000
   - 主な項目: 人件費 60%、運営費 25%、研究開発 15%
   
2. 【Q1預算執行報告.xlsx】
   - 執行率: 92%
   - 予算超過項目: マーケティング費用 +8%
   
3. 【預算修正案_v2.pdf】
   - 調整提案: 研究開発予算を 10% 増額
   
... (その他のドキュメントの要約)
```

***

#### 使用例2：MCP による Google Sheet と Slack の連携—週次レポートを定期生成してグループに送信

LLM は MCP を通じて複数の外部サービスのツールを連携できます。処理フローを次の図に示します：

スケジュールサービスを使い、毎週 LLM に同じクエリタスクを実行させます：

LLM は要求に応じて、`search_sheet`、`query_sheet` など、呼び出す MCP ツールを判断します（ツール名は例です）。MaiAgent では[エージェントスケジュール](https://docs.maiagent.ai/build/agent/schedule)で定期的に Agent を起動し、このようなタスクを実行できます。

<figure><img src="https://605688223-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVYMUz6J7vDZ0QTvb1rbN%2Fuploads%2Fgit-blob-dc7ed4dbc4d211df23974e9c0c4dbe4c77cab924%2FUntitled%20diagram-2025-10-27-015034.png?alt=media" alt=""><figcaption></figcaption></figure>

Agent の週次処理フロー：

1. 🔍 「売上データ」のスプレッドシートを検索します
2. 📄 スプレッドシート内の数値を読み取ります
3. 📊 平均売上や同期比の成長率など、要求に応じた統合要約レポートを生成します
4. 💡 集計結果を Slack チャンネルに自動送信します

***

## MCP の主な価値 <a href="#he-xin-jia-zhi-zong-jie" id="he-xin-jia-zhi-zong-jie"></a>

#### 🧠 **LLM が知性を提供します** <a href="#llm-ti-gong-zhi-hui" id="llm-ti-gong-zhi-hui"></a>

* 自然言語を理解します
* 推論と意思決定を行います
* 知識を統合します
* 創造的な内容を生成します
* 異常を検出します
* 予測分析を行います

#### 📡 **MCP が機能を提供します** <a href="#mcp-ti-gong-neng-li" id="mcp-ti-gong-neng-li"></a>

* さまざまなツールに接続します
* 実際の操作を実行します
* システム間を統合します
* 通信を標準化します

LLM は要求を理解して次の行動を決定し、MCP は標準的な方法でツールを接続します。両者を組み合わせることで、LLM は会話中にデータを検索し、操作を実行できます。MCP プロトコルが規定するのは接続と認可のフローです。接続したツールで実際に何ができるかは、MCP サーバーの実装と、利用を認可したアカウントの権限によって決まります。

***

## MaiAgent での MCP の使用 <a href="#mcp-in-maiagent" id="mcp-in-maiagent"></a>

MaiAgent は **MCP Client** です。管理画面で MCP ツールを作成し、サーバー URL を入力して Agent に関連付けると、Agent はサーバーが提供するツールを呼び出せます。逆方向に Claude、Cursor などの AI ツールから MaiAgent を操作する場合は、[MaiAgent MCP](/tech/ja/mcp/maiagent-mcp.md)を参照してください。

### 対応するトランスポート <a href="#supported-transports" id="supported-transports"></a>

MaiAgent はリモートの MCP サーバーにのみ接続し、URL に基づいてトランスポートを判断します。パスが `/sse` で終わる場合、パスに `/sse/` が含まれる場合、またはクエリ文字列に `transport=sse` が含まれる場合は SSE を使用し、それ以外はすべて Streamable HTTP を使用します。

| トランスポート                      | 説明                                                                              | MaiAgent の対応 |
| ---------------------------- | ------------------------------------------------------------------------------- | ------------ |
| **Streamable HTTP**          | MCP 仕様の標準トランスポートです。各メッセージを HTTP POST で単一のエンドポイントに送信し、レスポンスは JSON またはストリームで返されます | ✅            |
| **SSE（HTTP with SSE）**       | 2024-11-05 版仕様のトランスポートです。Server-Sent Events でサーバーメッセージをストリーミングします               | ✅            |
| **stdio**                    | MCP 仕様の標準トランスポートです。クライアントがローカルでサーバープロセスを起動し（例：`npx`）、標準入出力で通信します                | ❌            |
| **WebSocket などのカスタムトランスポート** | MCP 仕様の標準トランスポートには含まれません                                                        | ❌            |

stdio に対応していないのは、プラットフォームがサーバー上で `npx`、`node` などのローカルコマンドを起動しないためです。stdio 版のみを提供する MCP サーバーは、サービス提供者のリモート版を使用するか、自社で HTTP サービスとしてデプロイする必要があります。自社ホスト型 MCP Server のトランスポート、URL、認証の要件は、[自社ホスト型 MCP Server の接続仕様](/tech/ja/mcp/self-hosted-mcp-server.md)を参照してください。

### グラフィカルインターフェースによる簡単な統合

MaiAgent はグラフィカルインターフェースを提供しており、コードを書かずにリモート MCP サーバーに接続できます。管理画面で MCP ツールを追加する際に、サーバー URL と認証方式（固定キーをヘッダーに設定するか、OAuth コネクタを選択）を入力し、サーバーが返すツール一覧から Agent に使用を許可するツールを選択します。

{% hint style="info" %}
MCP ツールの作成方法は、[ユーザーマニュアル—MCP ツールの作成](https://docs.maiagent.ai/build/tools/mcp-setup)を参照してください。
{% endhint %}

### プラットフォームの処理 <a href="#platform-behavior" id="platform-behavior"></a>

* **ツールの範囲**：MCP ツールの「<mark style="color:blue;">許可するツール (JSON 配列)</mark>」で有効にしたツールだけがモデルに渡されます。サーバーに追加された新しいツールは自動では公開されません。
* **タイムアウトと再試行**：MCP session の読み取りタイムアウトは30秒です。接続の切断などの一時的なエラーでは、再送しても安全なツールだけを自動で再試行します。
* **記録**：呼び出しごとにツール実行ログが記録され、<mark style="color:blue;">AgentOps</mark> → <mark style="color:blue;">ツール実行ログ</mark>で確認できます。
* **接続検証**：URL を直接入力する MCP ツールは、保存時にサーバーへ接続してツール一覧を取得します。接続できない場合は「MCP ツールの検証に失敗しました」と表示し、不完全な状態では保存しません。OAuth コネクタのツールは認可完了後に一覧を取得します。操作方法は、ユーザーマニュアルの [MCP ツールの作成](https://docs.maiagent.ai/build/tools/mcp-setup#mcp-server-url)を参照してください。

### `unhandled errors in a TaskGroup` のトラブルシューティング <a href="#taskgroup-errors" id="taskgroup-errors"></a>

ツール実行ログのエラーメッセージに `unhandled errors in a TaskGroup (1 sub-exception)` が表示されても、独立したエラー種別を示すわけではありません。MCP クライアントは非同期タスクグループ内で session を実行するため、接続の切断、読み取りタイムアウト、サーバーによる接続終了などのトランスポート層のエラーが、この外側のメッセージに包まれます。実際の原因は括弧の後の sub-exception にあります。次の順序で調査してください：

1. <mark style="color:blue;">AgentOps</mark> → <mark style="color:blue;">ツール実行ログ</mark>で該当レコードを開き、`errorMessage` の全文と `status` を確認します（`timeout` は30秒以内に応答がなかったことを示します）。
2. トランスポート層のエラーはプラットフォームが自動で再試行します。再試行後も失敗する場合は、まずサーバー URL に公開インターネットから接続できること、トランスポート（SSE／Streamable HTTP）がサーバーと一致すること、ヘッダーまたは OAuth 認可が引き続き有効であることを確認してください。
3. sub-exception がサーバーから返されたアプリケーションエラー（ツールがパラメータの不正を報告した場合など）の場合、プラットフォームは再試行しません。同じパラメータで MCP サーバーを直接呼び出して再現してください。
4. ツール設定ページで再度「ツール一覧を取得」が成功する場合は、接続と認証は正常です。問題は、そのツールの実行時のタイムアウトやサーバー側エラーであることが多いです。

Composio、Zapier などのホステッドサービスを使用する際の注意事項は、[Remote MCP サービスの概要](/tech/ja/mcp/remote-mcp.md)を参照してください。


---

# 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/tech/ja/mcp/mcp-model-context-protocol.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.
