@humanagencyp/deploy-mcp

@humanagencyp/deploy-mcp

Enables agents to deploy software via GitHub Actions only with a signed receipt, providing gated tools to resolve refs, list deployments/environments, and dispatch pipelines for a specific commit.

Category
Visit Server

README

@humanagencyp/deploy-mcp

Deploy MCP server — run deployment pipelines under bounded human authority.

Implements the executor side of the Human Agency Protocol deploy@0.6 profile. Backend: GitHub Actions.

What it does

Exposes deployment as gated tools so an agent can ship software only with a signed receipt behind it. It does not decide whether a deploy is allowed — that is the Gatekeeper's job, and then the pipeline's.

Tool Kind
resolve_ref read branch/tag → commit SHA
list_deployments read recent workflow runs
get_deployment read one run
list_environments read the repo's real environments
deploy consequential dispatch a pipeline for one commit

Setup

GITHUB_TOKEN=<fine-grained token>

Fine-grained, scoped to one repository:

Permission Why
Actions: read & write dispatch the workflow
Environments: read list environments for the authorization wizard
Contents: read resolve a branch to a commit

Not Contents: write. This server ships commits that already exist; it never authors them.

Two properties that are easy to lose

1. deploy declares receipt_id. That declaration is what makes a Suveren gateway inject the receipt it just minted. Remove it and the pipeline has nothing to verify — the chain quietly degrades to an unproven deploy. The tool refuses to dispatch when the field is missing, so the failure is loud.

2. A commit is required, not a branch. deploy rejects main. A receipt binds one commit; authorising "deploy main" would authorise whatever main happens to be when the action finally runs, which may not be what was reviewed. Call resolve_ref first.

The pipeline must verify

Dispatching is not the control point — anyone with repository write access can dispatch a workflow. The workflow itself must check the receipt before releasing anything:

on:
  workflow_dispatch:
    inputs:
      sha:        { required: true }
      receipt_id: { required: true }
      environment: { required: true }

jobs:
  verify:                       # signature, scope, commit binding, freshness
    ...
  deploy:
    needs: verify
    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ inputs.sha }}   # the APPROVED commit, not the branch head

Building the branch head instead of inputs.sha means a receipt for one commit can ship another — and the receipt still verifies, certifying something false. That is worse than having no receipt at all.

Limits, stated plainly

  • This server dispatches; it does not hold the deploy credentials the pipeline uses. The boundary is the receipt requirement, not the whole path.
  • GitHub returns no run id from a dispatch, so the run is matched by workflow and creation time. Best-effort: it reports no run rather than guessing wrong.

Licence

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured