Naver Search Ad MCP
Provides read/analytics-focused integration with Naver Search Ad API, allowing querying of campaigns, ad groups, keywords, stats, keyword research, and bid estimates across multiple advertiser accounts.
Naver Search Ad MCP
An MCP server for the Naver Search Ad (네이버 검색광고) API — read/analytics focused. Query campaigns, ad groups, keywords, stats, keyword research, and bid estimates through any MCP client.
Read-only by default (safe): all tools are annotated
readOnlyHint.Multi-account: one credential per user auto-discovers every advertiser account it can access (agency-delegated + own) via
/ad-accounts+child-ad-accounts, addressed byaccount_id(= NavercustomerId).Two transports: local
stdiofor a single account, or hostedstreamable-http(Google Workspace OAuth) for a team — see DEPLOY.md.
Quick start (local, stdio)
Get your credentials at searchad.naver.com → 관리 → 도구 → API 사용 관리 (CUSTOMER_ID, access license, secret key).
uv venv --python 3.13
uv pip install -e .
export NAVER_API_KEY=... # access license
export NAVER_SECRET_KEY=... # secret key
export NAVER_CUSTOMER_ID=... # customer id (integer)
naver-searchad-mcp # stdio MCP serverRegister with an MCP client (e.g. Claude Desktop):
{
"mcpServers": {
"naver-searchad": {
"command": "/path/to/.venv/bin/naver-searchad-mcp",
"env": {
"NAVER_API_KEY": "...",
"NAVER_SECRET_KEY": "...",
"NAVER_CUSTOMER_ID": "..."
}
}
}
}Related MCP server: Naver Search MCP Server
Tools
Accounts
Tool | Description |
| All accessible ad accounts ( |
| Per-account campaign count + period performance summary |
| Diagnostic: authenticated caller + linked credential (hosted mode) |
Entities
Tool | Description |
| Campaigns |
| Campaign detail |
| Ad groups |
| Ad group detail |
| Keywords |
| Ads (creatives) |
| Business channels |
Performance & analytics
Tool | Description |
| Low-level |
| All campaigns + names |
| Keyword performance + text |
| Related keywords, search volume, competition ( |
| Named report; auto-chunks >92 days; aggregate (ratios recomputed) or daily |
| Async bulk StatReport job (1 job = 1 day) |
| Download StatReport TSV (raw, columns not interpreted) |
Bid estimates
Tool | Description |
| Target-position / min-exposure bid |
| Predicted impressions/clicks/cost per bid |
Metric field names are terse and sometimes misleading (salesAmt = cost,
ror = ROAS %); the server attaches clear aliases (cost, roas_pct, …)
and exposes a naver://metric-glossary resource.
Hosted deployment (team, Google OAuth)
See DEPLOY.md — Cloud Run + Secret Manager + Google Workspace
OAuth, per-email credential model, and a self-service admin console at /admin.
Development
uv pip install -e ".[dev]"
pytestNotes
This server covers Search Ad only. Naver GFA (성과형 디스플레이광고) is a separate API (partner-only OAuth) and is out of scope.
Signing rule:
base64(HMAC_SHA256(secret, "{timestamp}.{METHOD}.{path}"))— path only, query excluded, timestamp in ms.
License
MIT — see LICENSE.
Available Tools
19 toolscreate_stat_reportARead-only
대량 StatReport 잡을 생성하고 완료까지 대기한다 (비동기, 1잡=1일).
반환의 downloadUrl을 download_stat_report로 받아 TSV를 얻는다. status가
NONE이면 해당 일자 데이터 없음.
| Name | Required | Description | Default |
|---|---|---|---|
| stat_dt | Yes | 대상 일자 YYYY-MM-DD (KST, 1잡=1일) | |
| report_tp | Yes | AD/AD_DETAIL/AD_CONVERSION/EXPKEYWORD(검색어)/CRITERION 등 | |
| account_id | Yes | 계정 별칭 (P0: 'default') |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description states 'create' which is a mutation, but annotation has readOnlyHint=true. This is a direct contradiction. Otherwise, description adds async/wait behavior details beyond annotations.
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 a supplementary note. All information is essential and front-loaded.
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?
Covers creation, waiting, download path, and status handling. Complexity is addressed, and output schema is mentioned via downloadUrl. Complete for a tool with these features.
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 descriptions. Description adds value by specifying date format (YYYY-MM-DD), timezone (KST), meaning of 1 job per day, and listing example report types.
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?
Description clearly states the tool creates a StatReport job and waits for completion. It distinguishes from sibling download_stat_report by explicitly mentioning the download step.
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?
Provides context on async behavior, 1 job per day, and handling of NONE status. Also directs to use download_stat_report for download. Lacks explicit when-not-to-use but is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_stat_reportARead-only
StatReport TSV를 다운로드해 원본 행을 반환한다 (서명 필요).
⚠️ 컬럼 레이아웃은 reportTp별로 다르며 여기서 해석하지 않는다(위치 파싱 오매핑 방지). 각 reportTp의 컬럼 정의는 네이버 StatReport 스펙을 참조해 매핑하라. 명명형 지표가 필요하면 get_performance_report를 사용.
| Name | Required | Description | Default |
|---|---|---|---|
| max_rows | No | 반환 최대 행 수 (기본 500, 토큰 보호) | |
| account_id | Yes | 계정 별칭 (P0: 'default') | |
| download_url | Yes | create_stat_report가 반환한 downloadUrl |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, but the description adds valuable behavioral context: it requires a signature ('서명 필요'), warns about column layout differences per report type to prevent misparsing, and explains the max_rows default as token protection. This goes beyond annotations without contradicting them.
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 concise and well-structured. It starts with the main purpose in the first sentence, immediately followed by a critical warning. Every sentence adds value; there is no redundant or vague language.
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?
Given that an output schema exists, the description does not need to detail return values. It covers the core action, a key behavioral caveat (column layout), and provides an alternative tool. This is complete for a specialized download tool with good annotations and schema support.
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 parameters are already documented. However, the description adds meaningful context: it specifies the default for max_rows as 500 with a rationale ('토큰 보호'), and clarifies that download_url comes from 'create_stat_report'. This extra information helps the agent use the parameters correctly.
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 clearly states it downloads a StatReport TSV and returns raw rows. It uses a specific verb ('다운로드해') and resource ('StatReport TSV'). Additionally, it distinguishes itself from sibling 'get_performance_report' by noting that for named indicators, that tool should be used instead.
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 explicitly states when to use the tool (to download raw stat report TSV) and provides a clear when-not-to-use by warning that column layout differs by report type and advising against interpreting here. It also directs the agent to use 'get_performance_report' for named indicators, offering a concrete alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_keyword_bidARead-only
키워드 입찰가를 추정한다 (POST /estimate/{type}/keyword).
average-position-bid=목표 평균순위 도달 입찰가, exposure-minimum-bid=최소 노출가.
| Name | Required | Description | Default |
|---|---|---|---|
| device | No | 'PC' 또는 'MOBILE' | PC |
| keywords | Yes | 추정할 키워드 목록 | |
| position | No | average-position-bid에서 목표 평균순위 | |
| account_id | Yes | 계정 별칭 (P0: 'default') | |
| estimate_type | No | 'average-position-bid'(목표순위) 또는 'exposure-minimum-bid'(최소노출) | average-position-bid |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds the HTTP method (POST) but does not contradict annotations. However, it does not disclose additional behavioral traits beyond what annotations provide.
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: first states purpose with endpoint, second explains key terms. No unnecessary content.
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?
Given the presence of output schema and full parameter descriptions in the schema, the description is fairly complete. However, it lacks usage context and does not address error conditions or prerequisites.
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 parameter descriptions. The description adds minor clarification on estimate type meanings, but this is largely redundant with schema. Baseline 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 clearly states the tool estimates keyword bids and explains the two estimate types (average-position-bid and exposure-minimum-bid). It distinguishes itself from sibling estimate_keyword_performance by focusing on bid estimation.
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 like estimate_keyword_performance. The description does not provide usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_keyword_performanceBRead-only
입찰가별 예상 노출/클릭/비용을 추정한다 (POST /estimate/performance/keyword).
네이버 스키마: 키워드 1개 + 입찰가 리스트를 top-level로 전송. 응답의 estimate는
각 입찰가에 대응하는 {bid, impressions, clicks, cost} 배열이다.
| Name | Required | Description | Default |
|---|---|---|---|
| bids | Yes | 비교할 입찰가 목록 (예: [500, 1000, 2000]) | |
| device | No | 'PC' 또는 'MOBILE' | PC |
| keyword | Yes | 추정할 키워드 1개 | |
| account_id | Yes | 계정 별칭 (P0: 'default') |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating no side effects. The description adds context by specifying the HTTP method (POST) and the response structure, but does not disclose potential limitations or rate 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?
The description is concise with two main parts: purpose and response format. It is front-loaded with the core action. The mix of Korean and English slightly reduces clarity but remains efficient.
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?
Given the presence of an output schema and detailed parameter descriptions, the tool description covers the essential functionality. It lacks usage context and sibling differentiation, but for a simple read-only tool, it is sufficiently complete.
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 parameters are described in the schema. The description adds value by explaining the response structure and the relationship between bids and estimates, exceeding mere schema repetition.
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 clearly states it estimates impressions, clicks, and cost per bid, specifying the HTTP endpoint and the general input/output format. However, it does not differentiate from the sibling tool 'estimate_keyword_bid', which might have a similar purpose.
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 explicit guidance on when to use this tool versus alternatives like 'estimate_keyword_bid' or other report tools. The description does not mention prerequisites, exclusions, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accounts_overviewARead-only
내가 접근 가능한 계정들의 현황 요약(계정별 캠페인 수 + 기간 성과 합계).
접근 불가/오류 계정은 error 필드로 표시된다.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | 시작일 YYYY-MM-DD | |
| until | No | 종료일 YYYY-MM-DD | |
| date_preset | No | today/yesterday/last7days/lastmonth 등 | last7days |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the description correctly implies read-only behavior. Additionally, it explicitly states that inaccessible/error accounts are indicated with an error field, which is valuable behavioral context beyond the annotation.
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 concise sentences front-loading the core purpose and a notable behavior (error field). No extraneous information—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?
With an output schema present and full parameter coverage in the schema, the description is largely complete. Minor missing details like exactly which performance metrics are summed are likely covered by the output schema.
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% with detailed parameter descriptions (since, until, date_preset). The tool description adds no further parameter information, so a 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?
Description clearly states it provides a summary of accessible accounts with campaign counts and period performance totals, distinguishing it from sibling tools like list_accounts (which likely only lists account identifiers) and get_stats.
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. Does not mention that for a simple list of accounts, list_accounts may be more appropriate, or that for detailed stats per campaign, get_stats or other tools should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_adgroupARead-only
단일 광고그룹 상세 (GET /ncc/adgroups/{id}).
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | 계정 별칭 (P0: 'default') | |
| adgroup_id | Yes | nccAdgroupId (grp-...) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is clear. Description adds the HTTP method but no extra behavioral traits (e.g., error handling, permissions). No contradiction with annotations.
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?
Single sentence front-loads the purpose efficiently. No wasted words, but could be slightly more informative without losing conciseness.
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?
Output schema exists to document return structure. Description provides endpoint context, but lacks prerequisites or clarification of when to use. Adequate for a simple read tool but not fully complete.
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 descriptions for both parameters. The description does not add any additional meaning beyond what the schema already provides, so 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?
Description explicitly states '단일 광고그룹 상세' (single ad group details) and provides the HTTP endpoint, clearly indicating the tool fetches details of one ad group. Distinguishes from sibling list_adgroups.
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 explicit guidance on when to use this vs alternatives like list_adgroups. Usage is implied by purpose but not stated, so an agent might not know the optimal context without additional reasoning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_campaignARead-only
단일 캠페인 상세 (GET /ncc/campaigns/{id}).
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | 계정 별칭 (P0: 'default') | |
| campaign_id | Yes | nccCampaignId (cmp-...) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds the HTTP method (GET) and endpoint pattern. This provides some behavioral context but no details on rate limits, error behavior, or authentication requirements.
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?
Single sentence, no wasted words, includes essential endpoint information. Perfectly concise for the tool's simplicity.
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?
Given the existence of an output schema and read-only annotations, the description is mostly complete for a simple retrieval tool. It states the resource and HTTP method, but could be improved by hinting at the response structure or common fields.
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% (both parameters described), so baseline is 3. The description adds no additional parameter meaning beyond what the schema provides.
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 clearly states the action ('단일 캠페인 상세' meaning single campaign detail) and resource (campaign), and distinguishes from sibling tools like list_campaigns (list) and get_campaign_performance (performance stats).
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 explicit guidance on when to use this tool vs alternatives (e.g., list_campaigns for multiple campaigns, get_campaign_performance for performance data). The description only states what it does without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_campaign_performanceARead-only
계정의 모든 캠페인 성과를 이름과 함께 반환한다.
캠페인 열거 → /stats 조회 → nccCampaignId로 이름 join. 대시보드성 요약용.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | 시작일 YYYY-MM-DD | |
| until | No | 종료일 YYYY-MM-DD | |
| fields | No | 지표 필드 (기본: 노출/클릭/CTR/CPC/비용/전환) | |
| account_id | Yes | 계정 별칭 (P0: 'default') | |
| date_preset | No | today/yesterday/last7days/lastmonth 등 | |
| campaign_type | No | 캠페인 유형 필터 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set readOnlyHint, so description adds value by disclosing the internal process (enumerate campaigns, query stats, join by ID). This goes beyond annotations and provides useful context about the tool's behavior.
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, the first directly states purpose and the second adds context. No unnecessary words; information is front-loaded and efficient.
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?
Output schema exists, so return values are covered. Description adds context about the join and usage as dashboard summary. Missing details on pagination or limits, but given the simple read operation, it's adequate.
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 parameter descriptions already present. The description does not add any additional parameter meaning, so baseline 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?
Description clearly states it returns all campaign performance with names, using verbs like '반환한다' and explaining the internal process. It distinguishes itself from sibling tools like get_stats or get_campaign by emphasizing a full account-level summary with name joining.
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?
Description indicates it's for 'dashboard summary' but does not explicitly state when to use versus alternatives like get_stats or create_stat_report. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keyword_performanceBRead-only
한 광고그룹의 키워드별 성과를 키워드 텍스트와 함께 반환한다.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | 시작일 YYYY-MM-DD | |
| until | No | 종료일 YYYY-MM-DD | |
| fields | No | 지표 필드 | |
| account_id | Yes | 계정 별칭 (P0: 'default') | |
| adgroup_id | Yes | 키워드를 조회할 광고그룹 nccAdgroupId | |
| date_preset | No | today/yesterday/last7days/lastmonth 등 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds no behavioral context about rate limits, data freshness, or auth. Minimal additional value.
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?
Single short sentence that front-loads the core action. No wasted words; every word 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?
Despite having an output schema, the description omits key context about required parameters (adgroup_id), date range filters, and varying fields. It is too minimal for a 6-parameter 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 coverage is 100% with descriptions for all 6 parameters. The tool description adds no extra meaning beyond what the schema provides, so 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 clearly states it returns per-keyword performance of an ad group with keyword text, which is specific and distinguishes it from sibling tools that operate at campaign, adgroup, or report levels.
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 siblings like estimate_keyword_performance or get_stats. The agent receives no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_performance_reportARead-only
기간 성과 리포트 (명명형). 92일 초과 기간은 자동 청킹.
레벨별 엔티티를 열거해 /stats로 조회하고 이름을 붙여 반환한다. 합계 모드는 가산 지표(노출/클릭/비용/전환)를 합산 후 비율(CTR/CPC/전환율/ROAS)을 재계산한다. 대량(전 계정 키워드·장기 히스토리)은 저수준 StatReports 툴 사용을 권장. metrics/annotate로 응답 필드를 좁히면 전송·직렬화 비용을 줄일 수 있다(선택).
| Name | Required | Description | Default |
|---|---|---|---|
| daily | No | True=일별 행, False=기간 합계(비율 재계산) | |
| level | Yes | 집계 레벨: 'campaign' | 'adgroup' | 'keyword' | |
| since | Yes | 시작일 YYYY-MM-DD (KST) | |
| until | Yes | 종료일 YYYY-MM-DD (KST) | |
| metrics | No | 반환·조회할 지표 필드를 이 집합으로 한정(원본 키, 예: ['impCnt','clkCnt','salesAmt','ccnt','convAmt']). 생략 시 기본 전체 (가산+비율). daily 모드에서는 /stats 요청도 함께 줄여 전송량 절감. | |
| annotate | No | True(기본): cost·roas_pct 등 별칭 키를 함께 부착. 원본 키만 쓰는 프로그램 소비자는 False로 중복 별칭 제거(응답 축소). | |
| account_id | Yes | 계정 별칭 (P0: 'default') | |
| adgroup_id | No | 범위 한정: 특정 광고그룹만 (keyword 레벨 권장) | |
| campaign_id | No | 범위 한정: 특정 캠페인만 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behaviors beyond readOnlyHint: auto-chunking for periods >92 days, sum mode recalculating ratios, and enumeration logic. These add rich behavioral context without contradicting annotations, fully informing the agent of side effects and constraints.
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 concise (5 sentences) and front-loaded with the core purpose, then progressively adds details on behavior and alternatives. Every sentence earns its place with no redundancy or filler.
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?
Given the complexity (9 parameters, output schema exists), the description covers auto-chunking, sum mode, alternative tool recommendation, and response narrowing advice. It provides sufficient context for correct invocation without being excessive, fully leveraging the existing schema and annotations.
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?
With 100% schema description coverage, the description adds value by explaining the sum mode vs daily distinction (related to the 'daily' parameter) and the purpose of metrics/annotate. While the schema already documents all parameters, the description provides operational context that helps the agent understand parameter interplay.
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 clearly defines the tool as a period performance report with named entities, specifying it enumerates level entities, queries /stats, and returns with names attached. It distinguishes itself from siblings like get_campaign_performance and get_stats by mentioning auto-chunking and sum mode, and explicitly recommends low-level StatReports for large scale.
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 provides explicit guidance on when to use this tool (period performance reports) and when not to ('대량' large scale all-account keywords/long history recommends StatReports tool). It also advises narrowing fields via metrics/annotate to reduce costs, offering clear context for optimal usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statsARead-only
동기 /stats 성과 조회. 윈도우 ≤ 92일, 레벨 혼합 불가, 최근/소량용.
반환 행에는 원본 필드(salesAmt 등)와 함께 명확한 별칭(cost 등)을 함께 붙인다.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | 동일 레벨의 엔티티 ID들 (예: 캠페인 ID만, 또는 광고그룹 ID만). 레벨 혼합 불가. | |
| since | No | 시작일 YYYY-MM-DD (date_preset과 택일) | |
| until | No | 종료일 YYYY-MM-DD | |
| fields | Yes | 지표 필드명. 예: impCnt,clkCnt,ctr,cpc,salesAmt,ccnt,ror. metric-glossary 참고. | |
| breakdown | No | pcMobile/hourly/gender/age/region | |
| account_id | Yes | 계정 별칭 (P0: 'default') | |
| date_preset | No | today/yesterday/last7days/lastmonth 등 (기간과 택일) | |
| time_increment | No | 'allDays'(합계) 또는 '1'(일별 행) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds value by specifying synchronous behavior, window limit, level restriction, and return format (aliases). No contradictions with annotations.
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 concise sentences that front-load key constraints (window, level mixing) and mention output behavior. Every sentence is informative with no redundancy.
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?
Given the output schema exists, the description adequately covers return structure. It mentions constraints and aliases. However, it lacks error conditions or prerequisites (e.g., account permissions). Still, it's fairly complete for a tool with high schema coverage and annotations.
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 all parameters are already described in the schema. The description does not add extra meaning beyond the schema details, but it reinforces constraints like level mixing not allowed and field usage hints.
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 clearly states it's a synchronous stats inquiry with constraints like window ≤92 days and no level mixing. It distinguishes from general stats tools but does not explicitly compare to siblings like 'get_campaign_performance' or 'get_performance_report'.
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 explicit when-to-use or when-not-to-use guidance is provided. The constraints imply usage for recent/small volume queries, but no mention of alternatives or exclusion criteria. The lack of usage context makes it harder for an agent to choose this over similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accountsARead-only
내가 접근 가능한 광고주 계정 전체 목록.
/ad-accounts(개인 접근, SA+GFA) 와 child-ad-accounts(대행 위임 로스터)를
customerId로 합쳐(dedupe) 반환한다. 각 항목:
account_id= 검색광고 customerId (다른 조회 툴에 그대로 사용)platforms= ['SA'|'GFA'...] (검색광고/디스플레이. GFA만 있으면 검색광고 데이터는 빈 결과)roles= ['MASTER'|'OWNER'...] (오너/마스터가 아닌 권한도 포함)sources= ['ad-accounts'|'child-ad-accounts'] (어느 소스에서 나왔는지) 여기 나오는 모든 account_id는 이 자격증명으로 조회 가능하다.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, but the description adds significant behavioral context: merging sources, deduplication logic, and detailed field explanations (account_id, platforms, roles, sources). This goes well beyond the annotation, providing a clear picture of the tool's behavior and output.
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 moderately concise, front-loading the main purpose. It uses structured formatting for fields. While every sentence earns its place, the inclusion of code-like formatting slightly reduces conciseness. Still, it is clear and not verbose.
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?
Given the tool has no parameters and an output schema exists (not shown but implied), the description provides a complete picture: purpose, data sources, deduplication, field descriptions, and cross-tool usability. No gaps are evident.
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?
There are zero parameters, so the schema covers 100%. The description adds no parameter semantics because none exist. However, it does explain the output fields, which is not required per the dimension but is beneficial. Baseline per guidelines is 4 for 0 parameters.
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 clearly states '광고주 계정 전체 목록' (full list of advertiser accounts). It uses specific verb 'list' and resource 'accounts', and distinguishes from siblings by explaining the merging of two sources (`/ad-accounts` and `child-ad-accounts`) and deduplication by customerId.
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 stating it returns all accessible accounts and that the account_id can be used in other tools. While no explicit when-not or alternative is given, the context of sibling tools (e.g., get_accounts_overview, whoami) suggests this is for initial account enumeration. The mention of cross-tool compatibility adds value.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_adgroupsARead-only
캠페인의 광고그룹 목록 (GET /ncc/adgroups?nccCampaignId=).
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | 계정 별칭 (P0: 'default') | |
| campaign_id | Yes | 상위 캠페인 nccCampaignId (cmp-...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds the HTTP method GET, reinforcing read-only nature, but no further 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words, includes the essential API endpoint.
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?
With good annotations and an output schema, the description is adequate for a simple list operation, though lacks pagination or sorting context.
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 parameter descriptions. The tool description adds no additional 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 clearly states the tool lists ad groups for a campaign, with the specific API endpoint. It distinguishes from sibling tools like list_campaigns.
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 is for retrieving ad group lists but provides no explicit guidance on when to use or avoid this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_adsARead-only
광고그룹의 광고(소재) 목록 (GET /ncc/ads?nccAdgroupId=).
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | 계정 별칭 (P0: 'default') | |
| adgroup_id | Yes | 상위 광고그룹 nccAdgroupId (grp-...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. Description adds the API endpoint but no further behavioral traits like pagination or rate 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?
Single sentence with essential info and API endpoint. No superfluous text, but could be slightly more informative.
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?
Given output schema exists and simple read operations with good annotations, description is adequate. Lacks usage guidance but otherwise sufficient.
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 (100% coverage). Tool description adds no additional meaning beyond what schema provides.
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?
Description states 'List of ads of an ad group' with specific API endpoint. Clearly distinguishes from sibling tools like list_adgroups and list_campaigns.
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 explicit when-to-use or alternative guidance. Usage is implied by the resource and context, but does not mention when to use this vs other listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_business_channelsBRead-only
비즈니스 채널 목록 (GET /ncc/channels).
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | 계정 별칭 (P0: 'default') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, indicating safety. The description does not add behavioral context beyond stating the endpoint. With annotations present, the description adds no extra value.
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 concise (one sentence) but lacks essential information such as when to use or behavioral notes. It is not verbose, but it could be more informative without sacrificing brevity.
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?
Given the tool is simple (one parameter, read-only, output schema present), the description is reasonably complete. The endpoint is mentioned, but users might benefit from brief notes on filtering or output format, though the output schema covers structure.
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% for the single required parameter. The description does not add additional meaning or clarification beyond what the schema already provides.
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 clearly states the tool lists business channels, using a specific verb ('list') and resource ('business channels'). It distinguishes from siblings like list_accounts and list_campaigns.
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 provided on when to use this tool versus alternatives or any prerequisites. The description is minimal and lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_campaignsBRead-only
계정의 캠페인 목록을 조회한다 (GET /ncc/campaigns).
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | No | 계정 별칭 (P0: 'default') | default |
| campaign_type | No | 필터: WEB_SITE/SHOPPING/POWER_CONTENTS/BRAND_SEARCH/PLACE 등 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds no additional behavioral traits (e.g., pagination, rate limits, data freshness). Beyond restating the purpose, it contributes little transparency.
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 extremely concise: one sentence plus the API endpoint. Every word is essential, and there is no unnecessary text. It is front-loaded with the core purpose.
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 an output schema, so return values need not be explained. The description and schema together provide sufficient context for a simple list operation. However, it lacks mention of pagination or sorting, which are common for list endpoints. Still, for a straightforward retrieval, it is mostly complete.
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 baseline is 3. The tool description does not add any meaning beyond what the schema already provides for account_id and campaign_type. The schema descriptions are adequate, so no deduction.
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 clearly states the action ('retrieve list') and the resource ('campaigns'). It includes the API endpoint, which unambiguously identifies the operation. It distinguishes from sibling tools like get_campaign (single campaign) and list_adgroups (different resource).
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 provides no guidance on when to use this tool versus alternatives. It does not mention conditions, prerequisites, or explicitly exclude scenarios. Sibling tools like get_campaign and list_adgroups exist, but no comparison is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_keywordsARead-only
광고그룹의 키워드 목록 (GET /ncc/keywords?nccAdgroupId=).
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | 계정 별칭 (P0: 'default') | |
| adgroup_id | Yes | 상위 광고그룹 nccAdgroupId (grp-...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds the HTTP method (GET). However, it does not disclose additional behavioral traits such as pagination, response structure, or authentication requirements.
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, compact sentence that includes the essential verb (list), resource (keywords), and context (ad group). No unnecessary words.
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?
Given that an output schema exists, the description need not explain return values. However, it lacks details on pagination, filtering, or other typical list behavior, which would be helpful for a complete understanding.
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 has 100% description coverage, so the schema already explains both parameters. The description adds no further parameter semantics beyond the endpoint context.
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 clearly states that the tool lists keywords for a given ad group, and includes the specific API endpoint for clarity. It is distinct from sibling tools that handle other resources or operations.
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 provides no guidance on when to use this tool versus alternatives like get_keyword_performance. The agent must infer usage from the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoamiARead-only
진단용: 현재 인증된 호출자 email과 연결된 자격증명 유무를 확인한다.
OAuth 토큰에서 email이 제대로 추출되는지 점검용. email 추출이 안 되면 claim_keys를 보고 추출 규칙을 조정한다.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond the readOnlyHint annotation by detailing that it checks authentication and assists with OAuth extraction debugging. No contradictions.
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 concise (two sentences), front-loaded with the main purpose, and includes relevant diagnostic detail without unnecessary words.
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?
Given zero parameters, readOnly hint, and existing output schema, the description fully covers the tool's role as an authentication check, making it complete for agent use.
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 is empty with 100% coverage, and the description does not need to explain parameters. Baseline score of 4 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 clearly states the tool's purpose: checking the authenticated caller's email and credentials for diagnostic use. It is distinct from sibling tools focused on business data.
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 specifies diagnostic and OAuth token verification use cases, providing clear context. However, it does not explicitly exclude alternative uses or list 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.
TDQS
Each tool has a clear, distinct purpose. For example, create_stat_report and download_stat_report are sequential steps, and get_stats and get_performance_report serve different use cases (sync vs. named reports). No overlap or ambiguity.
All tools follow a consistent verb_noun snake_case pattern (create_, download_, estimate_, get_, list_). The only outlier is whoami, which is conventional for diagnostics. No mixing of styles.
19 tools cover account overview, campaign/adgroup/keyword details, performance reports, keyword estimation, and diagnostic tools. The number feels appropriate for the apparent scope of a search advertising management API.
The tool set is heavily read-oriented with only create_stat_report for report generation. There are no tools to create, update, or delete campaigns, adgroups, or keywords, which are critical for full management. This leaves significant gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
Google Ads MCP server — manage campaigns, keywords, and metrics.
Marketing intelligence MCP server providing campaign performance data and analytics tools.
Meta Ads MCP server with 47 tools for campaigns, creatives, audiences, and insights.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides access to Naver OpenAPI services, enabling users to search blogs, news, books, images, and other content through standardized Model Context Protocol interfaces.114MIT
- AlicenseBqualityBmaintenanceAn MCP server that enables searching various content types (news, blogs, shopping, images, etc.) through Naver's search API.1920984MIT
- FlicenseAqualityCmaintenanceNaver Search API + Datalab API MCP server with 19 tools for Korean web search and trend analysis.1919
- FlicenseCqualityDmaintenance이 MCP 서버는 네이버 쇼핑인사이트 API와 검색 API를 통합하여 카테고리 및 키워드 트렌드를 조회하고 블로그, 쇼핑, 지식iN, 백과사전 검색을 수행할 수 있게 해줍니다.121
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/PlatAid/naver-searchad-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server