Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "digest_url" and "search_links"
⟨10 unchanged words⟩ Xiaohongshu, Douyin, TikTok, YouTube, X, Instagram, Bilibili and ordinary web pages. Returns the post's transcript ⟨30 unchanged words⟩ what was read (`coverage` in json).Bilibili andFacebookareis not supported. Works without an API key for ⟨39 unchanged words⟩
⟨34 unchanged words⟩ and xiaohongshu, 1 elsewhere; nothing found isfree;free.10Searchingsearchesisanmeteredhourbypercredits,key.not by an hourly count. Returns a numbered list; pass digest: true ⟨100 unchanged words⟩
Changed the definition of "digest_url"
⟨9 unchanged words⟩ on Xiaohongshu, Douyin, TikTok, YouTube, X, Instagram and ordinary web pages. Returns the post's transcript ⟨30 unchanged words⟩ what was read (`coverage` in json). Bilibili
Changed the definition of "search_links"
⟨17 unchanged words⟩ , filtered to links digest_url can read).Free:Anosearch that finds posts costs 2 credits on douyin and xiaohongshu, 1 elsewhere; nothing found is free; 10 searches an hour per key. Returns a ⟨105 unchanged words⟩
Changed the definition of "search_links"
Find posts on a topic on xiaohongshu, douyin, youtube, x, web (web search scoped to ⟨83 unchanged words⟩ the page they see, then list_batches. douyincannot be searched fromreturnsatheservervideoandpagesitsthelinkswebrefusehaseveryindexed,automated
Changed the definition of "list_batches" and "search_links"
{"additionalProperties":false,"properties":{"label":{"description":"Only batches with this name — the query of a search_links handoff to the user's own browser.","maxLength":80,"type":"string"},"limit":{"description":"How many, 1 ⟨13 unchanged words⟩
Find posts on a topic on xiaohongshu, youtube, x, web (web search scoped to ⟨34 unchanged words⟩ (then compare_links with the batch_id). xiaohongshuandreturnsdouyinthe
Added "compare_links", "list_batches" and "search_links"; changed the definition of "digest_url" (2 tools before, 5 now)
⟨146 unchanged words⟩ ,"json"],"type":"string"},"insight":{"description":"Consumer insight (消费者洞察): audience, claims, objections, purchase-intent cues, products/prices, questions — each a quote checked against the post and its top comments. +1 credit.","type":"boolean"},"job_id":{"description":"Collect a digest still ⟨95 unchanged words⟩
Compare a set of posts in one page — Read a set of Xiaohongshu, Douyin, TikTok, YouTube or X links as one batch and write one comparison over them (批量综合): the themes, hooks, formats and claims they share, the objections readers raise and the gaps none of them cover, every example naming which link it came from and checked against it word for word. The first call starts the batch and returns a batch id; call again with batch_id to collect. Needs an API key. Each link is read at its usual price (cached links are free); the comparison is 1 credit per 10 links. Example: urls=["https://xhslink.com/o/a", "https://xhslink.com/o/b"]. Af…
pypi:linkdigest-mcp (package_pypi) — from mcp_registry
Changed the definition of "digest_url"
TurnRead what a social mediaURL intolinkLLM-readyactuallycontext.says. Works on Xiaohongshu, Douyin, TikTok, YouTube, X and ordinary web pages. Returns the post's transcript with times, on-screen text,imagethedescriptionstext in every image, caption andmetadata — thecounts,thingskey
Added "check_balance"; changed the definition of "digest_url" (1 tools before, 2 now)
⟨62 unchanged words⟩ Bilibili, Instagram and Facebook are not supported. Works without an API key for a first look: a summary (title, author, key points, counts), up to two a day per address; the full transcript, per-image text and receipt need a key (free credits on sign-up — see check_balance). A long video may not finish in one ⟨129 unchanged words⟩
Credits left and what a read costs — How many credits this API key has left, what each kind of read costs, and where to buy more (links need no sign-in; the credit pack takes Alipay). Without a key it returns the prices and how to get a key. Call it before a batch of reads, or when digest_url says credits ran out.
Changed the definition of "digest_url"
⟨123 unchanged words⟩ wants to learn from or remake a post. For a long video (a talk, a course, a podcast), set depth to transcript: the whole transcript with a frame a minute, at about half the per-minute price. A digest says how much of the post it captured and what it did not read (a Coverage section in markdown; `coverage` in json), and backs each key point with a short quote the server checked against the post (`key_point_support` in json, verified true or false).
⟨90 unchanged words⟩ for free.","type":"boolean"},"depth":{"description":"How much of a video to read. full (default): the transcript plus frames sampled densely, 1 credit per started minute. transcript: transcript-first, for long videos — the whole transcript plus one frame a minute (or one per chapter), one credit per started 2 minutes, and a longer length cap (free 60 min, paid 120 min, against 10 and 30 for full). Coverage says the frames were sparse and `depth` in json says which read it was. When a full read would be partial, `partial.transcript_credits` is what this read of the whole video costs. A YouTube video read by Gemini watching it (YouTube blocks this server) has no transcript-only form: it is read in full and priced as a full read.","enum":["full","transcript"],"type":"string"},"
Changed the definition of "digest_url"
before
—after
Read a social media post as text⟨300 unchanged words⟩ :"The post URL, including any share tokens. Required unless job_id is given.","type":"string"}},"required":["url"],"type":"object"}
before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":true,"title":"Read a social media post as text"}Changed the definition of "digest_url"
⟨166 unchanged words⟩ : a long video is refused and costsnothing.nothing (YouTube excepted: its length is known only after Gemini watches it, so it is read in full and billed at most max_credits). When true, the digest carries `partial` (read_seconds ⟨109 unchanged words⟩
Changed the definition of "digest_url"
⟨91 unchanged words⟩ job_id (and no url) to collect it. Set breakdown to true to also get a teardown of how the post is built (hook, timed beats, reusable template) — useful when the user wants to learn from or remake a post.
{"properties":{"breakdown":{"description":"Also take the post apart (爆款拆解): the hook in its first seconds, the structure as timed beats, the title formula, cover text, call to action, audience, and a reusable template to make your own version. Quotes are copied from the post and checked against it; engagement counts and hashtags come from the platform. Written in the post's language, or in translate_to if given. Shown as a section in markdown and as `breakdown` in json. Costs the digest's price plus 1 credit; a repeat is served from cache for free.","type":"boolean"},"format":{"description":"markdown (default, best ⟨126 unchanged words⟩ , transcript text, on-screen text, image descriptions),—and
Changed the definition of "digest_url"
⟨46 unchanged words⟩ work again.","type":"string"},"partial_ok":{"description":"Read the opening minutes the budget affords instead of refusing a video over max_credits or the plan's length cap. Default false: a long video is refused and costs nothing. When true, the digest carries `partial` (read_seconds, duration_seconds, full_credits).","type":"boolean"},"translate_to":{"description":"Also translate the digest ⟨92 unchanged words⟩
Certificate recorded, valid to 2027-03-11
Authorization not required
First tool surface recorded: 1 tool (server version 0.1.0)
Showing the latest 17 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨73 unchanged words⟩ {"description":"Where to look: xiaohongshu, douyin, youtube, x, web.","enum":["xiaohongshu","douyin","youtube","x","web"]," ⟨18 unchanged words⟩
⟨72 unchanged words⟩ platform":{"description":"Where to look: xiaohongshu, youtube, x, web.","enum":["xiaohongshu","youtube","x","web"],"type" ⟨17 unchanged words⟩
This account's last batches — The last batches on this API key, newest first — including the ones the browser extension's “Digest the notes on this page” button started from the user's own Xiaohongshu or Douyin tab. Each line: batch_id, label, created, status done/total, credits, synthesis (ready, pending, failed or none). Pass a batch_id to compare_links to read the comparison. Starts nothing, costs nothing. Needs an API key.
Find posts on a topic — Find posts on a topic on youtube, x, web (web search scoped to the platform, filtered to links digest_url can read). Free: no credits, 10 searches an hour per key. Returns a numbered list; pass digest: true to read them as one batch and compare them (then compare_links with the batch_id). xiaohongshu and douyin cannot be searched from a server — their search needs a logged-in session — so for those the user opens the search in their own browser and presses the extension's “Digest the notes on this page” button; then list_batches. Needs an API key. Example: query="护肤 早C晚A", platform="youtube",…
{"properties":{"breakdownask":{"description":"Also takeAthequestionposttoapartanswer(爆款拆解):from thehook in its first secondspost,the structure as timede.g.beats,\"whattheproductstitleandformula,pricescoverdoestext,itcallrecommend?\".toReturnsactionanswer,audience,found andathereusablequotestemplateittorestsmakeon,yourcheckedownagainstversion.theQuotespost;arefoundcopiedisfromfalse when the postanddoescheckednotagainstsayit;—engagementnothingcountsisandinvented.hashtags+1comecredit.","maxLength":300,"type":"string"},"breakdown":{"description":"Alsofromtake theplatform. Written inposttheapartpost's(爆款拆解):languagehook,or in translate_to if given. Showntimedasbeats,atitlesectionformula,incallmarkdowntoandaction,asreusable`breakdown`template;inquotesjson.checkedCostsagainst thedigest's price plus 1 credit; a repeat is served from cachepost.for+1free.credit.","type":"boolean"},"depth":{"description":"How much of a video to read.full (default): the transcript plus frames sampled densely,1 credit per started minute.or transcript:transcript-first,forlongavideoslong—video: the whole transcriptpluswithonea frame a minute(or one per chapter),one1 credit per started 2 minutes,and a longer lengthcap (free 60 min, paid 120 min, against 10 and 30 for full). Coverage says the frames were sparse and `depth` in json says which read it was. When a full read would be partial, `partial.transcript_credits` is what this read of the whole video costs. A YouTube video read by Gemini watching itcap.(YouTubeblocks this server) has no transcript-only form: itis always read infull and priced as a full read.full.","enum":["full","transcript"],"type":"string"},"format":{"description":"markdown (default, best for reading) or json (structured). json adds: `coverage`(seconds_transcribed,duration_seconds, largest_frame_gap_seconds, images_read, images_total, not_captured) and`key_point_support`({ point_index,kind, t, image_index, quote`answer`,verified } per key point). Eitherandformat`links`lists— the links the post points to(a Links section; `links` in json: { url,found_in, label, kind }, from its caption, QR codes, WeChat's 阅读原文 and on-screenwithtext).kind; None isopened; kind marks payment codes and group invites.opened).","enum":["markdown","json"], ⟨2 unchanged words⟩ "job_id":{"description":"Collect a digestalready running. Pass the job id from a previousstillcallrunning, instead ofurl. Use this rather thanurl (re-sending the url,whichwould startthe workitagain.again).","type":"string"},"partial_ok":{ ⟨4 unchanged words⟩ minutes the budget affords instead of refusing avideo over max_creditslongorvideo; theplan'sdigestlengththencap.carries `partial`. Default false: a long video is refusedand costs nothing (YouTube excepted: its length is known only after Gemini watches it, so it is read in full and billed at most max_credits). When true, the digest carries `partial` (read_seconds, duration_seconds, full_credits). An image post the budget does not cover whole reads its first images instead (6 a credit); its partial has 0 seconds, and image_count / images_read say howformany.free.","type":"boolean"},"translate_to":{"description":"Also translatethe digestinto this language:an ISO 639-1 code, optionally with a region(en, ja, zh-CN). The original-language text is always returned;; thetranslation is added alongside it under `translation` (title, caption, key points, transcript text, on-screenoriginal text,image descriptions), and as a Translation section at the end of the markdown. Machine translation. Costs the digest's price plus 1 credit; a repeat of the same url and languageisserved from cachekept.for+1free.credit.","pattern":"^[a-z]{2}(- ⟨5 unchanged words⟩ },"url":{"description":"The postURLlink,includingoranythe sharetokens.text that contains it. Required unless job_id is given.","type": ⟨4 unchanged words⟩