Resistance Tools

io.github.TONresistor由 GitHub 账号 TONresistor 发布v0.2.6更新于 Oct 24, 2026

MCP tools for TON Sites, TON DNS and TON Storage.

已验证Streamable HTTP可网页运行云端与基础设施金融

概览

AI 生成的概览

远程 MCP 服务器,让 AI 助手管理 TON Sites、TON DNS 域名、子域名和 TON Storage,交易需钱包确认。

可以做什么
检查会话认证状态、钱包上下文、权限与审计事件,并撤销所有者钱包的授权或会话。列出已拥有的 TON Sites,读取内容与发布版本,发布文件或模板、回滚、删除,以及附加、预检或解绑域名。查询并列出 .ton 域名和 .t.me 用户名,读取 DNS 记录,并准备铸造、竞拍、续费、记录和转移交易供钱包确认。管理子域名集合与条目,包括创建、铸造、转移和恢复。上传图片到所有者的媒体存储,并列出 TON Storage 存储包。
适用场景
当你希望助手查看和操作你所控制钱包下的 TON Sites、DNS 域名、子域名或 Storage,同时让所有链上变更都经过手动钱包确认页面时适用。
运行要求
远程 Streamable HTTP 端点,无需本地包或运行时。通过客户端进行 OAuth 登录,并在钱包授权页面选择权限。访问令牌有效期 15 分钟并自动刷新;刷新令牌和授权默认有效 30 天,批准敏感权限时为 24 小时。
安装前请注意
该服务器会操作 TON 钱包,可发布、回滚或删除站点,解绑域名,转移域名和 NFT,并撤销授权。删除站点或移除其最后一个域名需要明确确认和删除权限范围。交易以确认页面返回,需用户在钱包中签名,请逐笔核对。审计和会话列表已脱敏,但仅限所有者范围。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Resistance Tools,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.TONresistor%2Fresistance-tools-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "resistance-tools": {
      "type": "http",
      "url": "https://app.resistance.dog/api/mcp"
    }
  }
}

README

Resistance Tools

One cross-client Agent Skill plus the remote Resistance Tools MCP for TON Sites, TON DNS, Subdomains, TON Storage, wallet access, and manually confirmed transactions.

Names

  • Marketplace/source: resistance-tools
  • Plugin and MCP server: resistance-tools-mcp
  • Agent Skill: resistance-tools-skill

Agent Skill

The plugin contains one resistance-tools-skill skill, invoked as $resistance-tools-skill. Its SKILL.md defines the shared workflow and loads only the relevant bundled reference for sites, domains, storage, wallet, or transactions.

Those references cover all 51 MCP tools, their permission boundaries and the read-back each workflow can actually perform. The live MCP schema remains canonical. Setup commands stay in this README rather than being duplicated in the skill.

The skill distinguishes root DNS records from child NFT records, public minting from collection administration, ADNL from Storage-backed publication, and platform Bag deletion from paid-provider state. Expired or uncertain wallet requests are never automatically replayed.

Plugin packages

  • Codex: .codex-plugin/plugin.json
  • Claude Code: .claude-plugin/plugin.json
  • Shared Agent Skills: skills/<name>/SKILL.md
  • Shared remote MCP connection: .mcp.json

Installing the repository as a plugin loads both the skills and the MCP dependency in clients that support the corresponding plugin format.

Install the plugin

The plugin installs the Agent Skill and registers the MCP server together.

Codex

bash
codex plugin marketplace add TONresistor/resistance-tools-mcp@maincodex plugin add resistance-tools-mcp@resistance-toolscodex mcp login resistance-tools-mcp

Claude Code

bash
claude plugin marketplace add TONresistor/resistance-tools-mcp@mainclaude plugin install resistance-tools-mcp@resistance-toolsclaude mcp login resistance-tools-mcp

The user selects permissions on the wallet approval page.

OAuth lifetime and recovery

Access tokens last 15 minutes and refresh automatically. Refresh tokens and consent last 30 days by default, or 24 hours when any sensitive permission is approved. Do not reconnect or reinstall for a normal access-token expiry.

The live server accepts a missing OAuth resource on refresh for compatibility with Codex stable, while still binding the new token to the canonical MCP resource. It also tolerates concurrent refreshes from Codex processes sharing credentials without one process revoking the others. Run codex mcp login resistance-tools-mcp only for invalid_grant, an explicit authorization request, revoked/expired consent, or missing credentials.

Replace 0.2.2 or earlier, or remove the retired MCP alias

Use this migration if an earlier Resistance Tools version was installed, if the marketplace already exists from another source, or if the configured MCP name is still resistance-tools. The name proves that the retired local entry exists; invalid_target alone does not. If the configured MCP is already resistance-tools-mcp, preserve it. If an entry is already absent during migration, continue with the remaining commands.

Codex:

bash
codex mcp logout resistance-toolscodex mcp remove resistance-toolscodex mcp logout resistance-tools-mcpcodex mcp remove resistance-tools-mcpcodex plugin remove resistance-tools@resistance-toolscodex plugin remove resistance-tools-mcp@resistance-toolscodex plugin marketplace remove resistance-toolscodex plugin marketplace add TONresistor/resistance-tools-mcp@maincodex plugin add resistance-tools-mcp@resistance-toolscodex mcp login resistance-tools-mcp

Claude Code:

bash
claude mcp logout resistance-toolsclaude mcp remove resistance-toolsclaude mcp logout resistance-tools-mcpclaude mcp remove resistance-tools-mcpclaude plugin uninstall resistance-tools@resistance-toolsclaude plugin uninstall resistance-tools-mcp@resistance-toolsclaude plugin marketplace remove resistance-toolsclaude plugin marketplace add TONresistor/resistance-tools-mcp@mainclaude plugin install resistance-tools-mcp@resistance-toolsclaude mcp login resistance-tools-mcp

Update 0.2.3 or later

Refresh the Git marketplace and reinstall the plugin cache to pick up the current skill, including documentation updates that retain the remote server version. Start a new chat afterward so the client discovers the refreshed skill. Updating documentation does not require reconnecting an otherwise valid OAuth session.

Codex:

bash
codex plugin marketplace upgrade resistance-toolscodex plugin remove resistance-tools-mcp@resistance-toolscodex plugin add resistance-tools-mcp@resistance-tools

Claude Code:

bash
claude plugin marketplace update resistance-toolsclaude plugin update resistance-tools-mcp@resistance-tools

MCP-only connection

These commands connect the tools only; they do not install the bundled skills.

Codex

bash
codex mcp add resistance-tools-mcp --url https://app.resistance.dog/api/mcpcodex mcp login resistance-tools-mcp

Claude Code

bash
claude mcp add --transport http resistance-tools-mcp https://app.resistance.dog/api/mcpclaude mcp login resistance-tools-mcp

The user selects permissions on the wallet approval page.

Other clients

Add https://app.resistance.dog/api/mcp as a Streamable HTTP MCP server and use the client's native OAuth flow.

main is the stable branch used for installation and releases. Development happens on dev.

License

MIT

来源:README.md,提交 b239d49

工具

51

auth.status

MCP auth status

Return whether this MCP session is authenticated.

无需输入参数。

auth.policy

MCP auth and safety policy

Return public MCP auth flows, scopes, safety controls, retention, and confirmation rules.

无需输入参数。

wallet.me

Wallet context

Return the authenticated MCP owner/actor wallet context.

无需输入参数。

mcp.access.list

List MCP access

List MCP consents and redacted active sessions for the authenticated owner wallet.

无需输入参数。

mcp.audit.list

List MCP audit events

List recent redacted MCP audit events for the authenticated owner wallet.

输入参数limitsincemethodresultStatus

mcp.audit.summary

Summarize MCP audit events

Return owner-scoped aggregate MCP audit metrics without raw headers or request bodies.

输入参数windowHourstopMethodsLimit

sites.list_domains

List domains attached to a site

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.

输入参数site必填

sites.preflight_domain

Check a domain before attaching it

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.

输入参数site必填domain必填

sites.attach_domain

Attach a domain to an owned site

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.

输入参数site必填domain必填confirmSite必填confirmDomain必填expectedConflictSiteIdconfirmDeleteSourceSiteId

sites.list

List TON Sites

List TON Sites owned by the authorized wallet.

无需输入参数。

sites.get_content

Get site template content

Read the stored template/content metadata for an owned site.

输入参数site必填

sites.list_releases

List site releases

List retained releases for an owned site.

输入参数site必填

sites.publish_files

Publish site files

Deploy or update an owned TON Site from explicit file contents.

输入参数site必填files必填

sites.publish_template

Publish template site

Validate, render, and publish a template-based TON Site.

输入参数site必填contenttemplate必填

sites.rollback

Rollback site

Rollback an owned TON Site to a retained release.

输入参数site必填releaseId必填confirmSite必填

sites.delete

Delete site

Delete an owned TON Site deployment and served files.

输入参数site必填confirmSite必填

deployments.list

List deployments

List retained deployments across the owner's sites.

无需输入参数。

domains.list_usernames

List owned Telegram Usernames

List .t.me Telegram Usernames owned by the authorized wallet, filtered by its domain delegation.

无需输入参数。

dns.send_transfer_tx

Create domain transfer confirmation link

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.

输入参数domain必填newOwner必填

dns.lookup

Lookup TON DNS name

Lookup public TON DNS status and records for a .ton name.

输入参数name必填

domains.list

List owned domains

List .ton domains owned by the authorized wallet.

无需输入参数。

domains.records

Read domain records

Read DNS records for an owned .ton domain or .t.me Telegram Username.

输入参数domain必填

dns.send_record_tx

Create DNS record confirmation link

Revalidate indexed ownership and return one HTTPS page where the user reviews and confirms the exact TON DNS record transaction.

输入参数kind必填valuedomain必填keyNamevalueKindrawCategory

dns.send_name_tx

Create TON DNS name confirmation link

Return one HTTPS page for a validated .ton mint, auction bid, or expired-name release transaction.

输入参数action必填domain必填

dns.send_renew_tx

Create TON DNS renewal confirmation link

Revalidate one to four owned .ton names and return one HTTPS page for a single TON Connect multi-message confirmation.

输入参数domains必填

subdomains.list_collections

List owned Subdomain collections

List TON Subdomain collections controlled by the authenticated wallet.

输入参数limitcursor

subdomains.list_items

List owned Subdomain items

List TON Subdomain NFT items owned by the authenticated wallet.

输入参数limitcursor

subdomains.get_collection

Read Subdomain collection

Read a fresh collection snapshot when the authenticated wallet holds collection or parent rights.

输入参数collectionAddress必填

subdomains.get_item

Read owned Subdomain item

Read a Subdomain NFT item owned by the authenticated wallet.

输入参数itemAddress必填

subdomains.control

Read Subdomain control state

Read fresh collection authorization and parent-return state for the authenticated wallet.

输入参数collectionAddress必填

subdomains.create_collection_tx

Create Subdomain collection confirmation link

Revalidate parent ownership, create collection metadata, and return one HTTPS transaction confirmation page.

输入参数mode必填minChars必填priceGrid必填parentAddress必填

subdomains.mint_tx

Create Subdomain mint confirmation link

Revalidate availability and access, build metadata, and return one HTTPS mint or pending-mint confirmation page.

输入参数label必填parent必填collectionAddress必填setWalletToMinter

subdomains.collection_action_tx

Create Subdomain action confirmation link

Revalidate current collection or parent rights and return one HTTPS management transaction confirmation page.

输入参数labelaction必填walletallowednewAdminreservedaccessModecollectionAddress必填

subdomains.transfer_item_tx

Create Subdomain transfer confirmation link

Revalidate current NFT ownership and return one HTTPS Subdomain item transfer confirmation page.

输入参数newOwner必填itemAddress必填

subdomains.recovery_tx

Create Subdomain recovery confirmation link

Re-derive an owned collection and return one HTTPS page for its deployment or resolver recovery transaction.

输入参数mode必填action必填parentAddress必填

media.upload_image

Upload template image

Upload one PNG, JPEG, GIF, or WebP image to the authenticated owner's template media store.

输入参数contentBase64必填

storage.list_bags

List TON Storage bags

List TON Storage bags owned by the authorized wallet.

无需输入参数。

storage.bag_details

Read TON Storage bag details

Read metadata and live state for an owned TON Storage bag.

输入参数bagId必填

storage.providers

List paid Storage providers

List backend-verified providers compatible with an owned TON Storage bag.

输入参数sortbagId必填

storage.provider_funding_session

Create provider funding session

Freeze a short-lived live provider and shared-balance snapshot for an owned bag.

输入参数bagId必填providerPubkeys必填

storage.provider_funding_preview

Preview provider funding

Calculate exact integer funding and coverage from a live provider session.

输入参数bagId必填sessionId必填proofSpanSeconds必填targetCoverageSeconds必填

storage.provider_quote

Create provider quote

Create the signed backend quote that will be revalidated before a provider confirmation link is returned.

输入参数bagId必填sessionId必填proofSpanSeconds必填targetCoverageSeconds必填

storage.provider_operation

Read provider operation

Read and reconcile one paid TON Storage provider operation.

输入参数providerOperationId必填

storage.send_provider_tx

Create paid Storage provider confirmation link

Revalidate the live contract, providers, shared balance, and exact amount before returning one HTTPS pin, top-up, stop, or withdraw confirmation page.

输入参数bagId必填action必填quoteIdproviderPubkeytargetCoverageSecondsacknowledgeOtherProviders

storage.create_bag

Create TON Storage bag

Create and seed a new TON Storage bag from explicit file contents.

输入参数namefiles必填

storage.pin_bag

Pin TON Storage bag

Pin/import an existing public TON Storage bag by bag id.

输入参数namebagId必填

storage.delete_bag

Delete TON Storage bag

Delete an owned TON Storage bag reference and remove platform-seeded bytes when safe.

输入参数bagId必填confirmBagId必填

版本历史

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

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分