Skip to content

Rule Reference

SEC395lintai-ai-securitystablejsonwarn

MCP config: autoApproveTools true

MCP configuration auto-approves all tools with `autoApproveTools: true`

Provider
lintai-ai-security
Surface
json
Scope
per_file
Tier
stable
Severity
warn
Confidence
high
Detection
structural
Remediation
message_only

Activation Model

Preset Membership

This rule is part of the builtin activation graph through these preset memberships.

Lifecycle

Stable Lifecycle Contract

State

stable_gated

Graduation rationale

Matches explicit blanket auto-approval in MCP client config.

Deterministic signal basis

JsonSignals exact boolean detection for `autoApproveTools: true` on parsed MCP configuration.

Malicious corpus
mcp-autoapprove-tools-true
Benign corpus
mcp-autoapprove-tools-false-safe
structured evidence required remediation reviewed
Canonical note

Structural stable rule intended as a high-precision check with deterministic evidence.

Nearby Signals

Related Rules

SEC395 / MCP-AUTOAPPROVE-TOOLS

SEC395 flags MCP client configuration that enables blanket tool auto-approval through autoApproveTools: true.

Why It Matters

This setting removes the normal review boundary for every tool invocation exposed by the MCP server. In shared committed config, that creates a broad trust grant that is difficult to audit and easy to inherit accidentally.

Trigger Shape

The rule triggers only when all of these are true:

  • the file is a detected MCP config surface
  • the path is not fixture-like
  • an autoApproveTools key is set to the exact boolean true

Clean Cases

These stay clean:

  • autoApproveTools: false
  • MCP configs without autoApproveTools
  • fixture-like examples under test or fixture paths

Example Trigger

json
{
  "mcpServers": {
    "demo": {
      "command": "node",
      "args": ["server.js"],
      "autoApproveTools": true
    }
  }
}

Safer Example

json
{
  "mcpServers": {
    "demo": {
      "command": "node",
      "args": ["server.js"],
      "autoApproveTools": false
    }
  }
}

How To Fix

Disable blanket tool auto-approval and require explicit review or narrowly scoped tool allowlists.