关于 Pinner MCP 📍
Pinner MCP 是用于将第三方依赖固定到不可变摘要的 MCP 服务,支持 Docker 基础镜像和 GitHub Actions。它面向希望通过 AI 工作流管理依赖版本的开发者。
主要功能
- 01固定 Docker 基础镜像摘要
- 02将 GitHub Actions 固定到提交哈希
- 03更新已固定的依赖版本
- 04通过 Docker 容器运行
适用场景
- 01固定容器基础镜像版本
- 02将 GitHub Actions 锁定到提交
- 03更新项目中的依赖固定版本
MCP 相关
该 MCP 服务通过 stdio 传输运行,向 MCP 客户端提供固定及更新 Docker 基础镜像和 GitHub Actions 版本的能力。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm ghcr.io/safedep/pinner-mcp:latest本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/safedep/pinner-mcp:lateststdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Pinner MCP 📍
一个 Model Context Protocol(MCP)服务,可帮助将第三方依赖项固定到不可变摘要。 支持的依赖类型包括:
- Docker 基础映像
- GitHub Actions

📦 用法
使用 stdio 传输方式以容器运行。
docker run -it --rm ghcr.io/safedep/pinner-mcp:latest
💻 VS Code
将以下内容添加到工作区中的 .vscode/mcp.json 文件。你必须安装并启用 GitHub Copilot 扩展。
{
"servers": {
"pinner-mcp": {
"type": "stdio",
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/safedep/pinner-mcp:latest"]
}
}
}
使用 GitHub Copilot Chat,并输入类似以下提示词:
Pin GitHub Actions to their commit hash
Pin container base images to digests
若要更新已固定的版本,可以使用类似以下提示词:
Update pinned versions of container base images
💻 Cursor
将以下内容添加到 .cursor/mcp.json 文件。你必须在设置中
启用 MCP 服务。了解更多信息,请点击此处。
{
"mcpServers": {
"pinner-mcp-stdio-server": {
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/safedep/pinner-mcp:latest"]
}
}
}
使用类似以下的 Composer 提示词来固定特定的提交哈希。
Pin GitHub Actions to their commit hash
Pin container base images to digests
若要更新已固定的版本,可以使用类似以下提示词。
Update pinned versions of container base images
🔄 工具更新
MCP 服务的更新会自动推送到
GitHub Container Registry 上的 latest 标签。你
必须手动将本地容器映像更新到最新版本。
docker pull ghcr.io/safedep/pinner-mcp:latest
🔧 开发
本地构建
在本地开发此项目时,请在本地构建容器映像:
docker build -t pinner-mcp:local .
此仓库中的 .vscode/mcp.json 和 .cursor/mcp.json 文件已配置为使用本地映像(pinner-mcp:local),以便开发和测试尚未发布的更改。
本地构建完成后,你可以按照上述用法部分的说明,搭配 GitHub Copilot 使用 VS Code 或 Cursor。
📚 参考资料
- 最初构建此工具是为了保护 vet 免受恶意 GitHub Actions 的侵害
- mcp-go 是一个用于构建 MCP 服务的优秀库
- 由 SafeDep Engineering 构建并维护
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。