Overview

Nooticr MCP is a Model Context Protocol server that lets an AI assistant read public social posts across 10 networks and product listings across 12 marketplaces, and act on what it finds.

It connects over Streamable HTTP at https://mcp.nooticr.com/mcp, authenticates with OAuth 2.1 (or an API key, for a server with no browser), and exposes 90 tools. Assistants use it to fetch a post's media and spoken transcript, read its comment section, survey a niche, scan a shopping category down to its review text, and then produce work from that: alternative hooks, variants to film, a draft scored before publication.

Networks covered: TikTok, Instagram, YouTube, X, Reddit, Weibo, LinkedIn, Douyin, Xiaohongshu, Bilibili.

For IT administrators

If you are deciding whether to approve this server for your organisation, this section is the short version. Everything here is enforced in the implementation, not policy alone.

What it does

  • Reads public posts your users or their assistant explicitly request, by URL or search term
  • Returns that content to the assistant to reason over — it runs no model of its own
  • Draws on the signed-in user's own credit balance
  • Returns structured data and rendered cards to the assistant

What it cannot do

  • Hold your social credentials. An account can be linked, but only by sending you to the platform's own consent screen — the token it issues is held by Nooticr and never reaches the assistant
  • Post, comment, like, follow or message anywhere, on anyone's behalf
  • Read private messages, drafts, or non-public profile data
  • Access anything on the user's device or network
  • Reach other systems in your environment — it only calls out to the services listed below

Nothing it writes leaves Nooticr. Of the 90 tools, 71 carry readOnlyHint: true. The 19 that do not include writes to the user's own Nooticr account, consent-flow setup, and two paid marketplace scans that collect public listings and reviews. Eight carry destructiveHint: true because they replace a saved marker, portfolio, product value, analysis, or content plan, or stop something the user started. None writes to your organisation's systems, and none can post, comment, like, follow or message anywhere.

Access and revocation

Interactive clients authenticate with OAuth 2.1 with PKCE (S256) and dynamic client registration — no key is ever pasted into a chat window, and the tokens it issues are scoped and expiring.

A server-side integration has no browser to run that flow in, so it authenticates with an API key instead: one credential, sent as Authorization: Bearer nk_…, minted from an account that did sign in once. A key is scoped to one account and one workspace, stored only as a hash, and cannot create or revoke keys — so a leaked key cannot outlive being revoked. See Server-side integrations.

Two scopes are granted, and they describe exactly what the tools do:

  • social:read — read public posts, transcripts, comments, creators, sounds and hashtags
  • credits:spend — run the tools that draw on the user's credit balance

To revoke: the user removes the connector in their AI client, which invalidates its tokens immediately; an API key is revoked with npx -y @nooticr/mcp api-key revoke <id>, which takes effect at the API on the spot. To remove the account and its data entirely, email support@nooticr.com.

Data handling

DataStored?Retention
Account identity (email, display name, user id)YesUntil the account is deleted
OAuth tokens issued to the AI clientYesUntil expiry or revocation
API keys (stored as a sha256 hash, never in the clear)YesUntil revoked or deleted with the account
Credit ledger (tool name, credits, timestamp)YesRetained as a financial record
URLs and search terms passed to toolsNoProcessed, not retained after the call
Content of retrieved postsNoStreamed through; media cached only transiently so it can be displayed
Chat conversation contentNoThe server sees the tool call, not the surrounding conversation
Payment card detailsNoStripe handles payment; Nooticr receives only a reference
Operational logs (timestamps, status codes, errors)YesUp to 30 days

Data is not sold, not shared for advertising, and not used to train models.

Subprocessors and egress

The server calls out to these services and no others:

ServicePurpose
CloudflareHosting and edge delivery of this server
api.nooticr.comThe Nooticr API — accounts, credits, tool execution
StripePayment processing
Social data providerRetrieving public posts from the supported networks
AI providerThe analysis and generation tools

If you allowlist egress, the assistant only needs to reach mcp.nooticr.com. Everything else is server-to-server.

Cost control

Spend is bounded by the user's prepaid credit balance — there is no invoice, no overage and no auto-renewal. A user cannot spend more than they have loaded. Every tool declares its price in its own description and in _meta.nooticr/creditCost, so an assistant can budget before calling. Failed calls are refunded automatically, and a call interrupted mid-flight is billed once at most.

Third-party content

Retrieved posts are published by third parties and may contain personal data about the people who published them. Nooticr processes it only to answer the request. Your users are responsible for using it lawfully — see the acceptable use section of the Terms. Nooticr is not affiliated with, endorsed by or sponsored by any of the platforms; their names and marks identify coverage only.

Privacy Policy Terms of Use

Connecting

Claude.ai and Claude Desktop

Settings → Connectors → Add custom connector, then paste:

https://mcp.nooticr.com/mcp

Sign in with Nooticr when prompted. No key to copy.

Claude Code

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

ChatGPT

Settings → Connectors → Advanced → Developer mode, then add the same URL.

Cursor and other stdio clients

{
  "mcpServers": {
    "nooticr": {
      "command": "npx",
      "args": ["-y", "@nooticr/mcp"]
    }
  }
}

Then npx -y @nooticr/mcp login once to sign in.

Server-side integrations (no browser)

The OAuth flow needs a browser once and leaves behind a token that has to keep being refreshed. If your integration runs on a server, mint an API key instead. The quickest way is the API keys card on your dashboard — sign in, name the key, copy it. From a terminal, the same thing:

npx -y @nooticr/mcp login
npx -y @nooticr/mcp api-key create --name "my-service"

The key is printed once and stored only as a hash, so it cannot be shown again. Give it to the deployment and there is nothing left to configure:

POST https://mcp.nooticr.com/mcp
Authorization: Bearer nk_…

Or, for a local stdio process, set NOOTICR_API_KEY — or run npx -y @nooticr/mcp login --api-key nk_… where a client will not inherit your shell environment. There is no consent screen, no redirect URI and no refresh: the key is valid until npx -y @nooticr/mcp api-key revoke <id>. Pass --expires-in-days at creation if you would rather it also expire on its own.

Marketplaces

Twelve shopping sites, read the same way a post is: the products, their prices, the full star histogram and the review text itself — not a summary of it.

One marketplace argument picks the site, so an assistant chooses a site rather than choosing between twelve near-identical tools. Amazon has a tool of its own, scan_amazon_category, because it returns Amazon's own review-aspect counts on top of the same shape.

SitemarketplaceWhat to pass as the product id
Amazonamazonan ASIN or a full Amazon product URL
Storefronts — domain: a country code or host — com (US), co.uk, de, fr, it, es, ca, co.jp, in, com.br, com.mx, com.au, nl, se, pl, com.be, com.tr, ae, sa, eg, sg, cn. Default www.amazon.com
AliExpressaliexpressthe numeric id from /item/<id>.html, or a full AliExpress product URL
One storefront; takes no market argument.
Cdiscountcdiscountthe SKU from a product URL's /f-<category>-<sku>.html, or the full URL
One storefront; takes no market argument.
Flipkartflipkartthe 16-character PID from a product URL's pid= parameter, or the full URL
One storefront; takes no market argument.
Mercado Libremercadolibrea site id such as MLA904253674, or a full Mercado Libre product URL
Storefronts — market: one of eighteen markets, named however it comes to hand — MLB, br, Brazil or mercadolivre.com.br. Inferred from the ids when omitted, and a job runs against one market: an id from another is refused rather than mis-filed
Lazadalazadathe number after -i in a product URL (13711387806 in /products/<slug>-i13711387806.html), or the full URL
Storefronts — market: sg, my, th, vn, ph or id. An item id is scoped to one of them — the same id on another Lazada host is a different product or nothing at all
Ottoottothe tail of the product path — C1720803139 on otto.de, or the SKU AKLBB2029107352 on ottoversand.at
Storefronts — market: de or at. The two are not interchangeable: an id from one does not address a product on the other
Rakutenrakutenon Ichiba `<shopId>_<itemId>` (411453_10000003) or `<shop>/<manageNumber>`; on Taiwan `<shop>/<productCode>`. A full product URL works too
Storefronts — market: jp (Ichiba) or tw. Taiwan publishes no review text, so a category study there reads on price and rating alone
Trendyoltrendyolthe number after -p- in a product URL (819066262 in /brand/name-p-819066262), or the full URL
Storefronts — market: one of 47 storefronts — tr, de, ae, sa, at, be, fr, it, nl, pl, ro and the rest. An id is scoped to one: the same number 404s on another country's
Jumiajumiaa SKU such as OR537EA86PWGTNAFAMZ. A product URL does NOT contain it — the number at the end of a product path is a different handle — so reach a product through `query` instead
Storefronts — market: ng, eg, ke, ma, ci, gh, sn, tn, ug or dz
Vintedvintedthe numeric id from /items/<id>, or a full Vinted item URL
Storefronts — market: one of 27 European storefronts — fr, de, es, it, pl, co.uk, com (US), com.au and the rest. A listing belongs to exactly one: the same item id does not exist on another country's Vinted
Temutemuthe goods id after -g- in a product URL, or the full URL
One storefront; takes no market argument.

Search in the site's own language. A query in the wrong language does not error — it returns the few imported listings that happen to match, which reads as a thin category and is really a bad search. Each site's expected language: Amazon the storefront's own — English on com, co.uk, ca, in, com.au and sg, otherwise the country's · AliExpress English · Cdiscount French · Flipkart English · Mercado Libre Spanish, except Brazil (MLB), which is Portuguese · Lazada English on sg and ph; Thai, Vietnamese, Indonesian or Malay on th, vn, id and my · Otto German, on both storefronts · Rakuten Japanese on jp, Traditional Chinese on tw · Trendyol Turkish on tr; the storefront's own language elsewhere · Jumia English on ng, ke, gh and ug; French on ci, sn, ma, tn and dz; Arabic or French on eg · Vinted the storefront's own — French on fr, German on de, Polish on pl, and so on · Temu English.

Collection is a real browser render behind each site's bot defences, so it runs as a background job: a scan returns what is ready plus a scanId, and the poll that finishes it is free. 3 credits per product collected; a single product by id is 3.

Tool reference

90 tools. Costs are in credits and match what the server charges; an argument marked ? is optional.

Read a post

Retrieve what a post contains. No interpretation, no AI.

ToolCostInputsWhat it does
get_social_media1 crurlA post's media, caption, author and engagement counts.
You want the post itself, not an interpretation of it.
get_post_transcript1 crurl, language?The words actually spoken, read from the post's caption track (TikTok, YouTube).
The exact wording matters — a hook, a claim, a CTA. Cheaper and more literal than any AI tool.
get_post_comments2 crurl, limit?Top comments, the themes the platform clusters them into, and which the creator pinned or liked.
You want to read what people wrote. Use summarize_post_comments to have it synthesised instead.
get_post_frames2 crurl, count?Frames from the post's video as real images, chosen by scene change rather than by the clock. Roughly 1,200 tokens of context each.
The frames are all you want. analyze_post pairs them with the transcript for one credit more.

Understand a post

The material behind a post you already have, for your own model to read.

ToolCostInputsWhat it does
analyze_post_fast2 crurlThe post's transcript, caption and stats — everything but the pictures. Two fetches: get_social_media and get_post_transcript.
The default. A credit less than analyze_post, and it carries everything the script and structure depend on.
analyze_post3 crurlFrames sampled across the video, as images your own model can look at, plus the transcript. Two fetches: get_post_frames (2) and get_post_transcript (1).
The visuals are the point — framing, editing, on-screen text, pacing.
understand_social_post3 crurl, focus?The same frames and transcript as analyze_post, asked for what physically happens on screen rather than why it works.
You need the events, not the strategy.
summarize_post_comments2 crurl, limit?The comment section, every comment with an 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 goal is what to make next, not what people wrote. show_comment_review then draws your labels for free.
compare_social_posts1 crurls[] (2–5)The first post with its stats, and the comparison left to you — fetch the rest with get_social_media at 1 credit each.
Performance differs and you need to know why.
why_did_this_underperform3 crurlOne post read against the creator's own recent median, so the answer can be “this is an ordinary result, not a failure”.
You have one post and nothing to compare it with; compare_social_posts is for two URLs you already picked.
show_post_analysisFreethe analysis you wroteDraws the analysis you wrote after analyze_post or analyze_post_fast handed you the material. Fetches nothing.
After you have read the frames and the transcript — not instead of reading them.
show_comment_reviewFreeyour labelled commentsDraws the comment classifications you produced from summarize_post_comments, each with its sentiment and category, sortable.
After you have classified the comments.
show_compared_postsFreeyour comparisonDraws the comparison you wrote, with a badge on the winner, what differed and the next experiment.
After compare_social_posts and the fetches you made yourself.

Research a niche or creator

Look across many posts to find the pattern.

ToolCostInputsWhat it does
discover_social_posts2 crniche, platform?, limit?, offset?Recent posts for a niche across seven networks, with pagination.
You want posts to look at. Use niche_report for the pattern across them.
get_user_posts2 crusername, platform?, limit?One creator's recent posts with stats.
Scanning an account.
search_creators2 crkeyword, platform?, count?Creators by niche or keyword, with follower and engagement data.
You know the niche but not the names.
get_similar_creators2 crusername, platform?Lookalikes for a creator that already fits.
One creator works and you want more like them.
suggest_creator_identity2 crhandle, platform?, platforms?Accounts on other networks that may be the same person, with the evidence for each. Suggests, never merges. 2 per network searched plus 2 for the handle.
You have one confirmed handle and want the same creator elsewhere.
discover_sounds2 crkeyword, platform?, count?Trending audio with playable previews and usage counts.
Picking audio, or spotting a sound before it peaks.
discover_hashtags2 crcountry?, days?, count?, industryId?Trending hashtags with volumes and whether each is rising, cooling or steady.
Choosing tags, or catching a wave early.
find_hook_pattern2 crusername, platform?, limit?A creator's recent posts, fetched so their opening lines can be read as a set and turned into fill-in-the-blank templates.
Reverse-engineering someone you want to learn from. The same single fetch as analyze_creator_profile, asked a narrower question.
niche_report2 crniche, platform?, count?Recent posts in the niche with their stats, so the dominant formats, the hook patterns and the gaps can be read off them.
Entering a niche, or deciding what to make next.
analyze_creator_profile2 crusername, platform?, limit?, focus?A creator's recent posts with their stats — the material of a teardown: niche, themes, hook formula, what over- and underperforms.
A deep read of one account. Pair it with analyze_post on the posts whose visuals you want to see.
search_mentions2 crterm, platforms?, since?, limit?, offset?Brand monitoring: every comment that names a term, across nine networks at once, grouped under the post it was left on and filtered to a date window you choose — 2 credits per network searched (5 for Xiaohongshu), not per call.
Watching what is said about a brand, product or person; discover_social_posts is for one platform.
watch_creatorFreeusername, platform?, note?Add a creator to your watchlist. Stores the handle only — nothing is fetched.
You want to follow someone over time rather than look once.
unwatch_creatorFreeusername, platform?Drop a creator from the watchlist.
They should no longer appear in the catch-up.
list_watchlistFree—Who you are watching, and when you last caught up on each. Reads the stored list only.
Before paying for a catch-up, or to find the exact handle to unwatch.
catch_up_watchlist2 crlimit?, platform?What everyone you watch has posted since your last catch-up — 2 credits per creator checked, not per call.
Following a set of creators over time instead of re-reading each one.
detect_spoken_mentions2 crurl, brands?, language?Every brand named out loud in one video, for your model to find in the transcript beside the caption — 1 credit for the transcript and 1 for the caption, nothing when no transcript can be made.
A brand may be said on camera but never written; you have the video's URL.
search_spoken_mentions2 crterm, platforms?, handles?, maxTranscripts?Finds a term said out loud on camera rather than written anywhere — 2 credits per platform searched, 2 per creator handle checked and 1 per transcript actually fetched.
A term might be spoken but never typed; search_mentions reads written text only.
find_people_with_problem2 crproblem, platforms?, shapes?People describing a problem in their own words — 2 credits per search, and each platform is searched once per query shape, three by default, so 6 per platform.
Demand research: who has the pain, in what words. Not searchable here: LinkedIn.
answer_my_audience2 crusername, platform?, limit?Your own recent posts and the comments under them, so you can write the replies — 2 credits for the post list plus 2 per post opened, 14 at the default of 6.
The job is answering your own audience rather than reading about strangers.
show_audience_repliesFreeyour drafted repliesDraws the replies you drafted, grouped under the post each comment was left on. Sends nothing.
After drafting, not instead of drafting.
track_creator2 crusername, platform?, window?One rival's recent posts scored against their own median, marking what is new since your last check.
A rival you follow over time. Flat price, whatever the window size.
compare_creators2 crusernames[] (2–5), platform?Several creators on one window, each against their own median — one post list per creator, so 2 credits each and 4–10 in total.
“Is their hit rate better than mine”; track_creator is one creator alone.
watchlist_standings2 crlimit?, platform?How everyone on your watchlist is doing against their own median — 2 credits per creator, so the price is the size of your list. It confirms before spending.
The weekly “who is accelerating”; catch_up_watchlist is what is new rather than how it did.
show_standingsFreeyour standingsDraws the standings you read out of compare_creators or watchlist_standings — one row per creator, their median, how often they beat it and by how much.
After you have read the numbers.
who_should_i_work_with2 crniche, platform?, seed?A shortlist of creators worth approaching, with what to check before you do. 4 credits with a seed creator.
Building a list to vet. It says what a full vet would cost rather than faking one.
show_collab_shortlistFreeyour scored creatorsDraws the creators you scored after vetting, ranked, with the scores attributed to you rather than to nooticr.
After who_should_i_work_with and your own vetting.
what_should_i_make_next2 crniche, platform?, limit?The supply side and the demand side together — 2 credits for the post list, 2 per post read and 2 for the sweep, 12 at the default of 4.
Deciding what to film; niche_report covers the supply half alone.
create_brand_watchFreeterm or handle, kind?, cadence?, budgetCredits?, deliverTo?Schedules a recurring sweep and emails only what is new. Free to create; each run bills like the tool it repeats — 2 credits per network (5 for Xiaohongshu), or a flat 2 for a competitor watch.
You want the answer to keep arriving. It quotes the cost and asks before creating anything.
list_brand_watchesFree—Every watch you have: cadence, cost per run, credits spent, runs made, next run due, and whether it is stopped.
Before creating one — a second watch on the same term is a second recurring charge for the same answer.
stop_brand_watchFreeidStops a watch immediately: the run that was due does not happen and nothing further is charged.
Works at a zero balance, because someone out of credits is exactly who needs to turn off what is spending them.
update_watch_portfolioFreewatchId, add, removeAdds terms to a portfolio watch or takes them out. The per-run budget you agreed to does not move, so no new confirmation is needed.
When a new competitor or product should join the comparison — the reply says if the split budget now reaches fewer networks.
mention_trendFreewatchIdThe series a brand watch has built up over its runs, per network, with the mentions more than one run has seen. Free — the sweeps were billed when they ran.
Reading direction out of a watch you already pay for.
show_trendFreeyour read of the seriesDraws the trend as a chart with your own read of what changed. Says so when the series is too short to call.
After mention_trend.
prepare_handoffFreethe items you classifiedTurns a bug report in a comment into the exact text to file in GitHub, Jira or Linear, with the quote framed as third-party evidence and a search string to check for duplicates first.
You classified something worth filing. Fetches nothing and costs nothing.

Research a marketplace

Read a category on twelve shopping sites: products, prices, star histograms and the review text itself.

ToolCostInputsWhat it does
scan_marketplace_category3 crmarketplace, query? or items[], limit?, reviews?, market?A whole category from one of twelve marketplaces: products, prices, star histograms and the review text, with the arithmetic over them. 3 credits per product collected — a product with reviews is a real browser render behind the site's bot defences.
Sizing up a category or a competitive set. Collection runs in the background; poll marketplace_scan_status for free.
marketplace_scan_statusFreemarketplace, scanId, waitSeconds?Picks up a scan that was still running. Free: it is the poll the scan asked for, and repeating it is how a scan gets more time.
A scan came back incomplete — which the first call usually does.
get_marketplace_product3 crmarketplace, item, market?One product by id or URL: price, rating, the full star histogram, specs and the review text.
A single product; scan_marketplace_category collects many in one job.
scan_amazon_category3 crquery? or asins[], limit?, reviews?, domain?The same as scan_marketplace_category for Amazon, plus Amazon's own review-aspect counts. 3 credits per listing collected.
Amazon specifically. Any other site goes through scan_marketplace_category.
amazon_scan_statusFreescanId, waitSeconds?Picks up an Amazon scan that was still running. Free, and repeatable.
The Amazon half of marketplace_scan_status.
get_amazon_product3 crasin or url, domain?One Amazon listing: price, rating, star histogram, features, specs, Amazon's review digest and aspect breakdown, and the review text.
A single listing.
show_amazon_category_insightsFreeyour category readDraws the read you wrote beside the listings and their reviews, so a person can click a product and check any claim against the text it came from.
After you have read the reviews. The scores shown are attributed to you, not presented as a nooticr rating of anyone's product.
show_marketplace_category_insightsFreemarketplace, your category readThe same card for the other eleven sites: your read beside that site's listings and reviews, re-read from the scan so nothing is re-typed.
After reading a scan_marketplace_category result.

Make something

Turn what you learned into work you can publish.

ToolCostInputsWhat it does
generate_hook_ideas2 crurl? or topic, count?, tone?The source post and its transcript, to write openings against. With a topic and no url it fetches nothing and costs nothing.
You know the subject and need openings to choose between.
evaluate_social_draftFreedraft, platform?Your draft back with the rubric to hold it to — hook, clarity, payoff, specificity and fit, each scored 1-10, plus the fixes worth making. Free: the text is already yours, so there is nothing to fetch.
Before filming, while changing it is still cheap. The only tool that runs before the content exists.
adapt_post_for_platform2 crurl, targets?The source post and its transcript, to rewrite as an X thread, LinkedIn post, carousel, YouTube metadata or newsletter.
A post worked and you want it on other surfaces.
generate_post_variants2 crurl, count?, angle?The post that worked, with its transcript, to build variants from — hook, the angle that changes, ordered shot beats, CTA.
Moving from why it worked to what to make.
show_hooksFreethe hooks you wroteDraws the openings you wrote, each with the device it uses and who it stops.
After generate_hook_ideas.
show_variantsFreethe variants you wroteDraws each variant's hook, the angle that changes, its shot beats and its call to action.
After generate_post_variants.
show_repurposed_postFreethe copy you wroteDraws the rewritten copy, one entry per surface you rewrote it for.
After adapt_post_for_platform.
review_postFreepostId, or appId plus draft fieldsScores a post before you publish: hook strength, an optional A-vs-B hook comparison, aesthetic and storytelling notes, rewritten hook and caption suggestions. Nothing is published.
The last check before it goes out. Free, same as the dashboard's own pre-publish review.
draft_postPlan AI creditstopic, appId?, platform?A full draft for your own product — hook, caption, hashtags and a per-slide script. Saves and schedules nothing.
Billed like the dashboard's Draft Post button: your workspace's plan AI credits, not your MCP balance.
generate_captionsPlan AI creditsvideoId or appIdA transcript plus start/end-timed caption lines for your own video. Burns nothing onto the video.
Billed like the dashboard's Generate Captions button: plan AI credits.
generate_content_planPlan AI creditsappId?A weekly plan grounded in your own post history. Saves it; schedules and publishes nothing.
Billed like the dashboard's Content Plan button: plan AI credits. Read it back later with get_content_plan.
get_content_planFreeappId?The saved weekly plan, or null when none has been generated yet. Read-only.
Reading back what generate_content_plan produced. Free even when a plan exists.
growth_briefPlan AI creditsappId?What is working, what is not, the wins, the risks and concrete next actions — grounded in your real post history and synced analytics. Read-only.
Billed like the dashboard's Growth Brief button: plan AI credits.

Your own product

Your own workspace: its products, its pipeline, its connected accounts and its performance.

ToolCostInputsWhat it does
list_own_appsFree—Every product in your own workspace — id, name, niche, product type. Reads only your own workspace.
First, when your workspace has more than one product and another tool here asks for an appId.
create_productFreename, niche?, product_type?, website_url?Creates a product in the session's own workspace — the row every other tool here needs. Free: no AI call, just a row.
A fresh workspace has none. It cannot create in a workspace you could name.
update_productFreeappId?, plus the fields to changePatches your product's fields; omitted arguments leave their column unchanged, and the result lists what was actually written.
A misspelled field shows up as one that did not change rather than as a silent no-op.
analyze_productPlan AI creditsappId?Fetches your product's own website, reads its recent posts and performance, and writes the result as the product's brand playbook.
10 of your workspace's plan AI credits, first analysis free per workspace. Runs as a job — poll analyze_product_status.
analyze_product_statusFreejobIdPolls an analyze_product job: pending, thinking, done or error, and the playbook once it is done.
Free to poll — the cost was charged when the job started.
get_brand_playbookFreeappId?The product's brand playbook, if one has been configured in the dashboard or written by analyze_product. Returns available: false when none exists.
Grounding anything you write in what the brand has already decided.
get_scheduled_postsFreeappId?, status?What is queued to publish — title, status, scheduled time, approval status. Publishes and changes nothing.
The pipeline, not the history; get_post_performance is what already went out.
get_post_performanceFreeappId?, limit?Your own published posts with their engagement counters — views, likes, comments, shares, platform, date.
The raw history. Pair it with growth_brief for an interpretation.
get_video_statsFreeappId?Your most recently synced video stats across every connected creator, plus a running total. Reads the last sync; triggers no new one.
A quick total without spending anything.
get_google_analytics_dataFreeappId?Your GA4 sync as of its last sync: property, date range, rows synced.
Checking your GA4 data is flowing into nooticr.
get_search_console_dataFreeappId?Search Console clicks, impressions and top queries as of the last sync.
Whether people search for what your content is about.
get_posthog_analyticsFreeappId?Your PostHog pageview trend as of the last sync.
Lining a post's date up against traffic to your site.
list_social_connectionsFree—Which social accounts your workspace has connected and what each one is allowed to do — read, publish, manage comments — plus which platforms can be connected at all.
Before anything that needs an account linked.
connect_social_accountFreeplatformA link to open so the user can connect one account. They approve at the provider; no credential passes through this tool.
list_social_connections showed the platform is connectable and not yet connected.

Account

Balance and billing. Never billed.

ToolCostInputsWhat it does
nooticr_getting_startedFree—Where this account stands (balance, connections, watchlist) and the next calls worth making, with prices.
The first call, or whenever you are not sure what to try.
check_nooticr_creditsFree—Balance and billing URL.
Before a run of paid calls.
list_tool_runsFreetool?, from?, to?, success?, minCredits?, limit?, before?, scope?Your tool-call history: what ran, whether it worked, and the credits each call actually took.
A balance moved more than expected.
get_tool_runFreeidOne run by id, with its full error.
Looking closely at one charge from list_tool_runs.
get_usage_reportFreedays?, from?, to?, scope?Spend over a window: totals, per tool, per day, recent failures; per seat for a workspace's owners and admins.
What did we spend this month, on what, and what failed.
nooticr_loginFree—Re-link the account.
A call fails with an authentication error.
nooticr_settings_readFree—Read your default social platform and result count.
Check the research defaults used when you omit those arguments.
nooticr_settings_updateFreesetSave your default social platform and result count for research tools.
Choose the defaults for future calls that omit those arguments.

Billing

Usage is prepaid in credits. New accounts start with 20 free credits. Every tool is priced at what it fetches upstream, so a tool that makes two fetches costs both — the table above says which.

PackPriceCreditsPer credit
Starter$15600$0.025
Pro$402,000$0.020
Scale$855,000$0.017
  • Credits do not expire and there is no subscription or recurring charge.
  • A call that fails is refunded automatically.
  • A call interrupted after it was charged — a deploy, a dropped connection, a timeout — is billed once at most. Retries carry an idempotency key.
  • Payment is handled by Stripe. Nooticr never sees or stores card details.

Check the balance any time with check_nooticr_credits. Top up on the dashboard — the MCP surface deliberately offers no purchase of any kind, so nothing in a conversation can sell you credits.

Errors and limits

You seeMeaningDo
401 UnauthorizedNo valid tokenReconnect the connector, or run nooticr_login
-32002 insufficient creditsBalance too low for this toolTop up on the nooticr website, then call the tool again
available: falseThe post has no caption trackNot an error — use analyze_post instead
Unsupported URLNot one of the 10 supported networksCheck the coverage list above

A 401 carries a WWW-Authenticate header pointing at the protected-resource metadata, so a compliant client can discover the authorization flow without configuration.

Long-running tools stream their result over SSE and can take 20–70 seconds. If the connection drops, the client reconnects with Last-Event-ID and receives what it missed rather than restarting the call.

Support

Email support@nooticr.com for questions, security reports, data requests or account deletion. We respond to privacy requests within 30 days.