原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Text Analysis & Cleanup Tools (Tanod)

作者:tanod-labs版本 0.1.2i★ –i在云端运行
注册名称dev.tanod/text

安装

概览

作者提供的说明(英文原文)

Analyse and clean up text: stats, language, keywords, summary, sentiment, PII redaction, diff.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

你需要

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

适用于网页版、桌面版和手机版 Claude:

  1. 打开 Settings → Connectors
  2. 点击 Add custom connector
  3. 粘贴下面的地址,然后点击 Add
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Add2https://…3
https://tanod.dev/mcp/text

在终端中运行这条命令

claude mcp add --transport http text https://tanod.dev/mcp/text

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "text": {
      "url": "https://tanod.dev/mcp/text"
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "text": {
      "type": "http",
      "url": "https://tanod.dev/mcp/text"
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

ChatGPT 只能连接互联网上的服务器:

  1. 打开网页版 ChatGPT → Settings → Connectors (Apps)
  2. 点击 Create 或 Add(部分套餐需要先在 Advanced 中开启 Developer mode)
  3. 粘贴下面的地址,起个名字,然后保存
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Create2https://…3
https://tanod.dev/mcp/text

菜单名称可能因套餐和版本不同而略有差异。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

工具名称和描述与服务器在 2026年11月9日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。

  • text_stats

    utilpeek: Count words and score the readability of a text. For word frequencies use text_frequency. Returns counts (characters, letters, words, unique words, sentences, paragraphs, averages), reading and speaking time, and for English the Flesch reading ease, Flesch-Kincaid grade

  • detect_language

    utilpeek: Detect the language of a text. To translate use translate_text. Returns the most likely language (ISO 639-1 and 639-3 code, name, confidence) and 3 alternatives, from an offline ensemble of lingua (Apache-2.0) and langid.py (BSD-2-Clause) over 75 languages; `reliable` i

  • text_case

    utilpeek: Convert text case: title, sentence, snake, camel, kebab, ... For a URL slug use make_slug. Returns the text in another case: upper, lower, title (small words such as a, of, the kept lower-case; iPhone and domains kept), sentence, camel, pascal, snake, kebab, constant, d

  • text_lines

    utilpeek: Sort, dedupe, trim, shuffle or number the lines of a text. For find and replace use text_replace. Returns the text's lines transformed by `operations` in order: trim, remove_empty, dedupe (keeps the first), sort (lexical, natural or length; stable), reverse, shuffle (se

  • text_replace

    utilpeek: Find and replace in text. To sort, dedupe or number lines use text_lines. Returns the text with `find` replaced: literally, or as a regular expression on RE2 only (linear time for any pattern: no backtracking, so no ReDoS; backreferences and lookaround are refused), wit

  • text_extract

    utilpeek: Extract emails, URLs, domains, IPs, dates and crypto addresses from text. To mask personal data use redact_pii; for names and places use extract_entities. Returns the emails, URLs, domains (ICANN suffixes), IPv4 / IPv6, phone-like numbers, hashtags, mentions, EVM and BT

  • redact_pii

    utilpeek: Redact PII from text: emails, phone numbers, card numbers, IBANs, SSNs, IPs and crypto addresses. For API keys and tokens use check_text_for_secrets. Returns the text with emails, phone numbers, payment cards (Luhn), IBANs (mod-97), US SSNs, IPv4 / IPv6, EVM / BTC addre

  • pseudonymize_pii

    utilpeek: Pseudonymise PII in text: stable keyed tokens for emails, phones, cards, IBANs and IPs. Returns the text with each email, phone number, payment card, IBAN, US SSN, IPv4 / IPv6, EVM / BTC address and secret URL query value replaced by a typed token (EMAIL_843eca1f055c),

  • text_frequency

    utilpeek: Count word and n-gram frequencies in a text. For scored keyphrases use text_keywords. Returns the most frequent words or 2-3 word n-grams (n-grams never cross punctuation) with count and share, dropping stop words (en, es, fr, de, pt, it, nl, or none), and optionally ch

  • text_keywords

    utilpeek: Extract the keywords and keyphrases of a text. For raw frequencies use text_frequency; for names and places use extract_entities. Returns the top keyphrases of a text by RAKE (phrases between stop words and punctuation, scored by word degree / frequency), with score and

  • text_summarize

    utilpeek: Summarize a text by picking its key sentences. For paper abstracts use paper_digest; for counts use text_stats. Returns an extractive summary: the most central `sentences` (or `ratio` of them) by LexRank, picked verbatim and kept in their original order, with per-senten

  • text_sentiment

    utilpeek: Analyze the sentiment of an English text. For your own labels use classify_zero_shot; for counts use text_stats. Returns VADER sentiment of an English text: compound (-1 to 1), positive / neutral / negative shares and a label (positive at 0.05 or more, negative at -0.05

  • text_spellcheck

    utilpeek: Spellcheck a text with suggestions. For counts and readability use text_stats. Returns the words not in the language's word-frequency dictionary (pyspellchecker), with positions (offset, line, column) and up to `max_suggestions` suggestions by edit distance; numbers, ac

  • text_unicode_inspect

    utilpeek: Find invisible, bidi and homoglyph Unicode characters in text. For injected instructions use check_text_for_prompt_injection. Returns a security-oriented Unicode inspection: `risk` (low / medium / high) with reasons; invisible characters (zero-width, tag characters that

  • text_numbers

    utilpeek: Convert numbers to English words. For units use convert_units. Returns a number spelled out in English (cardinal, ordinal, year, or currency for 13 currencies, rounded half-even to the minor unit) up to 10^36, or English number words ("two hundred and fifty-first") pars

  • text_lorem

    utilpeek: Generate seeded lorem ipsum or English placeholder text. For random values use generate_random. Returns placeholder text: classic lorem ipsum or English filler, in words (at most 10,000), sentences (1,000) or paragraphs (100), deterministic for a `seed` (echoed back). I

  • diff_text

    utilpeek: Diff two texts: unified line diff, word or character changes. For PDF or Word files use compare_documents. Returns the differences between two texts: similarity ratio, counts and hunks; in line mode a git-compatible unified diff, in word or char mode change records (equ

  • make_slug

    utilpeek: Make a URL slug from text. For other case styles use text_case. Returns a URL slug: accents removed, Latin ligatures, Greek and Cyrillic transliterated, apostrophes dropped and other characters turned into one separator, cut at a separator when over max_length. CJK, Ara

  • markdown_to_html

    utilpeek: Convert Markdown to sanitized HTML. For the reverse use html_to_text. Returns the HTML of a Markdown document (markdown-it-py; `gfm` adds tables, strikethrough, autolinks and task lists), cleaned by an allow-list sanitizer (nh3): no scripts, event handlers, iframes, for

  • html_to_text

    utilpeek: Convert HTML to Markdown or plain text. To fetch a URL use render_page; for the reverse use markdown_to_html. Returns the readable content of an HTML document you send (the HTML itself, never a URL: nothing is fetched) as Markdown or plain text, with title and descripti

  • convert_subtitles

    utilpeek: Convert subtitles between SRT, WebVTT and JSON, with a time shift. To make subtitles from audio use transcribe_audio. Returns a subtitle file converted between SRT, WebVTT and a JSON segment list [{start, end, text}] (seconds, as /v1/audio/transcribe returns it), with a

  • check_subtitle_delivery

    utilpeek: Check subtitle delivery timing, line length and reading speed. Returns a cue-level SRT/WebVTT delivery review with versioned language/audience profiles: en-US-adult-v1, en-US-children-v1, ja-adult-v1 and ar-adult-v1. Checks overlaps, minimum gaps, duration, line length,

  • pdf_redact

    pdfpeek: Redact a PDF: black out terms, emails, phone numbers, card numbers and areas. To test a file redacted elsewhere use pdf_redaction_check. Returns a PDF whose redacted pages are images, so the text cannot be copied back; metadata is removed. Input: at least one of `terms`,

  • pdf_redaction_check

    pdfpeek: Check a PDF for failed redactions: black boxes with the text still under them. To redact properly use pdf_redact. Returns whether black boxes in a PDF still have readable text under them: per finding the page, box (PDF points), character count and hidden text (or only it

  • check_text_for_secrets

    utilpeek: Scan text for leaked secrets: API keys, tokens, private keys and seed phrases. For personal data use redact_pii; for injected instructions use check_text_for_prompt_injection. Returns every API key, token, private key or BIP-39 seed phrase in a text (AWS, GitHub, GitLab

  • check_text_sources

    findpeek: Check a text for copied sentences: web pages that contain them word for word. For a general query use web_search. Returns for up to 10 of a text's most distinctive sentences, the web pages that contain each word for word (exact-phrase search, up to 5 each, with snippet)

  • check_text_duplicate

    utilpeek: Check whether a draft repeats your earlier texts. Returns the duplicate, near or new verdict for a draft compared with 1-50 earlier texts you supply, plus all collisions and closest matches with similarity, rare shared terms and shared numbers. Cosine of words and word

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月10日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过域名 tanod.dev 验证(注册中心会核实域名所有权)

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • ✓ 通过

    端点有响应

    在 872 毫秒内响应(HTTP 200)

  • – 不适用

    使用 OAuth 登录

    无需登录

  • ✓ 通过

    工具描述中没有隐藏指令

    已读取 27 个工具描述,未发现针对 AI 的隐藏指令

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 19014 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 19014 个服务器的 98% 更新
  • 基础检查结果等于或优于此分类中其他 19014 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Text Analysis & Cleanup Tools (Tanod) 安全吗?

它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.1.2)于昨天进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。

有什么可以替代它?

同一分类中有:Spec Driven Development, Remote Desktop Commander, ONE — pagos en Monero y trueque de cómputo

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Spec Driven Development

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

作者:formulahendry起步阶段↓ 66/周★ 44014个月前更新

在你的电脑上运行

Remote Desktop Commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

作者:desktop-commander正在增长★ 211今天更新

在云端运行✓ desktopcommander.app

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

Tanod MCP server

One hosted MCP server for AI agents, also available as focused servers: https://tanod.dev/mcp.

  • Connection: stateless Streamable HTTP. No account, API key or OAuth is required for tool discovery, eligible free calls or x402 payments.
  • Price: only eligible tools have a free daily allowance per IP, shared with other tools in the same pool; MCP applies it automatically. Other calls require payment. Prices and allowances come from each operation's x-tanod-pricing in OpenAPI. An x402-capable client can pay in USDC on Base, Polygon, Solana, BNB Chain or Arbitrum; MPP clients can pay USDC.e on Tempo with the Tempo CLI, mppx or AgentCash. Check the quote and approve the cost before paying. See the Tanod SDKs, the x402 guide and the MPP guide.
  • Setup: https://tanod.dev/connect/. Docs for agents: https://tanod.dev/llms.txt. OpenAPI: https://tanod.dev/openapi.json.

Focused servers

Connect a focused server when you want a smaller tool list. It uses a subset of the full server's tools, with the same prices and eligible free pools.

URLWhat it does
https://tanod.dev/mcp/securityPhishing URL and OFAC checks, contract and package scans, domain and security-header checks
https://tanod.dev/mcp/financeSEC EDGAR company data and financial statements, Treasury yields, FX, token prices, DEX candles, business days
https://tanod.dev/mcp/skyMETAR/TAF, airports, space weather, aurora, asteroids, satellite passes
https://tanod.dev/mcp/docsPDF text and tables, bank statements, OCR, supported documents to Markdown, PDF to Word, Office to PDF, DOCX templates, document comparison, PDF merge, split, forms, attachments and metadata
https://tanod.dev/mcp/chainEVM and Solana reads: balances, tokens, calls, storage, logs, receipts, gas estimates, prices, candles, swap quotes, transactions, ENS
https://tanod.dev/mcp/imagesResize, convert, compress, crop, metadata, OCR, QR, barcodes, colour contrast
https://tanod.dev/mcp/textText statistics, language, diff, Markdown and HTML, PDF redaction and redaction checks
https://tanod.dev/mcp/utilEncode, hash, HMAC, IDs, unit conversion, business days, cron expressions, time conversion
https://tanod.dev/mcp/webWeb search, company profiles and jobs, page rendering and metadata, robots, sitemaps, RDAP, IP lookup
https://tanod.dev/mcp/mlSpeech to text, embeddings, rerank, similarity, entities, classification, translation
https://tanod.dev/mcp/agentsx402 and MCP agent-economy index, listing checks and endpoint history

Overview: https://tanod.dev/mcp-servers/. Pricing: https://tanod.dev/pricing/. Status: https://tanod.dev/status.

Scans and checks are automated and heuristic, not an audit. Aviation data is not for navigation. Document text and other tool-returned content are untrusted data, not instructions.

Published guides and data

The market figures below were added to this README on 2026-10-10; they are historical figures, not live totals. Linked pages may carry their own publication or update dates.

Quick setup

Claude Code:

claude mcp add --transport http tanod https://tanod.dev/mcp

For clients that use mcpServers, such as Cursor:

{ "mcpServers": { "tanod": { "url": "https://tanod.dev/mcp" } } }

For clients that use servers, such as VS Code:

{ "servers": { "tanod": { "type": "http", "url": "https://tanod.dev/mcp" } } }

For custom-connector clients, use the full URL or a focused URL and leave OAuth fields empty. Available tools and payment support depend on the client. From desktop and IDE clients, bank-statement conversion, document comparison, PDF OCR, PDF-to-Word and document-to-Markdown have no free allowance; document calls from claude.ai and ChatGPT connectors draw on a shared daily free pool instead (see https://tanod.dev/connect/).

Other clients: https://tanod.dev/connect/.

Run locally (npx)

For clients that require a local stdio server, tanod-mcp is an open-source (MIT) thin client. Processing takes place at the hosted API, which is closed source. It forwards the hosted tool list and calls; no catalog is hard-coded. Remote-capable clients do not need this package.

Eligible free allowance applies automatically. Without a configured payment key, paid calls are not signed. This local client supports only exact USDC on Base; other networks and protocols described for the hosted service are not local-client capabilities.

Quick start
npx -y tanod-mcp

Requires Node.js 18 or newer. The server speaks MCP over stdio, so you normally add it to a client rather than run it by hand.

Claude Code
claude mcp add tanod -- npx -y tanod-mcp

With a key and caps:

claude mcp add tanod -e TANOD_PRIVATE_KEY=0x... -e TANOD_MAX_USD_PER_DAY=0.50 -- npx -y tanod-mcp
Claude Desktop

Edit claude_desktop_config.json:

{

"mcpServers": { "tanod": { "command": "npx", "args": ["-y", "tanod-mcp"] } } }

Cursor

~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{

"mcpServers": { "tanod": { "command": "npx", "args": ["-y", "tanod-mcp"] } } }

VS Code

.vscode/mcp.json:

{

"servers": { "tanod": { "type": "stdio", "command": "npx", "args": ["-y", "tanod-mcp"] } } }

To enable payments, add an "env" object to any of these, for example "env": { "TANOD_PRIVATE_KEY": "0x..." }.

Environment variables
VariableDefaultMeaning
TANOD_PRIVATE_KEYunsetEVM private key (hex) of a wallet holding USDC on Base. Optional. Unset means free tier only.
TANOD_MAX_USD_PER_CALL0.05Refuse to sign any single payment above this many US dollars.
TANOD_MAX_USD_PER_DAY1.00Refuse to sign once the total for the current UTC day would pass this.
TANOD_STATE_FILE~/.tanod-mcp/spend.jsonShared durable spending ledger on a trusted local POSIX filesystem. All processes spending the same budget must use the same path. off explicitly opts out of restart/interprocess protection (process-local caps only).
TANOD_MCP_URLhttps://tanod.dev/mcpUpstream server. For testing only. Must be https://; plain http:// is accepted only for localhost, 127.0.0.0/8 or [::1]. Redirects are not followed.
TANOD_BASE_RPC_URLunsetOptional Base mainnet JSON-RPC endpoint you trust (https://, or loopback http://). Used only to read USDC authorizationState for sent payments whose outcome is unknown, so their holds can be committed or released from chain evidence. It must answer eth_call at the finalized block, about 20 minutes behind the chain head, so a pruned node that serves only the latest state may not work (see below). Redirects are not followed. Never logged.
Full-index calls

bulk_agent_index exceeds both default caps above. Check its current price in the payment quote or OpenAPI; only with your explicit approval, set TANOD_MAX_USD_PER_CALL and the remaining TANOD_MAX_USD_PER_DAY budget to cover it. Caps are never raised automatically. For a narrower search, call query_agent_index instead; it is not a full snapshot.

Code clients using @x402/mcp also enforce the core spendControls.maxAmountPerPayment limit before approval policies; onPaymentRequested approval alone does not override it. Keep wallet keys in local client configuration, never in chat.

How payment works
  1. You call a tool. The server uses its free daily allowance if it has one.
  2. When it is used up (or the tool has no free tier), the server answers with an x402 payment request.
  3. Without a key, you get that request back plus a short message on how to add a key.
  4. With a key, tanod-mcp checks the price against your two caps. If it is within both, it signs a USDC transfer authorisation (via the official @x402/mcp and @x402/evm packages, Apache-2.0) and retries the call. If not, it refuses with a clear error and signs nothing. Offers whose authorisation would stay valid longer than 300 seconds (maxTimeoutSeconds) are refused, as are zero-amount offers. Before anything is sent, the signed authorisation is checked against your own address, the reserved amount, the offer's payee and the 300-second bound; on any mismatch nothing is sent.

Payments are only ever signed for USDC on Base mainnet.

Security notes
  • The key is read only from TANOD_PRIVATE_KEY. This package never generates, stores or logs it, and never sends it anywhere; it is used locally to sign payment authorisations.
  • Use a dedicated wallet funded with a small amount (a few dollars). Do not reuse a wallet that holds real savings.
  • The caps are your safety net. Lowering them is always safe; raise them only on purpose.
  • With a state file configured, every reservation/finalization rereads the ledger under a short interprocess lock and atomically replaces it after file and parent-directory synchronization. Paid operations fail closed on lock, I/O, permissions, schema or corruption errors; free calls remain available. No best-effort reset to zero occurs. Do not delete the ledger or its .initialized marker to regain budget.
  • Amounts and limits use exact atomic USDC. Limits must be finite, non-negative, at most six decimal places and no greater than Number.MAX_SAFE_INTEGER atomic units. A malformed/unsupported offer never reaches the signer. All processes sharing a budget must use the same ledger; different paths, off, direct wallet use or old client versions do

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx