[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7CSQBASQ7SAEG5VRFPAQ6PE":3,"skill-same:01M7CSQBASQ7SAEG5VRFPAQ6PE":50},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":27,"commitSha":28,"skillDirectory":29,"forksCount":30,"repositoryHtmlUrl":31,"repositoryHomepageUrl":32,"ownerHtmlUrl":33,"ownerBlogUrl":6,"ownerDescription":34,"updatedAt":35,"install":36,"resources":49},"01M7CSQBASQ7SAEG5VRFPAQ6PE","security-mcp-scanners",null,"Use when semgrep, osv-scanner, github-security or snyk MCP tools appear in your tool list - what each server is for, how to call it safely, what data leaves the machine, and how its findings are triaged","makifbaysal\u002Ftasktrooper","makifbaysal","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F25031940?v=4","01M7CRG3ZCSYZSSEVDMW3DEYC8","Mehmet Akif Baysal","01M7CRG401FJ8YAXH5ER730XYV",122,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmakifbaysal\u002Ftasktrooper\u002Fblob\u002Fmain\u002Fcatalog\u002Fagents\u002Fsecurity-agent\u002Fskills\u002Fsecurity-mcp-scanners\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: security-mcp-scanners\ncategory: security\ndescription: Use when semgrep, osv-scanner, github-security or snyk MCP tools appear in your tool list - what each server is for, how to call it safely, what data leaves the machine, and how its findings are triaged\ntech_stack: Supply chain & CI\u002FIaC\nsource: original; Semgrep MCP, OSV-Scanner MCP, GitHub MCP server and Snyk MCP documentation cited, not reproduced\n---\n# Security MCP Scanners\n\n## Overview\n\nFour security MCP servers can be connected for you: `semgrep`, `osv-scanner`, `github-security` and `snyk`. They ship disabled; the user turns them on in Settings → MCP servers. Your policy allows these four and no other server — a reviewer never holds the mutating MCP tools (Unity, Blender, Jupyter …) that other agents may use.\n\n**Core principle:** an MCP scanner is a scanner. Its output is a list of candidates for the false-positive gate, never the verdict — and a scanner that failed is never a clean result.\n\n## 1. Is It Connected?\n\n- Availability is decided by your tool list, nothing else: tools from the `semgrep` server (named `mcp__semgrep__…` in CLI runtimes), `osv-scanner`, `github-security`, `snyk`. Not in the list → the server is not enabled; do not try to call it, do not ask for it, fall back to installed CLIs (read-only-security-scanners) and to reading.\n- A listed tool that errors, times out, fails authentication or returns a parse error → a coverage limit for your summary line (\"osv-scanner MCP: auth failed — lockfile not scanned\"). Never treat it as \"no findings\".\n- Order: `get_pipeline_status` first (CI may already have scanned this commit), then `github-security` (alerts GitHub already computed), then local scans (`semgrep`, `osv-scanner`), then `snyk` only when it adds coverage the others do not.\n\n## 2. semgrep — local SAST\n\nThe official `semgrep mcp` server, started with metrics off. Code is scanned on this machine.\n\n- Scan the changed files, not the repository.\n- Pass rule packs explicitly: `p\u002Fdefault`, `p\u002Fowasp-top-ten`, `p\u002Fsecrets`, plus the language pack for the stack (`p\u002Fgolang`, `p\u002Fjava`, `p\u002Fpython`, `p\u002Ftypescript` …). Never `auto` — it requires metrics and sends project information.\n- The custom-rule tool is useful for a hypothesis: write a narrow rule that finds every call of the sink you suspect, or every sibling handler without the auth middleware. That is reading, and often faster than grep across languages.\n- With a platform token configured, its findings tools show existing Semgrep platform results — read them like CI output.\n\n## 3. osv-scanner — dependency advisories\n\n`osv-scanner experimental-mcp`. Only package names and versions leave the machine (to osv.dev); no source code does.\n\n- Scan the lockfiles and manifests this diff added or changed; fetch details for each advisory id it returns.\n- A `MAL-` id, a likely typosquat, or a critical\u002Fhigh advisory with a fixed version on a new or changed dependency is a blocking category (supply-chain-and-dependency-review); pre-existing vulnerable dependencies are not this review.\n- Never call a tool that records an ignore or suppression entry — that writes the repository's scanner config.\n\n## 4. github-security — alerts GitHub already has\n\nGitHub's hosted MCP server, narrowed to the `repos`, `pull_requests`, `code_security`, `secret_protection`, `dependabot` and `security_advisories` toolsets and held read-only by the server.\n\n- **Code scanning:** list alerts for the PR's ref (`refs\u002Fpull\u002F\u003Cnumber>\u002Fhead`, the number from `get_task_pull_request`) or its branch. An alert on a `+` line is a candidate; an alert on untouched code is pre-existing.\n- **Secret scanning:** open alerts on the repository, especially new ones on the PR's commits. Alert payloads can include the secret value — never copy it; redact to a recognisable prefix.\n- **Dependabot:** alerts for manifests the diff touches; use them to confirm or contradict an OSV result.\n- **Security advisories:** look up a package and version when OSV is not connected.\n- It is read-only by construction: never try to dismiss, resolve or comment on alerts.\n\n## 5. snyk — use with care\n\nThe Snyk CLI MCP server, authenticated with the user's token.\n\n- **Snyk Code uploads source to Snyk's cloud.** Use it only because the user enabled the server — that is their consent for this repository — and never as the only evidence: a Snyk finding still needs your source → sink trace and the self-refute pass.\n- **Snyk Open Source** resolves dependencies for some ecosystems (Gradle, Maven, sbt, Python without a lockfile) by invoking the project's package manager or build tool — that runs project code. Use it on lockfile ecosystems (`package-lock.json`, `pnpm-lock.yaml`, `yarn.lock`); elsewhere prefer `osv-scanner`.\n- If a scan asks you to grant trust to the checkout folder, decline and skip Snyk: trust is exactly the step that lets it run the project's tooling. Never call its authentication, logout or trust tools.\n- IaC results: triage like Checkov or Trivy output (ci-cd-and-iac-security). Skip container scans — there is no image you are allowed to build.\n\n## 6. Triage\n\n1. Keep hits on `+` lines, or on unchanged lines the diff newly routes input into.\n2. Drop hard exclusions (security-hard-exclusions-and-precedents).\n3. Restate, trace, name attacker and victim (false-positive-gate). The tool's severity is a hint; yours goes in the comment.\n4. Deduplicate: semgrep, GitHub code scanning and Snyk Code often report the same root cause — one SEC-n.\n5. Cite the tool in the evidence line (\"GitHub code scanning alert #42, semgrep rule …\"), never paste raw output, never paste a secret.\n\n## Common Mistakes\n\n- Treating a missing MCP tool as a failure of the review — it simply is not connected.\n- Treating \"0 alerts\" from `github-security` as approval while the code scanning analysis for the PR has not run yet.\n- Running Snyk Open Source on a Gradle or Maven project.\n- Using `auto` as the semgrep config.\n- Copying a secret-scanning alert's secret into the task comment.\n\n## Red Flags\n\n- A plan step that enables, configures or installs an MCP server.\n- A blocking finding whose only evidence is a scanner message.\n- A scan that errored, reported as clean.\n- A tool call that would dismiss an alert, write an ignore entry or trust a folder.\n\n## References (names and links only)\n\n[Semgrep MCP](https:\u002F\u002Fsemgrep.dev\u002Fdocs\u002Fmcp) · [OSV-Scanner](https:\u002F\u002Fgoogle.github.io\u002Fosv-scanner\u002F) · [GitHub MCP server](https:\u002F\u002Fgithub.com\u002Fgithub\u002Fgithub-mcp-server) · [Snyk MCP](https:\u002F\u002Fdocs.snyk.io\u002Fintegrations\u002Fdeveloper-guardrails-for-agentic-workflows) · [OWASP Top 10:2025 A03](https:\u002F\u002Fowasp.org\u002FTop10\u002F2025\u002F)\n","# Security MCP Scanners\n\n## Overview\n\nFour security MCP servers can be connected for you: `semgrep`, `osv-scanner`, `github-security` and `snyk`. They ship disabled; the user turns them on in Settings → MCP servers. Your policy allows these four and no other server — a reviewer never holds the mutating MCP tools (Unity, Blender, Jupyter …) that other agents may use.\n\n**Core principle:** an MCP scanner is a scanner. Its output is a list of candidates for the false-positive gate, never the verdict — and a scanner that failed is never a clean result.\n\n## 1. Is It Connected?\n\n- Availability is decided by your tool list, nothing else: tools from the `semgrep` server (named `mcp__semgrep__…` in CLI runtimes), `osv-scanner`, `github-security`, `snyk`. Not in the list → the server is not enabled; do not try to call it, do not ask for it, fall back to installed CLIs (read-only-security-scanners) and to reading.\n- A listed tool that errors, times out, fails authentication or returns a parse error → a coverage limit for your summary line (\"osv-scanner MCP: auth failed — lockfile not scanned\"). Never treat it as \"no findings\".\n- Order: `get_pipeline_status` first (CI may already have scanned this commit), then `github-security` (alerts GitHub already computed), then local scans (`semgrep`, `osv-scanner`), then `snyk` only when it adds coverage the others do not.\n\n## 2. semgrep — local SAST\n\nThe official `semgrep mcp` server, started with metrics off. Code is scanned on this machine.\n\n- Scan the changed files, not the repository.\n- Pass rule packs explicitly: `p\u002Fdefault`, `p\u002Fowasp-top-ten`, `p\u002Fsecrets`, plus the language pack for the stack (`p\u002Fgolang`, `p\u002Fjava`, `p\u002Fpython`, `p\u002Ftypescript` …). Never `auto` — it requires metrics and sends project information.\n- The custom-rule tool is useful for a hypothesis: write a narrow rule that finds every call of the sink you suspect, or every sibling handler without the auth middleware. That is reading, and often faster than grep across languages.\n- With a platform token configured, its findings tools show existing Semgrep platform results — read them like CI output.\n\n## 3. osv-scanner — dependency advisories\n\n`osv-scanner experimental-mcp`. Only package names and versions leave the machine (to osv.dev); no source code does.\n\n- Scan the lockfiles and manifests this diff added or changed; fetch details for each advisory id it returns.\n- A `MAL-` id, a likely typosquat, or a critical\u002Fhigh advisory with a fixed version on a new or changed dependency is a blocking category (supply-chain-and-dependency-review); pre-existing vulnerable dependencies are not this review.\n- Never call a tool that records an ignore or suppression entry — that writes the repository's scanner config.\n\n## 4. github-security — alerts GitHub already has\n\nGitHub's hosted MCP server, narrowed to the `repos`, `pull_requests`, `code_security`, `secret_protection`, `dependabot` and `security_advisories` toolsets and held read-only by the server.\n\n- **Code scanning:** list alerts for the PR's ref (`refs\u002Fpull\u002F\u003Cnumber>\u002Fhead`, the number from `get_task_pull_request`) or its branch. An alert on a `+` line is a candidate; an alert on untouched code is pre-existing.\n- **Secret scanning:** open alerts on the repository, especially new ones on the PR's commits. Alert payloads can include the secret value — never copy it; redact to a recognisable prefix.\n- **Dependabot:** alerts for manifests the diff touches; use them to confirm or contradict an OSV result.\n- **Security advisories:** look up a package and version when OSV is not connected.\n- It is read-only by construction: never try to dismiss, resolve or comment on alerts.\n\n## 5. snyk — use with care\n\nThe Snyk CLI MCP server, authenticated with the user's token.\n\n- **Snyk Code uploads source to Snyk's cloud.** Use it only because the user enabled the server — that is their consent for this repository — and never as the only evidence: a Snyk finding still needs your source → sink trace and the self-refute pass.\n- **Snyk Open Source** resolves dependencies for some ecosystems (Gradle, Maven, sbt, Python without a lockfile) by invoking the project's package manager or build tool — that runs project code. Use it on lockfile ecosystems (`package-lock.json`, `pnpm-lock.yaml`, `yarn.lock`); elsewhere prefer `osv-scanner`.\n- If a scan asks you to grant trust to the checkout folder, decline and skip Snyk: trust is exactly the step that lets it run the project's tooling. Never call its authentication, logout or trust tools.\n- IaC results: triage like Checkov or Trivy output (ci-cd-and-iac-security). Skip container scans — there is no image you are allowed to build.\n\n## 6. Triage\n\n1. Keep hits on `+` lines, or on unchanged lines the diff newly routes input into.\n2. Drop hard exclusions (security-hard-exclusions-and-precedents).\n3. Restate, trace, name attacker and victim (false-positive-gate). The tool's severity is a hint; yours goes in the comment.\n4. Deduplicate: semgrep, GitHub code scanning and Snyk Code often report the same root cause — one SEC-n.\n5. Cite the tool in the evidence line (\"GitHub code scanning alert #42, semgrep rule …\"), never paste raw output, never paste a secret.\n\n## Common Mistakes\n\n- Treating a missing MCP tool as a failure of the review — it simply is not connected.\n- Treating \"0 alerts\" from `github-security` as approval while the code scanning analysis for the PR has not run yet.\n- Running Snyk Open Source on a Gradle or Maven project.\n- Using `auto` as the semgrep config.\n- Copying a secret-scanning alert's secret into the task comment.\n\n## Red Flags\n\n- A plan step that enables, configures or installs an MCP server.\n- A blocking finding whose only evidence is a scanner message.\n- A scan that errored, reported as clean.\n- A tool call that would dismiss an alert, write an ignore entry or trust a folder.\n\n## References (names and links only)\n\n[Semgrep MCP](https:\u002F\u002Fsemgrep.dev\u002Fdocs\u002Fmcp) · [OSV-Scanner](https:\u002F\u002Fgoogle.github.io\u002Fosv-scanner\u002F) · [GitHub MCP server](https:\u002F\u002Fgithub.com\u002Fgithub\u002Fgithub-mcp-server) · [Snyk MCP](https:\u002F\u002Fdocs.snyk.io\u002Fintegrations\u002Fdeveloper-guardrails-for-agentic-workflows) · [OWASP Top 10:2025 A03](https:\u002F\u002Fowasp.org\u002FTop10\u002F2025\u002F)\n",{"name":5,"source":24,"category":25,"tech_stack":26,"description":7},"original; Semgrep MCP, OSV-Scanner MCP, GitHub MCP server and Snyk MCP documentation cited, not reproduced","security","Supply chain & CI\u002FIaC","main","910394a0b6db9fc8c9a8f36328ec421d3ebd8b38","catalog\u002Fagents\u002Fsecurity-agent\u002Fskills\u002Fsecurity-mcp-scanners",18,"https:\u002F\u002Fgithub.com\u002Fmakifbaysal\u002Ftasktrooper","https:\u002F\u002Ftasktrooper.ai","https:\u002F\u002Fgithub.com\u002Fmakifbaysal","Senior Software Developer","2026-11-15 04:50:29",{"source":8,"skillName":5,"commands":37,"prompt":47,"zipAvailable":48},[38,41,44],{"tool":39,"command":40},"npx","npx skills add makifbaysal\u002Ftasktrooper --skill security-mcp-scanners",{"tool":42,"command":43},"bunx","bunx skills add makifbaysal\u002Ftasktrooper --skill security-mcp-scanners",{"tool":45,"command":46},"pnpm","pnpm dlx skills add makifbaysal\u002Ftasktrooper --skill security-mcp-scanners","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmakifbaysal\u002Ftasktrooper\u002Fblob\u002Fmain\u002Fcatalog\u002Fagents\u002Fsecurity-agent\u002Fskills\u002Fsecurity-mcp-scanners\u002FSKILL.md",true,[],[51,57,64,71,78,85],{"skillNo":52,"name":53,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":54,"categories":55,"keywords":56,"publishedAt":19},"01M7CSVEPQW6J6TD6CS2T5FPNZ","visual-craft","https:\u002F\u002Fgithub.com\u002Fmakifbaysal\u002Ftasktrooper\u002Fblob\u002Fmain\u002Fcatalog\u002Fagents\u002Fui-designer\u002Fskills\u002Fvisual-craft\u002FSKILL.md",[],[],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":19},"01M7CSVAQG91ETHQ0HBNZDG5FR","ux-copy","Use when you write any words a user reads in a mockup or a hand-off - content language and voice, buttons, labels, errors, empty states, confirmations, numbers and dates, and the longest-string check","https:\u002F\u002Fgithub.com\u002Fmakifbaysal\u002Ftasktrooper\u002Fblob\u002Fmain\u002Fcatalog\u002Fagents\u002Fui-designer\u002Fskills\u002Fux-copy\u002FSKILL.md",[],[],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":19},"01M7CSV6H0J38659NDXHJQ8396","screen-mockup-html","Use when you draw screens as the design task's HTML mockup - ONE canvas document holding every screen and every variant side by side, the sanitizer-safe recipe, phone and wide frames, the states grid, static control states, and the loopback self-check with screenshots at 375, 768 and 1440 attached to the task","https:\u002F\u002Fgithub.com\u002Fmakifbaysal\u002Ftasktrooper\u002Fblob\u002Fmain\u002Fcatalog\u002Fagents\u002Fui-designer\u002Fskills\u002Fscreen-mockup-html\u002FSKILL.md",[],[],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":19},"01M7CSV3JFRF3BM3XK52M7YEYR","performance-awareness","How the performance score moves for your role. Use when the score context shows a declining trend, or before handing off work you have not self-checked against every criterion.","https:\u002F\u002Fgithub.com\u002Fmakifbaysal\u002Ftasktrooper\u002Fblob\u002Fmain\u002Fcatalog\u002Fagents\u002Fui-designer\u002Fskills\u002Fperformance-awareness\u002FSKILL.md",[],[],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":19},"01M7CSTZDH00YRF5SCT7BRT9QD","design-variants","Use when a screen design needs variants - how many, variants as side-by-side rows on the one canvas, what makes two variants genuinely different, recommending one, how the human's choice is read, and narrowing to the chosen one in revision","https:\u002F\u002Fgithub.com\u002Fmakifbaysal\u002Ftasktrooper\u002Fblob\u002Fmain\u002Fcatalog\u002Fagents\u002Fui-designer\u002Fskills\u002Fdesign-variants\u002FSKILL.md",[],[],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":19},"01M7CSTV6P3SM3PAE28DB0RF77","design-system-authoring","Use when you derive, change or extend a design system - where tokens live per stack, the DTCG token tree, role-based names for both themes, base vs layer vs drift, the DESIGN.md section order, the inventory format, the contrast check and the lint every proposal returns","https:\u002F\u002Fgithub.com\u002Fmakifbaysal\u002Ftasktrooper\u002Fblob\u002Fmain\u002Fcatalog\u002Fagents\u002Fui-designer\u002Fskills\u002Fdesign-system-authoring\u002FSKILL.md",[],[]]