{"serverId":"mcp-registry/io.github.kali123411/k402","tools":[{"name":"channel_status","fixed":{"name":"channel_status","description":"Status of a kaspa-channel by its channel id (covenant id): funded value, amount spent via\n    vouchers, remaining, expiry, and whether it has been closed on-chain. Free.","inputSchema":{"type":"object","title":"channel_statusArguments","required":["channel_id"],"properties":{"channel_id":{"type":"string","title":"Channel Id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":104,"tokensAfter":104},{"name":"covenant_address","fixed":{"name":"covenant_address","description":"Derive the covenant P2SH address for a compiled script on 'mainnet' or 'testnet-10'.\n    Paid (~$0.0003).","inputSchema":{"type":"object","title":"covenant_addressArguments","required":["script_hex"],"properties":{"network":{"type":"string","title":"Network","default":"mainnet"},"script_hex":{"type":"string","title":"Script Hex"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":105,"tokensAfter":105},{"name":"covenant_check","fixed":{"name":"covenant_check","description":"Local txscript pre-verify of a signed covenant tx BEFORE broadcast — catches script failures\n    that would otherwise cost you a broadcast. 'entries' are the spent UTXOs (covenant_utxos output\n    plugs in directly). Returns {all_ok, inputs:[{index, ok, error?}]}. Paid (~$0.0005).","inputSchema":{"type":"object","title":"covenant_checkArguments","required":["transaction","entries"],"properties":{"entries":{"type":"array","items":{},"title":"Entries"},"transaction":{"type":"object","title":"Transaction","additionalProperties":true}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":162,"tokensAfter":162},{"name":"job_status","fixed":{"name":"job_status","description":"Poll a proving job: queued/running/done/failed, queue position, cost. Free.","inputSchema":{"type":"object","title":"job_statusArguments","required":["job_id"],"properties":{"job_id":{"type":"string","title":"Job Id"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"kaspa_fee_estimate","fixed":{"name":"kaspa_fee_estimate","description":"Current Kaspa mainnet feerate buckets (sompi per gram of tx mass). Paid (~$0.00015).","inputSchema":{"type":"object","title":"kaspa_fee_estimateArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":60,"tokensAfter":60},{"name":"kaspa_tx_status","fixed":{"name":"kaspa_tx_status","description":"Mempool status of a Kaspa transaction. Absent from mempool means accepted-or-unknown —\n    confirm acceptance by checking one of its outputs with kaspa_utxos. Paid (~$0.00015).","inputSchema":{"type":"object","title":"kaspa_tx_statusArguments","required":["txid"],"properties":{"txid":{"type":"string","title":"Txid"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":101,"tokensAfter":101},{"name":"pay_per_call","fixed":{"name":"pay_per_call","description":"Complete a PER-CALL coin payment. After a paid tool returns a 402 with pay_per_call_offers,\n    pay one offer on-chain from your own wallet, then call this with the 402's `endpoint` and\n    `request_body`, the chosen offer's `scheme` and `payment_id`, and your payment `txid`. The\n    gateway verifies the payment landed and returns the tool's real result. (Alternative to a\n    prepaid session — use this when you'd rather pay each call directly in a specific coin.)","inputSchema":{"type":"object","title":"pay_per_callArguments","required":["endpoint","request_body","scheme","payment_id","txid"],"properties":{"txid":{"type":"string","title":"Txid"},"scheme":{"type":"string","title":"Scheme"},"endpoint":{"type":"string","title":"Endpoint"},"payment_id":{"type":"string","title":"Payment Id"},"request_body":{"type":"object","title":"Request Body","additionalProperties":true}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":258,"tokensAfter":258},{"name":"payment_options","fixed":{"name":"payment_options","description":"Which coins and schemes this gateway accepts for payment. Free. Ways to pay any paid tool:\n    a prepaid KAS session (open_session — simplest, no per-call step); per-call in any listed coin\n    (pay the offer a 402 returns, then pay_per_call); or, where the experimental 'kaspa-channel'\n    scheme is offered, a covenant payment channel that settles per-call vouchers on L1 with no\n    custodian (see channel_config). Coins may include Kaspa, Pearl, BTC, LTC, DOGE, BCH, DASH, and\n    EVM assets (ETC","inputSchema":{"type":"object","title":"payment_optionsArguments","properties":{}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":176,"tokensAfter":176},{"name":"prove_guest_upload","fixed":{"name":"prove_guest_upload","description":"Upload a RISC Zero program binary (the .bin risc0-build emits, base64) once; returns its\n    content-addressed image_id (also the verification key), reusable across proofs. Paid (~$0.01).","inputSchema":{"type":"object","title":"prove_guest_uploadArguments","required":["program_b64"],"properties":{"program_b64":{"type":"string","title":"Program B64"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":112,"tokensAfter":112},{"name":"prove_submit","fixed":{"name":"prove_submit","description":"Queue a proving job -> {job_id, cost_kas}. Pass quote_id (from prove_preflight; charged the\n    quote) or max_kas (skip preflight; priced on actual cycles, refuses if over the cap). Then poll\n    job_status and fetch job_result. Paid: the proof's cycle-based price (dynamic).","inputSchema":{"type":"object","title":"prove_submitArguments","required":["image_id"],"properties":{"max_kas":{"type":"number","title":"Max Kas","default":0},"image_id":{"type":"string","title":"Image Id"},"quote_id":{"type":"string","title":"Quote Id","default":""},"input_b64":{"type":"string","title":"Input B64","default":""}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":181,"tokensAfter":181},{"name":"read_url","fixed":{"name":"read_url","description":"Fetch a public web page and return its title + clean markdown; distill=true adds key-fact\n    bullets. Useful when you have no web access of your own. Paid (~$0.0012 in KAS).","inputSchema":{"type":"object","title":"read_urlArguments","required":["url"],"properties":{"url":{"type":"string","title":"Url"},"distill":{"type":"boolean","title":"Distill","default":false}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":113,"tokensAfter":113},{"name":"registry_search","fixed":{"name":"registry_search","description":"Discover providers in the k402 service exchange — an open marketplace of agent-payable\n    services, each settled trustlessly over a Kaspa payment channel directly with the provider (no\n    custodian). Filter by capability (e.g. 'summarize', 'llm:reason', 'zk-prove'), max USD price,\n    and minimum reputation (settled KAS volume, chain-verified). Results are ranked reputation-first.\n    Free. Returns each provider's endpoint, payee pubkey, price, channel terms, and reputation.","inputSchema":{"type":"object","title":"registry_searchArguments","properties":{"limit":{"type":"integer","title":"Limit","default":20},"capability":{"type":"string","title":"Capability","default":""},"max_price_usd":{"type":"number","title":"Max Price Usd","default":0},"min_reputation_kas":{"type":"number","title":"Min Reputation Kas","default":0}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":245,"tokensAfter":245},{"name":"search_index","fixed":{"name":"search_index","description":"Store documents [{id, text, meta?}] in a named server-side collection for semantic search.\n    Use an unguessable collection name and keep it secret. Paid (~$0.0015 in KAS).","inputSchema":{"type":"object","title":"search_indexArguments","required":["collection","documents"],"properties":{"replace":{"type":"boolean","title":"Replace","default":false},"documents":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Documents"},"collection":{"type":"string","title":"Collection"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":153,"tokensAfter":153},{"name":"search_query","fixed":{"name":"search_query","description":"Semantic-search a collection you indexed earlier; returns top-k matches with scores.\n    Paid (~$0.0003 in KAS).","inputSchema":{"type":"object","title":"search_queryArguments","required":["collection","q"],"properties":{"q":{"type":"string","title":"Q"},"top_k":{"type":"integer","title":"Top K","default":5},"collection":{"type":"string","title":"Collection"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":112,"tokensAfter":112},{"name":"session_status","fixed":{"name":"session_status","description":"Check the current payment session: deposit address, deposited / spent / remaining KAS.\n    Free.","inputSchema":{"type":"object","title":"session_statusArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":62,"tokensAfter":62},{"name":"summarize","fixed":{"name":"summarize","description":"Summarize text or a public URL in at most max_words. Paid (~$0.001 in KAS).","inputSchema":{"type":"object","title":"summarizeArguments","properties":{"url":{"type":"string","title":"Url","default":""},"text":{"type":"string","title":"Text","default":""},"max_words":{"type":"integer","title":"Max Words","default":150}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":100,"tokensAfter":100}],"toolsChanged":16,"tokensSaved":0,"todo":[{"tool":"attest_verify","params":["image_id","receipt_b64"]},{"tool":"channel_status","params":["channel_id"]},{"tool":"classify","params":["text","multi","labels"]},{"tool":"covenant_address","params":["network","script_hex"]},{"tool":"covenant_broadcast","params":["network","transaction"]},{"tool":"covenant_build","params":["inputs","network","outputs","lock_time","payload_hex"]},{"tool":"covenant_check","params":["entries","transaction"]},{"tool":"covenant_compile","params":["source","constructor_args"]},{"tool":"covenant_utxos","params":["address","network","covenant_id"]},{"tool":"embed_text","params":["texts"]},{"tool":"extract","params":["text","schema","instruction"]},{"tool":"generate","params":["tier","prompt","system","max_tokens"]},{"tool":"job_result","params":["job_id"]},{"tool":"job_status","params":["job_id"]},{"tool":"kaspa_balance","params":["address"]},{"tool":"kaspa_tx_status","params":["txid"]},{"tool":"kaspa_utxos","params":["address"]},{"tool":"pay_per_call","params":["txid","scheme","endpoint","payment_id","request_body"]},{"tool":"prove_guest_upload","params":["program_b64"]},{"tool":"prove_preflight","params":["image_id","input_b64"]},{"tool":"prove_submit","params":["max_kas","image_id","quote_id","input_b64"]},{"tool":"read_url","params":["url","distill"]},{"tool":"registry_provider","params":["payee_pubkey"]},{"tool":"registry_search","params":["limit","capability","max_price_usd","min_reputation_kas"]},{"tool":"rewrite","params":["text","instruction"]},{"tool":"search_index","params":["replace","documents","collection"]},{"tool":"search_query","params":["q","top_k","collection"]},{"tool":"summarize","params":["url","text","max_words"]},{"tool":"use_session","params":["session"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}