GitHub Actions supply-chain hardener: audit workflows for unpinned actions and build a SHA pin plan.
MCPpedia last refreshed this data
io.github.CloudCorpRecords/actionpin is an MCP server that GitHub Actions supply-chain hardener: audit workflows for unpinned actions and build a SHA pin plan. Its tool list has not been published yet over stdio and sse, requires no API key, and scores 59/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"actionpin": {
"args": [
"-y",
"@reneturcios/actionpin",
"mcp"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
GitHub Actions supply-chain hardener: audit workflows for unpinned actions and build a SHA pin plan.
Run this in your terminal to verify the server starts. Then let us know if it worked - your result helps other developers.
npx -y '@reneturcios/actionpin' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked @reneturcios/actionpin against OSV.dev.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in developer-tools
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
Manage Supabase projects — databases, auth, storage, and edge functions
MCP server for using the GitLab API
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
MCP Security Weekly
Get CVE alerts and security updates for io.github.CloudCorpRecords/actionpin and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A version tag is a promise anyone can break. A commit SHA is not.
npx @reneturcios/actionpin audit
GitHub Actions are executable supply chain. When a workflow says uses: actions/checkout@v4, that tag can move. When a third-party action tag moves to a compromised commit, every workflow that trusts the tag runs the new code with that workflow's tokens. Pinning to a full 40-character commit SHA is the standard defense, and almost nobody does it consistently, because doing it by hand across every workflow is tedious and easy to get wrong.
actionpin audits every workflow in a repo, reports exactly which actions are pinned and which are not, and can rewrite the unpinned ones to SHAs for you, keeping the original tag as a comment so the pin stays readable.
GitHub Actions are the second largest confirmed open source supply-chain attack surface of the last year, behind only npm. Maintainer accounts and action tags have been hijacked before, and a mutable tag means the code your CI runs today is not guaranteed to be the code you reviewed. The fix is known and boring: pin to a SHA. actionpin makes the boring fix one command, and makes the audit callable by agents through MCP so it can run inside contribution and release workflows, not just by hand.
For every uses: line in .github/workflows/*.yml and *.yaml:
| classification | meaning |
|---|---|
PINNED | Ref is a full 40-character commit SHA (or a full sha256 or sha512 content digest for a container image) |
MUTABLE | Ref is a version tag such as v4 or v4.2.1. The tag can move. |
BRANCH | Ref is a branch such as main, master, or HEAD. It moves by design. |
LOCAL | A local path such as ./local/action. Never rewritten. |
Owner types: official for actions owned by actions or github, third-party for everyone else, docker for docker:// container actions, and local for local paths.
Verdict rules:
Fix mode resolves a tag or branch to its commit SHA through the GitHub API and rewrites the line to owner/repo@<sha> # <original ref>, preserving indentation and all other content. Files are edited line-wise; YAML is never parsed and re-emitted, so formatting survives. If a ref cannot be resolved, its line is left unchanged and the failure is reported. Docker image refs are reported but not rewritten; pin those by digest.
# Audit the current repo
npx @reneturcios/actionpin audit
# Audit another path, machine readable
npx @reneturcios/actionpin audit ~/src/my-repo --json
# Audit every repo checkout under an org root and report pin drift
# (the same action used at different refs in different repos)
npx @reneturcios/actionpin org ~/src/my-org --json
# Preview the pinning plan without writing
npx @reneturcios/actionpin fix --dry-run
# Pin everything resolvable, in place
npx @reneturcios/actionpin fix
Example output:
actionpin audit .: EXPOSED
workflows: 2, actions: 6, pinned: 1, mutable: 4, branch: 1, local: 0
[PINNED] .github/workflows/ci.yml:12 actions/checkout@0123456789abcdef0123456789abcdef01234567 (official)
[MUTABLE] .github/workflows/ci.yml:13 actions/setup-node@v4 (official)
[MUTABLE] .github/workflows/publish.yml:20 docker/b
... [View full README on GitHub](https://github.com/cloudcorprecords/actionpin#readme)