npm @countersign/mcpstdioupdated 16d ago
A neutral, cross-vendor control plane for AI agents that spend money. Countersign holds the policy, the freeze, and the audit ledger across multiple agent-wallet backends at once β the one thing no single wallet vendor can do, because each only governs its own rail. That aggregation is the moat.
What can you do with Countersign?
Countersign
A neutral, cross-vendor control plane for AI agents that spend money. Countersign holds the policy, the freeze, and the audit ledger across multiple agent-wallet backends at once β the one thing no single wallet vendor can do, because each only governs its own rail. That aggregation is the moat.
Live version of this loop: countersign.network/demo.html Β· 60s video
One falsifiable test defines it: can Countersign freeze agents across many backends at once, in under a second, with a unified tamper-evident ledger of every attempt? Proven LIVE across four rails (Coinbase, Turnkey, Openfort, and a Lithic Visa card) in ~432ms on testnet.
This repository is the open-core front door β the Apache-2.0 packages you build against: the integration contract, the typed client, the MCP tools, and the x402 guard. The control-plane "brain" (the policy compiler, the hash-chained ledger, the vendor adapters, and the hosted Core) is separate and proprietary; you reach it over the network via the SDK/MCP, hosted at app.countersign.network.
Quickstart
Drop the kill switch + spend guard into any MCP client (Claude, Cursor, β¦) β one line:
// claude / cursor mcp config
{ "mcpServers": { "countersign": {
"command": "npx", "args": ["-y", "@countersign/mcp"],
"env": { "COUNTERSIGN_URL": "https://app.countersign.network", "COUNTERSIGN_API_KEY": "csk_β¦" }
}}}
Or wire it into your own agent with the SDK:
import { CountersignClient } from "@countersign/sdk";
const cs = new CountersignClient({ baseUrl, apiKey });
await cs.evaluate({ agentId, amount, asset, venue }); // may this spend happen? (allow / deny / needs_approval)
await cs.freeze(); // the kill switch β every backend, < 1s
Get a free testnet key at https://app.countersign.network/start?ref=gh-readme.
Agents paying agents? See examples/guarded-payee β the A2A/AP2
pattern where a payee advertises it is governed and the payer verifies that (and guards its own
payment) before any mandate is signed.
Packages (this repo β all Apache-2.0)
| Package | Role |
|---|---|
@countersign/core |
the EnforcementProvider interface, branded ids, the unified policy schema, the fail-closed freeze controller β the integration contract every backend implements |
@countersign/api-contract |
OpenAPI + typed REST/ws schema β the single source of truth for the ClientβCore wire interface |
@countersign/sdk |
typed client over the Core API + live ledger subscribe |
@countersign/mcp |
Countersign as MCP tools β kill switch + spend guard inside any MCP client |
@countersign/x402 |
govern x402 (HTTP-402 machine payments) β guard a payment before it pays |
@countersign/verify |
verify a ledger entry offline β hash chain, RFC 6962 Merkle inclusion, Ed25519 signatures |
@countersign/ap2 |
govern AP2 (Agent Payments Protocol) β guard an agent-payment mandate before it executes |
The proprietary brain (policy compiler to each backend's native controls, ledger, Coinbase / Turnkey / Openfort / Lithic adapters, the hosted Core) lives in a separate private repository.
Prime directives (invariants)
- Don't build cryptography β integrate vendor MPC/TEE; session keys, never master keys.
- Build the layer above the wallets; cross-vendor aggregation is the product.
- Fail-closed: no decision / no backend response β the transaction does not execute.
- Backend-agnostic core; no vendor logic leaks past the
EnforcementProviderinterface. - Append-only, hash-chained ledger is the source of truth.
- Testnet only β mainnet follows a third-party security audit.
Links
- Home: https://countersign.network Β· Hosted Core: https://app.countersign.network
- npm:
@countersign/sdkΒ·@countersign/mcpΒ·@countersign/x402Β·@countersign/ap2 - Architecture:
docs/architecture.mdΒ· Security:SECURITY.md
Apache-2.0. Countersign holds policy, freeze, and a tamper-evident ledger β it never takes custody of funds.
Install
Add Countersign to your client. Pick the one you use.
claude mcp add mcp -- npx -y @countersign/mcpcodex mcp add mcp -- npx -y @countersign/mcpamp mcp add mcp -- npx -y @countersign/mcp{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@countersign/mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@countersign/mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"mcp","command":"npx","args":["-y","@countersign/mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@countersign/mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@countersign/mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@countersign/mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@countersign/mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"@countersign/mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y @countersign/mcpRun `goose configure`, choose **Add Extension β Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance25/25
- Trust6/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 9 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint β no local install
Version history
| Versions | Published |
|---|---|
| 0.2.2Latest | Aug 23, 2026 |
| 0.2.1 | Jul 15, 2026 |
| 0.2.0 | Jul 14, 2026 |
| 0.1.5 | Jun 29, 2026 |
