Repository navigation
Releases: emiliano-go/gpg-mcp
Releases · emiliano-go/gpg-mcp
Release list
v0.1.0
v0.1.0
First public release of gpg-mcp, a security-focused MCP server for GnuPG. Private keys stay in gpg-agent, passphrases go only to pinentry, and high-risk operations require explicit human approval.
Added
- Typed MCP tools for signing, verification, encryption, decryption and key management. The server exposes a fixed tool surface with no raw GnuPG command tool.
- Isolated keyring and first-run setup.
gpg-mcp initcreates a 0700 keyring and a 0600 config;gpg-mcp doctorchecks the binary, keyring and policy. - Human approval and destructive confirmation. High-risk operations use MCP elicitation with a local zenity fallback; destructive operations require the fingerprint suffix.
- Revocation and import controls. Certificates are validated in an ephemeral keyring; generic imports reject secret and revocation material.
- Actual-key decryption checks. The key GnuPG reports is checked against the allow-list; symmetric and public-key routes are separate.
- Audit ledger. Records carry approval, intent and outcome phases;
audit_requireddefaults to true. - Filesystem hardening. Config, keyring and audit paths reject symlinked or unsafe ancestors; audit files are tightened to 0600.
- Bounded process handling. Status output, stdout and stderr are capped; timeouts kill the process group.
- PyPI and MCP Registry packaging. Install with
uvx gpg-mcp@0.1.0 serve,uv tool install gpg-mcp==0.1.0,pipx, orpip.
Security
- No private key export.
--export-secret-keys,--export-secret-subkeysand--export-secret-ssh-keyare unreachable. - No passphrase path. The server never accepts a passphrase; gpg-agent asks through pinentry.
- No raw execution. No arbitrary argv, homedir override or short key IDs.
- No hidden recipient bypass. Mixed and hidden recipients are refused by default.
- No silent verification downgrade. Expired, revoked or missing-key signatures are never policy-acceptable.
Stats
- 21 commits
- 29 files changed, +4778 / -386
- 135 tests, 1 skipped
- Package version 0.1.0 (Beta)
Full Changelog: https://github.com/emiliano-go/gpg-mcp/commits/v0.1.0