# MCPリクエスト (/ja/docs/requests/mcp-requests)

MCPリクエストは、ワークスペースの[MCPサーバ](/docs/mcp-servers)の1つに対する保存された呼び出しです。ツールの呼び出し、リソースの読み取り、プロンプト、または任意のJSON-RPCメソッドです。
よく行う呼び出しを保存してチェックを追加すれば、ほかのリクエストと同じように[ランナー](/docs/requests/runner)で実行できます。

<Shot id="requests-mcp-call" alt="Agent tools › search_catalog：Alpenglow MCPのサーバメニュー、選択されたツール、JSONの引数とその下のツールのフィールド、緑の「結果」バッジが付いた結果" />

## MCPサーバのページで呼び出しを試す [#try-a-call-from-the-mcp-servers-page]

最も手早い始め方は、サーバそのもので試すことです：

1. **MCPサーバ**ページを開いて、サーバを選びます。たとえば、`https://demo.echolot.dev/mcp`を指す**Alpenglow MCP**です。
2. まだチェックしていなければ、**チェック**を選びます。ページには、サーバの**ツール**、**リソース**、**プロンプト**が一覧されます。
3. ツール、リソース、プロンプトのいずれかをクリックします。引数を入力するシートが開きます。
4. 入力スキーマから作られた**フォーム**か**JSON**で引数を入力して、**呼び出す**を選びます。
5. 下に結果が表示され、**結果**または**エラー**と、かかった時間が示されます。
6. **リクエストとして保存**を選ぶと、呼び出しが引数付きでMCPリクエストとして保存されます。

<Shot id="requests-mcp-call-panel" alt="MCPサーバのページに表示されたsearch_catalogツールの呼び出しシート。queryとlimitのフォームと、その下のJSON結果" />

## MCPリクエストを作成する [#create-an-mcp-request]

サイドバーの<strong>リクエスト</strong>の横にある<strong>+</strong>メニューから<strong>新規MCP呼び出し</strong>を選びます。エディタのバーに呼び出しの内容が並びます：

1. 先頭のメニューからサーバを選びます。同じメニューの<strong>MCPサーバ…</strong>で、MCPサーバのページが開きます。
2. 呼び出す対象の種類を選びます：**ツール**、**リソース**、**プロンプト**、**メソッド**。
3. 対象を入力します：**ツール名**、**リソースURI**、**プロンプト名**、または`ping`などのJSON-RPCメソッド。サーバの最新のチェックで得られた名前は、入力中に**サーバから**として候補に表示されます。
4. **呼び出す**（<kbd>⌘</kbd><kbd>R</kbd>）を選びます。実行中は、**キャンセル**（<kbd>⌘</kbd><kbd>.</kbd>）で停止できます。

| 操作 | 送信する内容 | 引数の意味 |
| --- | --- | --- |
| **ツール** | ツールの名前を指定した`tools/call` | ツールの引数 |
| **リソース** | URIを指定した`resources/read` | 使用しません |
| **プロンプト** | プロンプトの名前を指定した`prompts/get` | プロンプトの引数 |
| **メソッド** | 任意のJSON-RPCメソッド | メソッドのparams |

エディタのタブは次のとおりです：**ドキュメント**、**引数**、**変数**、**テスト**、**設定**。MCPリクエストには、独自のヘッダー、認証、スクリプトはありません。
サーバの接続設定、ヘッダー、サインインは、MCPサーバのページにあります。[サーバを追加する](/docs/mcp-servers/adding-servers)を参照してください。

## 引数 [#arguments]

**引数**タブには、`{{variables}}`を使えるJSONオブジェクトを書きます：

```json
{
  "query": "ultralight tent",
  "limit": 3
}
```

サーバの最新のチェックでそのツールが分かっている場合、タブにはエディタの上にツールの説明が、下にフィールドが表示されます（`Fields: query*, limit`など）。星印は必須フィールドを示します。
**スキーマから入力**は、引数を、ツールの入力スキーマのすべてのフィールドで置き換えます。そこから書き始められます。

Alpenglowワークスペースには、**Agent tools**に2つの呼び出しがあります：上の引数を使う**search_catalog**と、`{"order_id": "ord_7Hk2Lw"}`を調べる**order_status**です。

## 結果 [#results]

レスポンスペインには、結果が**ボディ**タブにJSONとして表示されます。ほかの[レスポンス](/docs/requests/responses)と同じです。
レスポンスの概要のバッジは、緑の**結果**または赤の**エラー**で、サーバが対応するプロトコルのバージョンも表示されます。ポインタを合わせると、誰が応答したか、何が問題だったかが分かります。

呼び出しの失敗には2通りあり、Echolotはそれらを区別します：

- サーバがエラーを返す場合：エラーとしてマークされたツールの結果、またはJSON-RPCエラー。バッジには**エラー**と表示され、ボディにはサーバの返した内容が入ります。
- 呼び出しが応答を得られない場合：サーバに接続できない、起動しない、プロトコルに違反する。理由はレスポンスペインに表示されます。
  MCPサーバのページでサーバをチェックしてください。メッセージログに、直近のチェックのすべてのメッセージが表示されます。

呼び出しはすべて[履歴](/docs/workspaces/history)に保存されます。

## MCPのチェック [#checks-for-mcp]

**テスト**タブでは：

- **MCPエラー**が`false`と等しいチェックは、呼び出しが成功したときに合格します。失敗すると、サーバのメッセージが表示されます。
- **ツールの出力スキーマ**は、結果の`structuredContent`を、ツールが宣言する`outputSchema`と照合します。ツールが何も宣言していない場合や、結果に`structuredContent`がない場合は失敗します。
- **JSONの値**は、結果の任意の値をチェックします。たとえば`$.structuredContent.results.length`が`0`より大きい、`$.content[0].type`が`text`と等しい、などです。

すべてのチェックと比較については、[スクリプトとテスト](/docs/requests/scripts-and-tests)を参照してください。

<Edition only="appstore">
  App StoreエディションはHTTPでMCPサーバを呼び出します。ローカルプログラムとして動作するサーバ（stdio）はワークスペースに残りますが、それらを呼び出すにはダイレクトダウンロード版かコマンドラインツールが必要です。
</Edition>

## コマンドラインから [#from-the-command-line]

`echolot run`は、保存されたMCPリクエストをチェック付きで実行し、`echolot mcp check`はサーバを調べます。[echolot mcp](/docs/cli/mcp)を参照してください。
