search_wiki
Search the wiki
Keyword search across the Caper knowledge base: the first call when you know what you are looking for but not where it lives. Matches titles and body prose, ranked in four tiers: titles starting with the term, titles containing it, literal body hits, then English full-text hits by relevance, which stem words and drop stopwords. Not semantic: one distinctive word beats a sentence. Each row carries a `path`, its size in `chars` and a snippet windowed on the match. Feed the paths to get_pages in one call rather than looping get_page. Narrow with tagPath when a term is common. Defaults: page 1, pageSize 20 (max 50); keep paging while `hasMore` is true.
輸入參數pagequery必填tagPathpageSize
One page of the Caper knowledge base in full: its text, version, update date and metadata. Address it by `path` ("tag/path/slug", exactly the `path` or `url` a listing returns), or by `tagPath` + `slug`; a category's own path reads its hub article. Not a title. For 2 to 20 pages call get_pages, one round trip rather than N. A miss names the nearest pages, so a wrong guess is fixed in one retry. A page's URL with `.md` appended is its markdown. With `blocks: true`, `content` is the stored block array, ids and all, beside the page `id` and its whole `metadata`: read a page this way before editing it, and send its `version` back as the edit's baseVersion.
輸入參數pathslugblockstagPath
get_pages
Read up to 20 pages
Batch read: 1 to 20 pages of the Caper knowledge base in full in one call, which is how to read search or listing results. Pass `paths` as the listings return them. Paths that do not exist come back in `missing` rather than failing the call, anything past 20 in `remaining`, and pages past `maxChars` (default 250000) in `omitted` with their sizes.
輸入參數paths必填maxChars
Browse the Caper knowledge base by tag path rather than by keyword: every page under a branch, newest first by default. `tagPath` matches the branch and everything beneath it; omit it to walk the whole wiki. Sort by title for an A–Z pass. Same rows as search_wiki, with `totalPages`, `hasMore` and `nextPage`. Defaults: page 1, pageSize 20 (max 100).
輸入參數pagesorttagPathpageSize
get_recent_changes
Recent changes
Pages of the Caper knowledge base edited within the last N days, newest first: what to poll when you are watching the wiki rather than reading it. Same rows as list_pages. Defaults: days 7 (max 30), limit 20 (max 50). `truncated: true` means the limit cut the list; raise it, or page through list_pages.
輸入參數dayslimit
get_page_history
Page history
A page's revisions in the Caper knowledge base, newest first: each one's `id`, version, change type, message, date and the blocks it changed. Address the page as get_page does. A revision `id` is what a restore takes, where this server has one. Defaults: limit 20 (max 100).
輸入參數pathsluglimittagPath
get_categories
List categories
The category tree of the Caper knowledge base, the cheapest way to orient before searching. Each node carries its `path` (a tagPath list_pages and search_wiki take), name, description, `pageCount` (pages filed at that path) and `pageCountDeep` (with every descendant). `tagPaths` lists every tag path that holds pages, including any the tree does not name.
無需輸入參數。
get_full_corpus
Whole corpus
The whole of the Caper knowledge base as one text document, for bulk ingestion. Preflight first: sizeOnly=true returns the character count, a token estimate, the per-branch breakdown and the largest pages. Then pull it with `maxChars` (default 200000, max 1000000), or one branch at a time with `tagPath`. Truncation is page-aligned: `truncated`, `omittedPages` and `nextSkip` say where to resume (pass skip=nextSkip). For a handful of pages get_pages is cheaper.
輸入參數skiptagPathmaxCharssizeOnly
Index of the DAOs on Caper: cashtag, name, description, member count, wiki URL, and that DAO's own MCP endpoint. Use it to resolve a name to a cashtag, then POST JSON-RPC to the returned `mcpEndpoint` to reach its get_ledger (treasury balances, proposal/trade/execution timeline, executed grants, inter-DAO funding) – this knowledge-base server deliberately has no ledger tool. `query` is a case-insensitive substring over cashtag, name and description. Defaults: limit 50 (max 200); `hasMore` says whether the cap cut the list.
輸入參數limitquery
get_challenge
Start a login
Step 1 of writing to Caper: a single-use ROLA challenge (5-minute expiry). The response includes the exact recipe for the message your Ed25519 key must sign. Writes are Stokenet-testnet only for now, and you always sign with your OWN key – nothing here custodies anything. Takes no parameters.
無需輸入參數。
login
Exchange a signed proof for a token
Step 2: exchange the signed ROLA proof for a 12h Bearer token – the same verification the human wallet flow runs. Send the returned token as an HTTP `Authorization: Bearer <token>` header on every later tool call; MCP arguments never carry it.
輸入參數curve必填address必填challenge必填publicKey必填signature必填
get_manifest
Build a transaction manifest
Step 3: a ready-to-sign transaction manifest. Kinds: create-caper, buy, sell, swap, create-proposal, vote, count, trigger, resolve, execute, activate-upgrade, exit, withdraw-founder, transfer-founder. Per-kind parameters – create-caper: name, cashtag, description, infoUrl?, iconUrl?, originToken? (resource address, vampire launch); buy: cashtag, xrd ($XRD to spend); sell: cashtag, tokens (caper tokens to sell); swap: from, to (cashtags), tokens (of `from` to sell) – one transaction that sells `from` into $XRD and buys `to` with it, so it pays the skim on both legs; create-proposal: cashtag, title, description, action (one action object, or an array of up to 4 the voters rank against an appended "Do nothing"; each { kind: "PAYOUT" | "INVEST" | "DIVEST" | "UPGRADE" | "METADATA" | "DEBATE", … }; METADATA rewrites the token's mutable metadata via metadataDescription/metadataIconUrl/metadataInfoUrl, at least one; DEBATE is a non-executable debate position, title and description only, terminal at the tally). Creation costs the proposal fee – 1% of the largest option's $XRD-equivalent amount, at least 500 $XRD – banked to the treasury and kept on pass or fail; vote: cashtag, proposalId (the P-… code), sequence (ranked on-chain option indexes, best first, including the trailing "Do nothing" index); count: cashtag, proposalId (the P-… code) – returns `manifests`, one or a volley to send at once; trigger, resolve: cashtag, proposalId (the P-… code); execute: cashtag, proposalId (the P-… code); for an UPGRADE this is step one of two, which records the candidate in the registry and starts its timelock; activate-upgrade: cashtag, proposalId (the P-… code) – step two of an UPGRADE, valid once the registry timelock lifts; refused before then with the time it lifts; exit: cashtag, votes? and tokens? (vote tokens to burn and caper tokens to sell, each defaulting to your whole balance) – one transaction that burns the vote tokens for your share of the treasury and sells the caper tok
輸入參數toxrdfromkind必填nametitlevotestokensaccount必填cashtagiconUrlinfoUrl另有 7 個
submit_tx
Register a committed transaction
Step 4: register a committed transaction by txHash. Kinds: create-caper, buy, sell, swap, proposal, vote, count, trigger, resolve, execute, activate-upgrade, exit, withdraw-founder, transfer-founder. The server verifies before mirroring anything: receipts are re-read on-ledger (forged or foreign txHashes are refused, replays are idempotent). Context per kind – create-caper, exit, withdraw-founder, transfer-founder: cashtag; proposal: proposalId; count, trigger, resolve, execute, activate-upgrade: code (the P-… code). Requires the Bearer token from the `login` tool, sent as an HTTP `Authorization: Bearer <token>` header on the POST carrying this call.
輸入參數codekind必填txHash必填cashtagproposalId
save_wiki_page
Create or edit a DAO wiki page
Create or edit a page on a DAO's company-layer wiki. Holders only – any amount of the DAO's token, its vote token or its founder badge. Pass the body as `html`, one HTML string that becomes a standard content block (headings, paragraphs, lists, tables), or as `blocks`, the block tree the site's editor saves. To edit an existing page, read it with get_page and `blocks: true` on the DAO's MCP server, revise those blocks, and pass its `version` as `baseVersion`: a page someone else changed since is refused rather than overwritten. `newSlug` moves an existing page to another slug in its tag path, with its history. Requires the Bearer token from the `login` tool, sent as an HTTP `Authorization: Bearer <token>` header on the POST carrying this call.
輸入參數htmlslug必填daoId必填title必填blocksnewSlugsummarytagPathbaseVersion
delete_wiki_page
Delete a DAO wiki page
Delete a page on a DAO's company-layer wiki, with its whole history and its Talk room. Holders only, the same gate as save_wiki_page. Nothing restores it, so read it first with get_page if it may be wanted. Requires the Bearer token from the `login` tool, sent as an HTTP `Authorization: Bearer <token>` header on the POST carrying this call.
輸入參數slug必填daoId必填tagPath
save_about
Write a DAO's About section
Write the About section on a DAO's own page: what the caper is for, who runs it and where to follow it. Holders only, the same gate as save_wiki_page. The section is replaced whole, so read the current one first: it is in the DAO's llms.txt and its MCP server's instructions. Pass the body as `html` or as `blocks`, as save_wiki_page takes them. Requires the Bearer token from the `login` tool, sent as an HTTP `Authorization: Bearer <token>` header on the POST carrying this call.
輸入參數htmldaoId必填blockssummary