{"name":"io.github.Rotwang9000/seneschal-data","slug":"rotwang9000-seneschal-data","title":"Seneschal Data","description":"Monero/Zcash payment webhooks + DeFi liquidation & Ethereum builder data over MCP. Free tier; x402.","url":"https://mcp.market/server/rotwang9000-seneschal-data","rating":null,"grade":"D","score":42,"certified":false,"status":"active","category":"finance","tags":["finance"],"presence":{"score":21,"stars":1,"forks":1,"downloads_week":null,"last_push_at":"2026-08-01T16:19:50.000Z","license":"MIT"},"uptime":{"percent":0,"checks":28,"ok":0,"last_checked_at":"2026-11-04T05:30:44.172Z","last_ok_at":"2026-10-03T13:05:55.094Z","latency_ms":667},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/Rotwang9000/seneschal-data-api","website":"https://seneschal.space","version":"0.1.1","remotes":[{"type":"streamable-http","url":"https://mcp.seneschal.space/"}],"packages":[],"tools":[{"name":"seneschal_agent_directory","description":"Terse, drill-down discovery index of this ecosystem (Seneschal, FlashBank, winbit32, secresea, ZecBus, Zecmon, Ziving, 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\"/\"zecmon\"/\"ziving\"/\"mcpai\" to drill into a project. Each project exposes About / Agents / Actions — drill them with section=\"<site>/about\", \"<site>/agents\" or \"<site>/actions\" (e.g. \"winbit32/actions\"). Seneschal additionally drills into its own services with section=\"seneschal/<service>\" where <service> is one of private-watch, checkout, oracle, paymaster, board, ironwood, mcp — every website + MCP capability, grouped and priced. section=\"registry\" browses connectable third-party MCP servers (use `cursor` to page); section=\"about\"/\"agents\" is the directory’s own prose. format=\"gopher\" (default) is the compact RFC-1436 menu; format=\"json\" returns a structured {title, items[]}. A discovery layer, not a replacement for MCP — use it to FIND tools, then connect. Free, no payment.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"section":{"description":"Which directory node to fetch. Default \"root\". Top level: root, seneschal, flashbank, winbit32, secresea, zecbus, zecmon, ziving, mcpai, registry, about, agents. Drill a project with \"<site>/about\", \"<site>/agents\" or \"<site>/actions\" (e.g. \"winbit32/actions\"). Seneschal also exposes per-service sections: \"seneschal/private-watch\", \"seneschal/checkout\", \"seneschal/oracle\", \"seneschal/paymaster\", \"seneschal/board\", \"seneschal/ironwood\", \"seneschal/mcp\".","type":"string"},"format":{"description":"\"gopher\" (default) = compact menu text; \"json\" = structured {title, items[]}.","type":"string","enum":["gopher","json"]},"cursor":{"description":"Pagination cursor for the \"registry\" section, taken from a previous \"More servers\" entry.","type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"board":{"type":"string","enum":["seneschal-features","data-requests","agent-services","bounties","announcements"],"description":"The board the notice is on."},"id":{"type":"string","minLength":1,"description":"The notice id (from board_read)."},"amountAtomic":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Boost amount in atomic USDC (6 decimals). Min 100000 ($0.1), max 25000000 ($25)."}},"required":["board","id","amountAtomic"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"board":{"type":"string","enum":["seneschal-features","data-requests","agent-services","bounties","announcements"],"description":"Which board to post to."},"title":{"type":"string","minLength":3,"maxLength":160,"description":"Short title."},"body":{"type":"string","minLength":1,"maxLength":1200,"description":"The notice text."},"handle":{"description":"Display name (default anon).","type":"string","maxLength":48},"url":{"description":"Optional http(s) link.","type":"string","maxLength":400},"contact":{"description":"Optional contact handle or URL.","type":"string","maxLength":140},"tags":{"description":"Up to 5 tags.","maxItems":5,"type":"array","items":{"type":"string"}}},"required":["board","title","body"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"seneschal_board_read","description":"Return the ranked notices on a board (boosted first by decayed weight, then most recent). Free to call.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"board":{"type":"string","enum":["seneschal-features","data-requests","agent-services","bounties","announcements"],"description":"Which board to read."},"limit":{"description":"Max notices (default 50).","type":"integer","minimum":1,"maximum":200}},"required":["board"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"board":{"type":"string","enum":["seneschal-features","data-requests","agent-services","bounties","announcements"],"description":"The board the notice is on."},"id":{"type":"string","minLength":1,"description":"The notice id to reply to (from board_read)."},"body":{"type":"string","minLength":1,"maxLength":1200,"description":"The reply text."},"title":{"description":"Optional title (default \"Re: <thread title>\").","type":"string","minLength":3,"maxLength":160},"handle":{"description":"Display name (default anon).","type":"string","maxLength":48},"url":{"description":"Optional http(s) link.","type":"string","maxLength":400},"tags":{"description":"Up to 5 tags.","maxItems":5,"type":"array","items":{"type":"string"}}},"required":["board","id","body"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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 an invoice_paid webhook signed with your existing watch secret, and a flat settlement fee (~$0.02) is debited from the watch credit meter — never a percentage. Use your watchId+watchToken server-side, or a restricted checkoutKey (mint one with POST /v1/checkout/keys) anywhere you cannot keep secrets.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"amountUsdCents":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Sale amount in US cents (e.g. 500 = $5.00). Converted to coin at a locked rate."},"watchId":{"description":"Your watchId (pair with watchToken). Omit when using checkoutKey.","type":"string","minLength":36,"maxLength":36},"watchToken":{"description":"Your watchToken. Keep server-side.","type":"string","minLength":8},"checkoutKey":{"description":"Restricted ck_… key minted via POST /v1/checkout/keys — safe for client-side/bot use; can only create invoices paying your wallet.","type":"string","minLength":1},"orderId":{"description":"Your order reference; echoed on the invoice, the pay page and every webhook.","type":"string","maxLength":120},"description":{"description":"Shown to the payer on the hosted pay page.","type":"string","maxLength":200},"successUrl":{"description":"Where the pay page sends the payer after payment confirms.","type":"string"},"ttlMinutes":{"description":"Invoice lifetime (default 30). The exchange rate is locked for the whole TTL.","type":"integer","minimum":5,"maximum":1440}},"required":["amountUsdCents"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"invoiceId":{"type":"string","minLength":36,"maxLength":36,"description":"The invoiceId returned from create."}},"required":["invoiceId"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"seneschal_flashloan_providers","description":"Curated catalogue of Ethereum mainnet flash-loan providers (incl. Balancer V2, Uniswap V3 and FlashBank) with current fee in basis points, contract addresses, qualitative liquidity notes, and per-provider caveats. Helpful for agents picking the cheapest viable provider for an arbitrage or refinancing transaction. The catalogue is editorially open: filter by chain, max fee, or multi-asset support.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"chain":{"description":"Chain key, default \"ethereum\". Currently only ethereum is catalogued.","type":"string"},"max_fee_bps":{"description":"Drop providers whose flat fee exceeds this in basis points (1 bp = 0.01%).","anyOf":[{"type":"number"},{"type":"string"}]},"multi_asset":{"description":"If true, only return providers that support borrowing multiple assets in a single flash loan.","type":"boolean"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"seneschal_health","description":"Service liveness plus which privacy-chain backends (Monero, Zcash) are configured on this server.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"seneschal_paywall_info","description":"Returns the protocol, network, recipient address, and per-call price for every gated endpoint on this 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 (e.g. /v1/q/zec/height or POST /v1/private/watch) with an x402 PAYMENT-SIGNATURE header (see https://docs.x402.org).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"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 are AES-256-GCM encrypted at rest.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"chain":{"type":"string","enum":["monero","zcash"],"description":"Which privacy chain to monitor."},"address":{"type":"string","minLength":1,"description":"Public address for the chain. Monero: standard 95-char base58. Zcash: u1*, t1*, t3*, zs1*."},"viewKey":{"type":"string","minLength":1,"description":"Monero: 64-hex private view key. Zcash: UFVK starting with uview1."},"webhookUrl":{"type":"string","minLength":1,"description":"HTTPS endpoint we POST signed webhooks to. Private RFC1918/localhost addresses are rejected."},"birthdayHeight":{"description":"Block height the wallet was created at. Monero: scans forward from this height. Zcash: defaults to NU6 (3_042_000) if unspecified.","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["chain","address","viewKey","webhookUrl"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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_topup for bounds).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"chain":{"type":"string","enum":["monero","zcash"],"description":"Which privacy chain to monitor."},"address":{"type":"string","minLength":1,"description":"Public address for the chain. Monero: standard 95-char base58. Zcash: u1*, t1*, t3*, zs1*."},"viewKey":{"type":"string","minLength":1,"description":"Monero: 64-hex private view key. Zcash: UFVK starting with uview1."},"webhookUrl":{"type":"string","minLength":1,"description":"HTTPS endpoint we POST signed webhooks to."},"birthdayHeight":{"description":"Optional scan-from height.","type":"integer","minimum":0,"maximum":9007199254740991},"payWith":{"description":"Coin to pay in; defaults to `chain`.","type":"string","enum":["monero","zcash"]},"amountUsdCents":{"description":"Credit to buy in US cents; defaults to the server minimum.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["chain","address","viewKey","webhookUrl"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"chain":{"type":"string","enum":["zcash"],"description":"Currently only Zcash (Orchard) UFVK derivation is supported; Monero coming later."},"phrase":{"type":"string","minLength":1,"description":"12- or 24-word BIP-39 mnemonic."},"network":{"default":"mainnet","description":"Zcash network the wallet belongs to.","type":"string","enum":["mainnet","testnet","regtest"]}},"required":["chain","phrase"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"chain":{"type":"string","enum":["monero","zcash"],"description":"Which privacy chain to scan."},"address":{"type":"string","minLength":1,"description":"Address whose notes you want."},"viewKey":{"type":"string","minLength":1,"description":"Monero: 64-hex private view key. Zcash: UFVK starting with uview1."},"birthdayHeight":{"description":"Skip scanning earlier blocks. Zcash auto-detects when omitted (slower but always correct).","type":"integer","minimum":0,"maximum":9007199254740991},"toHeight":{"description":"Stop scanning at this block height. Defaults to chain tip.","type":"integer","minimum":0,"maximum":9007199254740991},"includeNotes":{"description":"Include a per-note breakdown (value/height/tx_hash/spent) in the response. Default false — totals only.","type":"boolean"}},"required":["chain","address","viewKey"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"watchId":{"type":"string","minLength":36,"maxLength":36,"description":"The watchId returned from create."},"watchToken":{"type":"string","minLength":1,"description":"The watchToken returned from create (constant-time compared at the REST surface)."},"tier":{"default":"10c","description":"Top-up size. 10c = $0.10 (≈5 days idle), 1 = $1.00 (≈50 days), 5 = $5.00 (≈250 days).","type":"string","enum":["1","5","10c"]}},"required":["watchId","watchToken"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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 never hold a spend key. No x402, no API key — you pay in coin.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"watchId":{"type":"string","minLength":36,"maxLength":36,"description":"The watchId returned from create."},"watchToken":{"type":"string","minLength":1,"description":"The watchToken returned from create."},"chain":{"type":"string","enum":["monero","zcash"],"description":"Which privacy coin you will pay in."},"amountUsdCents":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Credit to buy, in US cents (e.g. 500 = $5.00). Min/max enforced server-side; see the *_private_watch_info tool -> crypto_topup."}},"required":["watchId","watchToken","chain","amountUsdCents"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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. Privacy-chain facts from Seneschal-operated full nodes — Monero (xmr/height, xmr/mempool, xmr/fee, xmr/fee-estimate, xmr/last-block) and Zcash (zec/height, zec/mempool, zec/last-block, zec/pools) — plus Ethereum lookups (cheapest-flashloan, base-fee). Consult /v1/q for per-question input lists and live chain availability.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"question":{"type":"string","enum":["cheapest-flashloan","base-fee","xmr/height","xmr/mempool","xmr/fee","xmr/fee-estimate","xmr/last-block","zec/height","zec/mempool","zec/last-block","zec/pools"],"description":"Which atomic fact to ask. See description for the list. Privacy-chain questions use `xmr/<name>` or `zec/<name>`."},"params":{"description":"Per-question parameter object. cheapest-flashloan takes asset (+ optional chain); base-fee and the privacy-chain questions currently take no params.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["question"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"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) or — better — https://api.seneschal.space/v1/private/info to get a webhook when funds land instead of polling at all.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ufvk":{"type":"string","minLength":1,"description":"Zcash unified full viewing key, starting with uview1. Read-only — never accept a seed phrase here."},"birthdayHeight":{"description":"Block height to start from, if known. Omit to auto-detect by walking backwards from the tip.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"purgeCache":{"description":"Throw away any stored result for this key AND any cached birthday, then scan from scratch. Use when a previous result looks wrong — NOT routinely, since it turns a free cache hit into a full chain walk.","type":"boolean"},"deepScan":{"description":"Sweep BELOW NU6, all the way back to NU5. Only needed for wallets with no activity in roughly the last year. Measured at ~38 minutes of scanner time (the pre-2.2M chain scans ~10x slower per block), runs one at a time globally, and will usually queue. Do NOT set this speculatively — run a normal scan first and use it only if the reply says deep_scan_available.","type":"boolean"}},"required":["ufvk"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"jobId":{"type":"string","minLength":1},"jobToken":{"type":"string","minLength":1}},"required":["jobId","jobToken"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"jobId":{"type":"string","minLength":1,"description":"From zecmon_scan."},"jobToken":{"type":"string","minLength":1,"description":"From zecmon_scan — the only credential for this job."},"includeNotes":{"description":"Include the per-note breakdown. Default true; set false for progress only.","type":"boolean"}},"required":["jobId","jobToken"],"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":42,"grade":"D","scanned_at":"2026-10-09T18:53:31.784Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-09T18:53:31.726Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":0,"max":20,"notes":["remote unreachable: TypeError: fetch failed"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (endpoint requires auth); not counted"]},"auth":{"score":5,"max":15,"notes":["no auth information"]},"maintenance":{"score":12,"max":15,"notes":["last push 69 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"reliability.unreachable","severity":"high","component":"reliability","title":"Remote endpoint did not respond","detail":"TypeError: fetch failed"}],"inputs":{"probes":[{"url":"https://mcp.seneschal.space/","reachable":false,"authRequired":false,"latencyMs":31,"error":"TypeError: fetch failed"}],"packages":[],"repo":{"found":true,"owner":"Rotwang9000","repo":"seneschal-data-api","archived":false,"pushedAt":"2026-08-01T16:19:50Z","stars":1,"forks":1,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/144210384?v=4","ownerCreatedAt":"2023-09-06T06:48:17Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":1,"forks":1,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-08-01T16:19:50.000Z","score":21}}}},"grade_history":[{"kind":"downgrade","fromGrade":"B","toGrade":"D","reason":"score 42: Remote endpoint did not respond","createdAt":"2026-10-09T18:53:32.332Z"},{"kind":"restore","fromGrade":"D","toGrade":"B","reason":"score 77: Write-action tools reachable without authentication","createdAt":"2026-09-27T22:31:50.421Z"}],"reviews":[]}