Skip to content

原文(日本語に翻訳)

ハイフンを含む識別子(例: code-reviewermcp__brave-search)を持つフックマッチャーが誤って部分文字列マッチングしていた問題を修正。現在は完全一致になっています。ハイフンを含む MCP サーバーの全ツールにマッチするには mcp__brave-search__.* を使用してください。

原文(英語)

Fixed hook matchers with hyphenated identifiers (e.g. code-reviewer, mcp__brave-search) accidentally substring-matching — they now exact-match. Use mcp__brave-search__.* to match all tools from a hyphenated MCP server.

概要

Claude Code のフック設定において、code-reviewermcp__brave-search のようなハイフンを含む識別子が、意図せず部分文字列マッチングを行っていたバグが修正されました。修正後は完全一致(exact match)になります。ハイフンを含む MCP サーバーの全ツールにマッチさせたい場合は、mcp__brave-search__.* のように末尾にワイルドカードを追加してください。

基本的な使い方

フック設定(.claude/settings.json)で完全一致パターンを使用します。

json
// 特定ツールへの完全一致
{
  "hooks": {
    "PreToolUse": [
      { "matcher": "mcp__brave-search__web_search", "hooks": [] }
    ]
  }
}

// サーバーの全ツールにマッチさせる場合はワイルドカードを使用
{
  "hooks": {
    "PreToolUse": [
      { "matcher": "mcp__brave-search__.*", "hooks": [] }
    ]
  }
}

実践例

ハイフンを含む MCP サーバーのフック設定

json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "mcp__brave-search__.*",
        "hooks": [
          {
            "type": "command",
            "command": "echo 'Brave Search ツールを使用中'"
          }
        ]
      }
    ]
  }
}

カスタムエージェント(code-reviewer)のフック設定

json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "code-reviewer",
        "hooks": [
          {
            "type": "command",
            "command": "echo 'code-reviewer エージェントが起動します'"
          }
        ]
      }
    ]
  }
}

既存の設定を見直す際のポイント

修正前は mcp__brave-search というマッチャーが mcp__brave-search__web_searchmcp__brave-search__local_search などすべてのツールにマッチしていました。修正後は完全一致のため、全ツールを対象にしたい場合はワイルドカードを使用してください。

注意点

  • 重要: この修正により、既存のフック設定が期待通りに動作しなくなる可能性があります
  • ハイフンを含む MCP サーバー名(例: brave-search)を使っている場合、設定を見直してください
  • 全ツールにマッチさせるには mcp__サーバー名__.* のワイルドカードパターンを使用
  • 正規表現パターンが使用可能です

関連情報