korean-keyword-mcp
Provides Korean keyword niche analysis using Naver SearchAd API and Naver Developer API, offering tools for keyword expansion, niche scoring, search volume, trends, blog competition, batch analysis, and trending discovery.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@korean-keyword-mcpAnalyze the niche potential of '캠핑의자'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
korean-keyword-mcp
MCP server for Korean keyword niche analysis. The only MCP server that exposes Naver SearchAd API data (CPC competition, click rates) for keyword research.
Why This Exists
Feature | korean-keyword-mcp | Other Naver MCP servers |
SearchAd API (CPC, competition index) | YES | NO |
Niche scoring (0-100, A-F grade) | YES | NO |
Blog competition deep analysis | YES | Basic search only |
Keyword expansion + scoring | YES | NO |
Batch comparison analysis | YES | NO |
Trending keyword discovery | YES | NO |
Related MCP server: Korean Patent MCP
Tools (7)
Tool | Description |
| Expand seed keyword → 50+ related keywords with Quick Score + top N Full Score |
| Single keyword full niche analysis (0-100 score + A-F grade) |
| Naver SearchAd monthly search volume (PC/mobile split, competition index) |
| Naver DataLab 12-month search trend (monthly relative values 0-100) |
| Blog competition analysis (total results + top 10 posts) |
| Batch niche analysis for up to 10 keywords with sorted comparison |
| Discover rising-trend keywords from seed keyword's related keywords |
Scoring Algorithm
Full Niche Score (100 points)
Component | Weight | Source |
Volume | 20 | SearchAd API — sweet spot: 1K-30K searches |
Competition | 30 | Blog total results + blogger diversity |
Freshness | 15 | Average post age (older = less competition) |
Trend | 20 | 12-month linear regression slope |
Efficiency | 15 | Search volume / blog post ratio |
Grades: A (75+), B (60+), C (45+), D (30+), F (<30)
Setup
1. Get Naver API Keys
You need two sets of API credentials:
Naver SearchAd API (for search volume, CPC, competition):
Go to Naver SearchAd
Create an account → Tools → API License
Note your Customer ID, API Key, and Secret Key
Naver Developer API (for DataLab trends, blog search):
Go to Naver Developers
Register application → Select "Search" and "DataLab" APIs
Note your Client ID and Client Secret
2. Configure Claude Desktop
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"korean-keyword": {
"command": "npx",
"args": ["-y", "korean-keyword-mcp"],
"env": {
"NAVER_SEARCHAD_CUSTOMER_ID": "your-customer-id",
"NAVER_SEARCHAD_API_KEY": "your-api-key",
"NAVER_SEARCHAD_SECRET_KEY": "your-secret-key",
"NAVER_CLIENT_ID": "your-client-id",
"NAVER_CLIENT_SECRET": "your-client-secret"
}
}
}
}3. Verify
Restart Claude Desktop. You should see "korean-keyword" in the MCP servers list with 7 tools available.
Example Usage
Once connected, you can ask Claude:
"Analyze the niche potential of '캠핑의자'" → uses
niche_score"Find niche keywords related to '다이어트'" → uses
keyword_expand"Compare these keywords: 캠핑의자, 캠핑테이블, 캠핑조명" → uses
batch_analyze"What keywords related to '캠핑' are trending up?" → uses
trending_discover"How much search volume does '에어프라이어' get?" → uses
search_volume
Environment Variables
Variable | Required | Description |
| Yes | SearchAd API customer ID |
| Yes | SearchAd API key |
| Yes | SearchAd API secret |
| Yes | Naver Developer client ID |
| Yes | Naver Developer client secret |
License
MIT
Available Tools
7 toolsbatch_analyzeA
Batch niche analysis for up to 10 keywords. Calculates full niche score for each keyword in parallel and returns a sorted comparison table. Useful for comparing multiple keyword candidates at once.
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | List of keywords to analyze (1-10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It discloses meaningful behavior: calculations happen in parallel, each keyword receives a full niche score, and results are returned as a sorted comparison table. It does not discuss side effects or data persistence, but this tool is clearly an analytical read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, focused sentences front-load the core purpose and return behavior. Every sentence earns its place, and there is no redundant restating of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one simple parameter, no annotations, and no output schema, so the description must carry the full explanatory load. It does so by covering input limits, processing behavior, and the return format in a complete and usable way.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the single 'keywords' parameter is already well documented. The description adds modest context by noting the batch nature and the 10-keyword limit, but it does not materially extend the schema's explanation of the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: batch niche analysis for up to 10 keywords. It also explains what it produces (a full niche score per keyword and a sorted comparison table), making it easy to distinguish from a single-keyword tool like niche_score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Useful for comparing multiple keyword candidates at once' provides clear context for when to use the batch tool. It does not explicitly name alternatives like niche_score for single-keyword analysis, but the intended use case is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blog_competitionB
Analyze blog competition for a keyword using Naver Search API. Returns total blog post count and top 10 posts with metadata (title, blogger, date).
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Keyword to search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral disclosure burden. It does state that it uses Naver Search API and specifies the returned data, which is useful. However, it does not mention potential caveats like API rate limits, authentication needs, ranking criteria for 'top' posts, or whether results are live vs cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the tool's main purpose and immediately follows with the return value details, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description provides enough detail to call it correctly: input is keyword, output is total count plus top 10 posts with specified fields. It is slightly incomplete only because it does not define what 'top' means or mention any output format, but this does not block successful invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single 'keyword' parameter already described as 'Keyword to search'. The description adds no additional parameter semantics beyond what the schema provides, which is acceptable given complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Analyze') with a clear resource ('blog competition for a keyword') and explicitly states the output: total post count and top 10 posts with metadata. It is clear enough to distinguish from siblings like search_volume or keyword_expand, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus sibling tools such as niche_score, trend, or batch_analyze. The context implies keyword-level competitive analysis, but there are no explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keyword_expandA
Expand seed keyword into 50+ related keywords with Quick Score, and calculate Full Niche Score for top N candidates. Returns niche opportunities ranked by score.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Seed keyword to analyze (Korean or English, 1-40 chars) | |
| fullScoreCount | No | Number of top keywords for Full Score (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It transparently explains the workflow: expand the keyword, apply Quick Score to all results, calculate Full Niche Score for the top N, and return ranked opportunities. It does not overpromise or hide the scoring step, though it could clarify what Quick Score and Full Niche Score mean.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence that front-loads the core action and output, with no filler or redundant wording. Every clause adds relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no output schema or annotations, the description gives a complete high-level picture: input, processing steps, and ranked results. It could specify the exact return shape or clarify the scoring metrics, but the essential invocation context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers both parameters with descriptions, so the baseline is 3. The description's mention of 'top N candidates' loosely maps to fullScoreCount, and 'seed keyword' maps to keyword, but it does not add significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action ('Expand'), identifies the resource ('seed keyword'), and states the output ('50+ related keywords with Quick Score', 'Full Niche Score for top N candidates', ranked opportunities). This clearly distinguishes it from sibling tools like search_volume, trend, and blog_competition, which address different tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: an agent should call this when it needs to broaden a seed keyword into related keywords and get niche scores. However, the description does not explicitly state when to prefer this over sibling tools, nor does it mention exclusions or conditions where another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
niche_scoreA
Calculate full niche score for a single keyword. Analyzes search volume (Naver SearchAd), blog competition, and 12-month trend to produce a 0-100 score with A-F grade.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Keyword to analyze |
TDQS
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. It does state the inputs and output (0-100 score with A-F grade) and identifies Naver SearchAd as a data source, but it does not detail side effects, external API dependencies, latency, error behavior, or whether the result includes component breakdowns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that states the action, scope, inputs, data sources, and output format without filler. Every clause contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, the description is nearly complete: it explains what the tool does, what it analyzes, and what the result looks like. Minor gaps remain around grade thresholds and weighting of components, but these are not required for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sole parameter 'keyword' is already documented as 'Keyword to analyze.' The description adds only the qualifier 'single keyword,' which is mild semantic reinforcement but not substantive new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object: 'Calculate full niche score for a single keyword.' It clearly distinguishes this composite analysis tool from the sibling component tools by naming search volume, blog competition, and 12-month trend, and it defines the output as a 0-100 score with an A-F grade.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by calling this a 'full niche score' for a 'single keyword,' which suggests it should be used when a composite score is needed rather than one of the individual sibling tools like search_volume or trend. However, it never explicitly says when NOT to use it or names alternatives as preferred for narrower use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_volumeB
Get monthly search volume from Naver SearchAd API. Returns PC/mobile breakdown, competition index (CPC level), and top 20 related keywords with their volumes.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Keyword to search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It usefully states that this is a read operation on an external API and describes the return payload (PC/mobile breakdown, CPC competition index, top 20 related keywords). However, it omits auth requirements, rate limits, and error behavior, which matter for an external API call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The first sentence front-loads the core action and data source; the second efficiently enumerates the return values. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description adequately covers the return structure, which is the main thing an agent needs to interpret results. It's slightly thin on operational context (auth, rate limits) but those are minor for a simple keyword lookup, so it's reasonably complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the single 'keyword' parameter is already described as 'Keyword to search' with min/max length constraints in the schema. The description adds nothing beyond the schema for the parameter itself, which matches the baseline 3 for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: 'Get monthly search volume from Naver SearchAd API.' The purpose is clear and distinct from siblings like trend, niche_score, and blog_competition. However, it doesn't explicitly differentiate from keyword_expand, which could plausibly also surface volume data, so a name-level distinction is left to the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There are no exclusions, no mention of which sibling to prefer for broader keyword research vs. single-keyword volume checks, and no context about prerequisites or limits (e.g., single keyword only, one at a time). The agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trendA
Get 12-month search trend from Naver DataLab. Returns monthly relative values (0-100) showing how search interest changed over time.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Keyword to search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does disclose key behavioral traits: the 12-month window, monthly granularity, and the normalized 0-100 scale. This meaningfully tempers the agent's expectations about what the returned values represent, though it omits edge-case behavior such as missing data or query limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the key facts are front-loaded: source, time range, and normalized return values. Every sentence contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description is mostly complete: it identifies the source, input, time span, and high-level return semantics. It does not specify the exact response structure, but for this simple tool that is not a critical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the single 'keyword' parameter already described as 'Keyword to search'. The description adds no additional parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') with a precise resource ('12-month search trend from Naver DataLab') and defines the output as monthly relative values from 0 to 100. This clearly differentiates it from volume-focused siblings like search_volume, since it describes interest change over time rather than raw counts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what the tool does but gives no guidance on when to choose it over alternatives such as search_volume, keyword_expand, or batch_analyze. There is no explicit context, prerequisite, or exclusion to help an agent decide between siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trending_discoverA
Discover rising-trend keywords from a seed keyword's related keywords. Expands the seed, then filters only keywords with upward 12-month trends. Returns opportunities sorted by trend strength.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max trending keywords to return (default 10) | |
| keyword | Yes | Seed keyword to expand |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the expansion and filtering logic, the 12-month window, and the sorted output. Though it doesn't explicitly state read-only nature, the wording ('Discover', 'Returns') implies no mutation. It lacks details on rate limits or errors, but covers core behavior well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the main purpose, then process, then output. No wasted words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema, the description explains the process and return concept ('opportunities sorted by trend strength') but does not specify the structure of each opportunity (e.g., what fields are included). Also omits edge cases like empty results or invalid seed. Given no annotations, this is a notable gap but not severe for a 2-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions (seed keyword to expand, limit max). Description adds context by explaining the seed is expanded and filtered, reinforcing 'keyword' semantics, but adds little beyond schema for 'limit'. Baseline 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Discover), resource (rising-trend keywords), and source (seed keyword's related keywords). Clearly differentiates from siblings like keyword_expand by focusing on trend filtering, and describes the process (expand, filter, sort) making it unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for finding trending keywords but does not explicitly contrast with siblings like keyword_expand or trend. No when-to-use or when-not-to-use guidance is provided, leaving some inference to the agent.
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.
7 tool updates
v1.0.0- First observed
batch_analyze - First observed
blog_competition - First observed
keyword_expand - First observed
niche_score - First observed
search_volume - First observed
trend - First observed
trending_discover
TDQS
Scored across 7 tools
Several tools compose or reuse the same underlying operations (keyword_expand includes niche scoring; trending_discover expands and filters; batch_analyze repeats niche_score for many keywords), so boundaries are not always crisp. However, descriptions clarify the intended use case well enough for most selections.
Names use a consistent snake_case style and a clear keyword/niche domain prefix, but the grammatical pattern is mixed: keyword_expand and batch_analyze are noun+verb, while search_volume, blog_competition, and trend are noun phrases. There is no uniform verb-first or verb-last convention across the set.
Seven tools cover the core keyword research workflow—expansion, individual metrics, scoring, batch comparison, and trend discovery—without redundancy or bloat. The count feels appropriate for the server's focused purpose.
The toolset covers expansion, volume, trend, competition, scoring, batch analysis, and rising-trend discovery, which handles the main niche research workflow. Minor gaps remain, such as no raw multi-keyword volume comparison or direct trend comparison outside the scored outputs.
Maintenance
Related MCP Connectors
AI-powered SEO and marketing: keyword research, SERP analysis, and content optimization tools.
SEO research SaaS exposed as 30+ MCP tools. Forge niche analysis, plans, and writer-ready briefs.
Bulk keyword search volume, CPC, competition and difficulty, plus an optional Google Trends summary.
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides access to Naver Search APIs, allowing AI agents to search across multiple categories (blogs, news, books, images, shopping items, etc.) with structured responses optimized for LLM consumption.134Apache 2.0
- AlicenseBqualityDmaintenanceEnables searching and analyzing Korean patents through the KIPRIS API using natural language. Supports patent search by applicant name, detailed patent information retrieval, and citation analysis.32MIT
- AlicenseNot gradedqualityDmaintenanceCombines Naver DataLab trends, blog/news search, translation, and Unsplash images into a single research pipeline for content creators. Generates comprehensive research reports from a single query.MIT
- FlicenseNot gradedqualityDmaintenanceProvides Korean market data (products, trends, stocks, real estate) in English JSON for AI agents, with 13 tools including search, trends, and stock analysis.1-