Skip to main content
Glama
isnow890

Naver Search MCP Server

datalab_shopping_keyword_by_age

Analyze Naver Shopping keyword trends by age groups to understand consumer behavior. Input keyword, category, date range, and age groups for targeted insights.

Instructions

Perform a trend analysis on Naver Shopping keywords by age. (네이버 쇼핑 키워드 연령별 트렌드 분석)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
agesYesAge groups
categoryYesCategory code
endDateYesEnd date (yyyy-mm-dd)
keywordYesSearch keyword
startDateYesStart date (yyyy-mm-dd)
timeUnitYesTime unit

Implementation Reference

  • Handler function that maps tool arguments to client method parameters and calls the Naver DataLab API for shopping keyword trends by age.
    export async function handleShoppingKeywordByAgeTrend(
      params: DatalabShoppingKeywordAge
    ) {
      return client.datalabShoppingKeywordByAge({
        startDate: params.startDate,
        endDate: params.endDate,
        timeUnit: params.timeUnit,
        category: params.category,
        keyword: params.keyword,
        ages: params.ages,
      });
    }
  • Client method that performs the HTTP POST request to Naver DataLab API endpoint for shopping keyword by age trends.
    async datalabShoppingKeywordByAge(
      params: DatalabShoppingKeywordRequest
    ): Promise<DatalabShoppingResponse> {
      return this.post(
        `${this.datalabBaseUrl}/shopping/category/keyword/age`,
        params
      );
    }
  • src/index.ts:408-423 (registration)
    MCP server registration of the 'datalab_shopping_keyword_by_age' tool, including description, input schema, and execution handler.
    server.registerTool(
      "datalab_shopping_keyword_by_age",
      {
        description:
          "👶👦👨👴🔍 Analyze keyword performance by age groups within shopping categories. Use find_category first to get category codes. Perfect for age-targeted marketing and understanding generational shopping preferences. (쇼핑 키워드 연령별 트렌드 - 먼저 find_category 도구로 카테고리 코드를 찾으세요)",
        inputSchema: DatalabShoppingKeywordAgeSchema.shape,
      },
      async (args) => {
        const result = await datalabToolHandlers.datalab_shopping_keyword_by_age(
          args
        );
        return {
          content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
        };
      }
    );
  • Zod schema defining the input parameters for the datalab_shopping_keyword_by_age tool: startDate, endDate, timeUnit, category, keyword, ages.
    export const DatalabShoppingKeywordAgeSchema = DatalabBaseSchema.extend({
      category: z.string().describe("Category code"),
      keyword: z.string().describe("Search keyword"),
      ages: z
        .array(z.enum(["10", "20", "30", "40", "50", "60"]))
        .describe("Age groups"),
    });
  • Entry in datalabToolHandlers map that registers the tool handler function, logs args, and delegates to the main handler.
    datalab_shopping_keyword_by_age: (args) => {
      console.error("datalab_shopping_keyword_by_age called with args:", JSON.stringify(args, null, 2));
      return handleShoppingKeywordByAgeTrend(args);
    },
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It states the tool performs 'trend analysis' but doesn't describe what the analysis entails (e.g., returns data, visualizations, or insights), potential rate limits, authentication needs, or data freshness. For a tool with 6 required parameters and no annotation coverage, this is a significant gap in transparency.

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 single, efficient sentence in English with a Korean translation for clarity, front-loading the core purpose without unnecessary details. It avoids redundancy and wastes no words, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given the tool's complexity (6 required parameters, no output schema, and no annotations), the description is incomplete. It lacks behavioral context (e.g., what the analysis returns, any side effects), usage differentiation from siblings, and doesn't compensate for the absence of output schema by describing expected results. For a data analysis tool with multiple inputs, this leaves significant gaps for an agent.

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

Parameters3/5

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

Schema description coverage is 100%, with all parameters well-documented in the schema (e.g., 'ages' as age groups with enum values, 'timeUnit' with enum options). The description adds no parameter-specific semantics beyond implying analysis involves 'keywords' and 'age', which the schema already covers via 'keyword' and 'ages' parameters. Baseline 3 is appropriate when the schema does the heavy lifting.

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 performs 'trend analysis on Naver Shopping keywords by age' with a Korean translation for clarity. It specifies the verb ('perform trend analysis'), resource ('Naver Shopping keywords'), and dimension ('by age'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'datalab_shopping_by_age' or 'datalab_shopping_keyword_by_gender', which would require a 5.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'datalab_shopping_by_age' (which might analyze shopping trends by age without keyword focus) or 'datalab_shopping_keyword_by_gender' (which does similar analysis by gender), leaving the agent to infer usage from names alone. There are no explicit when/when-not instructions or prerequisites.

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

Install Server

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/isnow890/naver-search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server