{
  "name": "secret.scan",
  "group": "web",
  "summary": "Find credentials and personal data in text, and return a redacted copy safe to share.",
  "description": "Scans arbitrary text — logs, environment files, diffs, stack traces, config, command output — for provider API keys, tokens, private keys, database connection strings, credential-shaped assignments, high-entropy values, personal data and Luhn-valid card numbers. Each finding carries a line and column so it can be located, and the matched value is masked everywhere it is reported. The intended moment to call this is just before pasting output into a model, a ticket or a chat: text an agent forwards without reading is the ordinary way live credentials end up somewhere they cannot be recalled from.",
  "keywords": [
    "secret scanning",
    "detect credentials",
    "redact",
    "leaked api key",
    "sanitise logs",
    "pii detection",
    "safe to paste",
    "scrub secrets",
    "env file",
    "before sharing logs",
    "mask sensitive data"
  ],
  "endpoint": "https://fluentedi.com/v1/secret/scan",
  "mcp_name": "secret_scan",
  "makes_network_request": false,
  "parameters": {
    "type": "object",
    "properties": {
      "text": {
        "description": "Text to scan.",
        "type": "string",
        "maxLength": 500000
      },
      "redact": {
        "description": "Return a copy with every finding masked.",
        "type": "boolean",
        "default": true
      },
      "include_pii": {
        "description": "Also flag personal data such as email addresses and phone numbers.",
        "type": "boolean",
        "default": true
      },
      "min_severity": {
        "description": "Suppress findings below this severity.",
        "type": "string",
        "enum": [
          "low",
          "medium",
          "high",
          "critical"
        ],
        "default": "low"
      }
    },
    "required": [
      "text"
    ],
    "additionalProperties": false
  },
  "examples": [
    {
      "description": "Check a log line before pasting it",
      "url": "https://fluentedi.com/v1/secret/scan?text=2026-08-24%20ERROR%20auth%20failed%20for%20key%20sk_live_4eC39HqLyjWDarjtT1zdp7dc",
      "args": {
        "text": "2026-08-24 ERROR auth failed for key sk_live_4eC39HqLyjWDarjtT1zdp7dc"
      }
    },
    {
      "description": "Sanitise an env file",
      "url": "https://fluentedi.com/v1/secret/scan?text=DATABASE_URL%3Dpostgres%3A%2F%2Fadmin%3Ahunter2%40db.internal%3A5432%2Fapp%0ADEBUG%3Dtrue%0AAPI_TOKEN%3Dghp_16C7e42F292c6912E7710c838347Ae178B4a",
      "args": {
        "text": "DATABASE_URL=postgres://admin:hunter2@db.internal:5432/app\nDEBUG=true\nAPI_TOKEN=ghp_16C7e42F292c6912E7710c838347Ae178B4a"
      }
    },
    {
      "description": "Secrets only, ignoring personal data",
      "url": "https://fluentedi.com/v1/secret/scan?text=contact%20ada%40example.com%20with%20token%20ghp_16C7e42F292c6912E7710c838347Ae178B4a&include_pii=false",
      "args": {
        "text": "contact ada@example.com with token ghp_16C7e42F292c6912E7710c838347Ae178B4a",
        "include_pii": false
      }
    }
  ],
  "suggestion": null
}