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 133 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

Almost nothing it writes leaves Nooticr. Of the 133 tools, 93 carry readOnlyHint: true. The 40 that do not include writes to the user's own Nooticr account, consent-flow setup, store-connection links, a confirmed comment reply, AI-employee management, creator-pipeline records, creative briefs, and two paid marketplace scans that collect public listings and reviews. Fifteen carry destructiveHint: true because they replace a saved marker, portfolio, product value, analysis, content plan, review, spreadsheet cells, a creator's pipeline details, or the assets attached to a creative brief, stop something the user started, let an AI employee go, or approve or reject one of its queued actions. None writes to your organisation's systems. Public actions an AI employee prepares (publish, email, reply, listing or price changes) wait for the user's approval through approve_action, and only the exact action the user was shown and approved goes out, unless the user has turned autopilot on for that action type, and the one tool that writes to a third-party network, post_comment_reply, posts a single reply to a comment on the user's own account, and only the exact text the user confirmed; no other tool 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

133 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 caption track where a platform publishes one (TikTok, Douyin, YouTube), heard from the audio everywhere else.
The exact wording matters — a hook, a claim, a CTA.
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 words and numbers answer the question. 2 credits, without frames, 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.
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.
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.
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.
Comparing hit rates between two to five creators; track_creator covers one creator.
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.
marketplace_changesFreemarketplace, query, market?What moved in a category since the run before: products that entered or left a search's results, and ones whose price or place changed. Compared from stored scans, so it fetches nothing. Free.
A category was scanned before and you want to know what changed; scan it again first to have a second run.
get_price_historyFreemarketplace, id, market?, from?, to?, metric?One product's price, rating, review count or availability over time, from the observations stored each time it was scanned. Fetches nothing. Free.
You want to know whether a product got cheaper or better rated; read it once with get_marketplace_product to start its record.
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 the draft can still be changed.
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_comments_to_answerFreeplatform?, influencerId?, postId?, sinceDays?, limit?, includeAnswered?Recent comments on your own connected account that nobody has answered yet, newest first. Read-only; sends nothing. Free.
You want to answer your audience and the account is connected with comment management.
draft_comment_replyFree with your text, else 1 crplatform, commentId, postId, text?, guidance?Stores a reply to one comment; nothing is posted. Free with your own text, 1 credit when nooticr writes it. Returns a draftId and confirmationToken.
After list_comments_to_answer, to have a reply ready for the user to read.
post_comment_replyFreedraftId, confirm, confirmationTokenPosts a stored draft as the user's own account. Only after the user has agreed to the exact text. Each comment is answered at most once. Free.
The user has read the draft and said to send it.
creative_assets_listFreeappId?, kind?, briefId?, since?, limit?, cursor?The creative assets (voice-overs, images, videos, composites) generated in your workspace, newest first. Free.
You want to see or reuse what was already generated before making more.
creative_voices_searchFreequery?, language?, accent?, gender?, age?, useCase?, limit?Search ElevenLabs' voice library for a voice to use in a voice-over. Library voices only. Free.
Before creative_voiceover: it needs a voiceRef from here.
creative_voiceoverQuoted firstappId, text, voiceRef?, quality?, confirm?, confirmationToken?A voice-over with word timings. The first call returns a credit quote; nothing is charged until you confirm.
You have a script and a voice from creative_voices_search.
creative_sfxQuoted firstappId, description, durationSeconds?, confirm?, confirmationToken?A short sound effect from a description. The first call returns a credit quote; nothing is charged until you confirm.
You need a one-off sound, not a music bed.
creative_musicQuoted firstappId, prompt, durationSeconds, confirm?, confirmationToken?An instrumental music bed of 5-60 seconds, generated as a job. The first call returns a credit quote; nothing is charged until you confirm.
You need background music; describe mood and tempo, not artists. Poll creative_job_status for the result.
creative_videoQuoted firstappId, prompt, durationSeconds?, aspect?, firstFrameAssetId?, referenceAssetIds?, audio?, confirm?, confirmationToken?One short draft video clip (3-30 s), generated as a job. The first call returns a credit quote; nothing is charged until you confirm.
You need a short clip, optionally from a first-frame image; add voice-over and music with the audio tools. Poll creative_job_status for the result.
creative_composeQuoted firstappId, segments, aspect?, draft?, voiceoverAssetId?, captions?, music?, sfx?, safeZone?, brandKit?, endCard?, output?, confirm?, confirmationToken?Cuts your creative assets into one finished vertical video or still, with captions, brand colours, music and an end card. One flat render, quoted first. Never publishes.
You have clips, images or audio and want them assembled into one post. Poll creative_job_status for the result.
creative_settings_getFreeappId?Your workspace's creative spend caps and what was spent in the last 24 hours and this month. Free.
A creative call was refused for a cap, or before a large batch.
creative_brief_createFreeappId, brief, platforms, audience?, hook?, voiceNotes?, variants?, pick?, budgetCredits?, slotAt?, influencerId?Files a creative brief for one product; your Creative Producer employee or a teammate works it. Free.
You want creative made for a product rather than generating it yourself.
creative_brief_listFreestatus?, appId?, limit?Your creative briefs with their drafts, picks and deliveries. Free.
To see what is queued, waiting for a pick or delivered.
creative_brief_updateFreebriefId, status?, notes?, draftAssetIds?, deliveredAssetIds?, actionIds?, creditsSpent?Moves a creative brief along and attaches what was made. Free.
Work on a brief started, produced drafts, or finished.
creative_imageQuoted firstappId, prompt, size?, n?, transparent?, confirm?, confirmationToken?1-4 still images with GPT Image (low quality). The first call returns a credit quote; nothing is charged until you confirm.
You need a picture, a background or a transparent sticker; put long text in captions, not in the prompt.
creative_image_editQuoted firstappId, prompt, imageAssetIds, maskAssetId?, size?, confirm?, confirmationToken?Edit or combine 1-4 of your existing image assets, with an optional mask. The first call returns a credit quote; nothing is charged until you confirm.
You want to change or merge images you already generated rather than start over.
creative_job_statusFreejobIdWhere an asynchronous creative job stands, with its finished assets and the credits quoted, charged and refunded. Free.
A creative job was started and you are waiting for it; poll after pollAfterSeconds.
sheets_createFreeappId?, title, sheets?Create a Google spreadsheet in the connected Google account, with named tabs and header rows. Nooticr owns the file, so later writes need no approval. Free.
An employee needs a ledger, price table or report sheet it can keep writing to.
sheets_listFreeappId?, limit?The spreadsheets this connection can see: the ones Nooticr created and the ones the customer picked, and whether each may be edited without approval. Free.
Before creating one: the sheet you need may already exist.
sheets_readFreeappId?, id, rangeRead an A1 range of a spreadsheet (at most 10000 cells). Free.
You need the current numbers before adding to or changing a sheet.
sheets_append_rowsFreeappId?, id, sheet, rowsAppend typed rows after the last row of a tab. Free on files Nooticr created or the customer allowed; other picked files wait for approval.
You are logging new entries (an expense, a price check) without touching existing rows.
sheets_update_rangeFreeappId?, id, range, valuesOverwrite an A1 range with typed values. Same approval rule as sheets_append_rows.
You are correcting or recalculating cells that already exist.
sheets_add_sheetFreeappId?, id, nameAdd an empty tab to a spreadsheet. Same approval rule as sheets_append_rows.
A new month or product needs its own tab.
hire_employeeFreetemplate, name?, instructions?, schedule?, monthlyBudgetCredits?, maxCreditsPerRun?Hires an AI employee that works on a schedule inside your workspace. Free to call: it quotes first and creates nothing until you confirm; the runs are billed to the hiring user, up to the monthly budget.
You want recurring work done for you. Public actions wait for your approval unless autopilot is on.
list_employeesFreeincludeFired?Your workspace's AI employees with status, schedule, next run and budget left. Free.
Before hiring another, or to see what is running.
pause_employeeFreeemployeeId, resume?Pauses an AI employee, or resumes it. It keeps its memory and thread. Free.
You want it to stop for a while rather than for good.
fire_employeeFreeemployeeIdLets an AI employee go for good and discards what was waiting for approval. Describes the effect first and acts only on confirmation. Free.
You are done with it; to stop it temporarily, pause it instead.
crm_upsert_creatorFreeplatform, handle, ...fieldsAdds a creator to your creator pipeline, or updates the one already there (matched by platform and handle). Free.
You found a creator worth tracking, or learned more about one.
crm_list_creatorsFreestatus?, appId?, query?, limit?, dueBefore?Your creator pipeline, most recently updated first, each with its last interaction. Free.
Before adding a creator, or to see who is due a next step.
crm_update_statusFreecreatorId, status, noteMoves a creator to a new pipeline status and records why. Free.
A creator's relationship with you changed.
crm_log_interactionFreecreatorId, kind, summary, body?Records a note, vetting result, outreach draft, reply or deliverable against a creator. Free.
Something happened with a creator that the pipeline should remember.
list_pending_actionsFreeemployeeId?, limit?What your AI employees are waiting to do until you approve: a preview of what will be published, sent or changed. Free.
Before approving or rejecting anything.
get_employee_auditFreeemployeeId, from?, to?, types?, runId?, actionId?, limit?, verify?One AI employee's tamper-evident audit trail: runs, calls and their cost, approvals, executed actions, config changes. Owners and admins only. Free.
You need to know what an employee did, why an action went out, or that the record is intact.
approve_actionFreeactionIdApproves one pending action. Returns the preview and a token first and runs nothing; the stored action runs exactly once after you confirm. Free.
You have read the preview and want it to go out.
reject_actionFreeactionId, note?Rejects one pending action, with a note the employee can learn from. Free.
The preview is not something you want published or sent.
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_search_performanceFreeapp_id, start_date?, end_date?, dimensions?, filters?, compare_to_previous?, ...Your own site's clicks, impressions, CTR and position in Google Search, live from its connected Search Console. Free.
Which queries and pages bring people to your site, and what changed.
inspect_urlFreeapp_id, url, urls?Whether Google indexed pages of your own site, the canonical it chose and the last crawl. At most 20 per call. Free.
A page of yours does not show up in Google.
get_sitemapsFreeapp_id, url?Your own site's submitted sitemaps with indexed counts, errors and warnings. Read-only. Free.
Whether Google read your sitemap and how much of it is indexed.
get_page_speedFreeapp_id, url, strategy?Core Web Vitals for a page of your own site: field data when there is enough, and lab scores. Free.
Whether a page of yours is fast enough, and what would make it faster.
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. Publishing happens through an AI employee, when you approve its post in the dashboard, or on its own if you turned on autopilot for publishing for that employee; not from here.
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.
connect_storeFreeplatform, shop?, region?, appId?A link a workspace owner or admin opens to connect an Amazon seller account or a Shopify shop. They approve at the store; no credential passes through this tool. Free.
You want your own store's catalogue read and none is connected yet.
list_store_productsFreeconnectionId?, query?, limit?, cursor?, productRef?Your connected store's own catalogue: title, description, status, price and Amazon listing issues. Read-only. Free.
Before changing anything about a listing, or to see what the store currently says.

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.