﻿---
title: "Snyk Studio 先 --ade codex，MCP 是本地 stdio 不是远程"
summary: "Codex 默认走 Snyk Studio 安装器，必须带 --ade codex。只要 MCP：codex mcp add snyk-security -- npx -y snyk@latest mcp -t stdio。没有托管远程。密钥用 env_vars 转发 SNYK_TOKEN，不要写进 env 表。"
category: mcp
level: intermediate
surfaces: [cli, app, ide]
tags: ["MCP", "Snyk", "stdio", "hooks"]
canonical: /tips/mcp-snyk-stdio/
---

# Snyk Studio 先 --ade codex，MCP 是本地 stdio 不是远程

Codex 默认走 Snyk Studio 安装器，必须带 --ade codex。只要 MCP：codex mcp add snyk-security -- npx -y snyk@latest mcp -t stdio。没有托管远程。密钥用 env_vars 转发 SNYK_TOKEN，不要写进 env 表。

Snyk 给 Codex 的**现行默认**是 Studio 安装器（钩子 + 技能 + MCP），不是远程 HTTP。官方把 Codex CLI 列进「有钩子」的 ADE。先预览，再钉死 Codex，不要让它改所有检测到的客户端：

```bash
curl -fsSL "https://raw.githubusercontent.com/snyk/studio-recipes/main/installer/dist/snyk-studio-install.sh" -o snyk-studio-install.sh
bash ./snyk-studio-install.sh --dry-run --ade codex
bash ./snyk-studio-install.sh --ade codex
```

装完跑 `snyk auth`，或把 `SNYK_TOKEN` 放进**启动 Codex 的那个进程**。不要 `bash ./snyk-studio-install.sh -y` 不带 `--ade`。Windows 用官方 `.ps1`，不要把这份 bash 抄进 PowerShell。

只要 MCP、不要安装器时，官方 Codex 节是本地 stdio。Snyk **没有**托管远程 MCP。用户层表名官方就是带连字符的 `snyk-security`（这不是插件 `mcp.json`，#33063 那套连字符问题不套这里）：

```bash
codex mcp add snyk-security -- npx -y snyk@latest mcp -t stdio
```

```toml
[mcp_servers.snyk-security]
command = "npx"
args = ["-y", "snyk@latest", "mcp", "-t", "stdio"]
env_vars = ["SNYK_TOKEN"]
enabled = true

[mcp_servers.snyk-security.env]
SNYK_MCP_PROFILE = "lite"
```

`SNYK_MCP_PROFILE` 可以是 `lite` / `full`（默认）/ `experimental`，写进 `env` 表没问题，那不是密钥。`SNYK_TOKEN` 必须走 `env_vars`，不要写成 `env` 表里的字面量，TOML 占位符也不会展开。本机已经装了 `snyk` 时，`command` 改成可执行文件的**绝对路径**；用 fnm / nvm 管 Node 时尤其不要写裸 `snyk`。

第一次用会走浏览器登录（工具名 `snyk_auth`），也可以先在终端 `snyk auth`。随后可让它扫代码 / 依赖。`snyk_sca_scan` 可能在本机拉 Gradle / Maven / pip，沙箱要给网络，或放到你已经配好工具链的环境。

不要做这些：

- 不要抄 `mcpServers` JSON。Codex 用 `[mcp_servers.snyk-security]`。
- 不要抄 Claude 的 `-t http`。这里的 `-t stdio` 是 Snyk CLI 自己的传输参数。
- 不要给它 `url = "https://…"`。官方明确没有远程 MCP。
- 不要把 API token 写进 `args` 或 `http_headers`。
- 不要给它 `required = true` 挂全局。
- 不要一上来 `--yolo`。扫描结果会进上下文。

网页 Cloud 不读 `~/.codex/config.toml`。改完新开会话。用 `codex mcp get snyk-security` 看 command 是 npx 还是绝对路径。

## 来源

- [Snyk · Codex CLI guide](https://docs.snyk.io/agent-security/agentic-security-with-snyk-studio/quickstart-guides/codex-cli-guide)
- [Snyk · Getting started with Snyk Studio](https://docs.snyk.io/agent-security/agentic-security-with-snyk-studio/getting-started-with-snyk-studio)
- [OpenAI · Model Context Protocol](https://learn.chatgpt.com/docs/extend/mcp)
