コンテンツにスキップ

MCP

外部の Model Context Protocol サーバーを追加し、Hermes にツールを公開する。

画面表示(主)内部キー・操作(サブ)製品既定値・初期状態動作
新しいサーバーUI 下書き、保存キーなし該当なし空のサーバー定義を作成
MCP を再読み込みGateway RPC reload.mcp該当なし保存済み定義からサーバーとツールスキーマを更新
サーバー一覧の各名前mcp_servers.<name>mcp_servers なし、一覧は空保存済みサーバーを選択
サーバーを編集UI 見出し、保存キーなし選択なし選択サーバーの編集フォーム
名前mcp_servers オブジェクトのキー空欄一意なサーバー名
サーバー JSONmcp_servers.<name> の値{"command":"","args":[],"env":{}}1サーバー分の JSON オブジェクト
削除mcp_servers.<name> を削除該当なし選択サーバーを設定から削除
サーバーを保存mcp_servers.<name> を保存該当なしJSON を保存。再読み込み後に適用

一覧のバッジは stdio, http, custom を示す。実行時にサーバーを無効化する正式なキーは enabled: false

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

Hermes がローカル子プロセスを起動する。command, args, env を使う。許可するパスを必要最小限にする。

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

リモート MCP エンドポイントへ接続する。認証情報を JSON に直書きせず、可能なら環境変数参照や OAuth を使う。

OAuth 対応例:

{
"url": "https://mcp.example.com/mcp",
"auth": "oauth"
}
内部キー(JSON)対象製品既定値用途
command文字列stdio未設定起動する実行ファイル
args配列stdio[]実行ファイルへ渡す引数
envオブジェクトstdio{}子プロセスへ明示的に渡す環境変数。ホストの全環境は渡されない
url文字列HTTP未設定Streamable HTTP / SSE のリモート MCP URL
transport文字列HTTP未設定(実効: URL は Streamable HTTP、sse 指定時だけ SSE)HTTP transport を明示的に選ぶ
headersオブジェクトHTTP{}リクエストヘッダー
ssl_verify真偽値または文字列HTTPtruetrue はシステム CA、false は検証無効、文字列は CA bundle のパス
client_cert文字列または配列HTTP未設定mTLS 証明書。結合 PEM、[cert, key][cert, key, password]
client_key文字列HTTP未設定証明書と秘密鍵が別ファイルの場合の秘密鍵パス
enabled真偽値両方truefalse で接続・検出・登録をすべて停止
timeout数値両方1201回のツール呼び出しタイムアウト
connect_timeout数値両方60初回接続タイムアウト
supports_parallel_tool_calls真偽値両方false同じサーバーのツールを並列実行可能と宣言
toolsオブジェクト両方{}ツールの公開範囲とリソース・プロンプト方針
auth文字列HTTP未設定oauth で OAuth 2.1 PKCE を有効化
samplingオブジェクト両方{}(内部項目は下表)MCP サーバーから Hermes への LLM 推論要求ポリシー
内部キー(JSON)製品既定値動作
include文字列または配列未設定(全ツール対象)指定したサーバー固有ツールだけを登録
exclude文字列または配列未設定(除外なし)include がない場合、指定ツールを登録しない
resources真偽値相当truelist_resources, read_resource の登録を許可
prompts真偽値相当truelist_prompts, get_prompt の登録を許可

includeexclude を両方設定した場合は include が優先する。リソース・プロンプトを許可しても、サーバー自体が対応していなければユーティリティは現れない。

Sampling は、MCP サーバーが sampling/createMessage で Hermes のモデル推論を利用する機能。SDK 対応時は既定で有効。

内部キー(JSON)既定動作
enabledtrueSampling を許可・拒否
model未指定Sampling 専用モデルを上書き
max_tokens_cap40961応答の最大トークン
timeout301要求のタイムアウト
max_rpm101分あたりの最大要求数
max_tool_rounds5Sampling 内のツール反復上限
allowed_models空配列サーバーが要求できるモデルの許可リスト。空は制限なし
log_levelinfodebug, info, warning の監査ログレベル

保存だけでは実行中のツール一覧は変わらない。「MCP を再読み込み」を実行し、新しいツールスキーマは 次の新しいターン から使われる。ゲートウェイが切断中は再読み込みできない。

approvals.mcp_reload_confirm がオンの場合は再読み込み時に確認が入る。安全のためオンを推奨する。

  1. 配布元と実行コマンドを確認する。
  2. stdio の env とアクセス可能なパスを最小化する。
  3. HTTP は HTTPS、ホスト名、認証方式を確認する。
  4. tools.include で必要なツールだけ公開する。
  5. 未信頼サーバーでは sampling.enabled: false にする。
  6. 書き込み系ツールを並列化しない。
  7. 保存後に再読み込みし、新しいターンで動作確認する。

公式: MCP ガイド / MCP Config Reference