GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者提供的说明(英文原文)
Move npm publishing in GitHub Actions from NPM_TOKEN to trusted publishing (OIDC).
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"go-tokenless": {
"command": "npx",
"args": [
"-y",
"go-tokenless",
"mcp"
]
}
}
}在终端中运行这条命令
claude mcp add go-tokenless -- npx -y go-tokenless mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"go-tokenless": {
"command": "npx",
"args": [
"-y",
"go-tokenless",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"go-tokenless": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"go-tokenless",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 Continuous-Actions 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.1.0)于31天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:GitHub, Desktop Commander, Cloudflare MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Delete your `NPM_TOKEN`. One command switches npm publishing in GitHub Actions to trusted publishing (OIDC). No long-lived token is stored anywhere, and every release gets a provenance badge.
npm is retiring token publishing: from January 2027 a token can no longer publish on its own (npm docs).
Contents
From the root of the repository that publishes to npm:
npx go-tokenless # 1. preview: lists every change and shows a diff, writes nothing
npx go-tokenless apply # 2. edit the workflow and package.json files
Then follow the Next steps it prints: commit the change, connect the package to the workflow on npm, and delete the old secret. Needs Node 22.14+.
Only the lines that need to change are touched: comments, quoting and layout in your workflows are kept, and in package.json only the repository field is edited. Before writing, go-tokenless re-reads both versions and refuses if anything other than the migration would change.
| Problem in your release workflow | What go-tokenless does |
|---|---|
NODE_AUTH_TOKEN / NPM_TOKEN on the publish job (or the workflow) | Removes it, so the secret can be deleted. npm prefers OIDC but falls back to a configured token, which would keep the old token in use |
| Job can't request an OIDC token | Adds permissions: id-token: write, keeping the permissions it had |
| npm older than 11.5.1 (Node 22 and below) | Adds npm install -g npm@^12, or moves Node < 22 to 24 |
actions/setup-node without registry-url | Adds registry-url: https://registry.npmjs.org |
JS-DevTools/npm-publish below v4 | Updates it to v4, which no longer requires a token |
A script writes _authToken to .npmrc | Removes those lines |
repository missing or in the wrong form in package.json | Sets git+https://github.com/ / .git (with directory in monorepos) |
It stops with exit code 1 and writes nothing when a person needs to decide:
pull_request_target, issue_comment, workflow_run and similar triggers. Granting it OIDC would let a fork publish.Dry runs (npm publish --dry-run) never count as publishing. Steps that publish to GitHub Packages, and GITHUB_TOKEN values, are left alone.
Example output
$ npx go-tokenless
go-tokenless: Ready to go tokenless. (acme/widgets)
Changes: .github/workflows/release.yml
NODE_AUTH_TOKEN from job envid-token: writeNext:
npx go-tokenless apply (or apply the diff above) and commit the changes on a branch.gh secret delete NPM_TOKEN) and revoke the token on npmjs.com.
| Setup | Notes |
|---|---|
npm publish (incl. workspaces) | |
pnpm publish / -r publish | pnpm 10 hands off to npm; pnpm 11 needs 11.1.3+ |
Yarn Berry yarn npm publish | Yarn 4.10.3+; remove npmAuthToken from .yarnrc.yml |
changesets (changesets/action) | Works as is; if the first tokenless release can't authenticate, update to v2 |
| semantic-release | Needs @semantic-release/npm 13.1.0+ (semantic-release 25+) |
release-please + npm publish | |
| Lerna / Nx release | Lerna 9+ |
| JS-DevTools/npm-publish | Updated to v4 |
| release-it | Also set npm.skipChecks: true |
Reusable workflows (workflow_call) | npm checks the *calling* workflow's file name; a trust command is printed for every caller |
| Publishing inside scripts | Follows package.json scripts, ./scripts/*.sh, make and local composite actions (uses: ./.github/actions/...), including working-directory |
Yarn 1 yarn publish, bun publish | Flagged: those tools can't use trusted publishing yet, so switch to npm publish |
If your installs need private packages from your npm org, give the install steps a read-only token. Publish steps stay token-free:
npx go-tokenless apply --read-token NPM_READ_TOKEN
- run: npm ci
Every install step in the release workflow gets it, including separate build and test jobs. Create a granular token on npmjs.com with read-only access to your packages and save it with gh secret set NPM_READ_TOKEN.
Add the Action to CI. It fails the job if a token creeps back into a publish workflow, and the job summary lists the exact fixes:
# .github/workflows/ci.yml
jobs: tokenless: runs-on: ubuntu-latest permissions: contents: read steps:
It runs go-tokenless --json read-only and needs no token. Its status output is already-tokenless, ready, blocked or no-publish-workflow.
go-tokenless is built to be run by coding agents: --json output, clear exit codes, an MCP server and an Agent Skill. Ask your agent: *"Move our npm publishing to trusted publishing."*
| Client | Setup |
|---|---|
| Claude directory (claude.ai, Cowork, Claude Code) | Submitted to Anthropic's plugin directory and awaiting approval. Once listed: open the directory, search go-tokenless and select Add. It then syncs to Claude Code as go-tokenless@synced. Until then, use the marketplace command below |
| Claude Code (plugin: skill + MCP) | /plugin marketplace add continuous-actions/go-tokenless then /plugin install go-tokenless@continuous-actions |
| Claude Code (MCP only) | claude mcp add go-tokenless -- npx -y go-tokenless mcp |
| Gemini CLI | gemini extensions install https://github.com/continuous-actions/go-tokenless |
| Cursor, VS Code, others | Add the MCP config below |
| Any agent with skills | npx skills add continuous-actions/go-tokenless |
{ "mcpServers": { "go-tokenless": { "command": "npx", "args": ["-y", "go-tokenless", "mcp"] } } }
MCP tools: plan_trusted_publishing (read-only) and apply_trusted_publishing (writes files; no git or network writes). It is listed in the MCP Registry as io.github.continuous-actions/go-tokenless. See also llms.txt and the Agent Skill.
npx go-tokenless [plan | apply | mcp] [options]
| Option | Description |
|---|---|
--json | Print the full plan as JSON (status, changes, diff, findings, trust, nextSteps) |
--diff | Include the diff in text output (always on for plan) |
--repo | GitHub repository, when origin isn't GitHub |
--cwd | Repository root (default: current directory) |
--offline | Skip the npm registry check that each package already exists |
--read-token | Give install steps a read-only token from this secret (private packages) |
--npm-version | npm for the inserted upgrade step. Default ^12, pinned to one major so releases don't change under you. Other versions show a warning; below 11.5.1 is refused |
--npm-args " " | Extra arguments for every npm command it generates (upgrade step and npm trust) |
Exit codes: 0 ok · 1 blocked (needs a human fix) · 2 usage error · 3 unexpected error.
.github/workflows/*.yml, package.json files and related scripts in the repository you point it at. apply and the apply_trusted_publishing MCP tool write only to workflow and package.json files inside that repository. It never follows links out of the repository.GET requests to https://registry.npmjs.org/ to check that each package already exists (--offline or MCP offline: true turns this off). Nothing else is fetched or sent. There is no telemetry.npx -y go-tokenless@ mcp.go-tokenless never touches your npm account, secrets or git history. After apply:
npm trust github … commands (npm 11.15+, asks for 2FA), or go to npmjs.com → package → Settings → Trusted publishing.Each error has its own page with causes and fixes: ENEEDAUTH, 404 on PUT, E422 repository.url, still using the token, and the 2FA-bypass notice.
| Error |
只显示了开头部分;其余内容请在仓库中阅读