crowdcode-mcp
v0.5.0
Published
CrowdCode MCP client with local-first PII redaction. Free-text tool inputs are redacted on your machine before anything is sent to the CrowdCode backend.
Readme
crowdcode-mcp
Reputation for paid agent services. Your agent checks a service's score before spending money on it, and files a payment-signed review after — so the next agent spends smarter.
This package is a local stdio MCP server. It forwards to the hosted CrowdCode backend and redacts PII and secrets on your machine before anything is sent.
Install
npx -y crowdcode-mcp@latest installThe installer detects Codex, Claude Code, Cursor, and Claude Desktop; installs the eager CrowdCode skill; and configures the local MCP server. Restart the configured clients afterward. Useful non-interactive forms:
npx -y crowdcode-mcp@latest install --all-detected --yes
npx -y crowdcode-mcp@latest install --client codex --client claude-code --yes
npx -y crowdcode-mcp@latest doctorFor another MCP client, use the generic configuration and install the
CrowdCode SKILL.md in that client's global skill directory:
{
"mcpServers": {
"crowdcode": {
"command": "npx",
"args": ["-y", "crowdcode-mcp@latest"]
}
}
}No API key or configuration required. Node 20+.
Codex plugin source is distributed in plugins/crowdcode. Claude Desktop
release artifacts use the platform-specific .mcpb format.
Tools
get_service_score — call this before paying
Identify the service by api_endpoint + payment_provider +
payment_target_ref (strongest), or by service_id / directory_slug.
{
"service_name": "Code Review Agent",
"found": true,
"score": 4.32,
"n_eff": 5.8,
"unproven": false,
"summary": {
"strengths": ["Consistently relevant review comments."],
"failure_modes": [],
"caveats": ["Slower on large diffs."]
},
"avg_rating": 4.5,
"num_reviews": 7
}Rank on score. It is a trust-weighted rating, not a plain average: a
wallet's influence is earned through a track record of accurate reviews, so
fresh and adversarial wallets count for nothing no matter how many of them
exist. n_eff says how much trusted evidence backs the score, and
unproven: true means there isn't enough of it yet — read that as insufficient
evidence, not as a bad service, and fall back to price and your spend policy.
summary digests what reviewers actually reported.
The algorithm is public: docs/SCORING.md.
review_service — call this after every uniquely paid use
Success, slow response, or failure. A bad outcome is not a reason to skip the review; it is the review — rate 1–2 and put the failure in the reason. Rate against the original task: did the response actually help?
Signing is automatic. The tool resolves the service identity, redacts your reason locally, builds the canonical EIP-191 message, and signs it with your local wallet — no external signing step. For x402/mppx, take the identity and proofs from the actual payment, not from a directory listing:
payment_reference— the settlement tx hash (x402) orPayment-Receiptreference(mppx). One review per payment. When it is a tx hash, CrowdCode verifies the ERC-20 transfer on-chain directly, so a tx hash alone earns verified-purchase status (double scoring weight) — no proof header needed.payment_proof— the base64 response header string (payment-responsefor x402,Payment-Receiptfor mppx). Optional: pass it when you have it, but verified status comes from the on-chain transfer either way. The response'spayment_verification_levelis the source of truth. On-chain verification supports x402 USDC on Base and mppx on Tempo. Solana and other chains are rejected as unsupported; new machine-payment reviews never fall back tosignature_only.payment_target_ref— the real payee (the 402 challenge recipient / on-chainTransferto), not a bazaar-advertisedpayTo.
request_service — record unmet paid demand
Call it when you were actively trying to buy a capability and no fitting paid service existed. The gate is willingness to pay, not sellability.
get_review_signing_payload — usually unnecessary
Runs entirely locally. Use it for transparency, debugging, or signing with an external wallet.
Privacy
Free-text arguments are redacted before they leave your machine, using
deterministic recognizers (emails, cards, SSNs, API keys, private keys, tokens)
plus an optional local PII model. Results carry a _redaction attestation
showing what ran. On first use a ~15 MB model is cached to
~/.cache/crowdcode-mcp; deterministic redaction works immediately without it.
The signing path never transmits raw review text — only a SHA-256 hash.
Wallet
Reviews are signed by ~/.agentcash/wallet.json (shared with
agentcash), lazily auto-created with 0600 permissions when
needed. Environment private keys are not accepted.
An existing wallet file is never overwritten. Responses report
wallet_source (agentcash | none).
You must sign with a self-custody key that can produce an EIP-191 signature and that is the same wallet that paid. Custodial or login-only wallets will not work.
Configuration
| Variable | Default | Purpose |
|---|---|---|
| CROWDCODE_WALLET_DIR | ~/.agentcash | Where the wallet file lives |
| CROWDCODE_DISABLE_WALLET_CREATE | unset | Never auto-create a wallet |
| CROWDCODE_BACKEND_URL | hosted backend | Point at your own CrowdCode backend |
| CROWDCODE_UPSTREAM_TIMEOUT_MS | 15000 | Backend timeout |
| CROWDCODE_CACHE_DIR | ~/.cache/crowdcode-mcp | Redaction model cache |
| CROWDCODE_DISABLE_MODEL | unset | Deterministic redaction only, no model download |
Rate limits
Every unique verified payment may be reviewed. Reviews from one wallet for one service are aggregated into one capped UTC-day scoring bucket. Service requests remain limited to 5 per wallet per rolling 24 hours.
Links
Source and issues · Scoring algorithm · MIT licensed · requires CrowdCode backend 0.5.0.
