Enables AI agents to request multi-party approvals for actions through a hash-chained receipt system.
Also known as jdkabattles/forgingstack-quorum, forgingstack-quorum
- Stars
- 0
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 0.1.0
- Last commit
- Nov 8, 2026
- License
- MIT
What is ForgingStack Quorum MCP?
ForgingStack Quorum enables AI agents to request multi-party approvals for actions through a hash-chained receipt system.
Summary generated from the project's README
About ForgingStack Quorum MCP server
ForgingStack Quorum provides a mechanism for AI agents to secure multi-party authorization before executing specific actions. This MCP server acts as a public client that connects to a private backend service to manage an approval flow based on a hash-chained receipt system. Users must provide an API key and maintain sufficient credits to create proposals, as each proposal costs one credit while approvals remain free.
Developers implement this server locally using the stdio transport method by setting the FORGINGSTACK_API_KEY environment variable. The server exposes specific tools including create_proposal, get_proposal, get_credits, and get_receipt. When an agent initiates a proposal, it specifies the required number of approvers and an expiration timestamp. Approvers interact with the system via one-time emailed links to grant or reject the request. Once the required threshold is met, the system issues a permanent receipt.
This tool focuses strictly on the quorum process and does not evaluate the safety or legality of the proposed actions. It is designed for developers who need a verifiable way to ensure human or multi-agent oversight for sensitive operations.
What you can do with it
- 1Require multi-person authorizationAn agent can propose a deployment task that requires two specific email addresses to approve before proceeding.
- 2Verify action legitimacyA developer can retrieve a hash-chained receipt to confirm that a specific quorum was reached for a past action.
- 3Monitor account balanceAn AI client can check how many credits are remaining to ensure it can continue creating new proposals.
- 4Cancel pending requestsA user can manually stop a proposal that is currently waiting for approvers to respond.
Written from the project's README. Every use case is checked against a quote from it.
How to install ForgingStack Quorum MCP
Formats verified 10 Nov 2026Install ForgingStack Quorum MCP in Claude Code
$ claude mcp add --env FORGINGSTACK_API_KEY=<YOUR_FORGINGSTACK_API_KEY> forgingstack-quorum -- uvx forgingstack-quorumInstall ForgingStack Quorum MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"forgingstack-quorum": {
"command": "uvx",
"args": [
"forgingstack-quorum"
],
"env": {
"FORGINGSTACK_API_KEY": "<YOUR_FORGINGSTACK_API_KEY>"
}
}
}
}Install ForgingStack Quorum MCP in VS Code
.vscode/mcp.json
{
"servers": {
"forgingstack-quorum": {
"type": "stdio",
"command": "uvx",
"args": [
"forgingstack-quorum"
],
"env": {
"FORGINGSTACK_API_KEY": "<YOUR_FORGINGSTACK_API_KEY>"
}
}
}
}Install ForgingStack Quorum MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"forgingstack-quorum": {
"command": "uvx",
"args": [
"forgingstack-quorum"
],
"env": {
"FORGINGSTACK_API_KEY": "<YOUR_FORGINGSTACK_API_KEY>"
}
}
}
}Install ForgingStack Quorum MCP in Codex
~/.codex/config.toml
[mcp_servers.forgingstack-quorum] command = "uvx" args = ["forgingstack-quorum"] [mcp_servers.forgingstack-quorum.env] FORGINGSTACK_API_KEY = "<YOUR_FORGINGSTACK_API_KEY>"
Install ForgingStack Quorum MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"forgingstack-quorum": {
"command": "uvx",
"args": [
"forgingstack-quorum"
],
"env": {
"FORGINGSTACK_API_KEY": "<YOUR_FORGINGSTACK_API_KEY>"
}
}
}
}Configuration
FORGINGSTACK_API_KEYRequiredSecretAPI key for Quorum. Sign up via POST /v1/signup (key shown once).
FORGINGSTACK_API_BASEQuorum API base URL. Live default.
| Name | Description | |
|---|---|---|
| FORGINGSTACK_API_KEY | API key for Quorum. Sign up via POST /v1/signup (key shown once). | RequiredSecret |
| FORGINGSTACK_API_BASE | Quorum API base URL. Live default. |
Automated checks
Ran Nov 14, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablejdkabattles/forgingstack-quorum is public and reachablegithub.com/jdkabattles/forgingstack-quorum ↗Pass
- Package names this repository as its sourceNot checked
- Build provenance (Sigstore attestation)No build attestation published for this releaseNot checked
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-11-08github.com/jdkabattles/forgingstack-quorum ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from forgingstack-quorumPass
- No critical advisory in the package or its dependencies1 resolved dependencies checked; no critical advisoryosv.dev ↗Pass
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubForgingStack Quorum
Before an agent acts alone, get the quorum. One proposal, N approvals, one receipt.
mcp-name: io.github.jdkabattles/forgingstack-quorum
This is the public client for Quorum. The service itself — the approval flow, the receipt chain, the key store, and billing — runs on ForgingStack's private service and is not in this repo. Copying this repo does not give you the service: you still need an API key and credits, from signup below.
Live API: https://forgingstack-quorum.jkbattles.workers.dev
How it works
- You propose an action, name the approvers, and set how many approvals are needed (N) and when the proposal expires.
- Each approver gets a one-time emailed link. Approvals are free.
- At quorum the proposal is approved and a hash-chained receipt is issued. If it expires first, it expires — no receipt, and the proposal cannot be approved afterwards.
- You can also reject a pending proposal yourself.
What it does not do: decide if an action is wise, legal, or safe. Quorum only — the approvers decide the rest.
Signup
curl -X POST https://forgingstack-quorum.jkbattles.workers.dev/v1/signup \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com"}'
Returns an API key once and 100 starter credits. Save the key
immediately — it is stored only as a hash and cannot be shown again.
Click the verification link in the signup email before the key can
create proposals (if the mail does not arrive, check spam, or
POST /v1/verify/resend).
Create a proposal
curl -X POST https://forgingstack-quorum.jkbattles.workers.dev/v1/proposals \
-H "X-API-Key: YOUR_PRIMARY_KEY" -H "Content-Type: application/json" \
-d '{"action":"deploy the new build","approvers":["a@example.com","b@example.com"],"required_approvals":2,"expires_at":"2027-01-01T00:00:00Z"}'
Returns the proposal (201) with its approval state and which
approval emails were sent. Read it back with
GET /v1/proposals/{id}, list yours with GET /v1/proposals,
reject a pending one with POST /v1/proposals/{id}/reject.
Approvers approve by clicking the link in their email — each link
works once. The receipt, once issued, is at GET /v1/receipts/{id}.
Use it (MCP, stdio)
Set the key, then run the MCP server in this repo:
export FORGINGSTACK_API_KEY="your-key-here"
python -m app.mcp_server
Tools: create_proposal, get_proposal, get_credits, get_receipt.
See SKILL.md for when to use it and when not to.
Price
1 credit per proposal. Approvals are free. 100 starter credits on
signup. $10 for 1,000 credits via POST /v1/billing/checkout
(Payment Link). Credits land after payment is verified — usually
within the hour.
Files in this repo
app/mcp_server.py— MCP wrapper client (stdio, stdlib only)SKILL.md— when to use it, how to read the resultagent-card.json— A2A-style discovery cardserver.json— MCP Registry metadatapyproject.toml— package metadata for the MCP clientllms.txt— short index for language-model readers
ForgingStack Quorum MCP questions
How do I add ForgingStack Quorum MCP to Claude Code?
Run claude mcp add --env FORGINGSTACK_API_KEY=<YOUR_FORGINGSTACK_API_KEY> forgingstack-quorum -- uvx forgingstack-quorum in your terminal. Add --scope user to make it available in every project.
How do I add ForgingStack Quorum MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
How do approvers grant permission?
Approvers receive a one-time emailed link that they can click to approve the proposal.
What happens if a proposal expires?
If a proposal expires before reaching the required number of approvals, no receipt is issued and it cannot be approved later.
How much does it cost to use?
It costs 1 credit per proposal, while approvals are free. New users receive 100 starter credits upon signup.
Can I cancel a pending proposal?
Yes, you have the ability to reject a proposal that is currently pending.