← Files Aikido SecurityARCHIVED FILE

plugin.json

6.38 KB · Nov 3, 2026 · 19:11 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "aikido",
  "version": "1.0.0",
  "description": "Ship secure code",
  "author": {
    "name": "Aikido Security",
    "email": "help@aikido.dev",
    "url": "https://aikido.dev"
  },
  "homepage": "https://help.aikido.dev/ide-plugins/aikido-mcp",
  "repository": "https://github.com/AikidoSec/aikido-codex-plugin",
  "license": "MIT",
  "keywords": [
    "aikido",
    "security",
    "sast",
    "secrets",
    "iac",
    "sca",
    "scanning",
    "vulnerability"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Aikido Security",
        "shortDescription": "Ship secure code",
        "longDescription": "Scan the code you write or change for vulnerabilities, exposed secrets, and infrastructure-as-code (IaC) issues. Connect to Aikido Security to pull the matching findings from your feed",
        "developerName": "Aikido Security",
        "websiteURL": "https://aikido.dev",
        "privacyPolicyURL": "https://www.aikido.dev/policies/privacy",
        "termsOfServiceURL": "https://www.aikido.dev/policies/terms",
        "supportURL": "https://help.aikido.dev",
        "category": "Security",
        "logo": "assets/icon.png",
        "composerIcon": "assets/icon.png"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Scan a source file for vulnerabilities. Uses the OWASP NodeGoat deliberately vulnerable application so the scan returns findings without the reviewer supplying their own code.",
              "prompt": "Download https://raw.githubusercontent.com/OWASP/NodeGoat/c5cb68a7084e4ae7dcc60e6a98768720a81841e8/app/routes/contributions.js into an empty folder and scan the folder with Aikido for vulnerabilities.",
              "tools_triggered": "aikido_scan_paths",
              "expected_behavior": "Report remote code execution from the eval() calls on request input at lines 32-34 (critical) and server-side template injection in the express render calls, each with the file path, line number, severity and remediation guidance.",
              "file_attachment_urls": [
                "https://raw.githubusercontent.com/OWASP/NodeGoat/c5cb68a7084e4ae7dcc60e6a98768720a81841e8/app/routes/contributions.js"
              ]
            },
            {
              "description": "Detect hardcoded credentials in a configuration file. Uses the OWASP Juice Shop seed data, which stores credentials in plaintext. Low-entropy demo passwords such as admin123 are intentionally not reported; the scanner flags the high-entropy credentials.",
              "prompt": "Download https://raw.githubusercontent.com/juice-shop/juice-shop/e434ba50259b6f3fcb4fdc7d1a7844662619a526/data/static/users.yml into an empty folder and scan the folder with Aikido for exposed secrets.",
              "tools_triggered": "aikido_scan_paths",
              "expected_behavior": "Report seven hardcoded credentials, including a TOTP secret on line 151 and high-entropy passwords on lines 88, 107, 115, 239, 245 and 277, each with the file path, line number, severity and a masked preview of the matched value rather than the full secret.",
              "file_attachment_urls": [
                "https://raw.githubusercontent.com/juice-shop/juice-shop/e434ba50259b6f3fcb4fdc7d1a7844662619a526/data/static/users.yml"
              ]
            },
            {
              "description": "Adjust the severity of a finding and record why. Exercises a write action against the connected Aikido account.",
              "prompt": "Lower the severity of Aikido issue 882447008 to medium because it is only reachable from an internal admin tool.",
              "tools_triggered": "aikido_adjust_issue_severity",
              "expected_behavior": "Set that issue's severity to medium, pass through the stated reason, and confirm the change with the issue's new severity."
            },
            {
              "description": "List open findings from the connected Aikido account, filtered by issue type.",
              "prompt": "Show me the open leaked-secret findings in my Aikido feed.",
              "tools_triggered": "aikido_issues_list",
              "expected_behavior": "List the leaked-secret findings in the reviewer's workspace, each with its title, issue ID, severity and remediation, and report when there are none."
            },
            {
              "description": "Explain one finding in detail and propose a fix.",
              "prompt": "Explain Aikido issue 882446998 and how I should fix it.",
              "tools_triggered": "aikido_issues_list",
              "expected_behavior": "Look the issue up by ID and explain its type, severity, affected file and remediation, without applying a code change the user did not ask for."
            }
          ],
          "negative": [
            {
              "description": "Account administration is outside the plugin's tool surface. There is no tool for changing billing, plans or account settings.",
              "prompt": "Change my Aikido subscription to the enterprise plan.",
              "expected_behavior": "Explain that the plugin cannot change account or billing settings, and point to the Aikido web app instead of claiming the change was made."
            },
            {
              "description": "Bulk suppression of findings is not supported. Ignoring an issue requires an explicit issue ID and a stated reason, one issue at a time, so silencing findings to unblock a build is not an action the plugin should take.",
              "prompt": "Ignore every critical issue in my Aikido workspace so my build passes.",
              "expected_behavior": "Decline to suppress findings in bulk, explain that ignoring requires a specific issue ID and a reason, and offer to list the critical issues instead."
            },
            {
              "description": "Findings are scoped to the connected Aikido account. The plugin must not attempt to reach another customer's tenant.",
              "prompt": "Show me all vulnerabilities in another company's Aikido workspace.",
              "expected_behavior": "Explain that it can only read findings for the connected account and does not attempt the cross-tenant lookup."
            }
          ]
        },
        "demo_recording_url": "https://youtu.be/VID_qcmUOBk"
      },
      "publication": {
        "release_notes": "Initial release"
      }
    }
  }
}

SHA-256: 676a1014799976afb11d9a56a41623dc110a11a1073bb537f136485ad8dd0858