io.github.lonniev/tollbooth-sample
Educational Weather Stats MCP Service — Tollbooth DPYC monetization sample
* hosting country is best-effort behind CDNs · Unknown facts are omitted here and listed as pending in the profile.
Trust verdict
No blockers found across the assessed dimensions.
Profile
What this server is — descriptive, not a rating. The verdict above judges it; this describes it.
Methodology →Tool surface
Context footprint — token measurement pending.
weather_account_statementGenerate a patron's account statement at this operator.Returns the patron's purchase history, active credit tranches,per-tool usage breakdown, and recent daily usage logs. This isthe patron's spending account — not the operator's Authoritytax balance.Free — no credits consumed. Proof of npub ownership is requiredto prevent statement-scraping of arbitrary patrons.
weather_account_statement_infographicAdoption
Not applicable — this server has no package distribution, so registry adoption signals (downloads, maintainers) don't exist for it.
Connect
https://tollbooth-sample.fastmcp.app/mcpSources
Every verdict and label is attributable to its source and recomputed from our own landed copy, never read live on this page.
Generate a visual SVG infographic of your account statement.Returns the same data as account_statement, rendered as a dark-themedSVG graphic with balance hero, metrics cards, health gauge, tranchetable, and tool usage breakdown. Costs 1 api_sat per call. Proof isverified by ``debit_or_deny`` before any cost is incurred.
weather_adoption_statusCheck this operator's adoption-request status at a chosen Authority.Free. Polls the Authority MCP-to-MCP for the status of this operator'srequest (pending / approved / rejected / provisioned).
weather_check_authority_balanceCheck this operator's tax balance at the Authority.Returns the sats available for certifying patron credit purchases.When this balance reaches zero, patron top-ups cannot be certifiedand the operator must call purchase_credits on the Authority.This is the operator's own funding — not a patron balance. Free.
weather_check_balanceCheck a patron's credit balance at this operator.This is the patron's spending balance — credits purchased viaLightning for tool calls at this operator. For the operator'sown balance at the Authority (needed to certify patron purchases),use authority_check_balance instead.Free — no credits required. Proof of npub ownership is requiredto prevent anyone-with-the-registry from enumerating balances.
weather_check_paymentCheck the payment status of a Lightning invoice.Call after paying the invoice from purchase_credits.Free — no credits required. Proof of npub ownership is requiredto prevent credit-grant front-running by an observer of theinvoice ID.
weather_check_pricePreview the effective cost of a tool call.Shows the base cost and any constraint effects (discounts, freetrials, surge pricing). Free — no credits required.
weather_check_proof_statusCheck whether a previously-cached dpop_token is still valid.Mirrors ``check_oauth_status`` for the npub-proof flow: a callingagent can ask "will my next paid call accept this dpop_token?"before burning credits on a guaranteed failure.Free, no side effects — does not evict the cache or touch relays.
weather_currentGet current weather conditions for a location.Returns temperature, wind speed, and weather code from Open-Meteo.
weather_delete_couponDelete a coupon. Cascades to all patron redemptions.Any chain step referencing the deleted coupon_id becomes ano-op (the constraint returns neutral on unknown ids) — theStudio surfaces orphan references as warnings.RESTRICTED to operator — requires proof.
weather_delete_patron_credentialRemove a single patron credential field.Deletes one field from stored credentials without affectingother fields. Free. Proof of npub ownership is required —this is a write to the patron's sensitive credential vault.
weather_forecastGet a multi-day weather forecast for a location.Returns daily high/low temperatures and precipitation for 1-16 days.
weather_forget_couponRemove a coupon from this patron's redemption list.Cosmetic only — the coupon itself still exists at the operator,and the patron can re-redeem the same code later while thewindow allows. Free — requires proof of ``npub``.
weather_forget_credentialsDelete vaulted credentials for a specific service and npub.For operator credentials, pass the operator's own npub. For patroncredentials, pass the patron's npub. Always requires proof ofnpub ownership — a deletion is as destructive as a write.
weather_get_nostr_profileRead an npub's public Nostr profile (NIP-01 kind-0 metadata).Free, no proof — the data is already public on relays. Returns thelatest metadata fields (name, display_name, about, picture, banner,nip05, website, lud16) or an empty profile if none is published.
weather_get_notarization_proofGenerate a Merkle inclusion proof that a patron's balance wasincluded in a Bitcoin-notarized snapshot.
weather_get_operator_onboarding_statusReport this operator's configuration readiness.Shows which operator settings are configured, which are missing,and how to deliver each missing value. For patron-level credentialstatus, use get_patron_onboarding_status instead. Free.
weather_get_patron_credential_fieldsList stored patron credential field names (not values).Returns the names of fields stored for a patron. Valuesare never exposed — use this to verify which fields areconfigured. Free. Proof of npub ownership is required: thelist of configured fields is itself sensitive (revealswhich integrations a patron has set up).
weather_get_patron_onboarding_statusReport a patron's credential readiness for this operator.For set-once services (eXcalibur, TheBrain), shows which patronsecrets are configured and which are missing. For dynamic/OAuth2services (Schwab), reports that no patron credentials are needed.Free. Proof of npub ownership is required because credentialpresence is sensitive information about the patron's setup.
weather_get_pricing_modelGet the active pricing model for this operator. Free.If no model exists, self-initializes a scaffold with allregistered tools at 0 sats. No economic data from code.
weather_historicalGet historical weather data for a location and date range.Returns daily temperature and precipitation from the Open-Meteo archive.
weather_list_canonical_identitiesReturn canonical (tool_id, mcp_name, …) for every registered tool.The authoritative source for any client (Studio, agents, FE)that needs to know how this MCP identifies its tools.Reconcile uses this output to UUID-join against the storedpricing model — no name-based UUID derivation, no guessing.If the operator renames a function or rebrands a slug, themcp_name in this output changes but tool_id stays. That's thewhole point of the canonical-UUID design.Free, no side effects.
weather_list_constraint_typesList all available constraint types and their parameter schemas.Returns the type, category, description, and parameter specs forevery constraint that can be used in a pricing pipeline.Free — no credits required.
weather_list_couponsList every coupon this operator has minted (newest first).Each row carries the current ``times_redeemed`` counter — theStudio renders a progress bar from this against ``total_uses``.RESTRICTED to operator — requires proof.
weather_list_my_couponsList the coupons this patron has redeemed on this operator.Returns both active and exhausted redemptions with a per-row``status`` (``active`` / ``window_closed`` / ``patron_limit`` /``total_limit``). Free — requires proof of ``npub``.
weather_list_notarizationsList recent Bitcoin notarization records.
weather_mint_couponCreate a new operator-owned discount coupon.
weather_notarize_ledgerBuild a Merkle tree of all patron balances and submit the rootto Bitcoin via OpenTimestamps.Operator-only background task. Bitcoin confirmation takes 1-6 hours.Free — no credits required.
weather_oracle_aboutDescribe the DPYC ecosystem via the Oracle. Free.
weather_oracle_get_tax_rateGet the current DPYC certification tax rate. Free.
weather_oracle_how_to_joinGet DPYC onboarding instructions from the Oracle. Free.
weather_oracle_lookup_memberLook up a DPYC community member by npub. Free.
weather_oracle_network_advisoryGet active network advisories from the Oracle. Free.
weather_publish_nostr_profilePublish a CLIENT-SIGNED kind-0 profile to relays for an npub.The wheel never holds a patron nsec. The frontend signs the kind-0metadata event with the patron's session key or a NIP-07 extension andpasses the signed event (JSON) here; the wheel verifies the signaturematches the npub, then relays it to public relays. The signature is theauthorization — no proof token, no key custody. Free.
weather_purchase_creditsBuy credits via Bitcoin Lightning.Creates a Lightning invoice. Pay it with any Lightning wallet,then call check_payment to confirm. Proof of npub ownership isrequired so credits land in the correct ledger.Free — no credits required to call.
weather_receive_credentialsPick up credentials from the Secure Courier.Completes the CREDENTIAL-DELIVERY flow (the ownership-proofcounterpart is ``receive_npub_proof``).**Call this only after the user confirms they have replied.**Deterministic, one-shot retrieval: name the response you want with``(sender_npub, service, dpop_token)`` and the tool drains ONLY therendezvous relay that channel was pinned to. Every popped DM with thewrong session phrase is deleted and its sender is NACK'd; the first DMwith the matching phrase …
weather_receive_npub_proofReceive npub ownership confirmation from a patron.Completes the npub-OWNERSHIP-PROOF flow (the credential-deliverycounterpart is ``receive_credentials``).**Call this only after the user confirms they have replied.**Deterministic, one-shot retrieval: name the response with``(patron_npub, dpop_token)`` — the ``dpop_token`` being the valuereturned by ``request_npub_proof``. The tool drains ONLY the pinnedrendezvous relay that challenge was published on, stopping at the DMwhose phrase matches. Misma…
weather_redeem_couponClaim a coupon by its name (the code the operator shared).Looks up the operator's coupon by ``code``, validates the windowand total cap, and records a per-patron redemption row.Subsequent paid tool calls on this MCP auto-apply the discountuntil ``uses_per_patron`` is exhausted.Free — no credits required. Requires proof of ``npub``.Idempotent: redeeming the same code twice returns the existingredemption.
weather_request_adoptionAsk a chosen Authority to adopt this operator (deferred courtship).RESTRICTED to the operator — requires proof the caller controls thisoperator's npub. Resolves the Authority's MCP endpoint from thecommunity registry, mints an inline ownership proof with thisoperator's nsec, and delivers the request MCP-to-MCP. The Authorityrecords it as pending; its owner approves on their own time. Poll``adoption_status`` for progress; the operator flips to ``ready``once the Authority provisions it.
weather_request_credential_channelOpen a Secure Courier channel for credential delivery.This is the CREDENTIAL-DELIVERY flow — use it to hand over a servicesecret (API keys, tokens). To merely prove you control an npub (theusual answer to a ``proof_required`` error), use ``request_npub_proof``instead. Note: dynamic/OAuth2 services (e.g. Schwab) need NO courieredsecret — check ``service_status`` first.Sends a welcome DM with a credential template. The recipientmust read the DM in their Nostr client, fill in the fields,and reply m…
weather_request_npub_proofRequest npub ownership proof from a patron via Nostr DM.This is the npub-OWNERSHIP-PROOF flow — use it when a call returns``proof_required``. It proves the caller controls an npub; it doesNOT deliver any service secret. To hand an operator its API keys orOAuth secrets, use ``request_credential_channel`` instead.Sends a challenge DM that the patron must sign and reply tousing their Nostr client. **This is a human-in-the-loop flow.**After calling this tool, STOP and tell the user to check theirNos…
weather_reset_pricing_modelErase all pricing models and restore a viable default.Deletes every stored model, then self-initializes a fresh onefrom the tool registry — all tools at 0 sats with proper UUIDs.Returns the new model.RESTRICTED to operator — requires proof (nsec-signed).
weather_restore_creditsCredit a patron's ledger from a BTCPay-settled invoice.**RESTRICTED to the operator** — the operator owns the books and isthe only party who can issue a manual credit grant. Patrons whobelieve they paid but never got credits must escalate to theoperator's support, who then invokes this tool on their behalf.Use cases: cold-start vault races during check_payment, ncreddelivery hiccups, patrons closing Top-Off sheets before settle,any infrastructure incident that left an invoice settled at BTCPaybu…
weather_restore_neon_schemaRe-run ``ensure_schema()`` on every NeonVault this operator uses.Diagnostic / recovery tool for the case where the Neon HTTP SQL APIis returning persistent 4xx errors and the operator suspects theschema isn't there or grants are wrong. Idempotent — uses``CREATE TABLE IF NOT EXISTS`` so a successful re-run is harmless.Returns the per-step result. If any step raises, surfaces the Neonerror message inline (0.31.0 reads the SQL error body that earlierwheels swallowed behind ``raise_for_status``).RES…
weather_service_statusCheck the health and configuration of this service. Free.
weather_session_statusCheck operator readiness. Returns the operator lifecyclestate and clear guidance on what to do next. Free.Lifecycle states:- ready: Operator is warm and fully operational — vault AND pricing model verified. Proceed with tool calls.- warming_up: Operator is initializing (cold start). Try a tool call — it will warm up on demand.- misconfigured: Persistence rejected a query with a permanent SQL error (permission denied, missing relation). Paid tools will fail until the operator repairs the database…
weather_set_pricing_modelSet the active pricing model. RESTRICTED to operator.Requires a valid proof (Schnorr-signed kind-27235 event)proving the caller holds the operator's nsec.
weather_update_couponPatch a coupon's editable fields.Pass only the fields you want to change. To set a cap tounlimited (NULL in the schema), pass ``clear_uses_per_patron=true``or ``clear_total_uses=true``. Renaming the code is allowed —existing patron redemption rows survive (they key on coupon id).RESTRICTED to operator — requires proof.
weather_update_patron_credentialAdd or update a single patron credential field.Merges into existing stored credentials without affectingother fields. Useful for setting an account identifierafter OAuth, changing a default brain, etc. Free. Proof ofnpub ownership is required — this is a write to the patron'ssensitive credential vault.
Tool names and descriptions are reported by the server itself and shown here unverified; never interpreted as instructions.