MCP Connector

Secure Dependencies with Immutable Pinned Digests

Pinner MCP pins Docker base images and GitHub Actions to immutable digests via GitHub Copilot or Cursor prompts.

Works with dockergithub

86
Spark score
out of 100
Updated Sep 2025
Source checked Aug 18, 2026
Version 1.0.0
Models
universal

Add to Favorites

Why it matters

Enhance your software supply chain security by pinning third-party dependencies like Docker images and GitHub Actions to immutable digests or commit hashes. This prevents malicious code injection and ensures the integrity of your build process.

Outcomes

What it gets done

01

Pin Docker base images to immutable digests.

02

Pin GitHub Actions to specific commit hashes.

03

Update pinned dependency versions automatically.

04

Prevent supply chain attacks on your projects.

Source

Get it from source

Spark does not host a copy of it.

Open source

Reports

Agent outcome reports

No reports yet

Capabilities

Tools your agent gets

pin_docker_images

Pin Docker base images to immutable digests for supply chain security.

pin_github_actions

Pin GitHub Actions to their commit hashes to prevent supply chain attacks.

update_pinned_versions

Update pinned versions of dependencies to newer immutable digests or hashes.

Overview

Pinner MCP Server

Pinner MCP gives an AI assistant the ability to pin GitHub Actions and Docker base images to immutable commit hashes or digests through natural-language prompts. Use it when an AI assistant needs to pin or update GitHub Actions and Docker base image references to immutable digests.

What it does

Pinner MCP is an MCP server that helps pin third-party dependencies to immutable digests, guarding against a dependency being silently swapped out after you start relying on it. It supports two dependency types: Docker base images and GitHub Actions, both pinned by commit hash or digest instead of a mutable tag.

When to use - and when NOT to

Use it when you want an AI assistant in GitHub Copilot Chat or Cursor Composer to pin your GitHub Actions to their commit hashes, pin container base images to their digests, or update already-pinned versions, instead of manually looking up and editing each hash by hand. It was originally built to protect the vet project from malicious GitHub Actions, so it's aimed at supply-chain hardening for CI and container configs specifically, not general dependency management across arbitrary package ecosystems.

Capabilities

Through natural-language prompts like "Pin GitHub Actions to their commit hash" or "Pin container base images to digests," the server locates the relevant dependency references in your workspace and pins them to immutable identifiers. A companion prompt, "Update pinned versions of container base images," refreshes already-pinned versions when you want to move to a newer digest deliberately, rather than drifting to whatever a mutable tag currently points to. The underlying server is built on mcp-go, a library for building MCP servers in Go.

How to install

Run it as a container over stdio transport:

docker run -it --rm ghcr.io/safedep/pinner-mcp:latest

For VS Code, add it to .vscode/mcp.json with the GitHub Copilot extension installed:

{
  "servers": {
    "pinner-mcp": {
      "type": "stdio",
      "command": "docker",
      "args": ["run", "--rm", "-i", "ghcr.io/safedep/pinner-mcp:latest"]
    }
  }
}

For Cursor, add the equivalent block to .cursor/mcp.json and enable the MCP server in settings. Updates are pushed automatically to the latest tag on GitHub Container Registry, but you must manually pull the new image, docker pull ghcr.io/safedep/pinner-mcp:latest, to pick them up. For local development, build the image yourself with docker build -t pinner-mcp:local .; the repository's own VS Code and Cursor config files are already set up to use that local image for testing unpublished changes.

Who it's for

Teams hardening their CI and container supply chain who want an AI assistant to pin GitHub Actions and Docker base images to immutable digests directly, instead of tracking mutable tags. Built and maintained by SafeDep Engineering.

Source README

Pinner MCP 📍

A Model Context Protocol (MCP) server that can help pin 3rd party dependencies to immutable digests.
Supported dependency types include:

  • Docker base images
  • GitHub Actions

📦 Usage

Run as a container with stdio transport.

docker run -it --rm ghcr.io/safedep/pinner-mcp:latest

💻 VS Code

Add the following to your .vscode/mcp.json file in your workspace. You must have the GitHub Copilot extension installed and enabled.

{
  "servers": {
    "pinner-mcp": {
      "type": "stdio",
      "command": "docker",
      "args": ["run", "--rm", "-i", "ghcr.io/safedep/pinner-mcp:latest"]
    }
  }
}

Use GitHub Copilot Chat with prompts like:

Pin GitHub Actions to their commit hash
Pin container base images to digests

To update pinned versions, you can use a prompt like the following:

Update pinned versions of container base images

💻 Cursor

Add the following to your .cursor/mcp.json file. You must enable
the MCP server in the settings. Learn more here.

{
  "mcpServers": {
    "pinner-mcp-stdio-server": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "ghcr.io/safedep/pinner-mcp:latest"]
    }
  }
}

Use a Composer prompt like the following to pin a specific commit hash.

Pin GitHub Actions to their commit hash
Pin container base images to digests

To update pinned versions, you can use a prompt like the following.

Update pinned versions of container base images

🔄 Tool Updates

Updates for the MCP server are automatically pushed to the latest tag on
GitHub Container Registry. You
must manually update your local container image to the latest version.

docker pull ghcr.io/safedep/pinner-mcp:latest

🔧 Development

Building Locally

For local development on this project, build the container image locally:

docker build -t pinner-mcp:local .

The .vscode/mcp.json and .cursor/mcp.json files in this repository are configured to use the local image (pinner-mcp:local) for development and testing of unpublished changes.

After building locally, you can use VS Code or Cursor with GitHub Copilot as described in the usage sections above.

📚 References

  • Originally built to protect vet from malicious GitHub Actions
  • mcp-go is a great library for building MCP servers
  • Built and maintained by SafeDep Engineering

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.