Skip to content

原文(日本語に翻訳)

deny: ["mcp__servername"] のパーミッションルールがモデルへの送信前にMCPサーバーツールを削除せず、モデルがブロックされたツールを閲覧・使用しようとする問題を修正しました。

原文(英語)

Fixed deny: ["mcp__servername"] permission rules not removing MCP server tools before sending to the model, allowing it to see and attempt blocked tools.

概要

パーミッション設定でMCPサーバーを deny リストに追加しても、そのMCPサーバーが提供するツールがモデルに送信されてしまい、モデルがブロックされたはずのツールを認識・使用しようとするセキュリティ上の問題が修正されました。修正後は deny ルールが正しく機能し、指定したMCPサーバーのツールはモデルに表示されなくなります。

基本的な使い方

パーミッションルールでMCPサーバーを拒否する設定は以下のように行います。

json
// settings.json でのパーミッション設定
{
  "permissions": {
    "deny": ["mcp__dangerous-server"]
  }
}

修正後、このルールが適用されると dangerous-server が提供するツールはモデルに送信されません。

実践例

ユースケース: 特定のMCPサーバーを完全に無効化

セキュリティポリシー上、特定のMCPサーバーへのアクセスを禁止したい場合:

json
{
  "permissions": {
    "deny": [
      "mcp__external-database",
      "mcp__file-system-access"
    ]
  }
}

修正前は、これらのサーバーのツールがモデルに見えてしまい、モデルが使用しようとして「ツールが使用できない」という混乱が生じていました。修正後はツール自体がモデルに提示されないため、よりクリーンな動作になります。

ユースケース: 特定ツールのみを拒否

MCPサーバーの特定のツールのみを拒否する場合:

json
{
  "permissions": {
    "deny": ["mcp__myserver__dangerous_tool"]
  }
}

注意点

  • この修正はセキュリティに関わる重要な修正です
  • deny ルールはモデルへのツール送信前に適用されるようになりました
  • MCP サーバー名は mcp__ プレフィックスで指定します
  • 既存の deny ルールが以前は期待通りに動作していなかった可能性があります

関連情報