From d0ce132e5274678ea47bb07308cc72d44760cf25 Mon Sep 17 00:00:00 2001 From: teknium <127238744+teknium1@users.noreply.github.com> Date: Tue, 28 Jul 2026 21:51:19 -0700 Subject: [PATCH] feat(mcp): add Snyk to the MCP catalog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Snyk ships its MCP server inside the Snyk CLI (`snyk mcp`), so the entry is a pinned npx stdio launch with no install block and no packaging changes. - Pinned to snyk@1.1306.0 (published 2026-07-09, 19 days old at pin time) per the catalog exact-pin / 2-week-age policy. - auth: none — the server exposes a snyk_auth tool that runs Snyk's browser login on demand, so install is a one-click empty modal. - Telemetry disabled at launch (--DISABLE_ANALYTICS plus the SNYK_DISABLE_ANALYTICS env var); snyk_send_feedback, which reports issue-count deltas back to Snyk, is off by default. - default_enabled covers the 8 scanning/intelligence tools; logout and version are pruned as noise. Users opt into the rest from the install checklist. Verified by completing a real MCP stdio handshake against the pinned version: serverInfo reports 'Snyk MCP Server' 1.1306.0 and 13 tools. --- optional-mcps/snyk/manifest.yaml | 96 ++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 optional-mcps/snyk/manifest.yaml diff --git a/optional-mcps/snyk/manifest.yaml b/optional-mcps/snyk/manifest.yaml new file mode 100644 index 00000000000..3f71ae95458 --- /dev/null +++ b/optional-mcps/snyk/manifest.yaml @@ -0,0 +1,96 @@ +# Nous-approved MCP catalog entry. +# Presence in this directory = approval. Merged via PR review. +manifest_version: 1 + +name: snyk +description: Scan code, dependencies, containers, and IaC with Snyk. +source: https://docs.snyk.io/integrate-with-snyk/snyk-mcp-server + +# Snyk ships its MCP server INSIDE the Snyk CLI — `snyk mcp` is a first-party +# subcommand, not a community wrapper. Nothing to clone or bootstrap: npx +# fetches the pinned CLI and launches it over stdio, so there is no `install:` +# block. +# +# `--profile full` exposes all 13 non-experimental tools. We deliberately do +# NOT pass `--profile lite` (7 tools): lite drops the container, IaC, SBOM, +# AIBOM, package-health, and breakability tools, which are the ones an agent +# with a terminal can't already approximate. The tool-schema cost is bounded +# by `tools.default_enabled` below instead of by the profile flag, so users +# who want the wider surface can opt in from the install checklist without +# reinstalling. +transport: + type: stdio + command: npx + args: + - "-y" + # Pinned per catalog dependency policy: exact version (never @latest), and + # the pinned release is at least 2 weeks old at pin time. 1.1306.0 was + # published 2026-07-09. Bumping the pin is a PR to this manifest. + - "snyk@1.1306.0" + - "mcp" + - "-t" + - "stdio" + - "--profile" + - "full" + # Snyk CLI reports usage analytics by default. Hermes does not ship + # opt-out-by-default telemetry, so disable it at launch. + - "--DISABLE_ANALYTICS" + version: "1.1306.0" + # Belt-and-braces telemetry opt-out: the flag above covers the CLI's own + # analytics; this covers the env-var path the CLI also honors. Static + # non-secret env only — credentials never go here. + env: + SNYK_DISABLE_ANALYTICS: "1" + +# No credentials are prompted at install time. The server exposes a `snyk_auth` +# tool that runs Snyk's browser OAuth flow on demand, so installing is a +# genuinely empty modal in the dashboard. +auth: + type: none + +# Tool selection at install time: +# The eight scanning/intelligence tools are pre-checked. Three are pruned from +# the default surface: +# - snyk_send_feedback — reports issue-count deltas back to Snyk. That is +# outbound telemetry, which we do not enable by default. +# - snyk_logout — destructive, rarely wanted mid-session. +# - snyk_version — pure noise in a model's tool schema. +# snyk_trust IS included: scans of an untrusted folder fail without it, and it +# only acts when the agent is explicitly told to. +# Users see the full 13-tool list in the install checklist and can opt into the +# pruned ones per their own threat model. +tools: + default_enabled: + - snyk_auth + - snyk_trust + - snyk_code_scan + - snyk_sca_scan + - snyk_container_scan + - snyk_iac_scan + - snyk_sbom_scan + - snyk_package_health_check + +post_install: | + Authenticate before your first scan by asking Hermes to run the `snyk_auth` + tool — it opens a browser and stores the token in the Snyk CLI's own config. + A free Snyk account is enough for the code and open-source scanners. + + What each scanner covers: + snyk_code_scan SAST over your source + snyk_sca_scan open-source dependency vulnerabilities + snyk_container_scan container image OS + app packages + snyk_iac_scan Terraform, CloudFormation, Kubernetes, ARM + snyk_sbom_scan an existing SBOM file + snyk_package_health_check package intel before you add a dependency + + Scans need an ABSOLUTE path. Snyk also refuses to scan an untrusted folder — + if a scan reports a trust error, have Hermes run `snyk_trust` on that path. + + Scanning uploads code metadata to Snyk's cloud for analysis. Usage analytics + are disabled by this manifest, but the scan itself is a network call — keep + that in mind for private repositories. + + Start a new Hermes session to load the Snyk tools. + + Re-run the tool checklist any time with: + hermes mcp configure snyk