{"serverId":"mcp-registry/io.github.tonresistor/resistance-tools-mcp","tools":[{"name":"auth.policy","fixed":{"name":"auth_policy","description":"Return public MCP auth flows, scopes, safety controls, retention, and confirmation rules.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"MCP auth and safety policy"},"changes":[{"kind":"name","detail":"Renamed \"auth.policy\" → \"auth_policy\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":49,"tokensAfter":49},{"name":"auth.status","fixed":{"name":"auth_status","description":"Return whether this MCP session is authenticated.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"title":"MCP auth status"},"changes":[{"kind":"name","detail":"Renamed \"auth.status\" → \"auth_status\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":38,"tokensAfter":38},{"name":"deployments.list","fixed":{"name":"deployments_list","description":"List retained deployments across the owner's sites.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"List deployments"},"changes":[{"kind":"name","detail":"Renamed \"deployments.list\" → \"deployments_list\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":40,"tokensAfter":40},{"name":"dns.lookup","fixed":{"name":"dns_lookup","description":"Lookup public TON DNS status and records for a .ton name.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["name"],"properties":{"name":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Lookup TON DNS name"},"changes":[{"kind":"name","detail":"Renamed \"dns.lookup\" → \"dns_lookup\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":79,"tokensAfter":79},{"name":"dns.send_name_tx","fixed":{"name":"dns_send_name_tx","description":"Return one HTTPS page for a validated .ton mint, auction bid, or expired-name release transaction.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["domain","action"],"properties":{"action":{"enum":["mint","bid","release"],"type":"string"},"domain":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"title":"Create TON DNS name confirmation link"},"changes":[{"kind":"name","detail":"Renamed \"dns.send_name_tx\" → \"dns_send_name_tx\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":112,"tokensAfter":112},{"name":"dns.send_record_tx","fixed":{"name":"dns_send_record_tx","description":"Revalidate indexed ownership and return one HTTPS page where the user reviews and confirms the exact TON DNS record transaction.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["domain","kind"],"properties":{"kind":{"enum":["wallet","site","storage","resolver","text","adnl","other"],"type":"string"},"value":{"type":["string","null"]},"domain":{"type":"string","minLength":1},"keyName":{"type":"string"},"valueKind":{"$ref":"#/properties/kind"},"rawCategory":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"title":"Create DNS record confirmation link"},"changes":[{"kind":"name","detail":"Renamed \"dns.send_record_tx\" → \"dns_send_record_tx\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":167,"tokensAfter":167},{"name":"dns.send_renew_tx","fixed":{"name":"dns_send_renew_tx","description":"Revalidate one to four owned .ton names and return one HTTPS page for a single TON Connect multi-message confirmation.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"string","minLength":1},"maxItems":4,"minItems":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"title":"Create TON DNS renewal confirmation link"},"changes":[{"kind":"name","detail":"Renamed \"dns.send_renew_tx\" → \"dns_send_renew_tx\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"dns.send_transfer_tx","fixed":{"name":"dns_send_transfer_tx","description":"Revalidate ownership of a root .ton name or .t.me Username and return one HTTPS page to confirm its NFT transfer to newOwner. The user signs in their wallet.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["domain","newOwner"],"properties":{"domain":{"type":"string","minLength":1},"newOwner":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":true},"title":"Create domain transfer confirmation link"},"changes":[{"kind":"name","detail":"Renamed \"dns.send_transfer_tx\" → \"dns_send_transfer_tx\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":125,"tokensAfter":125},{"name":"domains.list","fixed":{"name":"domains_list","description":"List .ton domains owned by the authorized wallet.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"List owned domains"},"changes":[{"kind":"name","detail":"Renamed \"domains.list\" → \"domains_list\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":39,"tokensAfter":39},{"name":"domains.list_usernames","fixed":{"name":"domains_list_usernames","description":"List .t.me Telegram Usernames owned by the authorized wallet, filtered by its domain delegation.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"List owned Telegram Usernames"},"changes":[{"kind":"name","detail":"Renamed \"domains.list_usernames\" → \"domains_list_usernames\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":54,"tokensAfter":54},{"name":"domains.records","fixed":{"name":"domains_records","description":"Read DNS records for an owned .ton domain or .t.me Telegram Username.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["domain"],"properties":{"domain":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Read domain records"},"changes":[{"kind":"name","detail":"Renamed \"domains.records\" → \"domains_records\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":85,"tokensAfter":85},{"name":"mcp.access.list","fixed":{"name":"mcp_access_list","description":"List MCP consents and redacted active sessions for the authenticated owner wallet.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"List MCP access"},"changes":[{"kind":"name","detail":"Renamed \"mcp.access.list\" → \"mcp_access_list\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":49,"tokensAfter":49},{"name":"mcp.access.revoke_consent","fixed":{"name":"mcp_access_revoke_consent","description":"Revoke one MCP consent by id and invalidate matching access/refresh tokens.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["consentId","confirmConsentId"],"properties":{"consentId":{"type":"string","minLength":1},"confirmConsentId":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":true},"title":"Revoke MCP consent"},"changes":[{"kind":"name","detail":"Renamed \"mcp.access.revoke_consent\" → \"mcp_access_revoke_consent\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"mcp.audit.list","fixed":{"name":"mcp_audit_list","description":"List recent redacted MCP audit events for the authenticated owner wallet.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"since":{"type":"string","minLength":1},"method":{"type":"string","minLength":1},"resultStatus":{"enum":["success","error"],"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"List MCP audit events"},"changes":[{"kind":"name","detail":"Renamed \"mcp.audit.list\" → \"mcp_audit_list\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"mcp.audit.summary","fixed":{"name":"mcp_audit_summary","description":"Return owner-scoped aggregate MCP audit metrics without raw headers or request bodies.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"windowHours":{"type":"integer","maximum":720,"minimum":1},"topMethodsLimit":{"type":"integer","maximum":50,"minimum":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Summarize MCP audit events"},"changes":[{"kind":"name","detail":"Renamed \"mcp.audit.summary\" → \"mcp_audit_summary\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":106,"tokensAfter":106},{"name":"media.upload_image","fixed":{"name":"media_upload_image","description":"Upload one PNG, JPEG, GIF, or WebP image to the authenticated owner's template media store.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["contentBase64"],"properties":{"contentBase64":{"type":"string","maxLength":11184812,"minLength":4}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"title":"Upload template image"},"changes":[{"kind":"name","detail":"Renamed \"media.upload_image\" → \"media_upload_image\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":101,"tokensAfter":101},{"name":"sites.attach_domain","fixed":{"name":"sites_attach_domain","description":"Attach an already DNS-linked domain after preflight. Confirm site and full domain exactly. Pass the reviewed expectedConflictSiteId when moving a domain; deleting its source site additionally requires confirmDeleteSourceSiteId and sites:delete. All affected sites must be owned and delegated. Does not sign or change DNS records.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["site","domain","confirmSite","confirmDomain"],"properties":{"site":{"type":"string","minLength":1},"domain":{"type":"string","minLength":1},"confirmSite":{"type":"string","minLength":1},"confirmDomain":{"type":"string","minLength":1},"expectedConflictSiteId":{"anyOf":[{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991,"exclusiveMinimum":0},{"type":"null"}]},"confirmDeleteSourceSiteId":{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991,"exclusiveMinimum":0}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":true},"title":"Attach a domain to an owned site"},"changes":[{"kind":"name","detail":"Renamed \"sites.attach_domain\" → \"sites_attach_domain\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":280,"tokensAfter":280},{"name":"sites.delete","fixed":{"name":"sites_delete","description":"Delete an owned TON Site deployment and served files.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["site","confirmSite"],"properties":{"site":{"type":"string","minLength":1},"confirmSite":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":true},"title":"Delete site"},"changes":[{"kind":"name","detail":"Renamed \"sites.delete\" → \"sites_delete\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"sites.get_content","fixed":{"name":"sites_get_content","description":"Read the stored template/content metadata for an owned site.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["site"],"properties":{"site":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Get site template content"},"changes":[{"kind":"name","detail":"Renamed \"sites.get_content\" → \"sites_get_content\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":82,"tokensAfter":82},{"name":"sites.list","fixed":{"name":"sites_list","description":"List TON Sites owned by the authorized wallet.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"List TON Sites"},"changes":[{"kind":"name","detail":"Renamed \"sites.list\" → \"sites_list\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":37,"tokensAfter":37},{"name":"sites.list_domains","fixed":{"name":"sites_list_domains","description":"List the domains and current DNS status of an owned site. Accepts a site name or stable site ID and enforces site/domain delegation limits.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["site"],"properties":{"site":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"List domains attached to a site"},"changes":[{"kind":"name","detail":"Renamed \"sites.list_domains\" → \"sites_list_domains\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":104,"tokensAfter":104},{"name":"sites.list_releases","fixed":{"name":"sites_list_releases","description":"List retained releases for an owned site.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["site"],"properties":{"site":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"List site releases"},"changes":[{"kind":"name","detail":"Renamed \"sites.list_releases\" → \"sites_list_releases\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":77,"tokensAfter":77},{"name":"sites.preflight_domain","fixed":{"name":"sites_preflight_domain","description":"Read current ownership, DNS linkage and conflicts before attaching a .ton, .t.me or supported subdomain to an owned site. No mapping or DNS record is changed.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["site","domain"],"properties":{"site":{"type":"string","minLength":1},"domain":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Check a domain before attaching it"},"changes":[{"kind":"name","detail":"Renamed \"sites.preflight_domain\" → \"sites_preflight_domain\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"sites.publish_files","fixed":{"name":"sites_publish_files","description":"Deploy or update an owned TON Site from explicit file contents.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["site","files"],"properties":{"site":{"type":"string","minLength":1},"files":{"type":"array","items":{"type":"object","required":["path"],"properties":{"path":{"type":"string","minLength":1},"text":{"type":"string"},"contentBase64":{"type":"string"}},"additionalProperties":false},"minItems":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":true},"title":"Publish site files"},"changes":[{"kind":"name","detail":"Renamed \"sites.publish_files\" → \"sites_publish_files\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":148,"tokensAfter":148},{"name":"sites.publish_template","fixed":{"name":"sites_publish_template","description":"Validate, render, and publish a template-based TON Site.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["site","template"],"properties":{"site":{"type":"string","minLength":1},"content":{"type":"string"},"template":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":true},"title":"Publish template site"},"changes":[{"kind":"name","detail":"Renamed \"sites.publish_template\" → \"sites_publish_template\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true},{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: content. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":100,"tokensAfter":105},{"name":"sites.rollback","fixed":{"name":"sites_rollback","description":"Rollback an owned TON Site to a retained release.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["site","releaseId","confirmSite"],"properties":{"site":{"type":"string","minLength":1},"releaseId":{"type":"string","minLength":1},"confirmSite":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":true},"title":"Rollback site"},"changes":[{"kind":"name","detail":"Renamed \"sites.rollback\" → \"sites_rollback\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"sites.send_link_tx","fixed":{"name":"sites_send_link_tx","description":"Validate indexed ownership and return one HTTPS page where the user reviews and confirms the exact TON DNS site transaction with TON Connect.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["site"],"properties":{"site":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"title":"Create TON Site confirmation link"},"changes":[{"kind":"name","detail":"Renamed \"sites.send_link_tx\" → \"sites_send_link_tx\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":104,"tokensAfter":104},{"name":"sites.unlink_domain","fixed":{"name":"sites_unlink_domain","description":"Detach a domain after its DNS site record no longer points to this site (or it changed owner). Confirm site and full domain exactly. Removing the last domain deletes the site and requires confirmDeleteSite plus sites:delete; cleanup of a Storage-hosted site also requires storage:delete and bag delegation. Does not sign or change DNS records.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["site","domain","confirmSite","confirmDomain"],"properties":{"site":{"type":"string","minLength":1},"domain":{"type":"string","minLength":1},"confirmSite":{"type":"string","minLength":1},"confirmDomain":{"type":"string","minLength":1},"confirmDeleteSite":{"type":"boolean"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":true},"title":"Detach a domain from an owned site"},"changes":[{"kind":"name","detail":"Renamed \"sites.unlink_domain\" → \"sites_unlink_domain\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":220,"tokensAfter":220},{"name":"storage.bag_details","fixed":{"name":"storage_bag_details","description":"Read metadata and live state for an owned TON Storage bag.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["bagId"],"properties":{"bagId":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Read TON Storage bag details"},"changes":[{"kind":"name","detail":"Renamed \"storage.bag_details\" → \"storage_bag_details\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":82,"tokensAfter":82},{"name":"storage.create_bag","fixed":{"name":"storage_create_bag","description":"Create and seed a new TON Storage bag from explicit file contents.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["files"],"properties":{"name":{"type":"string"},"files":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"path":{"type":"string","minLength":1},"text":{"type":"string"},"contentBase64":{"type":"string"}},"additionalProperties":false},"minItems":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"title":"Create TON Storage bag"},"changes":[{"kind":"name","detail":"Renamed \"storage.create_bag\" → \"storage_create_bag\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":148,"tokensAfter":148},{"name":"storage.delete_bag","fixed":{"name":"storage_delete_bag","description":"Delete an owned TON Storage bag reference and remove platform-seeded bytes when safe.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["bagId","confirmBagId"],"properties":{"bagId":{"type":"string","minLength":1},"confirmBagId":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":true},"title":"Delete TON Storage bag"},"changes":[{"kind":"name","detail":"Renamed \"storage.delete_bag\" → \"storage_delete_bag\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":107,"tokensAfter":107},{"name":"storage.list_bags","fixed":{"name":"storage_list_bags","description":"List TON Storage bags owned by the authorized wallet.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"List TON Storage bags"},"changes":[{"kind":"name","detail":"Renamed \"storage.list_bags\" → \"storage_list_bags\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":41,"tokensAfter":41},{"name":"storage.pin_bag","fixed":{"name":"storage_pin_bag","description":"Pin/import an existing public TON Storage bag by bag id.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["bagId"],"properties":{"name":{"type":"string"},"bagId":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"title":"Pin TON Storage bag"},"changes":[{"kind":"name","detail":"Renamed \"storage.pin_bag\" → \"storage_pin_bag\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":87,"tokensAfter":87},{"name":"storage.provider_funding_preview","fixed":{"name":"storage_provider_funding_preview","description":"Calculate exact integer funding and coverage from a live provider session.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["bagId","sessionId","targetCoverageSeconds","proofSpanSeconds"],"properties":{"bagId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"proofSpanSeconds":{"type":"integer","exclusiveMinimum":0},"targetCoverageSeconds":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Preview provider funding"},"changes":[{"kind":"name","detail":"Renamed \"storage.provider_funding_preview\" → \"storage_provider_funding_preview\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":160,"tokensAfter":160},{"name":"storage.provider_funding_session","fixed":{"name":"storage_provider_funding_session","description":"Freeze a short-lived live provider and shared-balance snapshot for an owned bag.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["bagId","providerPubkeys"],"properties":{"bagId":{"type":"string","minLength":1},"providerPubkeys":{"type":"array","items":{"type":"string","maxLength":64,"minLength":64},"minItems":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Create provider funding session"},"changes":[{"kind":"name","detail":"Renamed \"storage.provider_funding_session\" → \"storage_provider_funding_session\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":126,"tokensAfter":126},{"name":"storage.provider_operation","fixed":{"name":"storage_provider_operation","description":"Read and reconcile one paid TON Storage provider operation.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["providerOperationId"],"properties":{"providerOperationId":{"type":"string","format":"uuid"}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Read provider operation"},"changes":[{"kind":"name","detail":"Renamed \"storage.provider_operation\" → \"storage_provider_operation\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":93,"tokensAfter":93},{"name":"storage.provider_quote","fixed":{"name":"storage_provider_quote","description":"Create the signed backend quote that will be revalidated before a provider confirmation link is returned.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["bagId","sessionId","targetCoverageSeconds","proofSpanSeconds"],"properties":{"bagId":{"type":"string","minLength":1},"sessionId":{"type":"string","minLength":1},"proofSpanSeconds":{"type":"integer","exclusiveMinimum":0},"targetCoverageSeconds":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Create provider quote"},"changes":[{"kind":"name","detail":"Renamed \"storage.provider_quote\" → \"storage_provider_quote\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":165,"tokensAfter":165},{"name":"storage.providers","fixed":{"name":"storage_providers","description":"List backend-verified providers compatible with an owned TON Storage bag.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["bagId"],"properties":{"sort":{"enum":["recommended","cheapest","uptime","capacity"],"type":"string"},"bagId":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"List paid Storage providers"},"changes":[{"kind":"name","detail":"Renamed \"storage.providers\" → \"storage_providers\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":108,"tokensAfter":108},{"name":"storage.send_bag_link_tx","fixed":{"name":"storage_send_bag_link_tx","description":"Validate bag and domain ownership, then return one HTTPS page for the exact TON Storage DNS site transaction.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["bagId","domain"],"properties":{"bagId":{"type":"string","minLength":1},"domain":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"title":"Create Storage-backed site confirmation link"},"changes":[{"kind":"name","detail":"Renamed \"storage.send_bag_link_tx\" → \"storage_send_bag_link_tx\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":112,"tokensAfter":112},{"name":"storage.send_provider_tx","fixed":{"name":"storage_send_provider_tx","description":"Revalidate the live contract, providers, shared balance, and exact amount before returning one HTTPS pin, top-up, stop, or withdraw confirmation page.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["action","bagId"],"properties":{"bagId":{"type":"string","minLength":1},"action":{"enum":["pin","top_up","stop","withdraw"],"type":"string"},"quoteId":{"type":"string","minLength":1},"providerPubkey":{"type":"string","maxLength":64,"minLength":64},"targetCoverageSeconds":{"type":"integer","exclusiveMinimum":0},"acknowledgeOtherProviders":{"type":"boolean"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":true},"title":"Create paid Storage provider confirmation link"},"changes":[{"kind":"name","detail":"Renamed \"storage.send_provider_tx\" → \"storage_send_provider_tx\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":191,"tokensAfter":191},{"name":"subdomains.collection_action_tx","fixed":{"name":"subdomains_collection_action_tx","description":"Revalidate current collection or parent rights and return one HTTPS management transaction confirmation page.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["collectionAddress","action"],"properties":{"label":{"type":"string"},"action":{"enum":["withdraw_fees","set_access","set_allowlist","set_label_reserved","transfer_admin","link_resolver","unlink_resolver","enforce_resolver","fill_parent","claim","claim_revenue","convert_locked","retry_parent_return"],"type":"string"},"wallet":{"type":"string"},"allowed":{"type":"boolean"},"newAdmin":{"type":"string"},"reserved":{"type":"boolean"},"accessMode":{"enum":["public","allowlist","admin_only"],"type":"string"},"collectionAddress":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":true},"title":"Create Subdomain action confirmation link"},"changes":[{"kind":"name","detail":"Renamed \"subdomains.collection_action_tx\" → \"subdomains_collection_action_tx\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":238,"tokensAfter":238},{"name":"subdomains.control","fixed":{"name":"subdomains_control","description":"Read fresh collection authorization and parent-return state for the authenticated wallet.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["collectionAddress"],"properties":{"collectionAddress":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Read Subdomain control state"},"changes":[{"kind":"name","detail":"Renamed \"subdomains.control\" → \"subdomains_control\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":97,"tokensAfter":97},{"name":"subdomains.create_collection_tx","fixed":{"name":"subdomains_create_collection_tx","description":"Revalidate parent ownership, create collection metadata, and return one HTTPS transaction confirmation page.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["parentAddress","mode","priceGrid","minChars"],"properties":{"mode":{"enum":["locked","linked"],"type":"string"},"minChars":{"type":"integer","maximum":4,"minimum":1},"priceGrid":{"type":"array","items":{"type":"string","pattern":"^\\d+$"},"maxItems":11,"minItems":11},"parentAddress":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"title":"Create Subdomain collection confirmation link"},"changes":[{"kind":"name","detail":"Renamed \"subdomains.create_collection_tx\" → \"subdomains_create_collection_tx\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":170,"tokensAfter":170},{"name":"subdomains.get_collection","fixed":{"name":"subdomains_get_collection","description":"Read a fresh collection snapshot when the authenticated wallet holds collection or parent rights.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["collectionAddress"],"properties":{"collectionAddress":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Read Subdomain collection"},"changes":[{"kind":"name","detail":"Renamed \"subdomains.get_collection\" → \"subdomains_get_collection\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":101,"tokensAfter":101},{"name":"subdomains.get_item","fixed":{"name":"subdomains_get_item","description":"Read a Subdomain NFT item owned by the authenticated wallet.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["itemAddress"],"properties":{"itemAddress":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Read owned Subdomain item"},"changes":[{"kind":"name","detail":"Renamed \"subdomains.get_item\" → \"subdomains_get_item\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":86,"tokensAfter":86},{"name":"subdomains.list_collections","fixed":{"name":"subdomains_list_collections","description":"List TON Subdomain collections controlled by the authenticated wallet.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"cursor":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"List owned Subdomain collections"},"changes":[{"kind":"name","detail":"Renamed \"subdomains.list_collections\" → \"subdomains_list_collections\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":97,"tokensAfter":97},{"name":"subdomains.list_items","fixed":{"name":"subdomains_list_items","description":"List TON Subdomain NFT items owned by the authenticated wallet.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"cursor":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"List owned Subdomain items"},"changes":[{"kind":"name","detail":"Renamed \"subdomains.list_items\" → \"subdomains_list_items\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":93,"tokensAfter":93},{"name":"subdomains.mint_tx","fixed":{"name":"subdomains_mint_tx","description":"Revalidate availability and access, build metadata, and return one HTTPS mint or pending-mint confirmation page.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["collectionAddress","parent","label"],"properties":{"label":{"type":"string","minLength":1},"parent":{"type":"string","minLength":1},"collectionAddress":{"type":"string","minLength":1},"setWalletToMinter":{"type":"boolean"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"title":"Create Subdomain mint confirmation link"},"changes":[{"kind":"name","detail":"Renamed \"subdomains.mint_tx\" → \"subdomains_mint_tx\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":142,"tokensAfter":142},{"name":"subdomains.recovery_tx","fixed":{"name":"subdomains_recovery_tx","description":"Re-derive an owned collection and return one HTTPS page for its deployment or resolver recovery transaction.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["parentAddress","mode","action"],"properties":{"mode":{"enum":["locked","linked"],"type":"string"},"action":{"enum":["retry_deployment","link_resolver","enforce_resolver"],"type":"string"},"parentAddress":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":false},"title":"Create Subdomain recovery confirmation link"},"changes":[{"kind":"name","detail":"Renamed \"subdomains.recovery_tx\" → \"subdomains_recovery_tx\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"subdomains.transfer_item_tx","fixed":{"name":"subdomains_transfer_item_tx","description":"Revalidate current NFT ownership and return one HTTPS Subdomain item transfer confirmation page.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["itemAddress","newOwner"],"properties":{"newOwner":{"type":"string","minLength":1},"itemAddress":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"openWorldHint":true,"idempotentHint":false,"destructiveHint":true},"title":"Create Subdomain transfer confirmation link"},"changes":[{"kind":"name","detail":"Renamed \"subdomains.transfer_item_tx\" → \"subdomains_transfer_item_tx\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":113,"tokensAfter":113},{"name":"wallet.me","fixed":{"name":"wallet_me","description":"Return the authenticated MCP owner/actor wallet context.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"title":"Wallet context"},"changes":[{"kind":"name","detail":"Renamed \"wallet.me\" → \"wallet_me\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true}],"tokensBefore":40,"tokensAfter":40}],"toolsChanged":51,"tokensSaved":0,"todo":[{"tool":"dns_lookup","params":["name"]},{"tool":"dns_send_name_tx","params":["action","domain"]},{"tool":"dns_send_record_tx","params":["kind","value","domain","keyName","valueKind","rawCategory"]},{"tool":"dns_send_renew_tx","params":["domains"]},{"tool":"dns_send_transfer_tx","params":["domain","newOwner"]},{"tool":"domains_records","params":["domain"]},{"tool":"mcp_access_revoke_consent","params":["consentId","confirmConsentId"]},{"tool":"mcp_audit_list","params":["limit","since","method","resultStatus"]},{"tool":"mcp_audit_summary","params":["windowHours","topMethodsLimit"]},{"tool":"media_upload_image","params":["contentBase64"]},{"tool":"sites_attach_domain","params":["site","domain","confirmSite","confirmDomain","expectedConflictSiteId","confirmDeleteSourceSiteId"]},{"tool":"sites_delete","params":["site","confirmSite"]},{"tool":"sites_get_content","params":["site"]},{"tool":"sites_list_domains","params":["site"]},{"tool":"sites_list_releases","params":["site"]},{"tool":"sites_preflight_domain","params":["site","domain"]},{"tool":"sites_publish_files","params":["site","files"]},{"tool":"sites_publish_template","params":["site","content","template"]},{"tool":"sites_rollback","params":["site","releaseId","confirmSite"]},{"tool":"sites_send_link_tx","params":["site"]},{"tool":"sites_unlink_domain","params":["site","domain","confirmSite","confirmDomain","confirmDeleteSite"]},{"tool":"storage_bag_details","params":["bagId"]},{"tool":"storage_create_bag","params":["name","files"]},{"tool":"storage_delete_bag","params":["bagId","confirmBagId"]},{"tool":"storage_pin_bag","params":["name","bagId"]},{"tool":"storage_provider_funding_preview","params":["bagId","sessionId","proofSpanSeconds","targetCoverageSeconds"]},{"tool":"storage_provider_funding_session","params":["bagId","providerPubkeys"]},{"tool":"storage_provider_operation","params":["providerOperationId"]},{"tool":"storage_provider_quote","params":["bagId","sessionId","proofSpanSeconds","targetCoverageSeconds"]},{"tool":"storage_providers","params":["sort","bagId"]},{"tool":"storage_send_bag_link_tx","params":["bagId","domain"]},{"tool":"storage_send_provider_tx","params":["bagId","action","quoteId","providerPubkey","targetCoverageSeconds","acknowledgeOtherProviders"]},{"tool":"subdomains_collection_action_tx","params":["label","action","wallet","allowed","newAdmin","reserved","accessMode","collectionAddress"]},{"tool":"subdomains_control","params":["collectionAddress"]},{"tool":"subdomains_create_collection_tx","params":["mode","minChars","priceGrid","parentAddress"]},{"tool":"subdomains_get_collection","params":["collectionAddress"]},{"tool":"subdomains_get_item","params":["itemAddress"]},{"tool":"subdomains_list_collections","params":["limit","cursor"]},{"tool":"subdomains_list_items","params":["limit","cursor"]},{"tool":"subdomains_mint_tx","params":["label","parent","collectionAddress","setWalletToMinter"]},{"tool":"subdomains_recovery_tx","params":["mode","action","parentAddress"]},{"tool":"subdomains_transfer_item_tx","params":["newOwner","itemAddress"]}],"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."}