{
  "markdown": "# pact-mcp — MCP servers for Pact & Chainweb\n\n[![CI](https://github.com/Pact-Community-Organization/pact-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Pact-Community-Organization/pact-mcp/actions/workflows/ci.yml)\n[![npm](https://img.shields.io/npm/v/@pact-community/mcp-pact.svg?label=mcp-pact)](https://www.npmjs.com/package/@pact-community/mcp-pact)\n[![License: Apache-2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)\n[![Node >= 20.11](https://img.shields.io/badge/node-%3E%3D20.11-brightgreen.svg)](package.json)\n\n**Model Context Protocol servers that give your AI agent safe, auditable access\nto the Pact 5 development loop on Kadena Chainweb.**\n\nRun REPL tests, scan modules for critical language traps, estimate gas, and\nquery or submit to Chainweb nodes — from Claude, Cursor, VS Code, or any\nMCP-compatible client. Every tool runs behind a strict, tested security\nbaseline, and no tool ever touches a private key.\n\n```json\n{\n  \"mcpServers\": {\n    \"pact\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@pact-community/mcp-pact\"],\n      \"env\": { \"PACT_COMMUNITY_WORKSPACE_ROOT\": \"/path/to/your/project\" }\n    }\n  }\n}\n```\n\n## Servers\n\n| Server | Install | Tools | What it does |\n|--------|---------|-------|--------------|\n| **Pact Tooling** — [`@pact-community/mcp-pact`](packages/mcp-pact/) | [![npm](https://img.shields.io/npm/v/@pact-community/mcp-pact.svg)](https://www.npmjs.com/package/@pact-community/mcp-pact) | 6 | REPL test runs, critical-trap scanning, gas estimation, interface diff, format checks |\n| **Chainweb API** — [`@pact-community/mcp-chainweb`](packages/mcp-chainweb/) | [![npm](https://img.shields.io/npm/v/@pact-community/mcp-chainweb.svg)](https://www.npmjs.com/package/@pact-community/mcp-chainweb) | 11 | `/local` simulation, pre-signed `/send`, poll, table reads, SPV proofs, module deploys |\n\nBoth are listed in the official\n[MCP registry](https://registry.modelcontextprotocol.io) as\n`io.github.Pact-Community-Organization/pact` and\n`io.github.Pact-Community-Organization/chainweb`.\n\n## Install\n\n### VS Code (one click)\n\nUsing VS Code with GitHub Copilot? Install with a single click:\n\n[![Install Pact Tooling in VS Code](https://img.shields.io/badge/VS_Code-Install_Pact_Tooling-0098FF?logo=visualstudiocode&logoColor=white)](vscode:mcp/install?%7B%22name%22%3A%22pact%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40pact-community/mcp-pact%22%5D%2C%22env%22%3A%7B%22PACT_COMMUNITY_WORKSPACE_ROOT%22%3A%22%24%7BworkspaceFolder%7D%22%2C%22PACT_COMMUNITY_PACT_BIN%22%3A%22pact%22%7D%7D)\n[![Install Chainweb API in VS Code](https://img.shields.io/badge/VS_Code-Install_Chainweb_API-0098FF?logo=visualstudiocode&logoColor=white)](vscode:mcp/install?%7B%22name%22%3A%22chainweb%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40pact-community/mcp-chainweb%22%5D%2C%22env%22%3A%7B%22PACT_COMMUNITY_WORKSPACE_ROOT%22%3A%22%24%7BworkspaceFolder%7D%22%2C%22PACT_COMMUNITY_CHAINWEB_MODE%22%3A%22devnet%22%2C%22PACT_COMMUNITY_CHAINWEB_PROFILE%22%3A%22devnet%22%2C%22PACT_COMMUNITY_CHAINWEB_BASE_URL%22%3A%22http%3A//localhost%3A8081%22%2C%22PACT_COMMUNITY_CHAINWEB_NETWORK_ID%22%3A%22development%22%7D%7D)\n\nThe button opens VS Code and pre-fills the configuration. You can also search\nthe **MCP Servers** view, or add from the command line:\n\n```bash\ncode --add-mcp '{\"name\":\"pact\",\"command\":\"npx\",\"args\":[\"-y\",\"@pact-community/mcp-pact\"],\"env\":{\"PACT_COMMUNITY_WORKSPACE_ROOT\":\"${workspaceFolder}\",\"PACT_COMMUNITY_PACT_BIN\":\"pact\"}}'\n```\n\n> On VS Code Insiders, use `vscode-insiders:` in the links or `code-insiders` on\n> the command line.\n\n### Claude Code\n\n```bash\nclaude mcp add pact -e PACT_COMMUNITY_WORKSPACE_ROOT=/path/to/your/project \\\n  -- npx -y @pact-community/mcp-pact\n```\n\n### Any MCP client\n\nAdd both servers to your client configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"pact\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@pact-community/mcp-pact\"],\n      \"env\": {\n        \"PACT_COMMUNITY_WORKSPACE_ROOT\": \"/path/to/your/project\",\n        \"PACT_COMMUNITY_PACT_BIN\": \"pact\"\n      }\n    },\n    \"chainweb\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@pact-community/mcp-chainweb\"],\n      \"env\": {\n        \"PACT_COMMUNITY_WORKSPACE_ROOT\": \"/path/to/your/project\",\n        \"PACT_COMMUNITY_CHAINWEB_MODE\": \"devnet\",\n        \"PACT_COMMUNITY_CHAINWEB_PROFILE\": \"devnet\",\n        \"PACT_COMMUNITY_CHAINWEB_BASE_URL\": \"http://localhost:8081\",\n        \"PACT_COMMUNITY_CHAINWEB_NETWORK_ID\": \"development\"\n      }\n    }\n  }\n}\n```\n\nEach server's README documents its full tool list and environment variables:\n[Pact Tooling](packages/mcp-pact/README.md) ·\n[Chainweb API](packages/mcp-chainweb/README.md).\n\n## Your first 10 minutes\n\n1. **Install the Pact CLI** — Pact Tooling uses it for REPL runs and gas\n   estimation. Download a release from\n   [kadena-io/pact-5](https://github.com/kadena-io/pact-5/releases), put `pact`\n   on your `PATH`, and verify with `pact --version`.\n2. **Add the servers** to your client with the config above, pointing\n   `PACT_COMMUNITY_WORKSPACE_ROOT` at your contract project.\n3. **Ask your agent:**\n   - *\"Scan `contracts/token.pact` for critical Pact 5 traps\"* — flags non-binary\n     `+`, DB reads inside `enforce`, built-in shadowing, and more.\n   - *\"Run `tests/token.repl` and summarize the failures\"* — executes the file\n     with the real Pact interpreter and parses the results.\n   - *\"Diff the public interface of `token.pact` against `token-v2.pact`\"* —\n     reports added/removed/changed functions and whether the change is breaking.\n   - *\"What's the current block height on chain 0?\"* — queries a Chainweb node.\n\nEverything in Pact Tooling works with just the CLI — no node required. Chainweb\nAPI works against any Chainweb-compatible node: point\n`PACT_COMMUNITY_CHAINWEB_BASE_URL` at your devnet, or use the read-only\n`testnet06` / `mainnet` profiles to query public networks.\n\n## Security\n\nBoth servers enforce the same tested baseline (details in [SECURITY.md](SECURITY.md)):\n\n- **No private keys, ever.** `chainweb_send`, `chainweb_deploy_module`, and\n  `chainweb_continue_pact` require transactions to be signed externally (Ledger,\n  `@kadena/client`, …) and passed in pre-signed.\n- **Read-only public networks.** The `testnet06` and `mainnet` profiles block\n  every write tool with `PROFILE_WRITE_BLOCKED`.\n- **Audit logging** of every tool call with SHA-256 input hashes (never raw\n  inputs).\n- **Prompt-injection stripping** on all tool output before it reaches the model.\n- **Tool-schema locking** — a server refuses to start if its tool schemas drift.\n- **Network and filesystem allowlists**, no shell execution, and refusal to run\n  as root.\n\n## Compatibility\n\n| Server | Local devnet | Testnet | Mainnet |\n|--------|:---:|:---:|:---:|\n| Pact Tooling | ✅ | — | — |\n| Chainweb API | ✅ | ✅ read-only | ✅ read-only |\n\n## Contributing\n\n```bash\ngit clone https://github.com/Pact-Community-Organization/pact-mcp.git\ncd pact-mcp\npnpm install\npnpm build\npnpm test\n```\n\nRequires Node.js >= 20.11 and pnpm >= 9. See [CONTRIBUTING.md](CONTRIBUTING.md)\nfor workflow, coding standards, and how to add or change a tool.\n\n## License\n\n[Apache-2.0](LICENSE)\n",
  "bytes": 7205,
  "sha": "8124146450451e3fef26ebec1dec9e2ae6ae14960309d53a1ed9d2dde2aa552c",
  "repo_slug": "pact-community-organization/pact-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_pact_community_organization_pa_f434cb63/readme"
}