
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.
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.
Installation
In SourceWeft
- Open Pact Tooling in the dashboard and add it to a workspace.
- 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.
Servers
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:
On VS Code Insiders, use
vscode-insiders:in the links orcode-insiderson the command line.
Claude Code
Any MCP client
Add both servers to your client configuration:
Each server's README documents its full tool list and environment variables: Pact Tooling · Chainweb API.
Your first 10 minutes
- Install the Pact CLI — Pact Tooling uses it for REPL runs and gas
estimation. Download a release from
kadena-io/pact-5, put
pacton yourPATH, and verify withpact --version. - Add the servers to your client with the config above, pointing
PACT_COMMUNITY_WORKSPACE_ROOTat your contract project. - Ask your agent:
- "Scan
contracts/token.pactfor critical Pact 5 traps" — flags non-binary+, DB reads insideenforce, built-in shadowing, and more. - "Run
tests/token.repland summarize the failures" — executes the file with the real Pact interpreter and parses the results. - "Diff the public interface of
token.pactagainsttoken-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.
- "Scan
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, andchainweb_continue_pactrequire transactions to be signed externally (Ledger,@kadena/client, …) and passed in pre-signed. - Read-only public networks. The
testnet06andmainnetprofiles block every write tool withPROFILE_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
Contributing
Requires Node.js >= 20.11 and pnpm >= 9. See CONTRIBUTING.md for workflow, coding standards, and how to add or change a tool.
License
Source: README.md at commit 80e2e60
Tools
0Version history
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
