QuickContract
FreeNot checkedEnables AI agents to sign contracts, release escrow, query portfolios, and verify on-chain proofs via QuickContract.
About
Enables AI agents to sign contracts, release escrow, query portfolios, and verify on-chain proofs via QuickContract.
README
MCP server for QuickContract — sign contracts, release escrow, query portfolios, and verify on-chain proofs from any MCP-aware AI agent.
Drops into Claude Desktop, Cursor, Anthropic Agents SDK, and OpenAI Agents in under a minute.
Install
npx @quickcontract/mcp --help
# or install globally:
npm i -g @quickcontract/mcp
quickcontract-mcp
Requires Node 18+.
Configure
Generate an API key at https://quickcontract.io/settings/api-keys.
Raw org keys start with qc_live_; agent-bound keys (with a server-
enforced mandate) start with qc_agnt_.
Set the env var:
export QC_API_KEY="qc_live_..." # or qc_agnt_...
That's it. The server defaults to https://api.quickcontract.io.
Override with QC_BASE_URL for staging or local dev.
Wire it into your AI client
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"quickcontract": {
"command": "npx",
"args": ["-y", "@quickcontract/mcp"],
"env": {
"QC_API_KEY": "qc_live_..."
}
}
}
}
Restart Claude Desktop. Type @quickcontract in any conversation to
invoke tools.
Cursor
In .cursor/mcp.json at the workspace root:
{
"mcpServers": {
"quickcontract": {
"command": "npx",
"args": ["-y", "@quickcontract/mcp"],
"env": { "QC_API_KEY": "qc_live_..." }
}
}
}
Anthropic Agents SDK (TypeScript)
import { Agent } from '@anthropic-ai/sdk/agents';
import { StdioMcpTransport } from '@anthropic-ai/sdk/mcp';
const agent = new Agent({
mcpServers: {
quickcontract: new StdioMcpTransport({
command: 'npx',
args: ['-y', '@quickcontract/mcp'],
env: { QC_API_KEY: process.env.QC_API_KEY! },
}),
},
});
OpenAI Agents SDK (Python)
from openai.agents import Agent, MCPServerStdio
qc = MCPServerStdio(
name="quickcontract",
command="npx",
args=["-y", "@quickcontract/mcp"],
env={"QC_API_KEY": os.environ["QC_API_KEY"]},
)
agent = Agent(name="contract-agent", mcp_servers=[qc])
What's exposed
Tools — READ (works with any API key)
list_contracts— paginated list with filters.get_contract— full structured contract.get_contract_status— lightweight status / signed-party flags.verify_hash— public verify by SHA-256 content hash; includessignedBy[]with agent DIDs for external Ed25519 verification.list_templates/get_template— 62 base templates + your custom.get_organization— your plan tier + rate limit.get_audit_log— tamper-evident hash-chained events.get_obligations— extracted payment terms + dates via Claude.
Tools — WRITE (mandate-gated for agent keys)
create_contract— instantiate a draft from a template. Agent callers: template must be inmandate.limits.allowedTemplateIds.update_contract— edit a draft.send_contract— move draft → sent_for_review. Agent callers: recipient domain must be inallowedCounterpartyDomains.add_recipient— register a human (kind=human) or agent (kind=agent) recipient.sign_as_agent— produce an Ed25519 signature on a contract. Requires aqc_agnt_*key. Server enforces capability + the full 9-code mandate envelope.release_milestone— release escrow. Non-custodial in both rails.add_machine_term— attach an IF/THEN to a contract (when payload.delivered + schemaMatch then escrow.release).report_event— fire a signed event into a contract's machine terms. Optional Ed25519 signature provides non-repudiation.
Resources
contract://{id-or-permalink}— full contract.template://{id}— template body.audit://{contractId}— hash-chained log.agent://{didIdentifier}— public DID Document JSON-LD.
Prompts
negotiate_clause,draft_counter_offer,risk_assessment,summarize_contract,extract_obligations— pre-canned scripts that chain the AI tools.
Mandate reject codes
When an agent attempts an action that violates its mandate, the
backend returns a typed envelope. The MCP tool surfaces it as a
single error string with reason: line:
| Reason | Trigger |
|---|---|
mandate_revoked |
Mandator revoked the mandate. |
mandate_expired |
Past expiresAt. |
capability_not_granted |
Action's capability missing from capabilities[]. |
mandate_exceeded_value_cap |
Contract value > maxContractValueCents. |
mandate_exceeded_day_cap |
Daily signed-count > perDayCap. |
mandate_exceeded_month_cap |
Monthly signed-count > perMonthCap. |
template_not_allowed |
Template not in allowedTemplateIds[]. |
counterparty_not_allowed |
Recipient domain not in allowedCounterpartyDomains[]. |
jurisdiction_not_allowed |
Jurisdiction not in allowedJurisdictions[]. |
A calling agent can switch on reason to plan an alternative path
(e.g. propose a smaller contract value, or hand off to a human via
request_approval).
Environment variables
| Var | Required | Default | Notes |
|---|---|---|---|
QC_API_KEY |
yes | — | qc_live_* for org or qc_agnt_* for agent. |
QC_BASE_URL |
no | https://api.quickcontract.io |
Override for staging. |
QC_PUBLIC_HOST |
no | quickcontract.io |
Host used to resolve agent:// DID URIs. |
QC_DEBUG |
no | — | Set to any truthy value to stream request log to stderr. |
License
MIT — see LICENSE.
Links
- Home: https://quickcontract.io
- Developer docs: https://quickcontract.io/developers
- Agent identity spec: https://quickcontract.io/developers/agents
- Public verify (no API key):
https://api.quickcontract.io/api/v1/verify/{contentHash} - Status: https://status.quickcontract.io
Install QuickContract in Claude Desktop, Claude Code & Cursor
unyly install quickcontract-mcpInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add quickcontract-mcp -- npx -y @quickcontract/mcpFAQ
Is QuickContract MCP free?
Yes, QuickContract MCP is free — one-click install via Unyly at no cost.
Does QuickContract need an API key?
No, QuickContract runs without API keys or environment variables.
Is QuickContract hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install QuickContract in Claude Desktop, Claude Code or Cursor?
Open QuickContract on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare QuickContract with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
