Seneschal Data

io.github.Rotwang9000由 GitHub 帳號 Rotwang9000 發布v0.1.1更新於 Nov 2, 2026

Monero/Zcash payment webhooks + DeFi liquidation & Ethereum builder data over MCP. Free tier; x402.

已驗證Streamable HTTP可網頁執行金融安全與監控資料與分析

概覽

AI 產生的概覽

遠端 MCP 伺服器,提供 DeFi 清算資料、以太坊區塊建構者資料與 Monero/Zcash 付款 webhook,部分工具按次透過 x402 付費。

可以做什麼
  • 檢查服務健康狀態與資料新鮮度,讀取彙總統計
  • 找出 Aave、Morpho、Spark、Compound 上可清算的借款人,分頁瀏覽借款人集合,查詢單一借款人的最新狀態或健康因子歷史
  • 檢視近期鏈上清算、以太坊建構者市佔排行與閃電貸提供者目錄
  • 呼叫付費進階資料:依期望值排序的機會、各建構者出價分布與單一事實查詢
  • 管理 Private Watch:讀取其中介資料、以 Monero 或 Zcash 檢視金鑰加 webhook 建立監控、儲值額度、取得加密貨幣儲值報價、執行一次性歷史掃描
  • 從 BIP-39 助記詞衍生 Zcash 統一完整檢視金鑰
適用情境
適合需要即時或歷史 DeFi 清算與借款人風險資料、以太坊區塊建構者市佔,或 Monero 與 Zcash 位址收款監控,且不想自行架設節點或索引器的情境。
執行需求
遠端 Streamable HTTP 端點;免費讀取工具不需帳號或 API 金鑰。付費工具透過 x402 在 Base 上以 USDC 按次結算,需要已儲值的錢包與支援 x402 的用戶端。Private Watch 需要 Monero 或 Zcash 檢視金鑰以及 webhook 網址。速率限制為每個 IP 每分鐘 120 次請求,並依 MCP 工作階段共用。
安裝前請注意
多個工具按次收費,Private Watch 依額度計費,代理可能因此產生實際支出。Private Watch 需要把 Monero 或 Zcash 檢視金鑰交給第三方營運者,會揭露收款資訊;歷史掃描聲稱不保存金鑰。建立監控會註冊接收 HMAC 簽章事件的 webhook。從助記詞衍生檢視金鑰會暴露錢包機密,README 本身也對此提出警告。資料來自單一營運者。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Seneschal Data,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.Rotwang9000%2Fseneschal-data/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "seneschal-data": {
      "type": "http",
      "url": "https://mcp.seneschal.space/"
    }
  }
}

README

Seneschal Data API

[ci] [license]

Free, public REST + Model Context Protocol server exposing real-time and historical DeFi liquidation telemetry for Aave, Morpho, Spark and Compound on Ethereum mainnet, plus block-builder market share data from the operator's own slot-by-slot shadow recorder.

Two paid tiers sit on top, both billed per call over x402 micropayments (USDC on Base — no account, no API key):

  • Private Watch (flagship) — give us a Monero or Zcash view key and a webhook URL; we watch the chain on our own full nodes and POST you an HMAC-signed event for every inbound payment. Credit-metered ($0.02/day + $0.005/call), so small receivers pay pennies and you never run a node. Top up in USDC over x402 or pay in Monero/Zcash directly (POST /v1/private/topup-crypto — free quote, no x402, no key; we detect the coin payment with the same view-key scanner the product sells). Drive it from the API, the MCP tools, or the WalletConnect control panel.
  • Premium data — expected-value-ranked liquidation opportunities, per-builder bid distributions, and Penny Oracle atomic single-fact endpoints (DeFi + Monero/Zcash) from $0.001/call.

Live endpoints

WhatURLAuth
REST APIhttps://api.seneschal.spaceNone
MCP (Streamable HTTP)https://mcp.seneschal.spaceNone
Control panel (Private Watch)https://panel.seneschal.spaceWallet
Docshttps://docs.seneschal.space-
Live stats dashboardhttps://stats.seneschal.space-

Rate limit: 120 requests/min/IP at the REST host. The MCP host pipelines requests over a single transport so the same limit applies per session.

Quick start

REST

bash
curl 'https://api.seneschal.space/v1/liquidations/atrisk?max_hf=1.05&min_debt_usd=1000'

MCP — Claude Desktop / Cursor / Continue

Add this to your MCP client config (e.g. ~/.cursor/mcp.json):

json
{  "mcpServers": {    "seneschal-data": {      "url": "https://mcp.seneschal.space/"    }  }}

This server is published to the official MCP Registry as io.github.Rotwang9000/seneschal-data (see server.json), so MCP-aware clients and aggregators can discover it automatically.

Eighteen tools become available to your agent — free read tools, plus paid tools that hand back the exact URL + body to settle over x402:

ToolPurpose
seneschal_healthLiveness + data freshness
seneschal_list_at_risk_borrowersFind liquidatable positions across all DeFi
seneschal_list_borrowersGeneric discovery / pagination over the full borrower set
seneschal_recent_liquidationsRecent on-chain liquidations (won by other liquidators or ourselves)
seneschal_get_borrowerLatest state of one borrower across protocols
seneschal_get_borrower_historyTime-series health-factor traces
seneschal_builder_leaderboardEthereum builder market share (24h, 7d, 30d, all-time)
seneschal_stats_overviewAggregate snapshot powering the public dashboard, incl. operator activity (counts only — no profit fields)
seneschal_flashloan_providersCurated catalogue of mainnet flash-loan providers, incl. LP-side commit-capital paths where applicable
seneschal_paywall_infoFree metadata for the x402 paywall (network, recipient, per-call price)
seneschal_premium_opportunitiesEV-ranked at-risk borrowers with realised market intel (x402, paid)
seneschal_premium_builder_statsPer-builder bid distribution + hourly slot histogram for bundle pricing (x402, paid)
seneschal_qPenny Oracle dispatcher — atomic single facts across DeFi + Monero/Zcash, $0.001/call (x402, paid)
seneschal_private_watch_infoFree metadata for Private Watch: meter, supported chains, NFPT upstream health, security notes
seneschal_private_watch_createSubscribe an XMR/ZEC view key to webhook payment monitoring (x402, paid)
seneschal_private_watch_topupURL + body to top up an existing watch's credit ($0.10 / $1 / $5 tiers)
seneschal_private_watch_topup_cryptoFree quote to top up a watch by paying in Monero/Zcash; poll status until settled (no x402, no key)
seneschal_private_watch_historicalOne-off paid scan returning spendable + spent notes for a view key (x402, paid; key never persists)
seneschal_private_watch_derive_viewkeyFree, rate-limited Zcash UFVK derivation from a BIP-39 mnemonic (with a loud security warning)

REST endpoints

MethodPathNotes
GET/v1/healthLiveness + freshness probe
GET/v1/liquidations/atrisk?protocol&max_hf&min_debt_usd&limit
GET/v1/liquidations/recent?since_ms&protocol&limit
GET/v1/borrowers?protocol&min_hf&max_hf&min_debt_usd&max_debt_usd&sort_by&sort_dir&limit&offset
GET/v1/borrowers/:addressCross-protocol borrower snapshot
GET/v1/borrowers/:address/history`?protocol=aave
GET/v1/builders/leaderboard`?window=24h
GET/v1/stats/overviewAggregate snapshot for dashboards
GET/v1/flashloan/providers?chain&max_fee_bps&multi_asset

Full details, parameter tables, and worked examples at https://docs.seneschal.space.

Why this exists

Seneschal operates an Ethereum block builder (extra_data = Seneschal/0.1) and a vertically-integrated liquidation searcher. The searcher already tracks ~500 Morpho borrowers, 1,300+ Spark borrowers, every Aave V3 mainnet position with non-trivial debt, and the winning builder of every slot since May 2026. Nobody else publishes this combination, so we expose it.

Two protocols, one backend:

  • REST API — dashboards, monitoring tools, anything that speaks HTTP.
  • MCP server — AI agents (Claude, Cursor, Continue, etc.) using the Model Context Protocol.

Local dev

bash
git clone https://github.com/Rotwang9000/seneschal-data-apicd seneschal-data-apinpm installSENESCHAL_MEV_LOGS_DB=/path/to/your-mev-data.sqlite \SENESCHAL_MORPHO_BORROWERS=/path/to/morpho-borrowers.json \SENESCHAL_SPARK_BORROWERS=/path/to/spark-borrowers.json \SENESCHAL_SHADOW_BLOCKS=/path/to/shadow-blocks.jsonl \  node bin/rest.mjs# in another shell:curl http://127.0.0.1:8810/v1/health

Docker

A Dockerfile is provided for self-hosting the MCP server:

bash
docker build -t seneschal-data-api .docker run -p 8811:8811 -v /path/to/your-data:/data seneschal-data-api# point your MCP client at http://localhost:8811/

The data sources are SQLite + JSONL files written by the Seneschal bot. Schemas are documented in src/db.js; if you have your own writer producing the same shapes you can point this server at it.

Tests

bash
npm test

539 jest tests covering the query layer (in-memory SQLite fixtures), the Fastify REST routes (via fastify.inject), the MCP server (both in-process via InMemoryTransport and end-to-end via StreamableHTTPClientTransport), the x402 paywall + bazaar-discovery wiring, the Private Watch credit meter / poller / surge pricing, and the ops watchdog. Plus test/live-smoke.mjs which exercises the live mcp.seneschal.space endpoint over Streamable HTTP.

Architecture

services/data-api/   ← this repository├── bin/│   ├── rest.mjs                  systemd entry — Fastify REST listener│   └── mcp.mjs                   systemd entry — MCP HTTP listener├── src/│   ├── config.js                 env-driven config (ports, paths, limits)│   ├── db.js                     better-sqlite3 read-only handle + JSON cache│   ├── queries.js                pure functions used by both REST and MCP│   ├── rest-server.js            Fastify app: `buildApp()` for tests, `start()` for prod│   └── mcp-server.js             McpServer + StreamableHTTPServerTransport├── docs/                         public docs served at docs.seneschal.space└── test/                         queries / rest-server / mcp-server tests

Shared design rule: both REST and MCP layers are thin wrappers around queries.js. Any new endpoint goes in queries.js first (with tests), then both wrappers in the same commit.

Premium tier (x402 paywall)

src/queries-premium.js plus src/x402.js add per-call payment to a small family of /v1/premium/* endpoints (and seneschal_premium_* MCP tools). The paywall is off unless the operator sets X402_RECIPIENT_ADDRESS. Once set, unsigned requests get HTTP 402 with machine-readable payment requirements, and an x402 facilitator settles a signed EIP-3009 transferWithAuthorization for USDC on Base mainnet.

Configure

Env varDefaultNotes
X402_RECIPIENT_ADDRESS(empty — paywall off)Recipient wallet on the chosen network. 0x-prefixed 20-byte hex.
X402_NETWORKeip155:8453 (Base mainnet)Any CAIP-2 EVM network the facilitator supports.
COINBASE_API_KEY + COINBASE_API_SECRET(empty)Recommended. A CDP API key. When both are set, settlement routes through Coinbase's hosted facilitator (api.cdp.coinbase.com/platform/v2/x402) and the service is auto-listed in the Coinbase x402 Bazaar. No business/KYB verification needed; 1k free settlements/month. Accepts X402_CDP_API_KEY_ID / CDP_API_KEY_ID aliases.
X402_FACILITATOR_URLhttps://facilitator.openx402.aiFallback facilitator used only when no CDP credentials are set.
X402_FEED_PRICE$0.05Money-formatted ($0.05) or atomic units (50000).
X402_PAYWALL_DESCRIPTION…Shown on /, /v1/paywall, and the stats dashboard.
X402_MAX_TIMEOUT_SECONDS120Maximum settlement window per call.

Free metadata endpoint (zero cost, no signature required):

curl https://api.seneschal.space/v1/paywall

returns the live network/recipient/price/route table so agents can budget a session before opening a paid request.

Support

  • Per-call payments (preferred for agents): pay $0.05 USDC on Base to call GET /v1/premium/opportunities. See /v1/paywall for the live recipient + rails.
  • GitHub Sponsors: the Sponsor button at the top of the repo (.github/FUNDING.yml).
  • Direct tips: ETH / BTC addresses are surfaced on stats.seneschal.space once the operator sets SENESCHAL_DONATE_ETH / SENESCHAL_DONATE_BTC.
  • Questions / allow-list bumps: Telegram @OrknetP.

Seneschal runs on a single Helsinki box; every cent helps keep it online.

License

MIT — see LICENSE.

Operator contact

Seneschal is a single-operator Ethereum block builder and searcher running an rbuilder fork from a co-located server in Helsinki. Builder on-chain extra_data is Seneschal/0.1. Contact @OrknetP on Telegram (checked periodically).

來源:README.md,提交 c4d1f97

工具

0
SourceWeft 尚未讀取此伺服器的工具。

版本歷史

1
  1. v0.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式必需10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分