TGGET Niche Research

io.tggetPublished by tgget.ioOfficial publisherv1.0.1Updated Oct 24, 2026

Validate app and SaaS ideas: search demand, competitors, app store data and a verdict.

Overview

AI-generated overview

Remote TGGET server that lets an assistant research and validate app or SaaS niche ideas using measured demand, competitor and app store data.

What you can do
Start niche research from a search phrase or a plain-language idea description, then poll status and read findings as they arrive, including ranked phrases, competitors and skipped stages. Retrieve the finished report as Markdown or JSON with verdict, customer pains, MVP, economics, SEO/ASO plans and risks. Add individual checks to a finished research, such as competitors, demand history, App Store, reviews, community signals or paid search metrics. Compare two to five finished researches side by side on ranked measures. Follow a niche for monthly rescans, list followed niches, read their check history, and pause, reactivate or delete them.
When to use it
Useful when deciding whether an app or online service idea is worth building and you want evidence-based demand, competitor and app store data rather than a guess. Also suited to comparing several candidate ideas or tracking how a chosen niche changes month to month.
Requirements
A remote Streamable HTTP endpoint at tgget.io/mcp. A TGGET account with a confirmed email and a personal access token sent as an Authorization Bearer header; a free account is enough. Clients that only run local servers need the mcp-remote bridge via npx. Network access required.
Before you install
The Authorization token is a secret shown once; it expires after a year and is revoked on password change or session close. Researches are counted when started and plans are limited (free: three to start, one more every 30 days); paid plans are bought in the mobile app. Researches on the free plan are public and may appear in an open niche catalog, though the typed description is not shown. Following niches is plan-limited, and deleting a project removes its checks and digests permanently. The 0

Installation

In SourceWeft

  1. Open TGGET Niche Research in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.tgget%2Fniche-research/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "tgget-niche-research": {
      "type": "http",
      "url": "https://tgget.io/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

TGGET Niche Research MCP server

Remote Model Context Protocol server of TGGET, a niche research tool for mobile apps and online services. It lets an AI assistant check an idea against measured data instead of guessing from a description.

Give it a search phrase or a description of an idea in your own words. It returns monthly search demand, sub-niches, competitor sites from search results, App Store apps with what their users complain about, community signals and a final report with a verdict: worth building, needs validation or no niche. The verdict is computed by rules from five measured factors, so the same numbers always give the same answer; the language model only explains it.

  • Endpoint: https://tgget.io/mcp (Streamable HTTP)
  • Authentication: personal access token, sent as a Bearer token. The server tells what it is and lists its tools without a token; every call needs one
  • Name in the MCP Registry: io.tgget/niche-research
  • Documentation: tgget.io/docs/api

[A niche report: verdict and the factors behind it]

What you can ask

  • "Validate this idea: an app that reminds you to water plants and explains how to care for them."
  • "Is there demand for an expense tracker for couples? Who are the competitors?"
  • "Research the niche 'invoice generator' and give me the report as Markdown."
  • "Compare my last three researches and tell me which idea to start with."
  • "Follow the niche of my research about habit trackers and show what changed since last month."

Getting a token

  1. Create an account at tgget.io or in the Android app and confirm your email. A free account is enough.
  2. Open Settings, section "API and AI assistants", and create a token. It is shown once.

Tokens expire after a year and are revoked when you change your password or close your sessions. An account holds up to five tokens.

Connecting

Replace <token> with your token. Ready-made files are in examples.

Claude Code

bash
claude mcp add --transport http tgget https://tgget.io/mcp --header "Authorization: Bearer <token>"

Cursor

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

json
{  "mcpServers": {    "tgget": {      "url": "https://tgget.io/mcp",      "headers": { "Authorization": "Bearer <token>" }    }  }}

VS Code

.vscode/mcp.json:

json
{  "inputs": [    { "type": "promptString", "id": "tgget-token", "description": "TGGET access token", "password": true }  ],  "servers": {    "tgget": {      "type": "http",      "url": "https://tgget.io/mcp",      "headers": { "Authorization": "Bearer ${input:tgget-token}" }    }  }}

Codex

~/.codex/config.toml, with the token in the TGGET_TOKEN environment variable:

toml
[mcp_servers.tgget]url = "https://tgget.io/mcp"bearer_token_env_var = "TGGET_TOKEN"

Clients that only run local servers

Use the mcp-remote bridge:

json
{  "mcpServers": {    "tgget": {      "command": "npx",      "args": ["-y", "mcp-remote", "https://tgget.io/mcp", "--header", "Authorization: Bearer <token>"]    }  }}

Tools

ToolWhat it doesParameters
start_researchStarts a research from a search phrase or a description of an idea. A phrase is scanned directly; a description is first turned into real search queries and the strongest one is scanned.text (required), deep, locale
get_researchCurrent state and findings: status, headline numbers, ranked candidate phrases, competitor overview, child researches, skipped stages.id (required)
get_reportThe final niche report: verdict, customer pains, MVP, napkin economics, SEO and ASO plans, name options, landing page draft, distribution channels, validation steps and risks.id (required), format (markdown or json)
list_researchThe most recent researches of the account, newest first.limit (1 to 50)
run_signalAdds one check to a finished research: competitors for a phrase, demand history, App Store, reviews, community signals, paid search metrics, or a rebuilt report.id, kind (required), phrase, locale
compare_researchPuts two to five finished researches side by side and marks the better value of every measure. The marks come from the numbers, not from the language model.ids (required)
follow_nicheStarts following the niche of a finished research that has a report: it is scanned anew every month and a digest of what changed is sent to the account. Monthly checks do not spend researches.research_id (required)
list_projectsThe niches the account follows, with the latest numbers and the date of the next check.limit (1 to 50)
get_projectA followed niche with the history of its checks and what changed since the previous one.id (required)
update_projectPauses a followed niche, follows it again or stops following it.id, status (active, paused or deleted) (required)

locale sets the language of the conclusions and the report; en is the one available now. The market is chosen by the language of the phrase: search demand is measured in the country of that language. Texts meant for a site or an app store are always written in the language of the market.

Resources and prompt

NameWhat it gives
tgget://quotaResearches remaining on the plan and when the next one becomes available.
tgget://sourcesResearch kinds available right now and what each one costs.
find_niche (prompt)Walks the assistant through validating an idea: start, wait, read the evidence, write a verdict. Argument: idea.

How a research runs

Research runs in the background and takes a few minutes.

  1. Call start_research. It returns the research id.
  2. Poll get_research every 20 to 30 seconds until status is completed and pending is 0. Findings appear as they arrive.
  3. When the research lists a report, call get_report.

Limits and privacy

  • A research is counted when it starts. Checks added to an existing research with run_signal are free.
  • The free plan includes three researches to start and one more every 30 days. Paid plans are on the plans page and are bought in the mobile app; the same account works everywhere.
  • A free account follows one niche, Starter two, Pro ten.
  • Researches made on the free plan are public: the result may be listed in the open niche catalog. The catalog shows the researched phrase and its findings, never the description you typed. Researches on paid plans stay private.
  • The API and the MCP server share a limit of 60 requests per minute.
  • Search interest is evidence, not a customer count. Treat the verdict as a starting point for your own validation.

Links

This repository holds the documentation and connection examples of the hosted server. The server itself runs at tgget.io.

Source: README.md at commit cd998de

Tools

10

start_research

Start Research

Starts a niche research from a short search phrase or a plain-language description of an app or service idea. A phrase is scanned directly (demand, sub-topics, competitors, signals); a description is first turned into real search queries, the best one is then scanned automatically. Demand is measured in one country and one language: `country` and `language` when given, otherwise the country and the language of the phrase (English: United States, Spanish: Spain, Portuguese: Brazil); write the phrase in the language people search in there. `country` and `language` of the answer tell how the numbers were measured. Returns the research id to poll with get_research. Counts as one research of the plan allowance, whether the data comes from the sources or from the shared cache.

Parametersdeeptextrequiredlocalecountrylanguage

get_research

Get Research

Returns the current state and findings of a research by id: status, `country` and `language` the demand was measured in (null where a source does not measure by country), headline numbers, ranked candidate phrases, competitor overview, child researches (sub-topics, competitor checks, signals) with their ids, and skipped stages. Call repeatedly until status is completed and pending is 0.

Parametersidrequired

get_report

Get Report

Returns the final niche report of a finished scan (or the report research itself) as Markdown: verdict, what product to build (customer pains with evidence and severity, positioning, MVP with the pain each feature relieves, platform, monetization, competitor matrix), napkin economics (price hypothesis, acquisition cost from the cost per click in paid search, revenue per customer, whether it adds up, assumptions), SEO plan for the site (clusters, pages with title/H1/description, content plan, FAQ), ASO for App Store and Google Play, name options with domain and App Store availability, landing page draft, distribution channels by type with a first step, effort and priority, validation steps and risks. Pass format "json" for structured data (keys: verdict, product, economics, seo, aso, names, landing, channels, validation, risks).

Parametersidrequiredformat

list_research

List Research

Lists the researches the account started itself, newest first: niche scans of a phrase and descriptions of an idea, without the checks they spawned. Use it to find the id of an earlier research before get_research, get_report, compare_research or follow_niche, or to see what is still running. Each item has `id`, `kind`, `phrase`, `status` (queued, running, completed, failed), `mode`, `country` and `language` the demand was measured in, `created_at`, `url` of its page and `total_count`: monthly searches of the phrase, null for a description. `quota` tells how many researches the plan has left. Reads only; spends nothing.

Parameterslimit

run_signal

Run Signal

Adds one check to a finished research and returns the id of the new child research. Use it when the scan skipped a stage, when a person asks about one phrase in particular, or to rebuild the report after new checks. A niche scan already runs the usual checks by itself, so this tool is for what is missing. Checks added this way are free: they do not spend researches of the plan. Checks of a demand research (`kind`): - `competitors`: who holds the search results for a phrase of the research; pass the phrase in `phrase`. - `dynamics`: two years of demand history. - `appstore`: App Store apps for the phrase with ratings and freshness. - `wiki`, `radar`, `youtube`: public interest and community signals. - `paid`: paid search for the phrase and its strongest candidates: volume, advertiser competition, cost per click. - `insight`: a summary of the findings written by the language model. - `report`: the final niche report, written anew from the current data; needs a finished niche scan. Checks of a child research: - `fingerprint`: product sites found by a competitors check, with pricing and app links; the parent is that competitors check. - `reviews`: recent App Store reviews of the leaders; the parent is an App Store research. - `insight` also accepts a competitors check as the parent. The parent must be completed and belong to the account. The check runs in the background: poll get_research with the returned `id` every 20-30 seconds until `status` is `completed`. `insight` and `report` are rebuilt at most once an hour.

Parametersidrequiredkindrequiredlocalephrase

compare_research

Compare Research

Puts two to five finished niche scans side by side to help choose between ideas. `items` are the niches with their numbers, the report's positioning and napkin economics, and `wins`: in how many rows the niche holds the better value. `rows` are the ranked measures (verdict, demand, trend, cost per click, weak search results, competitor sites, App Store apps, fresh community signals) with the value of every niche and `best`, the indexes of the items that hold the better value; `better` says which way is better (max or min), null when the row is shown but not ranked. Every item names the `country` and the `language` its demand was measured in; demand and cost per click are not ranked across different markets, countries or languages (`mixed_markets`). The marks are computed from numbers, not written by a language model. Every scan needs a finished report. `share_url` is a read-only link to this comparison that works without signing in: give it to the person only when they want to share the comparison, it shows the numbers and the conclusions of their researches to whoever holds it.

Parametersidsrequired

list_projects

List Projects

Lists the niches the account follows. A followed niche (a project) is scanned anew once a month and compared with its previous check. For each project: status, whether the plan serves it, the date of the next check, the latest numbers (verdict, demand, cost per click, competitor sites, App Store, community signals) and what changed at the latest monthly check, as structured `changes` and as `digest` lines of text. Also returns how many niches the plan follows.

Parameterslimit

get_project

Get Project

Returns a followed niche with the history of its checks, newest first: the first measurement (`baseline`) and the monthly checks, each with its numbers, what changed since the previous check and the id of the research it came from. Pass that `research_id` to get_report to read the fresh report of a check. Changes are computed from numbers and lists, not written by a language model.

Parametersidrequired

follow_niche

Follow Niche

Starts following the niche of a finished scan that has a report: the scan becomes the first measurement and the niche is scanned anew every month, with a digest of what changed sent to the account. Monthly checks do not spend researches; the plan limits how many niches are followed (FREE 1, Starter 2, Pro 10). Following a niche that is already followed returns its project. The niche is followed in the country and the language its scan was measured in (`country` and `language` of the project), so every monthly check measures the same audience.

Parametersresearch_idrequired

update_project

Update Project

Pauses a followed niche (`paused`: no monthly checks, its place in the plan is freed), follows it again (`active`, needs a free place in the plan) or stops following it (`deleted`: the project with its checks and digests is removed for good, the researches stay in the history). Ask the person before deleting.

Parametersidrequiredstatusrequired

Version history

1
  1. v1.0.1LatestSep 29, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.