QuickContract MCP

QuickContract MCP

Enables AI agents to sign contracts, release escrow, query portfolios, and verify on-chain proofs via QuickContract.

Category
Visit Server

README

@quickcontract/mcp

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; includes signedBy[] 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 in mandate.limits.allowedTemplateIds.
  • update_contract — edit a draft.
  • send_contract — move draft → sent_for_review. Agent callers: recipient domain must be in allowedCounterpartyDomains.
  • add_recipient — register a human (kind=human) or agent (kind=agent) recipient.
  • sign_as_agent — produce an Ed25519 signature on a contract. Requires a qc_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

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