Pact Tooling

io.github.Pact-Community-OrganizationPublished by GitHub account Pact-Community-Organizationv0.2.2Updated Oct 24, 2026

Pact 5 tooling: REPL test runs, trap scanning, gas estimation, interface diff, format checks.

VerifiedSTDIODesktop onlyDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Local MCP server for Pact 5 smart-contract development on Kadena: run REPL tests, scan for language traps, estimate gas, diff interfaces and check formatting.

What you can do
  • Run REPL test files with the real Pact interpreter and summarize failures
  • Scan Pact modules for critical Pact 5 traps such as non-binary +, DB reads inside enforce and built-in shadowing
  • Estimate gas for Pact code
  • Diff the public interface of two modules and report added, removed or changed functions and whether the change is breaking
  • Check module formatting
When to use it
Useful when an assistant is helping write, test or review Pact 5 contracts on Kadena and you want it to execute REPL tests, catch language pitfalls, compare module interfaces or check formatting without leaving the editor.
Requirements
Runs locally over stdio via npx from the npm package @pact-community/mcp-pact. Requires the Pact CLI installed and on PATH, or its path given in PACT_COMMUNITY_PACT_BIN. PACT_COMMUNITY_WORKSPACE_ROOT is required and confines all file access. No node or account needed; no authentication declared.
Before you install
The server executes Pact REPL files with the real interpreter and reads files inside the workspace root, so point the workspace at a project you trust. The README states it never touches private keys, strips prompt injection from tool output, logs SHA-256 input hashes and refuses shell execution and root, but these are the vendor's own claims.

Installation

In SourceWeft

  1. Open Pact Tooling in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

pact-mcp — MCP servers for Pact & Chainweb

[CI] [npm] [License: Apache-2.0] [Node >= 20.11]

Model Context Protocol servers that give your AI agent safe, auditable access to the Pact 5 development loop on Kadena Chainweb.

Run REPL tests, scan modules for critical language traps, estimate gas, and query or submit to Chainweb nodes — from Claude, Cursor, VS Code, or any MCP-compatible client. Every tool runs behind a strict, tested security baseline, and no tool ever touches a private key.

json
{  "mcpServers": {    "pact": {      "command": "npx",      "args": ["-y", "@pact-community/mcp-pact"],      "env": { "PACT_COMMUNITY_WORKSPACE_ROOT": "/path/to/your/project" }    }  }}

Servers

ServerInstallToolsWhat it does
Pact Tooling — @pact-community/mcp-pact[npm]6REPL test runs, critical-trap scanning, gas estimation, interface diff, format checks
Chainweb API — @pact-community/mcp-chainweb[npm]11/local simulation, pre-signed /send, poll, table reads, SPV proofs, module deploys

Both are listed in the official MCP registry as io.github.Pact-Community-Organization/pact and io.github.Pact-Community-Organization/chainweb.

Install

VS Code (one click)

Using VS Code with GitHub Copilot? Install with a single click:

[Install Pact Tooling in VS Code] [Install Chainweb API in VS Code]

The button opens VS Code and pre-fills the configuration. You can also search the MCP Servers view, or add from the command line:

bash
code --add-mcp '{"name":"pact","command":"npx","args":["-y","@pact-community/mcp-pact"],"env":{"PACT_COMMUNITY_WORKSPACE_ROOT":"${workspaceFolder}","PACT_COMMUNITY_PACT_BIN":"pact"}}'

On VS Code Insiders, use vscode-insiders: in the links or code-insiders on the command line.

Claude Code

bash
claude mcp add pact -e PACT_COMMUNITY_WORKSPACE_ROOT=/path/to/your/project \  -- npx -y @pact-community/mcp-pact

Any MCP client

Add both servers to your client configuration:

json
{  "mcpServers": {    "pact": {      "command": "npx",      "args": ["-y", "@pact-community/mcp-pact"],      "env": {        "PACT_COMMUNITY_WORKSPACE_ROOT": "/path/to/your/project",        "PACT_COMMUNITY_PACT_BIN": "pact"      }    },    "chainweb": {      "command": "npx",      "args": ["-y", "@pact-community/mcp-chainweb"],      "env": {        "PACT_COMMUNITY_WORKSPACE_ROOT": "/path/to/your/project",        "PACT_COMMUNITY_CHAINWEB_MODE": "devnet",        "PACT_COMMUNITY_CHAINWEB_PROFILE": "devnet",        "PACT_COMMUNITY_CHAINWEB_BASE_URL": "http://localhost:8081",        "PACT_COMMUNITY_CHAINWEB_NETWORK_ID": "development"      }    }  }}

Each server's README documents its full tool list and environment variables: Pact Tooling · Chainweb API.

Your first 10 minutes

  1. Install the Pact CLI — Pact Tooling uses it for REPL runs and gas estimation. Download a release from kadena-io/pact-5, put pact on your PATH, and verify with pact --version.
  2. Add the servers to your client with the config above, pointing PACT_COMMUNITY_WORKSPACE_ROOT at your contract project.
  3. Ask your agent:
    • "Scan contracts/token.pact for critical Pact 5 traps" — flags non-binary +, DB reads inside enforce, built-in shadowing, and more.
    • "Run tests/token.repl and summarize the failures" — executes the file with the real Pact interpreter and parses the results.
    • "Diff the public interface of token.pact against token-v2.pact" — reports added/removed/changed functions and whether the change is breaking.
    • "What's the current block height on chain 0?" — queries a Chainweb node.

Everything in Pact Tooling works with just the CLI — no node required. Chainweb API works against any Chainweb-compatible node: point PACT_COMMUNITY_CHAINWEB_BASE_URL at your devnet, or use the read-only testnet06 / mainnet profiles to query public networks.

Security

Both servers enforce the same tested baseline (details in SECURITY.md):

  • No private keys, ever. chainweb_send, chainweb_deploy_module, and chainweb_continue_pact require transactions to be signed externally (Ledger, @kadena/client, …) and passed in pre-signed.
  • Read-only public networks. The testnet06 and mainnet profiles block every write tool with PROFILE_WRITE_BLOCKED.
  • Audit logging of every tool call with SHA-256 input hashes (never raw inputs).
  • Prompt-injection stripping on all tool output before it reaches the model.
  • Tool-schema locking — a server refuses to start if its tool schemas drift.
  • Network and filesystem allowlists, no shell execution, and refusal to run as root.

Compatibility

ServerLocal devnetTestnetMainnet
Pact Tooling✅——
Chainweb API✅✅ read-only✅ read-only

Contributing

bash
git clone https://github.com/Pact-Community-Organization/pact-mcp.gitcd pact-mcppnpm installpnpm buildpnpm test

Requires Node.js >= 20.11 and pnpm >= 9. See CONTRIBUTING.md for workflow, coding standards, and how to add or change a tool.

License

Apache-2.0

Source: README.md at commit 80e2e60

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.2LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts