Skip to main content
Glama
lan-club-live

startup-gtm-skill

Startup Channel Atlas ๐Ÿ‡ฎ๐Ÿ‡ณ

How 350 of India's top startups (2010โ€“2025) actually acquired their users โ€” coded by marketing channel and growth stage, and queryable by an LLM.

Most "growth advice" is anecdote. This is a structured, evidence-derived dataset built to answer one question:

Which marketing channels are best โ€” for a given industry, audience, era, scale/stage, product type, and budget?

Each of the 350 companies is coded for the channels it used at three stages (0โ†’1, 1โ†’10, scale), what worked, what failed, and situational variables (sector, model, era, trust burden, virality, CAC ceiling, category creation-vs-capture). It deliberately includes ~80 acquired / distressed / shut-down companies so you can learn from failure, not just survivorship.

Headline finding: channels are stage-locked more than sector-locked. TV was the entry channel for ~0 of 350 companies; it โ€” like IPL and celebrity โ€” is a scale-stage play. 0โ†’1 is won on earned media, partnerships, SEO/content, product-led loops and community.


Quickstart โ€” pick your lane

๐Ÿง  Option A โ€” Ask any LLM (ChatGPT, Claude, Gemini)

The fastest path. Point your model at this repo and let SKILL.md be its brain.

  1. Open your AI chat.

  2. Paste the link to this repo (or paste the contents of SKILL.md).

  3. Say: Read โ€” the model adopts the channel-selection rules.

  4. Ask, e.g. "I'm a seed-stage D2C skincare brand for tier-2 women in 2024, ~โ‚น50L/month. Which channels first, and who proves it?"

SKILL.md explicitly tells the model not to dump the whole CSV into context โ€” it reasons over the rules and pulls only the rows it needs, so answers stay cheap and grounded.

โšก Option B โ€” Give it a real brain (MCP server, for Claude Desktop / Cursor / Claude Code)

Runs a local server that exposes the dataset as query tools. No hosting, no token bloat โ€” the model calls find_channels(...) and gets back a small, ranked, evidence-backed result.

Run with uv (recommended):

uvx --from git+https://github.com/lan-club-live/startup-gtm-skill startup-gtm-skill-mcp

Add to Claude Desktop (claude_desktop_config.json โ†’ Settings โ–ธ Developer โ–ธ Edit Config):

{
  "mcpServers": {
    "startup-gtm-skill": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/lan-club-live/startup-gtm-skill", "startup-gtm-skill-mcp"]
    }
  }
}

Or from a clone:

git clone https://github.com/lan-club-live/startup-gtm-skill && cd startup-gtm-skill
uv run startup-gtm-skill-mcp          # or:  pip install -e . && startup-gtm-skill-mcp

Then just ask Claude/Cursor a channel question โ€” it will call the tools automatically.

Tools exposed: find_channels, get_company, search_evidence, channel_lens, list_filters, dataset_summary.

๐Ÿ“Š Option C โ€” Just the data (Excel / Pandas / your own build)

import pandas as pd
df = pd.read_csv("data/startups.csv")
d2c = df[df["Sector"].str.contains("d2c", case=False, na=False)]
print(d2c[["Company", "0โ†’1 Channels", "Scale Channels", "What Worked Most"]])

Or open data/startups.csv in Excel/Sheets and pivot away.


Related MCP server: Meta Ads MCP Server

What's in the box

startup-gtm-skill/
โ”œโ”€โ”€ data/
โ”‚   โ”œโ”€โ”€ startups.csv          # 350 companies ร— channels-by-stage + variables + what worked/failed
โ”‚   โ”œโ”€โ”€ channel_matrix.csv    # company ร— 24 canonical channels (E=0โ†’1, G=1โ†’10, S=scale)
โ”‚   โ””โ”€โ”€ economics.csv         # 257 sourced CAC / ROAS / ad-spend datapoints (nothing estimated)
โ”œโ”€โ”€ SKILL.md                  # the lightweight "brain": rules + decision trees + token discipline
โ”œโ”€โ”€ src/startup_gtm_skill/
โ”‚   โ”œโ”€โ”€ query.py              # pure, dependency-free query logic (importable, testable)
โ”‚   โ””โ”€โ”€ server.py             # stdio MCP server wrapping query.py
โ”œโ”€โ”€ pyproject.toml            # packaged for `uvx` / `pip install`
โ””โ”€โ”€ README.md

Dataset columns (startups.csv)

Rank, Company, Sector, Subsector, Model, Status, Era Scaled, Founded, Valuation ($mn), Funding ($mn), 0โ†’1 Channels, 1โ†’10 Channels, Scale Channels, First 1000 Users, Budget Band, Economics Datapoints, Paid vs Organic, Signature Moves, Sponsorships, Regulatory Events, Retention Channels, Trust Burden, Virality, Purchase Freq, CAC Class, Category Play, Core Audience, Geo Tier, What Worked Most, What Failed/Wasted, Confidence, Template

Methodology & honest limits

  • Derived, not disclosed. Channel mixes are inferred from public evidence โ€” press, DRHPs/filings, founder interviews, agency case studies, search footprints. Companies rarely publish their channel mix; this reconstructs it.

  • Confidence-tagged. Every row is high/medium/low. Evidence density thins past rank ~250 โ€” use the tag rather than trusting all rows equally.

  • Quality loop. After the first 100 companies, an evaluation answered CMO-style questions from the data and adversarially judged them; the schema was then upgraded (calendar years, channel side, sourced economics) and flagged profiles were re-researched. See SKILL.md.

  • Scope. Top 350 Indian startups by valuation, 2010โ€“2025. India-centric; not a guide to other geographies or to today's channel costs without adjustment.

Contributing

Corrections and additions welcome โ€” this is a living dataset. Open an issue or PR with a company row plus sources. Keep the confidence tag honest.

License

Data: CC-BY-4.0 ยท Code: MIT. Attribution appreciated โ€” link back to this repo.

Available Tools

6 tools
channel_lensB

Inverse view for one channel: how common it is, its stage split, which sectors use it most, and the companies behind it. Accepts a partial channel name.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of disclosure. It describes the output content and notes that partial matches are accepted, revealing relevant behavior. However, it does not state whether the operation is read-only, what happens on no match, or any side effects, leaving meaningful gaps for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact two-sentence statement with no redundancy. It front-loads the core purpose ('Inverse view for one channel') and efficiently lists the analytical dimensions, making every word informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool, the description covers its primary function and input characteristics. However, it lacks explicit usage context relative to sibling tools, does not describe the output format or edge cases, and does not clarify what 'inverse' means operationally. Given the absence of an output schema and annotations, these omissions leave noticeable gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only a required string 'channel' with no description. The description adds significant semantic value by specifying that a partial channel name is acceptable, which informs how the parameter should be used. This compensates for the 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as an 'inverse view' for a channel, specifying the output dimensions (commonness, stage split, sector usage, companies). It conveys a specific verb and resource, and the 'inverse' framing hints at a different perspective from sibling tools, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives like find_channels or search_evidence. The phrase 'inverse view' implies a distinct use case, but it does not state any exclusions or comparative advantages, leaving the agent without clear decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dataset_summaryA

Orientation call: how many companies, split by status/era/confidence/sector. Cheap. Use this first to understand what the dataset covers before querying.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It implies a read-only, low-cost operation with the words 'Orientation' and 'Cheap', but doesn't explicitly state side effects, return format, or other behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose ('Orientation call') followed by specifics and usage guidance. Every word earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool, this description fully covers what the tool does and when to use it. It gives enough detail on the output (counts by categories) and the practical context (cheap, first step), making it complete for its simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool accepts zero parameters, and the empty schema is fully described. There is no parameter semantics burden, and the baseline for no params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: it provides counts of companies split by status, era, confidence, and sector. This distinguishes it from sibling tools like get_company or search_evidence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to 'Use this first' for orientation before querying, providing clear context for when to invoke it. However, it doesn't mention specific alternatives or when not to use it, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_channelsA

PRIMARY TOOL. Given a marketing situation, return the channels comparable Indian startups actually used โ€” ranked by prevalence and split across growth stages (0โ†’1, 1โ†’10, scale), with named example companies as evidence.

Pass any subset of: sector (a group like 'Fintech' or a raw sector), business_model (B2C/B2B/D2C/SaaS/marketplace/B2B2C), era ('2010-2016', '2016-2019', '2020-2021', '2022-2025'), status, trust_burden (low/medium/high), virality (low/medium/high), cac_ceiling (low/medium/high/enterprise), category_play (creation/capture). Optionally set stage to rank by that stage.

Always report the returned cohort_size and honor any 'warning' about small cohorts.

ParametersJSON Schema
NameRequiredDescriptionDefault
eraNo
topNo
stageNo
sectorNo
statusNo
viralityNo
cac_ceilingNo
trust_burdenNo
category_playNo
business_modelNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries the full burden of behavioral disclosure. It reveals important behavioral traits: results are ranked by prevalence and split by growth stage, and a cohort_size field is returned with possible warnings that should be honored. It does not disclose return format in full (e.g., exact JSON structure) or any side effects, but for a read-only-style tool this is sufficient. The explicit warning handling instruction adds meaningful transparency beyond just 'returns channels.'

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise yet comprehensive, using three short paragraphs with clear structure. It front-loads the tool's primary purpose and then details parameters and output handling in an organized manner. Every sentence adds value, with no filler or repetition of schema information. It is long enough to be useful but not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, no output schema), the description covers the essential aspects: purpose, input parameters with allowed values, and output expectations (cohort_size, warnings). It does not specify the full response format or how to interpret all fields, but the named example companies and stage split are mentioned. A minor gap is the lack of an example invocation, but the description is largely complete for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero description coverage for all 10 parameters, so the description must compensate. It provides semantic meaning for most parameters: sector (group/raw), business_model (list of values), era (specific ranges), trust_burden, virality, cac_ceiling, category_play (with enums), and explains the 'stage' parameter's role in ranking. However, it leaves 'status' and 'top' without explanation, but 'top' is intuitive (default 12) and 'status' may be self-evident. Overall, strong compensation for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as 'PRIMARY TOOL' and states its specific function: return channels used by comparable Indian startups, ranked by prevalence and split by growth stage. It distinguishes itself from sibling tools by emphasis on 'used by comparable Indian startups' and the ranking/splitting behavior, which is unique and not mentioned in sibling names. The verb 'return' is precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: 'Given a marketing situation' and explicitly lists the subset of parameters that can be passed, which guides when to use the tool. It also instructs to 'Always report the returned cohort_size and honor any warning,' which is a usage requirement. However, it does not explicitly mention alternatives or when not to use this tool, unlike a tool that says 'use X instead.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_companyA

Full channel profile for one company (fuzzy name match): channels by stage, what worked, what failed, economics, sponsorships, variables, confidence, sources.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses fuzzy matching and the return contents, but does not mention read-only/no side effects, failure behavior, or data freshness. Adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tightly packed sentence, front-loaded with the core purpose, followed by a clear colon-separated list of returned data. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter lookup without an output schema, the description covers the matching behavior, scope, and return categories. It lacks guidance on alternatives but otherwise is complete enough to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'name' gains meaning from the description: it identifies a company and uses fuzzy matching. This exceeds the bare schema, which only provides the type and title.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns a full channel profile for one company, enumerating contents. It distinguishes from siblings by focusing on a single company with fuzzy name match, though it lacks an explicit verb like 'retrieve'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: use this when you need a comprehensive profile for one company. There is no explicit comparison with siblings like find_channels or dataset_summary, nor a statement of when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_filtersA

Return the valid values for every filter accepted by find_channels (sector groups, business models, eras, statuses, trust/virality/CAC/category levels, stages, and the 24 canonical channels). Call this if unsure what to pass.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the tool returns valid values for all filters accepted by find_channels and lists the categories, which gives a clear behavioral profile. It does not describe the return format, but for a simple parameterless list tool this is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the core purpose, and includes only necessary detail. Every word earns its place, and the parenthetical enumeration adds valuable specificity without bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless, output-schema-less tool with sibling context, the description is complete: it identifies the data returned, the associated tool (find_channels), and provides usage guidance. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%, so the baseline is 4. The description adds meaningful context by explaining what the output represents (valid filter values for find_channels), even though there are no parameters to document.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Return') and resource ('valid values for every filter accepted by find_channels'), clearly distinguishing it from sibling tools. It also enumerates the filter categories (sector groups, business models, eras, statuses, etc.), making the tool's scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Call this if unsure what to pass' provides explicit when-to-use guidance, especially relative to find_channels. However, it does not mention when not to use or describe alternatives, so it falls just short of full marks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_evidenceA

Keyword search across the narrative evidence (what worked / what failed / signature moves / ignition). Use for 'when did X fail', 'who used Y for Z'. Returns short snippets with company names โ€” not full rows.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
query_textYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the output behavior (returns short snippets with company names) and the scope of evidence searched. However, it does not explicitly state that the operation is read-only, nor does it mention rate limits, pagination, or side effects. For a search tool, the transparency is adequate but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exactly two sentences, front-loaded with the primary action, and contains no extraneous information. It includes usage examples and output format without editorializing, making it concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the return value (short snippets with company names) despite lacking an output schema. It also gives a sense of the evidence scope. However, missing parameter details and lack of annotations leave gaps for a tool with no output schema and sparse input schema, so it is only partially complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not compensate. It implies query_text is the search term but does not explain the limit parameter or its default behavior. There is no parameter-specific guidance beyond the broad notion of 'keyword search'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a keyword search across narrative evidence, listing specific content areas (what worked/failed, signature moves, ignition). It also clarifies the return format (short snippets with company names, not full rows), which distinguishes it from tools like get_company that return full rows.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides specific example use cases ('when did X fail', 'who used Y for Z'), giving clear context for when to use the tool. However, it does not mention when not to use it or explicitly compare to sibling tools, so it lacks exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.0.0
    • First observedchannel_lens
    • First observeddataset_summary
    • First observedfind_channels
    • First observedget_company
    • First observedlist_filters
    • First observedsearch_evidence

TDQS

A4.1/5.0

Scored across 6 tools

Disambiguation5/5

Each tool serves a distinct purpose: dataset_summary orients, list_filters enumerates valid inputs, find_channels is the primary search, channel_lens provides the inverse view, get_company gives deep company profiles, and search_evidence does keyword-level narrative lookup. There is no functional overlap.

Naming Consistency4/5

All names are lowercase snake_case, but the pattern is mixed: most tools start with a verb (list, find, get, search), while two are noun phrases (channel_lens, dataset_summary). This is a minor deviation that doesn't harm usability.

Tool Count5/5

Six tools is well-scoped for a specialized GTM research skill. Each tool earns its place and together they cover orientation, discovery, deep dive, and evidence search without redundancy.

Completeness5/5

The domain is read-only GTM channel analysis. The set covers the full workflow: understand the dataset, know valid filters, find channels, inspect a channel in reverse, get company detail, and search evidence. No critical operations are missing.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for accessing India's Ministry of Statistics and Programme Implementation (MoSPI) data APIs. Enables natural language queries for economic, demographic, and social indicators via a 4-tool workflow.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Python MCP server that exposes Meta Marketing API data, providing tools to manage ad accounts, campaigns, and analytics through natural language interfaces.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Production-ready MCP server integrating Google Search Console, GA4, and PageSpeed Insights for SEO and analytics intelligence, enabling natural-language queries to Google analytics data.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that exposes a LangChain agent with short-term memory to analyze real e-commerce data through predefined SQL tools, enabling natural language queries on sales, customers, and logistics.
    -