Seneschal Data
Monero/Zcash payment webhooks + DeFi liquidation & Ethereum builder data over MCP. Free tier; x402.
我该使用它吗
质量与安全性
发现(8)
- HIGH
- MEDIUM在 seneschal_agent_directory 中
- LOW在 seneschal_private_watch_create_crypto 中
- LOW在 seneschal_private_watch_topup_crypto 中
- LOW在 seneschal_checkout_invoice_create 中
- LOW在 seneschal_checkout_invoice_status 中
- LOW在 seneschal_private_watch_historical 中
- LOW在 seneschal_private_watch_derive_viewkey 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"seneschal-data": {
"url": "https://mcp.seneschal.space/"
}
}
}远程端点
https://mcp.seneschal.space/streamable-http它能做什么
工具清单
工具(23)
⚪seneschal_health
Service liveness plus which privacy-chain backends (Monero, Zcash) are configured on this server.
输入模式
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡seneschal_paywall_info
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).
输入模式
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪seneschal_q(question, params)
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.
输入模式
{
"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#"
}🟢seneschal_private_watch_info
Returns the current price, supported chains, NFPT upstream health, and security notes for the view-key payment-monitoring service. Free to call.
输入模式
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡seneschal_private_watch_create(chain, address, viewKey, webhookUrl, birthdayHeight)
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.
输入模式
{
"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#"
}🟡seneschal_private_watch_topup(watchId, watchToken, tier)
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.
输入模式
{
"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#"
}🟡seneschal_private_watch_create_crypto(chain, address, viewKey, webhookUrl, birthdayHeight, ...)
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).
输入模式
{
"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#"
}🟡seneschal_private_watch_topup_crypto(watchId, watchToken, chain, amountUsdCents)
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.
输入模式
{
"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#"
}🟡seneschal_checkout_invoice_create(amountUsdCents, watchId, watchToken, checkoutKey, orderId, ...)
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.
输入模式
{
"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#"
}⚪seneschal_checkout_invoice_status(invoiceId)
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.
输入模式
{
"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#"
}🟢seneschal_private_watch_historical(chain, address, viewKey, birthdayHeight, toHeight, ...)
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.
输入模式
{
"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#"
}🟢seneschal_private_watch_derive_viewkey(chain, phrase, network)
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.
输入模式
{
"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#"
}🟡seneschal_board_list
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.
输入模式
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢seneschal_board_read(board, limit)
Return the ranked notices on a board (boosted first by decayed weight, then most recent). Free to call.
输入模式
{
"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#"
}🟡seneschal_board_post(board, title, body, handle, url, ...)
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.
输入模式
{
"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#"
}⚪seneschal_board_reply(board, id, body, title, handle, ...)
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.
输入模式
{
"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#"
}⚪seneschal_board_boost(board, id, amountAtomic)
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.
输入模式
{
"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#"
}🟢seneschal_zecmon_info
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.
输入模式
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢seneschal_zecmon_scan(ufvk, birthdayHeight, purgeCache, deepScan)
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.
输入模式
{
"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#"
}🟢seneschal_zecmon_scan_status(jobId, jobToken, includeNotes)
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.
输入模式
{
"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#"
}🔴seneschal_zecmon_scan_cancel(jobId, jobToken)
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.
输入模式
{
"type": "object",
"properties": {
"jobId": {
"type": "string",
"minLength": 1
},
"jobToken": {
"type": "string",
"minLength": 1
}
},
"required": [
"jobId",
"jobToken"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪seneschal_flashloan_providers(chain, max_fee_bps, multi_asset)
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.
输入模式
{
"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#"
}🟢seneschal_agent_directory(section, format, cursor)
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.
输入模式
{
"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#"
}社区
证据