コンテンツにスキップ

MCPで能力を広げる(入門)

MCP(Model Context Protocol)は、外部のサーバーが提供するツールをHermesに公開し、エージェントの能力を広げる仕組みです。たとえば、特定のサービスの操作や独自のデータ参照を、ツールとして使えるようになります。

便利な反面、MCPサーバーはあなたの環境やデータに触れるため、接続する相手は慎重に選ぶ必要があります。この章では、利点よりも先に危険性と判定法を押さえ、最小限の接続までを安全に行います。

MCPとは

MCPサーバーは、Hermesに対してツールの一覧と実行手段を提供します。接続方式は2つです。

  • stdio: Hermesがローカルで子プロセスとしてサーバーを起動する(command・args・env を指定)。
  • HTTP: リモートのMCPエンドポイントに接続する(url・必要なら認証)。

接続後、サーバーが公開するツールがエージェントから使えるようになります。

なぜ慎重に扱うか

接続する前に、次のリスクを理解してください。

  • サーバーはあなたの環境で動く: stdioサーバーはローカルで子プロセスとして起動します。渡したパスや環境変数にアクセスできます。
  • エージェントの行動が変わる: ツール定義はシステムプロンプトに含まれ、モデルが使える外部操作が増えます。何ができるサーバーかを把握していないと、意図しない操作の余地が広がります。
  • モデルを使われることがある: MCPには、サーバー側からHermesのモデル推論を要求する「sampling」機能があります。信頼できないサーバーには許可しないのが安全です。
  • 認証情報の扱い: HTTPサーバーの認証情報をJSONに直書きすると漏えいリスクになります。

配布元がわからないMCPサーバー、何をするか説明できないサーバーは接続しないでください。MCPはエージェントの「できること」を直接増やす機能なので、信頼の判断を省略しないことが最大の防御です。

信頼できるサーバーの判定法

接続候補が信頼できるかは、次のチェックで判断します。1つでも不安が残るなら、接続を見送るか、範囲を最小化してから試します。

  1. 配布元と実行コマンドを確認する: 誰が作ったか、ソースは公開されているか、実行する command は何かを確かめる。
  2. stdioの env とアクセス可能なパスを最小化する: 渡す環境変数とパスを必要最小限にする。ホストの全環境は渡さない。
  3. HTTPはHTTPS・ホスト名・認証方式を確認する: ssl_verify: false(証明書を検証しない)は実サービスで使わない。
  4. tools.include で必要なツールだけ公開する: サーバーが多くのツールを持っていても、使うものだけに絞る。
  5. 未信頼サーバーは sampling.enabled: false にする: モデル推論の要求を止める。
  6. 書き込み系ツールを並列化しない: 同時実行の許可(supports_parallel_tool_calls)を安易に有効化しない。
  7. 保存後に新しいターンで動作確認する: 追加・変更したツールが期待どおり使えるかを、新しいメッセージで確かめる。

このチェックは安全に設定するための確認事項のMCP節とも対応しています。

最小限の接続

判定を通ったサーバーを、最小構成で追加します。MCPの管理画面は、設定画面ではなくサイドバーの「スキルとツール」(Capabilities)の「Connectors」タブにあります。ホスト型のアプリと、このコンピューターで動かすMCPサーバーが1つの一覧に並びます(Connectorsタブの表示は日本語リソース未整備のため英語表示)。

スキルとツール > Connectors 画面

  1. サイドバーの「スキルとツール」を開き、「Connectors」タブに切り替える。
  2. 「Add your own」を押す。「Connect to a custom MCP」ダイアログが開く。
  3. 「Name」にサーバー名を入れ、「Type」で STDIO(ローカル起動)か Streamable HTTP(リモート接続)を選ぶ。起動コマンドを「Paste a command or a snippet」欄に貼ると、各欄が自動で埋まる。JSONで書きたい場合は「Edit mcp.json」から編集する。
  4. 保存すると、一覧の「On this device」区分にサーバーが表示される。

旧来の「設定 > MCP」や「MCPタブ」へのリンクは、Connectorsタブへ自動転送されます。

stdioの最小例

{
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed"],
"env": {}
}

許可するパスは必要最小限にします。

HTTPの最小例

{
"url": "https://mcp.example.com/mcp",
"headers": {
"Authorization": "Bearer ${MCP_TOKEN}"
}
}

認証情報はJSONに直書きせず、環境変数参照(${MCP_TOKEN} のような形)やOAuthを使います。

反映のタイミング

保存すると自動的に再読み込みされ、新しいツールスキーマが次の新しいターン(新しいメッセージ)から使われます。手動で再読み込みする操作は不要です。実行中のセッションにも、保存した時点で反映されます。

接続状態の確認とツールの絞り込み

保存したサーバーはConnectorsタブの一覧に表示され、カードに接続状態が出ます。「Connecting…」は接続を確認している最中、「Needs authentication」は「Authenticate」ボタンからのサインインが必要な状態、「Error」「Off」は接続失敗または停止中です。接続に成功すると「5 tools on」のように有効なツール数が表示されます。さらに、カードを開くとそのサーバーが公開するツールの一覧が並び、スイッチで個別に有効・無効を切り替えられます。「Read only」「Turn off destructive」のような一括の絞り込みもあります。サーバー自体は信頼できても使わないツールは切っておく、という絞り込みができます。

詳しいキーの一覧(タイムアウト、TLS、tools や sampling の全項目)はMCPを参照してください。

つまずいたら

  • 設定画面にMCPが見つからない: MCPは設定画面ではなく、サイドバーの「スキルとツール」の「Connectors」タブにある。
  • 追加したツールが使えない: 保存すれば自動で再読み込みされるので、新しいターン(新しいメッセージ)で試したか確認する。
  • 無効化したのに動いてしまう: 一覧のトグルをオフにすると enabled: false が書き込まれ、確実に停止します。手でJSONに enabled: false を書いても同じです。
  • HTTP接続が失敗する: URL・ホスト名・認証方式を確認する。ssl_verify: false で回避しない。
  • 保存しても反映されない: ゲートウェイが切断中だと、保存しても実行中のセッションへ反映されません。接続を確認する。
  • サーバーの素性に不安がある: 接続しない。これが正しい判断です。

次の一歩

外部ツールの広げ方がわかったら、最後は自分用のカスタマイズです。スキルとプロファイルを使うに進み、入門コースを仕上げましょう。

関連リファレンス: MCP / 安全に設定するための確認事項 / 安全性

© 2026 Hermes Desktop ガイド(非公式)。引用・部分転載は、出典として本ページへのリンクを添えていただければ歓迎します。記事全文の無断複製・転載はご遠慮ください。