原文(日本語に翻訳)
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ルールが以前は期待通りに動作していなかった可能性があります