Sentinel Payment Boundary Tools
Read-only payment-boundary preflights plus an unsubmitted public quote-request draft tool.
Open source Open in the app JSON README (API)
About
Read-only payment-boundary preflights plus an unsubmitted public quote-request draft tool.
Details
- Kind
- MCP servers
- Topic
- Finance & crypto
- Publisher
- terminallylazy
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.4.1
- Last push
- 2026-07-22T10:09:56Z
- Repository state
- ativo
- Language
- JavaScript
- Added
- 2026-08-29 03:02:16
- Updated
- 2026-08-29 03:02:16
- Origin id
io.github.TerminallyLazy/sentinel-recovery-services
README
# Sentinel Recovery Support
Asynchronous Node/TypeScript evidence work, free local agent-payment preflights,
and separate voluntary support for Sentinel Recovery.
**Live site:** <https://terminallylazy.github.io/sentinel-recovery-support/>
**Start a no-login $750 release-blocker request:** <https://docs.google.com/forms/d/e/1FAIpQLSforl4TZfhhn9YJXSydD32bNtEPjdte32ckhaogksosbQ9OIQ/viewform>
Submit an opaque, non-identifying request reference, one public Node.js or
TypeScript repository URL, one public failing CI log URL, a reply email, and an
optional failure summary. No sign-in or meeting is required. The request moves
no funds, authorizes no payment, and starts no work; a separately human-approved
written SOW is required before payment or work. Google Forms processes the
submitted reference, public URLs, and reply email privately for the form owner.
**Paid services:** <https://terminallylazy.github.io/sentinel-recovery-support/#services>
**Agent manifest:** <https://terminallylazy.github.io/sentinel-recovery-support/.well-known/sentinel-agent.json>
The site now leads with a public Node/TypeScript request-only `$750` 24-Hour Release-Blocker Reproduction, followed by `$49/$99/$199` public-data services, a protocol-agnostic request-only `$1,500` 48-Hour Agent Payment Failure Reproduction Sprint, voluntary support, and framework-neutral agent resources. Both sprints are fully asynchronous and require no meeting or call. The $750 offering accepts one public repository and one public failing CI log through email, a public GitHub issue, or a no-login Google Form, then delivers a deterministic reproducer or source-pinned `NOT_REPRODUCIBLE` dossier; the $1,500 offering uses [MatchFlight](https://terminallylazy.github.io/matchflight/) as public deterministic proof. The form uses third-party Google processing and remains request-only. ACH, Wise, or Zelle invoice terms are available only through a separately human-approved SOW, and the public listings contain no payment instructions or banking details. Zelle is available only after a signed SOW and invoice and buyer acknowledgement that it has no purchase protection. Neither sprint is a certification or penetration test. A payer agent may send within its own delegated financial policy, and inbound receipts need no recipient-side human acceptance. Every outbound action from Sentinel's receiving wallet requires human authorization. Sentinel never takes custody, requests private keys or signature material, or promises recovery.
## Public resources
- `/` — funding purpose, exact Ethereum Mainnet tuple, terms, and verification links
- `/.well-known/sentinel-agent.json` — agent capability and safety manifest
- `/support.json` — exact wallet, network, assets, and funding terms
- `/support-intent.json` — direction-specific payer and receiving-wallet policy
- `/services.json` — fixed-price scope, deliverable, and turnaround catalog
- `/service-request.json` — canonical agent input schema, email and public GitHub issue transports, the release-blocker-only no-login Google Form, and copyable quote-request template: <https://terminallylazy.github.io/sentinel-recovery-support/service-request.json>
- `/sample-agent-payment-boundary-review.json` and `.md` — inspectable `$49` self-review demonstration: [JSON](https://terminallylazy.github.io/sentinel-recovery-support/sample-agent-payment-boundary-review.json), [Markdown](https://terminallylazy.github.io/sentinel-recovery-support/sample-agent-payment-boundary-review.md)
- [`/sample-service-quote.json`](https://terminallylazy.github.io/sentinel-recovery-support/sample-service-quote.json) — complete but expired and explicitly nonpayable quote-shape demonstration
- `/sample-evidence-preview.json` and `.md` — inspectable `$99` format demonstration
- `/service-payment.json` — canonical recipient, assets, quote fields, and verification rules
- `/privacy.json` — minimal inputs, optional context, retention, and do-not-send rules
- `/agent-guide.md` — mandatory agent authority boundaries
- `/impact.json` — historical receipt and contribution-funded-work snapshot
- `/llms.txt` — short discovery index
- `mcp/` — read-only stdio MCP server with deterministic agent-payment and x402 `PaymentRequired` preflights, a local public quote-request draft preparer, and the live service and quote-request resources; install from source or the checksummed [`v0.4.1` GitHub Release](https://github.com/TerminallyLazy/sentinel-recovery-support/releases/tag/v0.4.1), not from the static Pages site
## Local MCP preflight and resources
The source checkout is version `0.4.1` and exposes three deterministic read-only
tools:
- `preflight_agent_payment_boundary` — checks one or two inline public
documents against 11 fixed payment-authority boundaries, without fetching
requester URLs, executing supplied text, submitting a request, or moving
funds
- `preflight_x402_v2_payment_required` — checks one decoded inline x402 v2
`PaymentRequired` JSON document under a pinned, closed-world exact-EVM
EIP-3009 Sentinel safety profile, without decoding headers, evaluating payer
policy, verifying signatures or receipts, settling, connecting a wallet, or
moving funds
- `prepare_agent_payment_boundary_quote_request` — prepares a complete,
unsubmitted public GitHub issue draft for the fixed-scope Agent Payment
Boundary Review from one or two caller-supplied public HTTPS document URLs
without credentials, query strings, fragments, or non-public hosts; it does
not fetch or verify those URLs, make a network request, use credentials,
submit the issue, authorize payment, or create service entitlement
It also exposes exactly two read-only resources:
- `sentinel://services/catalog`
- `sentinel://services/quote-request-contract`
Only resource reads fetch the two hard-coded canonical live JSON contracts.
Both preflights run locally on inline content, and the request-draft preparer
formats its inputs locally without fetching supplied URLs. All three tools make
no network request and cannot submit a request, move funds, authorize payment,
request credentials, connect a wallet, or create service entitlement. The
requester decides whether to submit the public draft within its own communication
authority; a Sentinel human controls issuance of the complete written quote, and
any later payment remains controlled by the payer's own policy.
The checksummed `v0.4.1` MCPB and its SHA-256 sidecar are published on the
[GitHub Release](https://github.com/TerminallyLazy/sentinel-recovery-support/releases/tag/v0.4.1).
The official MCP Registry lists version `0.4.1` as active and latest under
`io.github.TerminallyLazy/sentinel-recovery-services`; verify the exact
[Registry record](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.TerminallyLazy%2Fsentinel-recovery-services/versions/0.4.1)
before relying on availability.
Install and verify it from the repository root:
```bash
npm ci --prefix mcp --ignore-scripts
npm test --prefix mcp
npm audit --prefix mcp --audit-level=high
npm run pack:check --prefix mcp
```
Configure an MCP client to launch the source checkout over stdio, replacing the
path with the absolute path on that machine:
```json
{
"mcpServers": {
"sentinel-recovery-services": {
"command": "node",
"args": ["/absolute/path/to/sentinel-recovery-support/mcp/server.mjs"]
}
}
}
```
Direct launch uses `node mcp/server.mjs`. Do not configure the GitHub Pages URL
as an MCP endpoint: the static site does not implement Streamable HTTP. The npm
package is not published yet, so no `npx` installation is advertised.
## Human-approved service quotes
The quote path is deliberately local and human-triggered. The
`scripts/prepare-service-quote.mjs` helper accepts public-only request JSON, but
only runs after the operator supplies `SENTINEL_HUMAN_APPROVAL=APPROVE`. It
creates a mode-`0600` local artifact for human review. It does not issue or
publish the quote, comment on an issue, request payment, or expand a payer
agent's authority. There is intentionally no public GitHub Actions quote
workflow because a live payable quote ID and payment reference should not be
exposed as a public-repository artifact.
Prepare a live local quote and append its exact digest to a local approval
registry (keep both paths outside the repository):
```bash
mkdir -p "$HOME/.local/state/sentinel-recovery"
chmod 700 "$HOME/.local/state/sentinel-recovery"
SENTINEL_HUMAN_APPROVAL=APPROVE \
SENTINEL_REQUEST_JSON="$(jq -c . /absolute/path/request.json)" \
SENTINEL_ASSET=USDC \
SENTINEL_VALIDITY_DAYS=7 \
SENTINEL_QUOTE_OUTPUT="$HOME/.local/state/sentinel-recovery/approved-quote.json" \
SENTINEL_QUOTE_REGISTRY="$HOME/.local/state/sentinel-recovery/approved-quotes.jsonl" \
npm run quote:prepare
```
The same deterministic formatter can run locally with operator-supplied UUID v4
identifiers and timestamps:
```bash
node scripts/create-service-quote.mjs \
--request /absolute/path/request.json \
--asset USDC \
--quote-id 11111111-1111-4111-8111-111111111111 \
--payment-reference 22222222-2222-4222-8222-222222222222 \
--issued-at 2026-07-10T20:00:00.000Z \
--expires-at 2026-07-17T20:00:00.000Z
```
Paid quotes support canonical USDC and canonical USDT only; their base-unit
amounts are derived from the fixed integer USD catalog price. ETH remains a
voluntary-support asset, not a quoted USD-denominated service asset. The raw
formatter emits a nonpayable draft to standard output so a human can inspect it.
Only the approval-gated local preparer emits a payable quote and records its
digest in the operator's approved-quote registry.
After the requester returns a transaction hash, the read-only receipt checker
can compare the confirmed canonical ERC-20 `Transfer` log to the exact approved
quote tuple and reconcile it against an append-only local receipt ledger:
```bash
node scripts/verify-service-receipt.mjs \
--quote /absolute/path/approved-quote.json \
--quote-registry "$HOME/.local/state/sentinel-recovery/approved-quotes.jsonl" \
--receipt-ledger "$HOME/.local/state/sentinel-recovery/service-receipts.jsonl" \
--transaction-hash 0x... \
--rpc-url "$SENTINEL_ETH_RPC_URL" \
--confirmations 12
```
Use a trusted HTTPS Ethereum Mainnet JSON-RPC endpoint and keep credentialed RPC
URLs out of issues, logs, and quote artifacts. The checker does not sign,
broadcast, spend, or move funds; it requests no keys, signatures, or wallet
connection. The local ledger makes repeated checks idempotent and routes a
receipt reused across quotes to manual review instead of crediting it twice.
The complete manual operator checklist is in
[`docs/service-operations.md`](docs/service-operations.md).
## Local development
```bash
npm ci
npm run dev
```
To inspect the exact GitHub Pages artifact at its production base path:
```bash
npm run preview:pages
```
## Validation
```bash
npm test
npm run lint
npm audit --audit-level=high
npm run export:pages
```