Skip to main content
Glama
PlatAid

Kakao Keyword Ads MCP

by PlatAid

Kakao Keyword Ads MCP (카카오 키워드광고 / 검색광고)

카카오 키워드광고(검색광고) 데이터를 조회·분석·리포트 위주로 다루는 MCP 서버. 회사 구성원 여러 명이 하나의 호스팅 서버(GCP Cloud Run)로 연동해 사용하는 것을 목표로 한다. 전체 설계는 DESIGN.md 참고. 라이선스: MIT.

⚠️ 비공식 프로젝트입니다 — 카카오와 무관하며(Not affiliated with Kakao), 카카오 키워드광고 오픈 API를 사용합니다. 사용에는 비즈 앱 전환·비즈니스 인증·API 권한 승인이 필요합니다.

🔐 보안: 자격증명은 .env(gitignore)/Secret Manager에만 두고 커밋하지 마세요. 호스팅 시 /mcp는 기본 개방이라(원격 MCP 클라이언트 호환) 엔드포인트 URL을 공개하지 말고, 다중 사용자 운영 시 Google Workspace OAuth 등으로 접근을 통제하세요. 자세한 건 DEPLOY.md.

자매 프로젝트: KAKAOMomentMCP(카카오모먼트)와 동일한 비즈니스 토큰 인증을 쓴다. 인증 계층(auth.py/config.py/business_auth_api.py/scripts/get_business_token.py)은 사실상 공유하고, 호스트·계층·엔드포인트만 다르다. 검색광고에는 키워드 계층품질지수가 추가된다.

현재 상태: 읽기 툴 21종 + 리소스 2종 · Cloud Run 배포 · 라이브 검증 완료

Related MCP server: Meta Ads MCP Server

인증 모델 — 사용자별 비즈니스 토큰 (중요)

  • 비즈니스 토큰은 사용자별(로그인한 카카오계정). refresh_token 없음 → 재발급 없이 재사용, 401 시 재발급. 불필요한 재발급은 발급 개수 한도(KOE236) 유발 → 재사용 원칙.

  • 접근 가능한 광고계정은 tokeninfo.ad_account_ids가 결정(resource_ids=keyword:* 동의 시 전체 계정).

  • 비즈니스 토큰·광고계정 ID는 .env에 저장하지 않는다. 사용자마다 바뀌는 런타임 값이라 툴 호출 시 인자(business_token, ad_account_id)로 전달한다. .env앱 수준 발급 자격증명만 둔다.

  • 필요 scope: keyword_management (조회·운영, 생성/삭제 제외).

두 가지 인증 모드 (자매 모먼트 MCP와 동일)

  • OAuth 로그인-온-커넥트(호스팅 권장, KAKAO_AUTH_MODE=oauth): 서버가 OAuth 보호 리소스가 되고 IdP는 카카오 비즈니스 인증 — 클라이언트 연결 시 카카오 로그인이 뜨고 각 요청이 토큰을 실어 온다. OAuth 상태는 Firestore에 영속화되어 재배포해도 토큰을 재사용(재발급 없음)한다(KOE236 방지). 자세한 건 DEPLOY.md.

  • 세션 로그인(로컬/stdio): login(business_token)use_account(ad_account_id) → 이후 인자 없이 조회.

호출 흐름 (세션 모드)

  1. get_token_info(business_token) → 접근 가능 계정(ad_account_ids) 확인

  2. 그중 하나를 ad_account_id로 골라 캠페인/키워드/리포트 조회

설정 (.env — 앱 발급 자격증명만, gitignore됨)

KAKAO_REST_API_KEY=...            # OAuth client_id (발급용)
KAKAO_BUSINESS_CLIENT_SECRET=...  # 비즈니스 인증 Client Secret (발급용)
KAKAO_REDIRECT_URI=...            # 앱에 등록한 Redirect URI (발급용)

비즈니스 토큰 발급 (사용자 로그인)

.venv/bin/python scripts/get_business_token.py url          # scope 기본값 keyword_management
# → 브라우저 로그인·동의 → code 복사
.venv/bin/python scripts/get_business_token.py exchange --code <AUTH_CODE>
# → 출력된 토큰을 툴 호출 시 business_token 인자로 사용 (.env에 저장하지 않음)

개발 / 실행

uv venv --python 3.13 && uv pip install -e ".[dev]"
.venv/bin/pytest                # 테스트 18종
.venv/bin/kakao-keywordad-mcp   # stdio 서버

툴 (읽기 21종) — 모든 툴 첫 인자 business_token

디스커버리 (토큰만): get_token_info, get_user_info, list_ad_accounts

계정 (+ad_account_id): get_ad_account, get_account_balance, get_biz_right

엔티티: list_campaigns·get_campaign, list_adgroups·get_adgroup, list_keywords·get_keyword·get_keyword_quality(품질지수), list_creatives·get_creative

성과/리포트: get_account_performance, get_campaign_performance, get_adgroup_performance, get_keyword_performance, get_creative_performance, get_performance_report(level=AD_ACCOUNT|CAMPAIGN|AD_GROUP|KEYWORD|CREATIVE) — 공통 인자 start/end(yyyyMMdd) 또는 date_preset, metrics_group

리소스: kakao://metric-glossary, kakao://report-dimensions

호스트 맵

용도

Host

토큰 발급

kauth.kakao.com/oauth/business/{authorize,token}

토큰/사용자 정보

kapi.kakao.com/v1/business/{tokeninfo,userinfo}

광고 API

api.keywordad.kakao.com/openapi/v1 (소재는 /creatives/basic)

선행조건: 비즈니스 앱 전환 + 실명확인 + 키워드광고 권한(keyword_management) 승인 + Redirect URI 등록.

⚠️ 엔드포인트 쿼리 파라미터명·리포트 지표 필드명은 문서 기반 최선 추정. 토큰 확보 후 라이브 검증에서 확정·보정.

Available Tools

25 tools
get_account_balanceA
Read-only

광고계정 실시간 잔액 (GET /adAccounts/balance).

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds the behavioral trait of 'real-time' data retrieval, which is not captured by annotations. No contradictions found.

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

Conciseness4/5

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

The description is extremely concise: a single line stating the purpose and endpoint. While this is efficient, it could be structured more clearly, e.g., by separating the endpoint from the purpose. Still, it is front-loaded and avoids fluff.

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

Completeness4/5

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

Given the tool's simplicity (a read operation to retrieve balance) and the presence of an output schema, the description provides adequate context. It covers the essential 'what' and 'how' but omits details like rate limits or authentication requirements, which are less critical for a straightforward read.

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 coverage is 100%, and the input schema provides detailed descriptions for both parameters. The tool description does not add any additional meaning beyond what the schema already offers. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: getting the real-time balance of an advertising account. It includes the API endpoint, which provides additional specificity. This distinguishes it from sibling tools like 'get_account_performance' or 'get_ad_account'.

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

Usage Guidelines3/5

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

The description mentions 'real-time balance', but does not provide explicit guidance on when to use this tool versus alternatives or any conditions. It lacks when-not-to-use instructions, leaving the agent to infer from context.

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

get_account_performanceB
Read-only

광고계정 성과 리포트 (GET /adAccounts/report).

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo종료일 yyyyMMdd
startNo시작일 yyyyMMdd
time_unitNo기간 단위(선택): DAY 등. 미지정 시 기간 합계
date_presetNoTODAY/YESTERDAY/LAST_7DAY 등 (기간과 택일)
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
metrics_groupNo지표 그룹(쉼표구분 복수 가능): BASIC/ADDITION/PIXEL_SDK_CONVERSIONBASIC
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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, consistent with read-only, but does not disclose additional traits like data scope or authorization needs. No contradiction.

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

Conciseness4/5

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

Very concise, one sentence, front-loaded with purpose. Could be improved by including usage context, but no unnecessary words.

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?

With 7 parameters and an output schema, the description is too minimal. It lacks an overview of what the report contains, how metrics groups work, or how to combine parameters. The schema fills some gaps but the description should provide a high-level summary.

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%, so baseline is 3. The tool description does not add any meaning beyond the schema—it only states the tool's purpose, not parameter details.

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

Purpose5/5

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

The description clearly states the action 'get', the resource 'ad account performance report', and the HTTP method/endpoint 'GET /adAccounts/report', distinguishing it from sibling tools like get_account_balance or get_campaign_performance.

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?

No guidance on when to use this tool versus alternatives such as get_performance_report or get_campaign_performance. The description lacks context for selecting among multiple report tools.

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

get_ad_accountA
Read-only

광고계정 상세 (GET /adAccounts/{adAccountId}).

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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, confirming read-only behavior. No additional behavioral context (e.g., authentication, rate limits) is provided, which is acceptable given the annotations.

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

Conciseness4/5

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

The description is a single sentence that packs name and HTTP path efficiently, with no wasted words. However, it could be slightly more informative about the default behavior.

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

Completeness3/5

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

Given the output schema exists and the tool is simple, the minimal description is adequate but lacks mention of default parameter behavior (e.g., using session account).

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%, so the descriptions of both parameters are already present in the schema. The tool description adds no further parameter semantics.

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

Purpose5/5

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

The description '광고계정 상세 (GET /adAccounts/{adAccountId})' clearly states the verb (GET) and resource (ad account details), distinguishing it from siblings like get_account_balance and get_account_performance.

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

Usage Guidelines3/5

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

The description implies usage for retrieving details of a specific ad account but does not explicitly state when to use it over alternatives or provide any exclusion criteria.

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

get_adgroupB
Read-only

단일 광고그룹 상세 (GET /adGroups/{id}).

ParametersJSON Schema
NameRequiredDescriptionDefault
adgroup_idYesadGroupId
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds the endpoint and the fact that it returns details, but provides no additional behavioral traits like error handling, rate limits, or response size. It does not contradict annotations.

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

Conciseness4/5

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

The description is very concise (one short sentence) and front-loaded with the resource name and endpoint. No unnecessary words, though it could be slightly more informative without being verbose.

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

Completeness3/5

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

Given the presence of an output schema (not shown) and annotations, the description is minimally complete. It lacks explanation of return values or behavior on missing data, but for a simple get operation with well-schemaed parameters, it is adequate.

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 coverage is 100%, meaning all parameters have descriptions. The tool description does not add extra context beyond what the schema provides. Baseline of 3 is appropriate as no additional semantic value is added.

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

Purpose5/5

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

The description explicitly states it retrieves '단일 광고그룹 상세' (single ad group details) and includes the HTTP endpoint 'GET /adGroups/{id}'. This clearly identifies the verb and resource, distinguishing it from sibling tools like 'list_adgroups' that return multiple groups.

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 does not mention prerequisites, context, or scenarios where other tools (e.g., list_adgroups) 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.

get_adgroup_performanceA
Read-only

광고그룹별 성과 리포트 (GET /adGroups/report). campaignId 필수.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo종료일 yyyyMMdd
startNo시작일 yyyyMMdd
time_unitNo기간 단위(선택): DAY 등. 미지정 시 기간 합계
campaign_idNo캠페인 ID (이 리포트는 필수)
date_presetNoTODAY/YESTERDAY/LAST_7DAY 등 (기간과 택일)
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
metrics_groupNo지표 그룹(쉼표구분 복수 가능): BASIC/ADDITION/PIXEL_SDK_CONVERSIONBASIC
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, so the tool is understood as a read-only operation. The description adds no further behavioral context beyond stating it is a report. It does not mention authorization, rate limits, or any side effects, providing minimal added value over annotations.

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 that conveys the essential purpose. There is no unnecessary information, and it is well-structured for quick comprehension.

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

Completeness3/5

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

Given the tool has 8 parameters, 100% schema coverage, and an output schema, the description is minimal but covers the core function. However, it lacks details about report contents, required permissions, or how the date parameters interact. The brevity leaves some gaps for an agent to infer.

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%, so the baseline is 3. The description notes that campaignId is required, adding emphasis, but this conflicts with the schema marking it as optional with a null default. No additional parameter semantics are provided beyond what the schema already offers.

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

Purpose5/5

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

The description clearly states it provides a performance report by ad group, includes the HTTP method and path, and specifies that campaignId is required. This is specific and distinguishable from sibling tools like get_adgroup or get_campaign_performance.

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

Usage Guidelines3/5

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

The description implies usage when an ad group performance report is needed with a campaign ID, but it does not explicitly state when to use this tool over alternatives like get_performance_report or when not to use it. No exclusions or alternatives are mentioned.

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

get_biz_rightB
Read-only

영업권 조회 (GET /adAccounts/bizRight).

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description does not need to repeat that. It adds no additional behavioral traits beyond the endpoint, but does not contradict annotations. The behavior is standard for a 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.

Conciseness5/5

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

A single, front-loaded sentence with no extra fluff. Every word serves a purpose, and the endpoint is included for direct reference.

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

Completeness3/5

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

Given the presence of an output schema and annotations, the description is minimally adequate. However, it lacks details about the response or the meaning of 'business rights,' which could help agents decide when to use it. Sibling tools have more descriptive names, but this one relies on the endpoint.

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 coverage is 100%, so the parameters are well-documented in the schema. The description does not add any additional meaning or context for the parameters, but the baseline of 3 is appropriate since the schema covers them.

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 states the tool's purpose as '영업권 조회' (business rights inquiry) and provides the HTTP endpoint, which clearly identifies the resource and action. It distinguishes from sibling tools like get_account_balance by focusing on business rights.

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?

No guidance is provided on when to use this tool versus alternatives. The description does not mention context, prerequisites, or comparisons with other tools.

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

get_campaignA
Read-only

단일 캠페인 상세 (GET /campaigns/{id}).

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYescampaignId
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so description adds minimal behavioral context. It mentions GET method, which implies read-only, but this is already known from annotations. No additional behavioral traits disclosed.

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?

Single sentence, front-loaded with purpose. No unnecessary information. Efficient.

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

Completeness4/5

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

Output schema exists, so return values are documented. Given simple read-only tool with well-defined parameters, description is complete enough. Could provide more detail about the response but not necessary.

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 coverage is 100%, so parameters are fully documented in schema. Description does not add extra meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states it retrieves details of a single campaign, includes HTTP method and endpoint. Distinguishes from sibling tools like list_campaigns and get_campaign_performance by specifying 'single' and 'details'.

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?

No guidance on when to use this tool versus alternatives. Does not indicate that list_campaigns is for multiple campaigns or get_campaign_performance for performance metrics.

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

get_campaign_performanceB
Read-only

캠페인별 성과 리포트 (GET /campaigns/report).

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo종료일 yyyyMMdd
startNo시작일 yyyyMMdd
time_unitNo기간 단위(선택): DAY 등. 미지정 시 기간 합계
date_presetNoTODAY/YESTERDAY/LAST_7DAY 등 (기간과 택일)
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
metrics_groupNo지표 그룹(쉼표구분 복수 가능): BASIC/ADDITION/PIXEL_SDK_CONVERSIONBASIC
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

The annotation readOnlyHint: true is already present, indicating a safe read operation. The description adds the API endpoint, which confirms the GET method. No additional behavioral traits are disclosed, but there is no contradiction.

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

Conciseness4/5

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

The description is extremely concise (one sentence) and front-loads the purpose. However, it lacks any structure or additional details that would be helpful for a tool with 7 parameters.

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?

Despite the presence of an output schema, the description is too minimal. It does not explain the purpose of the report, how parameters interact (e.g., date range vs. presets), or any edge cases. The agent would need to rely solely on schema descriptions.

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%, so all parameters are already documented. The tool description does not add any extra meaning or context beyond what the schema provides.

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 retrieves a campaign performance report and includes the HTTP method and endpoint (GET /campaigns/report). However, it does not differentiate from sibling tools like get_account_performance or get_adgroup_performance, which reduces clarity.

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?

No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, when to use date ranges versus date presets, or how to interpret the report. The description provides only a bare minimum.

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

get_creativeA
Read-only

단일 소재 상세 (GET /creatives/basic/{id}).

ParametersJSON Schema
NameRequiredDescriptionDefault
creative_idYescreativeId
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, and the description adds the HTTP method (GET), reinforcing the read-only nature. However, no additional behavioral context (e.g., auth, error handling, rate limits) is provided beyond the annotations.

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

Conciseness4/5

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

The description is concise with a single sentence that front-loads the purpose. It is efficient, though could potentially include more detail without being verbose.

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

Completeness3/5

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

Given the output schema exists and the tool has only 3 parameters with high schema coverage, the description is minimally adequate. It does not explain return values (covered by output schema) but lacks usage context and error handling notes.

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 coverage is 100%, so the schema fully documents parameters. The description adds no additional meaning or context beyond the schema, 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.

Purpose5/5

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

The description clearly states the purpose: retrieving a single creative's details, with the specific HTTP method and endpoint. It distinguishes from siblings like list_creatives (which lists multiple) and get_creative_performance (performance data).

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. The name and sibling context imply single-item retrieval, but the description does not state prerequisites or when to choose this over list_creatives.

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

get_creative_performanceB
Read-only

소재별 성과 리포트 (GET /creatives/report). campaignId 필수, adGroupId 선택.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo종료일 yyyyMMdd
startNo시작일 yyyyMMdd
time_unitNo기간 단위(선택): DAY 등. 미지정 시 기간 합계
adgroup_idNo특정 광고그룹 한정 (선택)
campaign_idNo캠페인 ID (이 리포트는 필수)
date_presetNoTODAY/YESTERDAY/LAST_7DAY 등 (기간과 택일)
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
metrics_groupNo지표 그룹(쉼표구분 복수 가능): BASIC/ADDITION/PIXEL_SDK_CONVERSIONBASIC
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations indicate readOnlyHint: true, which is consistent with the description (a report). The description does not add extra behavioral details beyond the endpoint and required params. With annotations covering the safety profile, the description is adequate but doesn't provide additional transparency about rate limits, data freshness, or handling of optional parameters.

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

Conciseness4/5

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

The description is extremely concise (single sentence plus a fragment) with no wasted words. Key information (resource, endpoint, required/optional params) is front-loaded. However, it lacks structure (e.g., bullet points) and could be slightly more informative without adding length.

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?

Despite having 9 parameters and an output schema, the description only covers the basic requirement and optionality. It doesn't explain the report contents, date handling, or how to interpret results. Given the complexity and the presence of an output schema, the description is too sparse to be fully helpful.

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%, so the tool description's mention of campaignId and adGroupId adds marginal value. The description highlights which parameters are important (required/optional) but does not explain their meanings further. Baseline 3 is appropriate given high schema coverage.

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

Purpose4/5

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

Description clearly states it's a performance report by creative, including the HTTP method and endpoint. It specifies required parameter (campaignId) and optional (adGroupId), which helps distinguish from sibling tools like get_campaign_performance or get_adgroup_performance. However, it doesn't explicitly mention the resource type (creative) in English, and the phrasing is somewhat terse.

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 gives minimal guidance: it mentions that campaignId is required and adGroupId is optional, implying when to use. But it does not provide any explicit use cases, when-not-to-use, or alternatives. Given the many sibling performance tools, more context would be beneficial.

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

get_keywordB
Read-only

단일 키워드 상세 (GET /keywords/{id}).

ParametersJSON Schema
NameRequiredDescriptionDefault
keyword_idYeskeywordId
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

The annotation readOnlyHint=true already indicates it is a safe read operation. The description adds no further behavioral context (e.g., error handling, rate limits). With the annotation covering the main trait, a score of 3 is appropriate as the description does not add value but does not contradict.

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

Conciseness4/5

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

The description is a single sentence that efficiently conveys the tool's purpose and API endpoint. It is appropriately sized and front-loaded, though it could benefit from slightly more detail without becoming verbose.

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

Completeness4/5

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

The tool is simple (single keyword retrieval) and an output schema exists, so the description does not need to explain return values. It provides the essential information, but could briefly mention that it returns full keyword details for completeness.

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?

All three parameters have descriptions in the input schema (100% coverage). The tool description does not add any extra meaning beyond what the schema already provides, so baseline 3 is correct.

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 verb ('상세' - detail) and resource ('단일 키워드' - single keyword), and includes the HTTP method and path. It distinguishes itself from sibling tools like 'list_keywords' by implying it returns a single item, but lacks explicit differentiation.

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?

No guidance is provided on when to use this tool versus alternatives (e.g., list_keywords for multiple, get_keyword_performance for metrics). The description simply states what it does without any context on suitability.

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

get_keyword_performanceC
Read-only

키워드별 성과 리포트 (GET /keywords/report). campaignId 필수, adGroupId 선택. 검색광고 분석의 핵심.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo종료일 yyyyMMdd
startNo시작일 yyyyMMdd
time_unitNo기간 단위(선택): DAY 등. 미지정 시 기간 합계
adgroup_idNo특정 광고그룹 한정 (선택)
campaign_idNo캠페인 ID (이 리포트는 필수)
date_presetNoTODAY/YESTERDAY/LAST_7DAY 등 (기간과 택일)
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
metrics_groupNo지표 그룹(쉼표구분 복수 가능): BASIC/ADDITION/PIXEL_SDK_CONVERSIONBASIC
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true. Description adds only endpoint info, no additional behavioral context (e.g., data freshness, metrics returned, pagination).

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

Conciseness4/5

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

Very short two-sentence description, concise and to the point, but lacks sufficient detail for full understanding.

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 9 parameters, output schema exists, and numerous sibling tools, the description is too minimal. Missing context on report contents, metrics, time unit behavior, and usage compared to alternatives.

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 coverage is 100% with descriptions. Tool description reiterates campaignId required and adGroupId optional, but adds no new meaning beyond schema.

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?

Clearly states it's a keyword performance report, provides endpoint and mandatory parameter. However, does not differentiate from sibling performance reports 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.

Usage Guidelines2/5

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

Mentions campaignId is required and adGroupId optional, but no explicit guidance on when to use this tool versus other performance report tools among siblings.

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

get_keyword_qualityA
Read-only

키워드 품질지수 (GET /keywords/{id}/quality). 검색광고 최적화 분석의 핵심 신호.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyword_idYeskeywordId
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true. The description adds 'GET /keywords/{id}/quality' indicating a safe read operation, but does not disclose additional behavioral traits like rate limits or authentication requirements. 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.

Conciseness5/5

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

Extremely concise: two sentences that front-load the core purpose and endpoint. No extraneous information; every word earns its place.

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

Completeness4/5

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

The tool is simple (single read operation), output schema exists, and annotations are present. The description covers purpose and endpoint, leaving interpretation of the quality index to the output schema. Slightly incomplete as it doesn't summarize return fields, but acceptable given output schema.

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?

Input schema covers all parameters with descriptions (100% coverage). The tool description does not add further semantic value beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states '키워드 품질지수' (keyword quality index) and identifies it as a '검색광고 최적화 분석의 핵심 신호' (key signal for search ad optimization analysis), distinguishing it from sibling tools like get_keyword and get_keyword_performance.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives such as get_keyword_performance or get_keyword. The context implies usage for quality analysis, but lacks explicit when/when-not conditions.

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

get_performance_reportC
Read-only

레벨 지정 통합 성과 리포트 (KEYWORD 포함). 인사이트 도출용 1급 툴. AD_GROUP/KEYWORD/CREATIVE 레벨은 campaign_id 필수.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo종료일 yyyyMMdd
levelYes집계 레벨: AD_ACCOUNT | CAMPAIGN | AD_GROUP | KEYWORD | CREATIVE
startNo시작일 yyyyMMdd
time_unitNo기간 단위(선택): DAY 등. 미지정 시 기간 합계
adgroup_idNo광고그룹 ID (KEYWORD/CREATIVE 선택)
campaign_idNo캠페인 ID (AD_GROUP/KEYWORD/CREATIVE 레벨 필수)
date_presetNoTODAY/YESTERDAY/LAST_7DAY 등 (기간과 택일)
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
metrics_groupNo지표 그룹(쉼표구분 복수 가능): BASIC/ADDITION/PIXEL_SDK_CONVERSIONBASIC
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true. Description adds only a vague 'tier-1 tool for insights' without further behavioral details (e.g., default date range, pagination, or error conditions).

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

Conciseness4/5

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

The description is very concise (two sentences) and front-loads the primary purpose. No wasted words, though a bit more structure could help readability.

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

Completeness3/5

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

Given the tool's complexity (10 params, output schema exists), the description covers the essential behavior but misses context like how it differs from sibling performance tools. Adequate but not thorough.

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 coverage is 100%, so the description does not need to add parameter details. The only added note about campaign_id requirement is already present in the schema description. Baseline score of 3 is appropriate.

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 states the tool returns a 'level-specified integrated performance report' and highlights its importance for insights. It distinguishes from sibling tools by being flexible across levels, but does not fully clarify when to use this versus specific get_*_performance tools.

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?

No explicit guidance on when to use this tool versus siblings like get_campaign_performance. Only mentions a parameter requirement (campaign_id for certain levels), which is not a usage guideline.

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

get_token_infoA
Read-only

비즈니스 토큰의 소유자(token_user_id)와 접근 가능 광고계정 조회 (GET kapi.kakao.com/v1/business/tokeninfo). biz_agreements[].ad_account_ids가 접근 가능 계정('*'=전체).

ParametersJSON Schema
NameRequiredDescriptionDefault
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. Description adds specific return fields (token_user_id, ad_account_ids) and explains the '*' meaning, providing useful behavioral context 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.

Conciseness4/5

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

Description is concise (two sentences) and includes endpoint and key output details. No redundancy, but could be more structured with bullet points.

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

Completeness4/5

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

With output schema present, description doesn't need full return details. It covers main outputs and optional parameter. Adequate for understanding tool functionality.

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%, describing the parameter's default and override role. Description adds minimal extra meaning beyond schema, so baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly identifies the tool's purpose: querying business token owner and accessible ad accounts. It specifies the resource (token info) and the verb (query). No sibling tool duplicates this purpose.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternatives mentioned. Context implies usage due to unique purpose among siblings, but lacks direct guidance.

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

get_user_infoA
Read-only

비즈니스 토큰 사용자 정보 (GET /v1/business/userinfo).

ParametersJSON Schema
NameRequiredDescriptionDefault
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

The readOnlyHint annotation already indicates a safe read operation. The description adds the HTTP method and endpoint, confirming idempotency. However, it does not disclose additional behavioral traits like error responses or data scope beyond the schema.

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 sentence that efficiently conveys the tool's purpose and endpoint. It is front-loaded with the key function and contains no superfluous words.

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

Completeness4/5

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

Given the tool has only one optional parameter, annotations for read-only, and an output schema, the description is adequate for a simple info retrieval. It could mention the scope of returned data, but the endpoint and token mechanism are sufficiently clear.

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?

The input schema already provides a full description of the business_token parameter (override for login session). The description does not add any further semantic meaning beyond the schema, so the baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states 'Business token user info' and provides the exact HTTP endpoint. This specifies the resource (user info) and verb (GET), distinguishing it from sibling tools that focus on accounts, campaigns, ads, etc.

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?

No guidance is provided on when to use this tool versus alternatives like session_status or get_token_info. The description lacks context about prerequisites, recommended scenarios, or when not to use it.

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

list_ad_accountsA
Read-only

토큰이 접근 가능한 광고계정 목록 (GET /adAccounts/pages). 계정 선택 전에도 호출 가능.

ParametersJSON Schema
NameRequiredDescriptionDefault
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description does not need to reinforce safety. It adds transparency by mentioning the HTTP method (GET) and the ability to call before account selection, which goes beyond the annotations.

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 consists of two short, front-loaded sentences with no unnecessary words. Every sentence provides useful information: the purpose, the HTTP method, and a usage condition.

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

Completeness5/5

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

Given that an output schema exists, the description does not need to explain return values. It covers the input, purpose, and usage context fully, making it complete for a list tool with read-only behavior.

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?

The input schema has 100% description coverage for its single parameter, so baseline is 3. The description does not add any additional meaning or context for the parameter beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states it lists ad accounts accessible by the token, specifying the HTTP method GET and the endpoint. It distinguishes from siblings like get_ad_account by indicating it's a list operation, and adds context about being callable before account selection.

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

Usage Guidelines4/5

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

The description explicitly notes that the tool can be called before account selection, implying it's useful for initial setup or discovery. However, it does not explicitly state when not to use it or list alternatives among siblings, though the context of listing vs. single-item tools is clear.

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

list_adgroupsB
Read-only

광고그룹 목록 (GET /adGroups).

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idNo상위 캠페인 필터 (선택)
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, covering safety. Description adds no new behavioral details (e.g., pagination, rate limits). With annotations, the bar is lower; a 3 is appropriate.

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

Conciseness4/5

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

Description is extremely concise (one sentence). No wasted words, but could include more context like default behavior without filters. Still efficient.

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

Completeness4/5

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

Given output schema exists and parameters are well-documented, the description is largely complete. Missing info on default filter behavior, but not critical for a simple list tool.

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%, so parameters are fully described. The description adds no additional meaning beyond the schema. Baseline 3 is correct.

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?

Description states 'ad group list' and HTTP method, clearly indicating the tool's function. However, it does not differentiate from sibling list tools like list_campaigns, which would benefit from explicit scope mention.

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?

No guidance on when to use this tool versus alternatives (e.g., get_adgroup for single item). The tool name and parameters provide implicit context, but explicit usage hints are missing.

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

list_campaignsA
Read-only

캠페인 목록 (GET /campaigns).

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint: true, so the agent knows it's a safe read operation. The description adds no further behavioral context (e.g., pagination, filtering, rate limits), but the annotation mitigates the gap, resulting in an adequate score.

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 line with no filler or redundancy. It conveys the core purpose with minimal words, earning full marks for conciseness.

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

Completeness3/5

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

Given the presence of an output schema and annotations, the description is minimally sufficient. However, it omits important context like pagination behavior or default ordering, which would be helpful for a list tool, leaving some gaps.

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% (both parameters documented), so the description provides no additional semantic value beyond what the input schema already includes. 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.

Purpose5/5

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

The description '캠페인 목록 (GET /campaigns)' clearly indicates the tool lists campaigns, with the verb 'list' and resource 'campaigns'. It effectively distinguishes from siblings like 'get_campaign' (single) and 'list_ad_accounts' by specifying both action and HTTP endpoint.

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?

No explicit guidance is given on when to use this tool versus alternatives like 'get_campaign' or 'get_campaign_performance'. The description only states what it does, missing when-not-to-use or preferred scenarios.

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

list_creativesA
Read-only

소재 목록 (GET /creatives/basic?bizChannelId=). bizChannelId 필수 — 캠페인의 bizChannelId 값을 넘긴다 (소재는 비즈채널 단위).

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
biz_channel_idNo비즈채널 ID (필수). list_campaigns의 bizChannelId 사용
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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

The description adds the HTTP method (GET) and parameter dependency beyond the readOnlyHint annotation. It also notes that creatives are per biz channel. No contradictions with annotations. The added behavioral context is useful.

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

Conciseness4/5

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

The description is very concise, consisting of two short phrases. It front-loads the purpose and key parameter. While brief, every part is relevant and it avoids unnecessary repetition.

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

Completeness4/5

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

Given the presence of an output schema, the description does not need to detail return values. It covers the essential aspects: what the tool does and how to use the primary parameter. Missing details like pagination are acceptable for a simple list tool with an output schema.

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?

Although schema coverage is 100%, the description adds value by indicating the parameter's source (list_campaigns) and emphasizing it as 'required'. However, the schema marks the parameter as nullable with default null, creating a minor inconsistency. Overall, it provides additional guidance beyond the schema.

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 lists creatives, mentions the HTTP endpoint, and specifies the key parameter bizChannelId. While it does not explicitly contrast with sibling 'get_creative', the plural name and context imply a list operation, making the purpose clear.

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

Usage Guidelines3/5

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

The description advises to pass the bizChannelId from list_campaigns, providing some usage context. However, it does not explicitly state when to use this tool versus alternatives like get_creative, nor does it mention when not to use it. Guidance is implicit but lacks exclusivity.

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

list_keywordsC
Read-only

키워드 목록 (GET /keywords).

ParametersJSON Schema
NameRequiredDescriptionDefault
adgroup_idNo상위 광고그룹 필터 (선택)
ad_account_idNo대상 광고계정 ID (미지정 시 use_account 세션 사용)
business_tokenNo비즈니스 토큰 (미지정 시 login 세션 사용). override용

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=true. Description adds no behavioral traits (e.g., pagination, default scope, rate limits). For a list operation, crucial details like ordering or limits are absent.

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

Conciseness3/5

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

Single sentence is concise but lacks structure. It communicates the endpoint but provides no additional explanation or context for the agent.

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 complexity (3 optional parameters, output schema exists), the description is too minimal. It does not explain default behavior, scope of listing, or how the tool fits into the workflow. The output schema compensates for return value structure, but overall context is lacking.

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 coverage is 100% with each parameter having a description in the input schema. The tool description itself adds no parameter information, so baseline 3 is appropriate.

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?

Description states '키워드 목록 (GET /keywords)' which clearly indicates listing keywords. The verb 'list' distinguishes it from sibling 'get_keyword' which suggests single retrieval. However, it lacks explicit differentiation from other list tools like list_adgroups.

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?

No guidance on when to use this tool vs alternatives. Does not mention when to use list_keywords over get_keyword or other list tools. Sibling tools exist but no contextual instructions.

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

loginA

비즈니스 토큰으로 로그인한다. 토큰을 tokeninfo로 검증하고 서버 세션에 저장 → 이후 툴은 토큰 인자 없이 호출 가능. 반환에 token_user_id와 접근 가능 계정(tokeninfo).

ParametersJSON Schema
NameRequiredDescriptionDefault
business_tokenYes발급받은 비즈니스 토큰

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description discloses key behaviors: token validation, session storage, and subsequent token-free calls. It also mentions return values. Lacks details on errors or expiration, but sufficient for a login tool.

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?

Two sentences with no wasted words. The first sentence clearly states the purpose, and the second provides essential behavioral details. Efficient and well-structured.

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

Completeness5/5

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

Given the tool's simplicity and the presence of an output schema, the description covers input, process, effect, and return values completely. No gaps for a login tool.

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

Parameters4/5

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

The schema has 100% coverage for the business_token parameter with a basic description. The tool description adds context on validation and session saving, enhancing understanding beyond the schema.

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

Purpose5/5

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

The description clearly states that the tool logs in with a business token, validates it via tokeninfo, and saves a server session. It distinguishes itself from siblings like logout and session_status by being the authentication entry point.

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

Usage Guidelines4/5

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

The description explains when to use this tool (to log in) and the effect (subsequent tools can be called without token). It does not explicitly state when not to use it or alternatives, but the context is clear.

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

logoutA

세션의 로그인/계정 정보를 지운다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations exist, so the description is the sole source of behavioral info. It conveys the core action (deleting session info) but omits details like irreversibility, need for authentication, or that subsequent calls will fail. The simplicity of the operation keeps this at a moderate score.

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 concise sentence with all necessary information, no fluff. It is front-loaded and every word contributes value.

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

Completeness4/5

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

Given the tool's simplicity (no parameters, output schema exists), the description adequately explains the tool's purpose. It could mention the session termination effect, but it is sufficient for an experienced user knowing the sibling set.

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

Parameters4/5

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

There are no parameters, so schema coverage is 100% trivially. According to the rubric, zero parameters earns a baseline of 4.

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

Purpose5/5

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

The description clearly states the tool's action: deleting session login/account information. It uses a specific verb ('deletes') and resource ('login/account information'), and distinguishes from siblings like 'login' (which creates) and 'session_status' (which checks).

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 vs alternatives, no prerequisites, and no context about side effects. The user must infer usage from the name and sibling list.

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

session_statusA
Read-only

현재 인증 상태(로그인 여부·token_user_id·선택된 계정). 토큰 값은 노출하지 않음.

OAuth 로그인-온-커넥트 모드면 요청의 OAuth 토큰 컨텍스트를 보고(=실제 인증 경로), 아니면 세션 저장소(login 툴/웹 로그인)를 본다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds value by stating that token values are not exposed and explains the two data sources (OAuth context vs. session store) depending on mode. This provides behavioral context 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.

Conciseness5/5

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

The description is two succinct sentences. The first states core purpose, the second adds mode-specific behavior. It is front-loaded, free of fluff, and every sentence adds value.

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

Completeness5/5

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

Given 0 parameters, the description covers essential aspects: what it returns, what it does not expose, and how it determines status. With an output schema present, return value details are not needed. The tool is simple and description is fully complete.

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

Parameters4/5

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

The input schema has 0 parameters, so baseline is 4 per guidelines. The description adds no parameter information, but none is needed. Schema coverage is 100% (no params), so the description is adequate.

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

Purpose5/5

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

The description explicitly states the tool returns authentication status (login status, token_user_id, selected account) and that it does not expose token values. This clearly defines verb and resource, distinguishing it from sibling tools like login, logout, and get_token_info.

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

Usage Guidelines4/5

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

The description explains when to use the tool (to check authentication status) and provides context on how it derives status based on OAuth or session store mode. While it does not explicitly state when not to use, the guidance is clear and context-aware.

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

use_accountA

이후 조회의 기본 대상 광고계정을 세션에 설정한다.

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_account_idYes이후 조회에 사용할 광고계정 ID

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description adequately communicates the session-setting behavior. However, it could be more explicit about side effects (e.g., overwriting previous default) and session scope.

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?

Single, front-loaded sentence with no wasted words. Efficiently conveys the tool's purpose.

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

Completeness4/5

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

Given the simplicity (one param, clear purpose) and presence of an output schema, the description is reasonably complete. Could mention session persistence across calls.

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 coverage is 100%, and the description does not add extra meaning beyond what is already in the schema for the single parameter.

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

Purpose5/5

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

The description clearly states the tool sets the default advertising account for subsequent queries in the session, distinguishing it from sibling get/list tools that retrieve data.

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

Usage Guidelines3/5

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

The description implies use before other queries but does not explicitly state when to use or provide alternatives. No exclusions or when-not guidance is given.

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. Dates show when Glama detected each change.

  1. 25 tool updatesv0.1.0
    • First observedget_account_balance
    • First observedget_account_performance
    • First observedget_ad_account
    • First observedget_adgroup
    • First observedget_adgroup_performance
    • First observedget_biz_right
    • First observedget_campaign
    • First observedget_campaign_performance
    • First observedget_creative
    • First observedget_creative_performance
    • First observedget_keyword
    • First observedget_keyword_performance
    • First observedget_keyword_quality
    • First observedget_performance_report
    • First observedget_token_info
    • First observedget_user_info
    • First observedlist_ad_accounts
    • First observedlist_adgroups
    • First observedlist_campaigns
    • First observedlist_creatives
    • First observedlist_keywords
    • First observedlogin
    • First observedlogout
    • First observedsession_status
    • First observeduse_account

TDQS

A3.5/5.0
Disambiguation5/5

Each tool targets a distinct resource or action: get_* for single entities, list_* for collections, and dedicated tools for auth/state. No two tools have overlapping purposes; even performance reports are clearly differentiated by level (account, campaign, adgroup, keyword, or unified).

Naming Consistency5/5

All tools follow a strict verb_noun pattern with underscores (e.g., get_keyword_quality, list_ad_accounts). Auth tools (login, logout, session_status, use_account) are also consistently named. No mixing of conventions or vague verbs.

Tool Count4/5

25 tools is at the high end of reasonable for a keyword ads API. It covers authentication (4), listing/getting for 5 entities (account, campaign, adgroup, keyword, creative) plus performance reports and supporting tools. Slightly heavy but not unjustified given the domain.

Completeness2/5

The tool set is heavily read-only: only get and list operations exist for campaigns, adgroups, keywords, and creatives. Missing create, update, and delete operations—critical for campaign management. The only write tool is use_account (state setting). Performance reporting is well-covered, but the lack of mutation tools is a major gap.

Maintenance

ActivityStale
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to manage Kakao Moment advertisements (Kakao's advertising platform) through natural language queries, supporting campaign, ad group, creative listing, and performance reporting.
    7
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables management and analysis of Meta (Facebook/Instagram) ads through natural language conversations, with 30 tools for reading and writing ad data.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides read-only access to Meta Ads API, enabling campaign management, creative analysis, targeting research, and performance analytics via 39 tools.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides read-only access to Google Ads account data including campaigns, ad groups, keywords, and performance reports. Enables querying via GAQL through an MCP interface.
    MIT

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/PlatAid/kakao-keywordad-mcp'

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