io. github. michu5696/ paycrow
by michu5696 · remote · local (npm) · no sign-in to list tools · v1.0.0 · published by GitHub user michu5696
Escrow protection for agent payments on Base — USDC held in smart contract until job completion.
10 tools: 1 do something that can't be undone, 7 change things and 2 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things7Claude Code: ask: see these tools
- Only reads2Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http paycrow https://paycrow-app.fly.dev/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
10 tools
Can't be undone 1Claude Code: ask
safe_payThe smart way to pay an agent.Can send data outNo findings
Why it is in this group
- The name "safe_pay" says "pay": a word that usually means money moves, which cannot be taken back.
What it can reach
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it The smart way to pay an agent. Checks their trust score first, then auto-configures escrow protection based on risk. Flow: Check trust → Set protection level → Create escrow → Call API → Verify → Auto-release or auto-dispute. Protection levels (automatic): - High trust agent → 15min timelock, proceed normally - Moderate trust → 60min timelock, payment capped at $25 - Low trust → 4hr timelock, payment capped at $5 - Unknown/caution → BLOCKED — will not send funds This is the recommended tool for paying any agent. If you need manual control, use x402_protected_call instead.
Changes things 7Claude Code: ask
escrow_createCreate a USDC escrow with built-in dispute resolution.No findings
Why it is in this group
- The name "escrow_create" says "create": a word for a change.
Description, as the server wrote it Create a USDC escrow with built-in dispute resolution. Funds are locked on-chain until delivery is confirmed (release) or a problem is flagged (dispute). If disputed, an arbiter reviews and rules — the only escrow service with real dispute resolution on Base.
escrow_disputeFlag a problem with delivery — PayCrow's key differentiator.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Flag a problem with delivery — PayCrow's key differentiator. Locks escrowed funds and triggers arbiter review. Unlike other escrow services that say 'no disputes, no chargebacks', PayCrow has real on-chain dispute resolution. Use when service was not delivered or quality was unacceptable.
escrow_releaseConfirm delivery and release escrowed USDC to the seller.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Confirm delivery and release escrowed USDC to the seller. Only call this when you've verified the service/product was delivered correctly.
rate_serviceRate a completed escrow.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Rate a completed escrow. After escrow_release, rate the seller's service quality (1-5 stars). This builds the reputation data that makes PayCrow's trust scores meaningful over time. Both sides can rate: buyer rates seller's service quality, seller rates buyer's conduct. Ratings are on-chain and permanent — they feed directly into trust scoring.
trust_gateShould you pay this agent?No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Should you pay this agent? Check before sending money. Returns a go/no-go decision with recommended escrow protection parameters. Unlike other trust services, PayCrow ties trust directly to escrow protection: - High trust → shorter timelock, proceed with confidence - Low trust → longer timelock, smaller amounts recommended - Caution → don't proceed, or use maximum protection This is the tool to call BEFORE escrow_create or safe_pay.
trust_onchain_quickQuick on-chain reputation check using only the PayCrow Reputation contract.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Quick on-chain reputation check using only the PayCrow Reputation contract. Free, no API keys needed. Use trust_score_query for the full composite score.
x402_protected_callMake an HTTP API call with manual escrow protection.Can send data outNo findings
Why it is in this group
- The name "x402_protected_call" says "call": a word for a change.
What it can reach
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Make an HTTP API call with manual escrow protection. Full control over verification and timelock parameters. For most payments, use safe_pay instead — it auto-configures protection based on seller trust. Use x402_protected_call when you need: - Custom JSON Schema verification (not just "valid JSON + 2xx") - Hash-lock verification (exact response match) - Specific timelock durations - To override safe_pay's trust-based amount limits
Only reads 2Claude Code: allow
escrow_statusCheck the current state of an escrow (funded, released, disputed, expired, etc.)No findings
Why it is in this group
- The name "escrow_status" says "status": a word for reading.
Description, as the server wrote it Check the current state of an escrow (funded, released, disputed, expired, etc.)
trust_score_queryFull trust score breakdown for an agent address.No findings
Why it is in this group
- The name "trust_score_query" says "query": a word for reading.
Description, as the server wrote it Full trust score breakdown for an agent address. Aggregates 4 on-chain sources: PayCrow escrow history, ERC-8004 agent identity, Moltbook social karma, and Base chain activity. Returns 0-100 score with per-source details. For a quick go/no-go decision, use trust_gate instead.
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or untrusted-input.
- Reads private data0
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write0
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out2
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Remote posture
What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.
Looked at Oct 22, 2026, 15:02 UTC, unchanged since Oct 22, 2026. No credentials were sent and no tool was called. What is looked at.
- Reachable
- yes
- HTTP status of an anonymous initialize
- 200
- tools/list served without credentials
- yes
- Tools that change things, listed without credentials
- 8
- Protocol version
- 2025-06-18
- WWW-Authenticate on 401
- not observed
- resource_metadata in WWW-Authenticate
- none
- RFC 9728 protected resource metadata
- none
- Authorization servers
- none
- Legacy HTTP+SSE transport
- no
- Dynamic client registration
- not observed
- Client ID metadata documents
- not observed
- HighThe whole server
The endpoint served tools/list without credentials, and the list has 8 tools that change things (1 irreversible, 7 write). Whether a call also works without credentials was not tested: tools are never called.
What this check looks forMatched text
https://paycrow-app.fly.dev/mcp: tools/list returned 10 tools to an anonymous client, including safe_pay (irreversible), trust_gate (write), trust_onchain_quick (write), escrow_create (write), escrow_release (write) and 3 more
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http paycrow https://paycrow-app.fly.dev/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__paycrow__trust_score_query",
"mcp__paycrow__escrow_status"
],
"ask": [
"mcp__paycrow__trust_gate",
"mcp__paycrow__trust_onchain_quick",
"mcp__paycrow__escrow_create",
"mcp__paycrow__escrow_release",
"mcp__paycrow__escrow_dispute",
"mcp__paycrow__rate_service",
"mcp__paycrow__safe_pay",
"mcp__paycrow__x402_protected_call"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as paycrow. Review it before you use it.
Capability tags behind 2 rules
- mcp__paycrow__safe_pay outbound
- mcp__paycrow__x402_protected_call outbound
