Skip to content

Rule Reference

SEC396lintai-ai-securitystablejsonwarn

MCP config: trustTools true

MCP configuration fully trusts tools with `trustTools: 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 tool trust in MCP client config.

Deterministic signal basis

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

Malicious corpus
mcp-trust-tools-true
Benign corpus
mcp-trust-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

SEC396 / MCP-TRUST-TOOLS

SEC396 flags MCP client configuration that enables blanket tool trust through trustTools: true.

Why It Matters

This setting removes a core review boundary by treating all tool actions as trusted. In shared committed MCP config, that is 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
  • a trustTools key is set to the exact boolean true

Clean Cases

These stay clean:

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

Example Trigger

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

Safer Example

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

How To Fix

Disable blanket tool trust and require explicit review or narrower tool approval settings.