Back to Browse

Nooticr MCP Server

Developer ToolsUse Caution4.2MCP RegistryLocalRemote
Free

Server data from the Official MCP Registry

Social intelligence for 10 networks: read posts and trends, monitor brand mentions, then create.

About

Social intelligence for 10 networks: read posts and trends, monitor brand mentions, then create.

Remote endpoints: streamable-http: https://mcp.nooticr.com/mcp

Security Report

4.2
Use Caution4.2High Risk

The nooticr MCP server is a well-architected tool for fetching and analyzing social media content. The codebase demonstrates solid authentication practices with secure credential storage, appropriate permission scoping for its intended purpose (social media API access), and careful handling of user data. However, several moderate concerns exist: the Cloudflare Worker bundle includes unverified third-party dependencies (ajv, content-type), the server makes extensive outbound HTTP calls to social media platforms without visible rate-limiting or request validation safeguards, and some error handling could be more defensive. The permissions required (network access, environment variables, file I/O) are appropriate for a social media aggregation service but warrant user awareness. Supply chain analysis found 5 known vulnerabilities in dependencies (1 critical, 4 high severity). Package verification found 1 issue.

4 files analyzed · 12 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

File System Write

Writes or modifies files on your machine. Check that this is expected for the tool.

process_spawn

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

https://api.nooticr.comOptional

Environment variable: NOOTICR_BASE_URL

NOOTICR_ACCESS_TOKENOptional
~/.config/nooticr-mcp/credentials.jsonOptional

Environment variable: NOOTICR_CREDENTIALS_FILE

http://localhost:3457Optional

Environment variable: NOOTICR_PUBLIC_URL

3457Optional

Environment variable: NOOTICR_PORT

stdioOptional

Environment variable: NOOTICR_TRANSPORT

How to Install & Connect

Available as Local & Remote

This plugin can run on your machine or connect to a hosted endpoint. during install.

Documentation

View on GitHub

From the project's GitHub README.

@nooticr/mcp

MCP (Model Context Protocol) server for nooticr.

Gives an AI assistant three things: it can read real social posts across ten networks (TikTok, Instagram, YouTube, X, Reddit, LinkedIn, Douyin, Xiaohongshu, Weibo, Bilibili), understand them — transcript, video frames, comments, the numbers — and make something from what it learned: hooks, variants to film, a scored draft, a repurposed thread.

The understanding is your model's, not ours. Every tool here fetches material and hands it over with an account of what to do with it; none of them ask a model of ours for an opinion first. You pay for the fetch and nothing else.

It also monitors a name: search_mentions sweeps nine of those networks for every comment that says your brand, inside a date window you choose, and search_spoken_mentions reads the words actually said out loud in TikTok, YouTube and Douyin videos for the mentions that were never typed anywhere.

Runs over stdio locally or as a hosted connector at https://mcp.nooticr.com/mcp. Billed against your nooticr credits; new accounts get 20 free.

Install (one link)

Claude Code — register the marketplace, then install the plugin:

/plugin marketplace add Nooticr/nooticr-mcp
/plugin install nooticr@nooticr

Claude Code / CLI without the plugin:

claude mcp add nooticr --user -- npx -y @nooticr/mcp
npx @nooticr/mcp login   # one-time sign-in (Google)

Cursor / any stdio MCP client (claude_desktop_config.json, .mcp.json, …):

{
  "mcpServers": {
    "nooticr": {
      "command": "npx",
      "args": ["-y", "@nooticr/mcp"],
      "env": { "NOOTICR_BASE_URL": "https://api.nooticr.com" }
    }
  }
}

Tools

169 tools, grouped by what you are trying to do. Prices are in nooticr credits and match what the server actually charges.

The job tools under Answer a question you actually have are not endpoint wrappers. Each names a job, fans out over the calls that job needs, groups the evidence by whatever you are deciding about, gives every item an id a follow-up tool can act on, and hands the reading to your model rather than to ours. They fan out, so they cost the sum of what they fetched and every one of them caps that fan-out with an argument.

Read a post

ToolCreditsWhat it is for
get_social_post1The post's facts and media — contentType, title, caption, author, stats, direct media URLs, plus an inline thumbnail. Use when you want the post itself and nothing interpreted.
get_post_transcript1The words actually spoken. Where the platform publishes a caption track (TikTok, Douyin, YouTube) it is read as-is — exact rather than inferred, without processing the video; everywhere else, and where a caption track is missing, the post's own audio is transcribed on the same call (posts up to 30 minutes), which needs speech-to-text configured on the server. No transcript, no charge. format: "srt" or "vtt" also returns a ready caption file built from the track's own timing, at no extra cost. Use before any analysis when the wording matters.
get_post_frames2Frames sampled evenly across a post's video, returned as images you can actually look at — not a description of them. ffmpeg opens the stream directly rather than downloading it, so HLS works and an expired link is re-resolved on the spot. Verified live at 3/3 on TikTok, YouTube, Instagram, Douyin and X; Reddit works on video posts. A carousel or slideshow returns its own images unchanged. Each frame costs roughly 1,200 tokens of your context.
get_post_comments2Top comments plus the themes the platform clusters them into, with which ones the creator pinned or liked. Use when you want to read what people wrote.

Understand a post

ToolCreditsWhat it is for
analyze_post_text2The post's transcript, caption and stats — everything but the pictures. Two fetches: the post itself (1, as get_social_post) and get_post_transcript (1). Use when the words and numbers answer the question.
analyze_post3Frames sampled across the video, as images your model can actually look at, plus the transcript. Two fetches: get_post_frames (2) and get_post_transcript (1). Use when the visuals are the point — framing, editing, on-screen text.
understand_social_post3The same two fetches, asked for a description of what physically happens on screen rather than why it works. Use when you need the events, not the strategy.
summarize_post_comments2The comment section, every comment with a stable id, and the taxonomy to label them with — sentiment, and whether each is praise, a complaint, a bug report, a question, a request, a comparison or spam. The same get_post_comments call, at the same price as reading them directly. Pass verbatim: true to have every item rendered whole for quoting rather than clipped to fit; same price.
show_comment_reviewfreeDraws the classifications your model produced — every comment with its sentiment and category, filterable and selectable. Makes no requests; it only renders what you pass it.
show_post_analysisfreeDraws the analysis your model wrote from analyze_post/analyze_post_text/understand_social_post — hook strength, script structure, quotable lines, suggested hashtags and more, whichever fields you produced. Makes no requests; it only renders what you pass it.
compare_social_posts1The first of two to five posts, fetched with its stats, and the comparison left to you. Fetch the rest with get_social_post at 1 credit each. Use when performance differs and you need to know why.
show_compared_postsfreeDraws the comparison your model wrote from compare_social_posts — each post scored, the winner marked, what differed and the next test worth running. Makes no requests; it only renders what you pass it.

Research a niche or a creator

ToolCreditsWhat it is for
discover_social_posts2Recent posts for a niche across nine networks, with inline thumbnails and limit/offset pagination. Use to find posts to look at.
get_user_posts2One creator's recent posts with stats. Use to scan an account.
search_creators2People by what they make — designers, developers, photographers, anyone with an audience — found by craft, niche or keyword. Use when you know the kind of person but not their names. Searches TikTok, Instagram and Xiaohongshu; not YouTube, Douyin, X, Reddit or LinkedIn, which cannot be creator-searched upstream.
get_similar_creators2Lookalikes for a creator that already works.
suggest_creator_identity2 per network searched, plus 2 to find the handle (6 by default)The same person on the other networks, from one handle you already know — with the evidence for each: a link published in both bios, one bio naming the other account, an identical handle, a matching display name. Suggests, never merges: nothing is stored, a human confirms, and two accounts' follower counts are never added together. TikTok, Instagram and Xiaohongshu.
discover_sounds2Trending audio with playable previews. Sound is a major ranking signal on TikTok.
discover_hashtags2What to tag with. TikTok comes from the Creative Center trend board — volumes plus rising/cooling/steady. The other eight searchable networks have no trend board upstream, so tags are counted across a live sweep of a niche you name: real and current, but a single sample, so no rising/cooling signal. source says which you got. LinkedIn cannot be swept.
find_hook_pattern2A creator's recent posts, so their opening lines can be read as a set and turned into fill-in-the-blank templates. One get_user_posts call.
search_mentions2 per network (5 for Xiaohongshu)Brand monitoring. Every comment that names a term, across nine networks at once, grouped under the post it was left on. A brand is named far more often in the replies than in a caption, so the comment is the unit — not the post. Takes a since date to read a past window, and pages with offset/pageSize so a nine-network sweep does not arrive all at once. Does not read speech inside a video — search_spoken_mentions does, on TikTok, YouTube and Douyin.
watch_creatorfreeAdd a creator to your watchlist. Stores the handle only — nothing is fetched.
unwatch_creatorfreeDrop a creator from the watchlist.
list_watchlistfreeWho you are watching: handle, platform, note, and when you last caught up on each — and which saved creator identity each account belongs to, grouped as one person in byIdentity.
save_creator_identityfreeOnce the user has confirmed that accounts on different networks are one person (for instance from suggest_creator_identity's evidence), save them as one creator identity: name, accounts (each {platform, handle, evidence?}), note. Stores exactly what it is given; an account already in another identity is refused with that identity named, never moved.
list_creator_identitiesfreeEvery creator identity your workspace has saved, with its accounts and the evidence recorded for each. Where an identityId comes from.
update_creator_identityfreeRename a saved identity, change or clear its note, or add and remove accounts. An identity keeps at least one account.
delete_creator_identityfreeDelete a saved identity. Only the grouping goes: the accounts and their watchlist entries stay.
watch_creator_identityfreeWatch a person rather than one account: every account of a saved identity goes on your watchlist as its own entry with its own baselines, grouped under the identity. Nothing is fetched.
unwatch_creator_identityfreeTake every account of a saved identity off your watchlist. Accounts watched on their own stay.
catch_up_watchlist2 per creatorWhat everyone you watch has posted since your last catch-up. Compares against the snapshot taken last time and moves it forward, so it answers "what is new" rather than "what exists".
create_brand_watchfree to callSchedule a recurring sweep and get emailed only what is new. kind: "mentions" (default) is a recurring search_mentions sweep for term/platforms; kind: "competitor" is a recurring get_user_posts check on one creator (handle/platform), mailing only what beats their own recent median; kind: "report" runs job: {tool, args} — niche_report (mailed as written every run) or discover_social_posts (only unseen posts) — on the schedule; kind: "portfolio" sweeps up to 25 terms (your brand, products, competitors) across the same networks under one budget and mails one digest with each term's share of voice. Two calls by design: the first returns the quote (cost per run, cadence, cost per day) and a confirmationToken; nothing is created or charged until you call it again with confirm: true and that token. Each run then bills what the server charges for that work — 2 credits per network (5 for Xiaohongshu) for mentions, a flat 2 credits for competitor, for a report 3 for niche_report (a run writes the report it mails, where the niche_report tool here hands the posts to your model for 2) or 2 for discover_social_posts (plus 1 per post opened for comments), and a mentions sweep per term for a portfolio — whose budget is split evenly and trims networks, never terms, and which refunds any term whose sweep fails. appIds ties a watch to products of your workspace (send it on both calls); without it the watch is workspace-wide.
list_brand_watchesfreeEvery brand-monitoring watch in your workspace (your teammates' included): term, networks, cadence, cost per run, credits spent so far, runs made, and when the next one is due. appId narrows it to one product's watches plus the workspace-wide ones. A competitor watch says which saved creator identity its account belongs to, and byIdentity groups the watches on one person.
creative_assets_listfreeThe creative assets (voice-overs, sound effects, music, images, videos, composites) generated in your workspace, newest first, with url, kind, dimensions or duration, and provenance. Filter by appId, kind, briefId or since; page with nextCursor.
creative_voices_searchfreeSearch ElevenLabs' voice library by query, language, accent, gender, age or useCase. Returns a voiceRef, name, labels, language, accent and preview URL for each. Library voices only, never a cloned voice.
creative_voiceoverquoted firstA voice-over of up to 2500 characters with word timings for burned-in captions, in a voice from creative_voices_search. The first call returns a quote in credits and charges nothing; call again with confirm: true and the confirmationToken to generate. Settled to actual usage, never above the quote.
creative_sfxquoted firstA short sound effect (0.5-10 s) from a description. Same quote-then-confirm handshake as creative_voiceover.
creative_musicquoted firstAn instrumental music bed of 5-60 seconds, generated as a job: confirm the quote, then poll creative_job_status. May be switched off on a deployment, in which case it says so. Describe mood, tempo and instruments, not artists or songs.
creative_videoquoted firstOne short video clip (3-30 s, draft quality) from a prompt, generated as a job: confirm the quote, then poll creative_job_status. Optional firstFrameAssetId or up to 3 referenceAssetIds (image assets), aspect 9:16 or 16:9, audio ambient or none. The clip is rendered at the nearest length the video model offers; the quote is for that length and the call settles at it. Generates only; it does not edit an uploaded video.
creative_imagequoted first1-4 still images from a prompt with GPT Image (low quality), at a size (default portrait 1024x1536), optionally transparent. The first call returns a quote in credits and charges nothing; call again with confirm: true and the confirmationToken to generate. Settled to actual usage, never above the quote. Returns the new assets and creativeCredits. Keep long text out of the prompt and ask for invented people, not real ones.
creative_image_editquoted firstEdit or combine 1-4 existing image assets (imageAssetIds) with a prompt, with an optional maskAssetId. Same quote-then-confirm handshake as creative_image; returns a new asset and creativeCredits.
creative_composequoted firstCut your creative assets (clips, stills, a voice-over, music, sound effects) into one finished 9:16, 4:5 or 1:1 video or a feed still: voice-synced captions in the platform's safe zone, the product's brand colours, music under the voice, an optional end card. Up to 12 segments, 60 seconds and 6 SFX; draft: true for a lower-priced preview. One flat render: confirm the quote, then poll creative_job_status. Never publishes.
creative_settings_getfreeYour workspace's creative spend limits (daily, monthly and per-call caps, whether music is on) and what was spent in the last 24 hours and this month. Read-only: an owner or admin changes them in the dashboard.
creative_brief_createfreeFile a creative brief for one product (brief, platforms, optional hook, audience, variants, budgetCredits, slotAt). Your Creative Producer employee works the queue, or a teammate picks it up in Creatives.
creative_brief_listfreeYour creative briefs with their draft, picked and delivered assets. Filter by status (oldest first, the order the queue is worked) or appId.
creative_brief_updatefreeMove a brief along (in_progress, awaiting_pick, delivered, failed, canceled) and attach drafts and deliveries; the id lists replace what the brief held. Winners are picked by a person in the dashboard.
creative_job_statusfreeWhere an asynchronous creative job stands by jobId: queued, running, done, failed or canceled, with the finished assets and the credits quoted, charged and refunded. Poll after pollAfterSeconds.
sheets_createfreeCreate a Google spreadsheet in the connected Google account, with named tabs and a header row on each. Returns its id and URL; Nooticr owns the file, so later writes need no approval. Needs the product's Google Sheets connection.
sheets_listfreeThe spreadsheets the connection can see (created by Nooticr or picked by the customer) and whether each may be edited without approval.
sheets_readfreeRead an A1 range (e.g. Ledger!A1:F200) of a spreadsheet; at most 10000 cells.
sheets_append_rowsfreeAppend typed rows after the last row of a tab. Free on files Nooticr created or the customer allowed you to edit; any other picked file waits for approval.
sheets_update_rangefreeOverwrite an A1 range with typed values. Same approval rule as sheets_append_rows.
sheets_add_sheetfreeAdd an empty tab to a spreadsheet. Same approval rule as sheets_append_rows.
mention_trendfreeWhat a watch has seen over time, which nothing else here answers — every other read is about now. One point per run: when it ran, how many mentions it found, how many were new, and both counts per network, so "which network is growing" and "did it go quiet or did we stop looking" come apart. On a competitor watch each point carries the median that run measured, which turns "they beat their own median" into "and that median has doubled". Plus the mentions more than one run has seen. Free because the sweeps were billed when they ran; charging again to read what was already paid for is the thing it fixes.
set_brand_watch_alertsfreeWhere a watch's findings alert the team, by watchId: email (the watch's address), slack (the Slack the workspace connected in Nooticr's settings) and minNew, how many new items a run must find before it alerts. Every run also posts to the watch's thread in the dashboard. Takes no address or URL, so nothing read in a post can redirect a watch.
update_watch_portfoliofreeAdd or remove a portfolio watch's terms by watchId. No new confirmation, because the per-run budget you agreed to does not move — more terms split it more ways, and the reply names any network a run no longer reaches.
stop_brand_watchfreeStop a watch by watchId or term. Immediate — the next run does not happen and nothing more is charged.
niche_report2Recent posts in a niche with their stats, so the dominant formats, hook patterns and the gaps nobody fills can be read off them. One discover_social_posts call. Use when deciding what to make. Scheduled as a create_brand_watch report, a run is 3 credits, because the run writes the report it mails.
analyze_creator_profile2A creator's recent posts with their stats — the material of a teardown: niche, themes, hook formula, what over- and underperforms, who the audience is. One get_user_posts call.
get_wikipedia_pageviewsfreeWikipedia attention: how many people read up to five Wikipedia articles per day or per month, from Wikimedia's official pageviews (bots excluded). Each article's series, total, average, peak and the change between the two halves of the window. Readers of an article, never search volume or demand, and the reply says so.
get_news_volumefreeHow much news coverage a brand, competitor or topic got: articles per day in GDELT's worldwide news index over a window, each entity's share of the coverage against up to two others, and the latest headlines. Counts articles, never readers.
get_search_trendsfreeGoogle Trends interest for up to five terms on one 0-100 scale, from Google's official Trends API. Off until the server has access to that API (an invite-only alpha); it then refuses with not_configured rather than reading the Trends page.
list_watch_mentionsfreeThe text your brand watches stored: platform, author, the post's words, its link, its sentiment and when a run saw it, newest first, filterable by watch, date and words. Free because the sweeps were billed when they ran.
check_disclosurefreeWhether a sponsored caption discloses the partnership the way the creator's market requires (France's "Publicité" or "Collaboration commerciale", Germany's "Werbung", "#ad" elsewhere): present, missing or unclear, the words found and the wording to use. Reads the caption only.

Answer a question you actually have

ToolCreditsWhat it is for
export_reportfreeA report to paste into a document, built from what the session found: the posts, comments and listings exactly as the tools returned them, as cards with their images, links and figures, between your own analysis. Returns markdown, a standalone HTML document as an embedded resource (nooticr://report/<id>), and both again in the structured result. Fetches nothing.
measure_audience_overlap4 + 2 per post opened (16 by default)Whether two accounts on one network talk to the same people: the commenters under each one's recent posts, the ones under both, and the overlap in each direction (their commenters who already comment under you is a different number from yours under them). Measures engaged commenters on a few posts, not followers, and says so. postsPerCreator is the price.
answer_my_audience2 + 2 per post opened (14 by default)The mirror of search_mentions. The questions waiting under your own posts: recent posts fetched, comments read on each, grouped under the post they were left on, every comment with a stable id, and the ones that read like questions or requests flagged and sorted to the top. It finds and drafts — it cannot post a reply itself: the drafts are for a person to paste in, or to send through draft_comment_reply and post_comment_reply once the text is confirmed. limit caps how many posts are opened, which is the price.
prepare_handofffreeThe hand-off to your tracker. Turns items you classified — a bug report in a comment, a complaint said out loud in a video — into the exact title, body and labels to file through whichever GitHub, Jira or Linear MCP server the host also has connected. nooticr files nothing and holds no tracker credential. The body carries the quote fenced and framed as a third-party report rather than as instructions, because the issue is read next by a coding agent; contact details are redacted, @handles and #numbers are defanged so filing notifies nobody by accident, and a searchFirst string dedupes a second sweep against the first. Makes no requests.
list_comments_to_answerfreeRecent comments on your own connected account that nobody has answered yet, newest first (YouTube once connected with capabilities: ["manage_comments"]; other networks come back under unsupported with the reason). Read-only.
draft_comment_replyfree with text, 1 per reply nooticr writesStores a reply to one comment; nothing is posted. A written reply follows the workspace's brand voice (appId picks the product when there are several) and comes with its rationale; with no brand voice, product or guidance to write from it is refused at no cost. Returns a draftId and a confirmationToken to show the user first. commentIds drafts written replies to up to 10 comments on one account at once, each with its own draftId and token, and lists the ones it skipped and why.
post_comment_replyfreePosts a stored draft as your own account. Needs the draftId, confirm: true and the confirmationToken, and only after the user has agreed to the exact text. Each comment is answered at most once.
show_audience_repliesfreeLays your drafts out for a person to work through, grouped under the post, each with what you decided to do about it. Sends nothing; fetches nothing.
show_standingsfreeDraws the standings your model read out of compare_creators or watchlist_standings — one row per creator, with the window and the median it was scored against. ranking records which axis you ordered on, and tooThin draws a creator with too short a window as unranked rather than last: missing from a comparison is not the same as losing it. Makes no requests.
show_trendfreeDraws the trend your model read out of mention_trend. tooShort marks a series with too few points to call a direction, and edgeIsRecordStart marks a left edge that is where the record begins rather than where the conversation did — a chart hiding either is the mistake this view could otherwise make on your behalf. Makes no requests.
track_creator2What a creator shipped, and which of it beat their own median rather than a raw view count that mostly measures follower count. One post list, whatever the window. If they are on your watchlist it also marks what is new since your last check and moves that marker forward — its own marker, not the one catch_up_watchlist keeps.
compare_creators2 per creator (4-10)Two to five creators side by side on the one axis that compares: each post's ratio to that creator's own median. Per creator you get the window that was scored, their median, the share of it that beat that median, how hard they beat it when they did, every ratio, and their highest and lowest post. It does not rank them — "how often they land one" and "how big it is when they do" usually disagree, and a hit rate over a short window is one post either way, so the window travels with every number and the read is yours.
watchlist_standings2 per watched creatorThe same, across everyone on your watchlist: "who moved" in one call instead of one per creator. Reading the watchlist is free; the fetches are not, so it confirms the total before spending. catch_up_watchlist answers what is new; this answers how it did.
find_collaborators2, or 4 with a seedA collaboration shortlist: a keyword search merged with the lookalikes of a creator who already fits, marked by which search found each one. Every candidate also carries the links pulled out of their bio, typed and sorted by how much opening one will tell you — a repository to read the code in, their own site, a link hub that holds the real links — so vetting is reading the work rather than re-reading the follower count. Those links are never fetched here: they came out of a field the person being evaluated controls, so the host opens them, and the result says so. It does not measure audience overlap — that costs about eight credits a candidate, so the result says so and points at measure_audience_overlap for a finalist rather than faking the signal.
find_people_with_problem6 per platformFind people describing a problem in their own words — prospects, early users, anyone whose complaint your product answers. Say the problem the way a person would say it and it searches for posts shaped like that complaint rather than for the topic it is about: searching the topic finds marketing about it, which is what discover_social_posts is for. Widens the query into the forms a complaint takes — the plain phrasing, the does-anyone-else question, the is-there-a-tool ask — and marks which one surfaced each post. A broad search and not a filter: the posts come back for you to judge, and plenty will be off-target. Defaults to reddit, where people describe workflow pain in sentences. Each platform is searched once per query shape — three by default, at 2 credits a search. Not searchable here: linkedin, which has no keyword post search upstream. Pass verbatim: true to have every item rendered whole for quoting rather than clipped to fit; same price.
show_collab_shortlistfreeDraws the candidates you scored, ranked, and asks the user which to approach. The scores are attributed to your model, not presented as a nooticr rating, and a candidate scored without anything having been opened is marked unverified. Makes no requests.
benchmark_post3One post against the creator's own recent distribution, with the post taken back out of its own baseline. Returns median, quartiles, ratio and percentile, so the answer can be "this is an ordinary result, not a failure". Different question from compare_social_posts, which weighs two URLs you already picked.
content_ideas_from_audience2 + 2 per post read + 2 (12 by default)Demand against supply: what your commenters explicitly ask for, set beside what a niche sweep shows is already being made. A gap nobody asked for is noise; a request nobody serves is the opportunity. Falls back to your most-used hashtag when you name no niche.
detect_spoken_mentions2Every brand named out loud in one video. The spoken transcript and the written caption, side by side, for your model to list each brand with its verbatim sentence, the creator's framing and whether it was said, written or both. Works where the creator never enabled captions, because the audio is transcribed. 1 credit for get_post_transcript plus 1 for get_social_post; nothing when no transcript can be made.
search_spoken_mentions2 per platform narrowed by niche + 2 per creator handle + 1 per transcript, up to maxTranscriptsThe mirror of search_mentions, for what was said rather than typed. Narrows to candidate posts (a niche sweep, named handles, and/or your watchlist), transcribes only the most-viewed survivors up to a hard ceiling, and searches the words for the term — TikTok, YouTube and Douyin, and only where the creator actually enabled captions. Reports how many candidates were found, transcribed and matched, so the spend is legible.

Study a market on Amazon

Everything above reads social content. These read a marketplace — the place where the same audience says what it actually bought and why it sent it back. The question they exist for is a category decision: we are considering ashwagandha — what makes people buy, what stops them, what are the incumbents good at, and where is the gap? Every one of those answers lives in review text, so the unit of work is a scan of the category rather than a lookup of a product.

Collection is genuinely slow, and honestly so: each listing is a real browser render behind Amazon's bot defences, and the pace between them is set by what Amazon tolerates rather than by what the machine can do. Ten listings with their reviews is minutes, not seconds — so a scan returns what is ready and hands back a scanId for the rest.

ToolCreditsWhat it is for
scan_amazon_category3 per listing collected (30 by default)The category, collected: listings with prices, star histograms, Amazon's own review-aspect counts and the review text itself, plus the arithmetic over them — price spread, rating spread, which aspects recur across how many brands, and the share of each listing's ratings sitting at 1-2 stars, read from the histogram rather than from the handful of reviews a scrape returns. Pass query to search the category, asins to pin the competitors a customer named, or both; named competitors keep their place at the front. Because the price is set by an argument, it confirms the total before spending it.
amazon_scan_statusfreePicks a running collection back up by scanId — the listings collected since, with the same rollup. Free: it is the poll scan_amazon_category asked for, and billing the second half of one answer would charge for a wait the server chose.
get_amazon_product3One listing by ASIN or URL: price, rating, the full star histogram, features, specs, Amazon's review digest and aspect breakdown, and the reviews.
scan_marketplace_category3 per product collected (30 by default)The same category read on eleven more sites — AliExpress, Cdiscount, Flipkart, Mercado Libre, Lazada, Otto, Rakuten, Trendyol, Jumia, Vinted and Temu. Vinted is resale rather than retail, so its rating describes the seller and the scan says so in ratingScope — do not read it as a product's reviews. marketplace picks the site; market picks the storefront for the sites that have several, and the argument names the real set per site so a model cannot send Otto a Lazada region. Same rollup, same confirmation before spending.
marketplace_scan_statusfreePicks a running marketplace collection back up by scanId and the same marketplace. Free, for the same reason amazon_scan_status is.
get_price_historyfreeOne product's price over time, or its rating, reviewCount or availability with metric, from the observations stored each time it was scanned. marketplace and id name it as get_marketplace_product does; from/to default to the last 30 days. Returns the points oldest first with min, max, first, last and the change from first to last. Reads stored data only; a product never scanned answers recorded: false.
marketplace_changesfreeWhat moved in a category since the previous scan of the same marketplace and query: products that entered or left the results and ones whose price or place changed. Read from the two latest stored scans, so it fetches nothing; a category scanned once says it has no earlier run.
track_pricefreeFollows a listing already read here (by marketplace and id, as get_marketplace_product names it) on the workspace's Price history page. competitorOf draws it against one of the workspace's own tracked listings; productLine groups listings. Tracking again changes only the fields given. Fetches nothing, so a product never read is refused with the read that records it.
untrack_pricefreeStops following a tracked listing. One the workspace's own scans still return stays on the page as seen in a scan; one that was only tracked is removed. A listing that was not tracked is a no-op.
get_marketplace_product3One product from any of the twelve sites, by id or URL: price, rating, the full star histogram, specs and the reviews.
show_amazon_category_insightsfreeDraws the read your model wrote — purchase drivers, barriers, what each brand does well, the gaps, the positioning angles — beside the listings and their reviews, so a person can click a product and check any claim against the text it came from. The conclusions are attributed to your model, never presented as a nooticr rating of anyone's product. Given the scanId, it re-reads the listings from the scan itself (free) instead of drawing whatever the model re-sends, and flags any ASIN the read cites that the scan does not contain; without one, the card says its listings were not checked.
show_marketplace_category_insightsfreeThe same card for the other eleven marketplaces: your read beside that site's listings and reviews, labelled with the right site, re-read from the scan by scanId and marketplace so nothing is re-typed.

Make something

ToolCreditsWhat it is for
generate_hook_ideas2, or freeThe source post and its transcript, to write openings against. Give a topic instead of a url and it fetches nothing and costs nothing.
show_hooksfreeDraws the hooks your model wrote from generate_hook_ideas — each one with the device it uses and who it stops. Makes no requests; it only renders what you pass it.
evaluate_social_draftfreeYour draft back with the rubric to hold it to — hook, clarity, payoff, specificity and fit, each scored 1-10, plus the three fixes worth making and a rewritten opening. Fetches nothing: the text is already yours. The only tool that runs before the content exists.
adapt_post_for_platform2The source post and its transcript, to rewrite for other surfaces — X thread, LinkedIn post, carousel slides, YouTube metadata, newsletter.
show_repurposed_postfreeDraws the rewritten copy your model produced from adapt_post_for_platform — one entry per surface. Makes no requests; it only renders what you pass it.
generate_post_variants2The post that worked, with its transcript, to build variants from: hook, the angle that changes, ordered shot beats and a CTA.
show_variantsfreeDraws the variants your model wrote from generate_post_variants — each one's hook, angle, beats and CTA. Makes no requests; it only renders what you pass it.

Account

Documentation truncated — see the full README on GitHub.

Reviews

No reviews yet

Be the first to review this server!