{
  "manifest_version": "0.2",
  "name": "hiddencontent",
  "display_name": "HiddenContent",
  "version": "0.4.15",
  "description": "Check a document for concealed text before your agent reads it.",
  "long_description": "Text hidden inside a document — white-on-white, zero-size fonts, text behind an image, off-page runs, comments, tracked deletions — is invisible to a person and read verbatim by a model. This server checks a file before your agent ingests it and hands back the cleaned text to read instead. Analysis runs on HiddenContent's own infrastructure: no third-party APIs and no model calls, and your documents never enter anyone's training set.",
  "author": {
    "name": "AeroSpark",
    "email": "support@aerospark.ai"
  },
  "server": {
    "type": "node",
    "entry_point": "dist/bundle.mjs",
    "mcp_config": {
      "command": "node",
      "args": [
        "${__dirname}/dist/bundle.mjs"
      ],
      "env": {
        "HCS_API_TOKEN": "${user_config.api_token}",
        "HCS_URL": "${user_config.base_url}",
        "HCS_CAP_TOOL_USE": "${user_config.can_use_tools}",
        "HCS_CAP_NETWORK_EGRESS": "${user_config.can_reach_network}",
        "HCS_CAP_CODE_EXECUTION": "${user_config.can_run_code}"
      }
    }
  },
  "user_config": {
    "api_token": {
      "type": "string",
      "title": "API token",
      "description": "Get one at hiddencontent.ai/start?ref=extension",
      "sensitive": true,
      "required": true
    },
    "base_url": {
      "type": "string",
      "title": "Service URL",
      "description": "Leave as-is unless you self-host.",
      "default": "https://api.hiddencontent.ai",
      "required": false
    },
    "can_use_tools": {
      "type": "boolean",
      "title": "It can call tools",
      "description": "Turns on the check for concealed text telling the model to call a tool it has.",
      "default": true,
      "required": false
    },
    "can_reach_network": {
      "type": "boolean",
      "title": "It can send or fetch data",
      "description": "Turns on the check for concealed text telling the model to email, post or upload something.",
      "default": false,
      "required": false
    },
    "can_run_code": {
      "type": "boolean",
      "title": "It can run code",
      "description": "Turns on the check for concealed text telling the model to execute something.",
      "default": false,
      "required": false
    }
  },
  "tools": [
    {
      "name": "check_document",
      "description": "Check a document for concealed content before reading it."
    },
    {
      "name": "get_evidence",
      "description": "Show the concealed text found by a previous check."
    }
  ],
  "keywords": [
    "security",
    "prompt-injection",
    "documents",
    "pdf",
    "docx"
  ],
  "license": "UNLICENSED"
}
