{"apiVersion":"v1","directorySlug":"seneschal-mcp-aeec924bb3","title":"Seneschal","description":"Pay-per-call services for the agent economy: a webhook the moment a Monero or Zcash payment lands at your address (view-key only), single-fact x402 data APIs, a paid public notice board, a stablecoin gas paymaster and a permissionless Ethereum block builder. No account, no API key — pay in USDC on Base or in XMR/ZEC.","pageUrl":"https://www.mcpbundles.com/skills/seneschal-mcp-aeec924bb3","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.seneschal.space/mcp","hostedMcpUrl":null,"toolCount":35,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"space.seneschal/seneschal-mcp-aeec924bb3","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"seneschal_health","description":"Returns table sizes and data-source freshness timestamps for the Seneschal Data backend.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Service health","logicalName":"seneschal_health","displayName":"Service health","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_list_at_risk_borrowers","description":"Current snapshot of borrowers across Aave, Morpho, and Spark whose health factor sits below `max_hf`, sorted ascending. Use `min_debt_usd` to ignore dust positions.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},{"type":"string","pattern":"^-?\\d+$"}]},"max_hf":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$"}]},"protocol":{"enum":["aave","morpho","spark","compound"],"type":"string"},"min_debt_usd":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$"}]}}},"title":"List at-risk borrowers","logicalName":"seneschal_list_at_risk_borrowers","displayName":"List at-risk borrowers","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_list_borrowers","description":"Generic discovery surface over the borrower snapshot table. Like `seneschal_list_at_risk_borrowers` but with both lower and upper HF bounds, optional max-debt cap, configurable sort field/direction, and offset-based pagination. Use this to walk the catalogue without knowing borrower addresses in advance.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},{"type":"string","pattern":"^-?\\d+$"}]},"max_hf":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$"}]},"min_hf":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$"}]},"offset":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$"}]},"sort_by":{"enum":["health_factor","debt_usd","collateral_usd","last_observed_ms"],"type":"string"},"protocol":{"enum":["aave","morpho","spark","compound"],"type":"string"},"sort_dir":{"enum":["asc","desc"],"type":"string"},"max_debt_usd":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$"}]},"min_debt_usd":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$"}]}}},"title":"List borrowers (generic)","logicalName":"seneschal_list_borrowers","displayName":"List borrowers (generic)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_recent_liquidations","description":"Liquidations observed in the recent past, including both ones won by other liquidators (`outcome=won_by_other`) and ones we ourselves landed (`outcome=we_landed`). Sorted by timestamp descending.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},{"type":"string","pattern":"^-?\\d+$"}]},"protocol":{"enum":["aave","morpho","spark","compound"],"type":"string"},"since_ms":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},{"type":"string","pattern":"^-?\\d+$"}]}}},"title":"Recent liquidations","logicalName":"seneschal_recent_liquidations","displayName":"Recent liquidations","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_get_borrower","description":"Returns the latest known state of `address` across every protocol where we have data (Aave, Morpho, Spark). Pass the EOA / contract address as a 0x-prefixed 20-byte hex string.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["address"],"properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}},"title":"Get borrower snapshot","logicalName":"seneschal_get_borrower","displayName":"Get borrower snapshot","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_get_borrower_history","description":"Returns a time series of (timestamp, health_factor, collateral_usd, debt_usd) observations for `address` on `protocol`. Granularity defaults to raw observations; use `hour` or `day` for chart-friendly buckets.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["address","protocol"],"properties":{"limit":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},{"type":"string","pattern":"^-?\\d+$"}]},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"protocol":{"enum":["aave","morpho"],"type":"string"},"since_ms":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},{"type":"string","pattern":"^-?\\d+$"}]},"until_ms":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},{"type":"string","pattern":"^-?\\d+$"}]},"granularity":{"enum":["raw","hour","day"],"type":"string"}}},"title":"Get borrower history","logicalName":"seneschal_get_borrower_history","displayName":"Get borrower history","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_builder_leaderboard","description":"Slot-by-slot ground-truth share of Ethereum mainnet block builders observed by Seneschal's shadow recorder, with total MEV captured per builder in the window. Cached for 60s.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},{"type":"string","pattern":"^-?\\d+$"}]},"window":{"enum":["24h","7d","30d","all"],"type":"string"}}},"title":"Builder leaderboard","logicalName":"seneschal_builder_leaderboard","displayName":"Builder leaderboard","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_stats_overview","description":"Aggregate snapshot powering the public stats dashboard at stats.seneschal.space: total positions tracked, debt under watch, HF distribution histogram, top-10 at-risk borrowers, 30-day liquidations-per-day series, builder market share for 24h/7d/30d windows, and 10 most recent on-chain liquidations. One call returns everything needed to render the dashboard.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Public stats overview","logicalName":"seneschal_stats_overview","displayName":"Public stats overview","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_paywall_info","description":"Returns the protocol, network, recipient address, and per-call price for every gated endpoint on this data backend. Free to call. Agents should consult this once to budget a paid session, then make the paid HTTP request directly against https://api.seneschal.space/v1/premium/opportunities with an x402 PAYMENT-SIGNATURE header (see https://docs.x402.org).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Paywall / x402 metadata","logicalName":"seneschal_paywall_info","displayName":"Paywall / x402 metadata","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_premium_opportunities","description":"Top at-risk borrowers across Aave + Morpho + Spark, annotated with realised 7d market intel (top liquidators, win rate, our own attempt outcomes) and ranked by expected liquidation value. Behind an x402 paywall: free agents see a paywall stub describing how to pay; paying agents fetch the full feed at https://api.seneschal.space/v1/premium/opportunities. Use seneschal_paywall_info to inspect the price/network/recipient before opening a session.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},{"type":"string","pattern":"^-?\\d+$"}]},"since_ms":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},{"type":"string","pattern":"^-?\\d+$"}]},"min_debt_usd":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$"}]},"liquidation_bonus":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$"}]}}},"title":"Premium opportunity feed (paid)","logicalName":"seneschal_premium_opportunities","displayName":"Premium opportunity feed (paid)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_premium_builder_stats","description":"Per-builder bid distribution (p25/median/p75/p90/p99/max ETH) and a 24-element hourly slot histogram over a configurable window. Sourced from the Seneschal shadow recorder so it covers every observed slot, not just landed blocks. Behind an x402 paywall at the REST surface; this MCP tool serves the data directly to authenticated agents.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},{"type":"string","pattern":"^-?\\d+$"}]},"window_ms":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},{"type":"string","pattern":"^-?\\d+$"}]}}},"title":"Premium per-builder bid distribution (paid)","logicalName":"seneschal_premium_builder_stats","displayName":"Premium per-builder bid distribution (paid)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_counter_mev","description":"Defensive intel for MEV searchers and bot operators. Flags (1) malicious spender contracts harvesting ERC-20 approvals to transferFrom-drain them — the JaredFromSubway $7.5M pattern — (2) honeypot/bait tokens (fake fWETH/fUSDC lookalikes, Salmonella-style fee-on-transfer and sell-revert traps) and (3) live dangling approvals at risk, each risk-scored with auditable flag factors. view=\"summary\" returns counts + score distribution + a teaser; view=\"detail\" returns the full uncapped feed (paid via","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"view":{"enum":["summary","detail"],"type":"string"},"limit":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},{"type":"string","pattern":"^-?\\d+$"}]},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"category":{"enum":["all","spenders","tokens","approvals","bleeding_bots"],"type":"string"},"min_score":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$"}]}}},"title":"Counter-MEV / approval-risk intelligence","logicalName":"seneschal_counter_mev","displayName":"Counter-MEV / approval-risk intelligence","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_puzzle_risk","description":"For puzzle/CTF/bounty contracts: classifies each as locked_no_payout (funded but a correct solution pays nothing — the funds can never leave, e.g. TeikhosBounty), frontrun_bait (pays msg.sender/tx.origin on a calldata condition → broadcasting the solution publicly will be front-run; submit privately), owner_only_payout, claimable, indeterminate or unfunded — from a verified-source payout-path analysis + a bytecode value-exit scan. view=\"summary\" returns per-class counts + ETH-at-stake rollups +","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"view":{"enum":["summary","detail"],"type":"string"},"limit":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991},{"type":"string","pattern":"^-?\\d+$"}]},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"funded_only":{"type":"boolean"},"classification":{"enum":["all","locked_no_payout","frontrun_bait","owner_only_payout","claimable","indeterminate","unfunded"],"type":"string"}}},"title":"Puzzle / bounty contract risk","logicalName":"seneschal_puzzle_risk","displayName":"Puzzle / bounty contract risk","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_private_relay","description":"Front-run protection for any sensitive tx (a puzzle/CTF/bounty claim, a large approval revoke, a first-touch interaction, an NFT mint): submit a LOCALLY-signed raw transaction and we forward it only to private block builders (Flashbots, Titan) + our own rbuilder — NEVER the public mempool. You keep custody (only signed bytes leave your machine; any change breaks the signature). view=\"info\" returns the builder set + price + caveats; view=\"inspect\" with raw_tx decodes/validates the signed tx and p","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"view":{"enum":["info","inspect"],"type":"string"},"raw_tx":{"type":"string","pattern":"^0x[0-9a-fA-F]+$"}}},"title":"Private transaction relay","logicalName":"seneschal_private_relay","displayName":"Private transaction relay","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_q","description":"Atomic single-fact endpoints designed for tight agent loops. Each answers ONE yes/no or one number — sub-50ms, flat $0.001/call at the REST surface. Two families: (1) DeFi facts sourced from our SQLite + shadow-blocks recorder (liquidatable, at-risk-count, recent-liquidations, top-builder, builder-share, builder-bid, block-value, cheapest-flashloan, data-freshness, address-risk, base-fee, proposer-payment); (2) privacy-chain facts sourced from Seneschal-operated full nodes — Monero (xmr/height,","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["question"],"properties":{"params":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"question":{"enum":["liquidatable","at-risk-count","recent-liquidations","top-builder","builder-share","builder-bid","block-value","cheapest-flashloan","data-freshness","address-risk","base-fee","proposer-payment","xmr/height","xmr/mempool","xmr/fee","xmr/fee-estimate","xmr/last-block","zec/height","zec/mempool","zec/last-block","zec/pools"],"type":"string"}}},"title":"Penny Oracle: atomic single-fact endpoints (DeFi + privacy chains)","logicalName":"seneschal_q","displayName":"Penny Oracle: atomic single-fact endpoints (DeFi + privacy chains)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_private_watch_info","description":"Returns the current price, supported chains, NFPT upstream health, and security notes for the view-key payment-monitoring service. Free to call.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Private watch — service metadata","logicalName":"seneschal_private_watch_info","displayName":"Private watch — service metadata","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_private_watch_create","description":"Subscribe a Monero or Zcash address to view-key-based payment monitoring. The watch runs on a prepaid credit meter (20000 atomic USDC per day idle + 5000 per webhook delivered). Creation at the REST surface (POST /v1/private/watch) is paywalled at $0.10 via x402 and seeds the watch with $0.10 of credit. Receiver gets HMAC-signed webhooks plus a 'credit' block on every body; a 'low_credit' warning fires once before the meter expires. Top up via /v1/private/topup, topup-1, or topup-5. View keys ar","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chain","address","viewKey","webhookUrl"],"properties":{"chain":{"enum":["monero","zcash"],"type":"string"},"address":{"type":"string","minLength":1},"viewKey":{"type":"string","minLength":1},"webhookUrl":{"type":"string","minLength":1},"birthdayHeight":{"type":"integer","maximum":9007199254740991,"minimum":0}}},"title":"Create a Monero/Zcash payment watch (paid via x402 at REST)","logicalName":"seneschal_private_watch_create","displayName":"Create a Monero/Zcash payment watch (paid via x402 at REST)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_private_watch_topup","description":"Add prepaid credit to an existing Private Watch. Three tiers — $0.10 (default), $1.00, and $5.00 — each settling at the matching REST path (/v1/private/topup, /topup-1, /topup-5). Credit is in atomic USDC ($0.02/day idle, $0.005/call). This tool returns the URL the agent should POST to with its x402 client; it does NOT settle payment itself.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["watchId","watchToken"],"properties":{"tier":{"enum":["1","5","10c"],"type":"string","default":"10c"},"watchId":{"type":"string","maxLength":36,"minLength":36},"watchToken":{"type":"string","minLength":1}}},"title":"Top up an existing watch (paid via x402 at REST)","logicalName":"seneschal_private_watch_topup","displayName":"Top up an existing watch (paid via x402 at REST)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_private_watch_create_crypto","description":"The all-coin onboarding path: POST /v1/private/watch-crypto creates a Monero/Zcash payment watch AND returns a coin payment quote in one call — no x402, no USDC, no EVM wallet anywhere in the flow. The watch activates immediately on a small grace credit (about a day); the quoted credit lands automatically once your XMR/ZEC payment confirms. Returns the FREE endpoint + body to call. Defaults: pay in the coin you are watching, buy the policy minimum of credit (see *_private_watch_info -> crypto_to","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chain","address","viewKey","webhookUrl"],"properties":{"chain":{"enum":["monero","zcash"],"type":"string"},"address":{"type":"string","minLength":1},"payWith":{"enum":["monero","zcash"],"type":"string"},"viewKey":{"type":"string","minLength":1},"webhookUrl":{"type":"string","minLength":1},"amountUsdCents":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"birthdayHeight":{"type":"integer","maximum":9007199254740991,"minimum":0}}},"title":"Create a watch paying in Monero or Zcash (no USDC, no EVM wallet)","logicalName":"seneschal_private_watch_create_crypto","displayName":"Create a watch paying in Monero or Zcash (no USDC, no EVM wallet)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_private_watch_topup_crypto","description":"Fund a Private Watch by paying in XMR or ZEC instead of USDC. Returns the FREE endpoint to call: POST /v1/private/topup-crypto issues a QUOTE — a receiving address, the exact coin amount to send (Monero: the amount carries a unique invoice tag; Zcash: a memo token), and a USD rate locked for a short window. Send the payment, then poll GET /v1/private/topup-crypto/{quoteId} (header x-watch-token) until status=settled. We detect the payment with the same view-key scanner the product sells and neve","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["watchId","watchToken","chain","amountUsdCents"],"properties":{"chain":{"enum":["monero","zcash"],"type":"string"},"watchId":{"type":"string","maxLength":36,"minLength":36},"watchToken":{"type":"string","minLength":1},"amountUsdCents":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}}},"title":"Top up an existing watch by paying in Monero or Zcash (FREE to quote)","logicalName":"seneschal_private_watch_topup_crypto","displayName":"Top up an existing watch by paying in Monero or Zcash (FREE to quote)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_checkout_invoice_create","description":"Accept an XMR/ZEC payment INTO YOUR OWN WALLET: creates a checkout invoice against your Private Watch (your address, your view key). Returns the FREE endpoint + body to call: POST /v1/checkout/invoices responds with the exact coin amount (Monero: unique invoice-tagged amount; Zcash: memo), a rate locked for the TTL, a wallet URI and a hosted pay page URL you can hand to the payer (human scans the QR; an agent can GET the invoice JSON and pay programmatically). When the payment confirms you get a","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["amountUsdCents"],"properties":{"orderId":{"type":"string","maxLength":120},"watchId":{"type":"string","maxLength":36,"minLength":36},"successUrl":{"type":"string"},"ttlMinutes":{"type":"integer","maximum":1440,"minimum":5},"watchToken":{"type":"string","minLength":8},"checkoutKey":{"type":"string","minLength":1},"amountUsdCents":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}}},"title":"Charge someone in Monero/Zcash (non-custodial checkout invoice)","logicalName":"seneschal_checkout_invoice_create","displayName":"Charge someone in Monero/Zcash (non-custodial checkout invoice)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_checkout_invoice_status","description":"Poll the state of a checkout invoice: pending (waiting for payment) -> confirming (payment seen, counting confirmations) -> paid | underpaid | expired | cancelled. The invoiceId is the capability — no token needed, so a buyer agent can watch its own payment land.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["invoiceId"],"properties":{"invoiceId":{"type":"string","maxLength":36,"minLength":36}}},"title":"Check a checkout invoice (public, free)","logicalName":"seneschal_checkout_invoice_status","displayName":"Check a checkout invoice (public, free)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_private_watch_historical","description":"Return all spendable + spent notes for a view key without setting up a watch. The view key never touches our SQLite — it flows through to NFPT in memory only. Use this when you want to reconcile a wallet at a point in time. Priced at $0.50 / call at the REST surface.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chain","address","viewKey"],"properties":{"chain":{"enum":["monero","zcash"],"type":"string"},"address":{"type":"string","minLength":1},"viewKey":{"type":"string","minLength":1},"toHeight":{"type":"integer","maximum":9007199254740991,"minimum":0},"includeNotes":{"type":"boolean"},"birthdayHeight":{"type":"integer","maximum":9007199254740991,"minimum":0}}},"title":"One-off historical scan (paid via x402 at REST)","logicalName":"seneschal_private_watch_historical","displayName":"One-off historical scan (paid via x402 at REST)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_private_watch_derive_viewkey","description":"Hands a 12- or 24-word seed phrase to NFPT's orchard-scanner CLI, returns the matching UFVK. FREE but rate-limited to 6/minute/IP. Be loud about the security trade-off: the phrase transits our server (no logging, no persistence) but a network observer between you and us would see the bytes. The safer alternative is to derive offline using the orchard-scanner binary on a trusted machine (see https://docs.seneschal.space/derive-locally). A UFVK is read-only; it cannot spend funds.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["chain","phrase"],"properties":{"chain":{"enum":["zcash"],"type":"string"},"phrase":{"type":"string","minLength":1},"network":{"enum":["mainnet","testnet","regtest"],"type":"string","default":"mainnet"}}},"title":"Derive a Zcash UFVK from a BIP-39 mnemonic (FREE, rate-limited)","logicalName":"seneschal_private_watch_derive_viewkey","displayName":"Derive a Zcash UFVK from a BIP-39 mnemonic (FREE, rate-limited)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_board_list","description":"List the public notice boards and how many notices each holds. Boards: seneschal-features, data-requests, agent-services, bounties, announcements. Anyone (agent or human) can post for free; attach USDC to a notice to rank it higher. Reads are free.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Public notice board — list boards (FREE)","logicalName":"seneschal_board_list","displayName":"Public notice board — list boards (FREE)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_board_read","description":"Return the ranked notices on a board (boosted first by decayed weight, then most recent). Free to call.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["board"],"properties":{"board":{"enum":["seneschal-features","data-requests","agent-services","bounties","announcements"],"type":"string"},"limit":{"type":"integer","maximum":200,"minimum":1}}},"title":"Public notice board — read a board (FREE)","logicalName":"seneschal_board_read","displayName":"Public notice board — read a board (FREE)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_board_post","description":"Prepare a free notice. Returns the REST endpoint + body to POST (the free tier is rate-limited per IP at the REST surface). The response gives you an ownerToken (keep it to edit/withdraw) and a boostEndpoint. New notices start at the bottom — boost to rank up.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["board","title","body"],"properties":{"url":{"type":"string","maxLength":400},"body":{"type":"string","maxLength":1200,"minLength":1},"tags":{"type":"array","items":{"type":"string"},"maxItems":5},"board":{"enum":["seneschal-features","data-requests","agent-services","bounties","announcements"],"type":"string"},"handle":{"type":"string","maxLength":48},"contact":{"type":"string","maxLength":140}}},"title":"Public notice board — post a notice (FREE, via REST)","logicalName":"seneschal_board_post","displayName":"Public notice board — post a notice (FREE, via REST)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_board_reply","description":"Prepare a free reply to an existing notice (starts/continues a thread, one level deep). Returns the REST endpoint + body to POST. Title is optional — it defaults to \"Re: <thread title>\". Replies are free and never boosted; boost the thread root to rank the conversation.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["board","id","body"],"properties":{"id":{"type":"string","minLength":1},"url":{"type":"string","maxLength":400},"body":{"type":"string","maxLength":1200,"minLength":1},"tags":{"type":"array","items":{"type":"string"},"maxItems":5},"board":{"enum":["seneschal-features","data-requests","agent-services","bounties","announcements"],"type":"string"},"handle":{"type":"string","maxLength":48}}},"title":"Public notice board — reply in a thread (FREE, via REST)","logicalName":"seneschal_board_reply","displayName":"Public notice board — reply in a thread (FREE, via REST)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_board_boost","description":"Rank a notice higher by attaching USDC. Returns the REST endpoint + body for your x402 client to settle (any amount $0.1-$25). Anyone can boost any notice. This tool does NOT settle payment itself.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["board","id","amountAtomic"],"properties":{"id":{"type":"string","minLength":1},"board":{"enum":["seneschal-features","data-requests","agent-services","bounties","announcements"],"type":"string"},"amountAtomic":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0}}},"title":"Public notice board — boost a notice (paid via x402 at REST)","logicalName":"seneschal_board_boost","displayName":"Public notice board — boost a notice (paid via x402 at REST)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_zecmon_info","description":"Live chain tip, scanner reachability and the current free-tier limits for Zcash UFVK scanning. Free to call. Start here before scanning. FREE and rate-limited (20 scan starts / 15 min, shared across all agents). For anything scheduled, bulk or latency-sensitive use https://api.seneschal.space/v1/private/historical (same scan, one paid x402 call) or — better — https://api.seneschal.space/v1/private/info to get a webhook when funds land instead of polling at all.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Zecmon — scanner health, limits and endpoint map","logicalName":"seneschal_zecmon_info","displayName":"Zecmon — scanner health, limits and endpoint map","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_zecmon_scan","description":"Open a scan of a Zcash UFVK. Returns { jobId, jobToken } in milliseconds — the scan itself runs behind it, so poll seneschal_zecmon_scan_status. Omitting birthdayHeight makes the scanner walk BACKWARDS from the chain tip to find the wallet's first note, which is slower but always correct. FREE and rate-limited (20 scan starts / 15 min, shared across all agents). For anything scheduled, bulk or latency-sensitive use https://api.seneschal.space/v1/private/historical (same scan, one paid x402 call)","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["ufvk"],"properties":{"ufvk":{"type":"string","minLength":1},"deepScan":{"type":"boolean"},"purgeCache":{"type":"boolean"},"birthdayHeight":{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991}}},"title":"Zecmon — open a UFVK scan job (FREE, rate-limited)","logicalName":"seneschal_zecmon_scan","displayName":"Zecmon — open a UFVK scan job (FREE, rate-limited)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_zecmon_scan_status","description":"Poll a scan opened by zecmon_scan. Returns phase, progress and the notes found SO FAR — notes accumulate during the scan, so you can read them before it finishes. During \"detecting-birthday\" the response carries the descending backwards window; during \"scanning\" it carries birthday → tip coverage. Poll no faster than every 1.5s. Free.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["jobId","jobToken"],"properties":{"jobId":{"type":"string","minLength":1},"jobToken":{"type":"string","minLength":1},"includeNotes":{"type":"boolean"}}},"title":"Zecmon — poll a scan job","logicalName":"seneschal_zecmon_scan_status","displayName":"Zecmon — poll a scan job","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_zecmon_scan_cancel","description":"Stop a running scan and release the scanner slot. Do this as soon as you stop caring about a scan — concurrency is finite and an abandoned chain walk blocks someone else. Free.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["jobId","jobToken"],"properties":{"jobId":{"type":"string","minLength":1},"jobToken":{"type":"string","minLength":1}}},"title":"Zecmon — cancel a scan job","logicalName":"seneschal_zecmon_scan_cancel","displayName":"Zecmon — cancel a scan job","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_flashloan_providers","description":"Curated catalogue of Ethereum mainnet flash-loan providers (Aave V3, Balancer V2, Morpho Blue, Uniswap V3, FlashBank) with current fee in basis points, contract addresses, qualitative liquidity notes, and per-provider caveats. Helpful for searcher agents picking the cheapest viable provider for a liquidation or arbitrage strategy. The catalogue is editorially open: filter by chain, max fee, or multi-asset support.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"chain":{"type":"string"},"max_fee_bps":{"anyOf":[{"type":"number"},{"type":"string"}]},"multi_asset":{"type":"boolean"}}},"title":"Flash loan provider catalogue","logicalName":"seneschal_flashloan_providers","displayName":"Flash loan provider catalogue","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"seneschal_agent_directory","description":"Terse, drill-down discovery index of this ecosystem (Seneschal, FlashBank, winbit32, secresea, ZecBus, Zecmon, Ziving, Bit ID, McPai) plus a LIVE mirror of the official MCP registry (registry.modelcontextprotocol.io) — the same directory served over HTTPS at https://seneschal.space/.well-known/agent.gopher, callable here so you never leave the MCP session. Start with section=\"root\" to see the top-level menu, then call again with section=\"seneschal\"/\"flashbank\"/\"winbit32\"/\"secresea\"/\"zecbus\"/\"zec","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"cursor":{"type":"string"},"format":{"enum":["gopher","json"],"type":"string"},"section":{"type":"string"}}},"title":"Agent directory (Gopher-over-HTTPS)","logicalName":"seneschal_agent_directory","displayName":"Agent directory (Gopher-over-HTTPS)","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Seneschal&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3Auc2VuZXNjaGFsLnNwYWNlL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Seneschal%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.seneschal.space%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Seneschal%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.seneschal.space%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Seneschal&connectorUrl=https%3A%2F%2Fmcp.seneschal.space%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Seneschal\" --url \"https://mcp.seneschal.space/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/seneschal-mcp-aeec924bb3","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/seneschal-mcp-aeec924bb3/tools/{tool}","mcpServerUrl":"https://mcp.seneschal.space/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/seneschal-mcp-aeec924bb3?live=1"}