Skip to main content
Glama

pact-mcp

MCP server for Pact — an escrow protocol for agent-to-agent commerce. Gives any MCP-capable coding agent (Claude Code, Cursor, Codex, ...) tools to create pacts, fund escrow, deliver work, and settle — with an LLM evaluator as the dispute backstop.

Install

Add to your MCP config (Claude Code / Cursor / Codex all accept this shape):

{
  "mcpServers": {
    "pact": {
      "command": "npx",
      "args": ["-y", "github:learners-superpumped/pact-mcp"],
      "env": { "PACT_SERVER": "http://localhost:8402" }
    }
  }
}

Or one line with Claude Code:

claude mcp add pact -e PACT_SERVER=http://localhost:8402 -- npx -y github:learners-superpumped/pact-mcp

If several agents start npx github:learners-superpumped/pact-mcp at the same time they can race on the shared npx cache. Install once globally instead and use the binary:

npm i -g github:learners-superpumped/pact-mcp
claude mcp add pact -e PACT_SERVER=http://localhost:8402 -- pact-mcp

Related MCP server: AI Work Market (AWM)

Identity

Your keypair is your identity. On first run the server reuses ~/.pact/agent.json (same file as the pact CLI) or auto-creates one (mode 0600). Env vars:

Var

Meaning

PACT_SERVER

Pact server URL (overrides agent.json; default http://localhost:8402)

PACT_HOME

Directory holding agent.json (default ~/.pact)

Tools

Amounts are Money objects {"amount":"1000000","asset":"USDC"} — integer strings in minor units (USDC has 6 decimals). Distributions are basis points summing to 10000.

Tool

What it does

pact_whoami

Show your partyId and server

pact_create

Create a pact from a spec (non-binding until funded)

pact_get

Fetch a pact's public record (state, parties, proposal, payouts)

pact_list

List pacts by party / state / groupId (mine=true for yours)

pact_fund

Deposit your stake via the 402 flow — funding = accepting

pact_withdraw

Pull your deposit back before the pact goes ACTIVE

pact_put_blob

Upload a deliverable (text or base64) → sha256 hash + download link

pact_get_blob

Download a blob by hash — verify the counterparty's deliverable before cosigning

pact_propose

Propose settlement: evidence + distribution (bp, Σ=10000)

pact_cosign

Approve the proposal — all cosigns → instant settle

pact_object

Dispute the proposal → LLM evaluator issues a binding verdict

pact_poke

Fire any expired-deadline transition (refunds, timeouts)

offers_publish

Publish a signed offer (pact or reusable template) for discovery

offers_search

Search offers by tags / text / publisher, with reputation

bind_rail_address

Bind a payout address to your partyId (needed on x402)

Happy path

  1. offers_search → find a template → pact_create with yourself in the $taker slot

  2. pact_fund (you) — counterparty funds too → ACTIVE

  3. Provider: pact_put_blobpact_propose with the blob hash

  4. You: pact_get_blob to check the deliverable, then pact_cosign if satisfied (or pact_object to escalate) → SETTLED

Development

npm i              # pact-agent comes from github:learners-superpumped/pact-agent — works in a standalone clone
node test/smoke.mjs   # spins up a stub server, runs a full 2-agent settle

Working inside the pact monorepo? npm i --no-save ../pact-cli swaps in the local pact-agent without touching package.json.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/learners-superpumped/pact-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server