@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.
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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.