Skip to main content
Glama
erayendes

Mogut — App Store Growth MCP

Mogut

Apple 생태계(iOS + Mac App Store)를 위한 읽기 전용 App Store 성장 분석(ASO) MCP 서버.

Mogut은 App Store에 절대 쓰기를 수행하지 않습니다. 쓰기 작업은 사용자가 승인한, 바로 실행 가능한 Heimdall 도구 호출로 넘겨집니다.

1.0: 13개의 실시간 데이터 소스에 걸친 47개 도구, 보고서 오케스트레이터로 마무리됩니다. report_app은 한 번의 호출로 전체 App Report를 생성하며, 주기 등급 (일간/주간/월간)은 로컬 기록의 델타를 보고합니다. CHANGELOG.md를 참조하세요.

설치

npm install -g mogut
mogut setup

설치 마법사는 감지한 MCP 클라이언트(Claude Code & Desktop, Codex, Cursor, VS Code, Windsurf, Antigravity)에 Mogut을 등록합니다. 이후 클라이언트를 한 번 재시작하세요.

설치 마법사는 자격 증명을 macOS Keychain(com.milowda.credentials)에 저장하며, .env 폴백을 제공합니다. 비밀 정보는 터미널에서만 입력됩니다. 채팅으로 입력하거나, 로그로 남거나, 표시되는 일이 절대 없습니다. SECURITY.md를 참조하세요.

Related MCP server: ASO Score MCP

MCP 설정

{
  "mcpServers": {
    "mogut": { "command": "mogut", "args": [] }
  }
}

기본적으로 9개의 도구가 노출됩니다. mogut_* 메타 도구 6개와 보고서 오케스트레이터 3개(report_app, report_competitor_deep, report_comparison — 네 번째 report_actions는 v1.1에 추가됨)입니다. 그 밖의 모든 것은 프로필별로 선택 활성화됩니다. MOGUT_PROFILES="keyword,competitor"(또는 "all")를 설정하세요. mogut_search_tools는 도구를 찾아 어떤 프로필에서 활성화할 수 있는지 알려줍니다. 전체 흐름은 GUIDE.md에서 확인할 수 있습니다.

결과의 형태

모든 도구는 데이터(structuredContent)와 함께 호스트 모델용 작성 지침을 반환합니다. 통계는 항상 코드에서 계산되며 모델에 위임되지 않습니다. 모든 결과에는 source, confidence, lastCheckedAt이 포함되고, 잘린 부분도 표시됩니다(가져온/분석된 항목 수). 리뷰 및 경쟁사 텍스트는 신뢰할 수 없는 데이터로 표시됩니다. 깨진 소스는 눈에 띄게 건너뛴 섹션으로 표시될 뿐, 절대 지어낸 숫자를 만들지 않습니다.

등급

등급

필요 조건

열리는 것

0

그 없음

모든 공개 소스 — 낮은 신뢰도로 표시된 전체 보고서가 생성됨

1

App Store Connect 키

자체 분석, 판매, 리뷰, 메타데이터

2

+ Apple Ads OAuth

실제 검색어 보고서 및 측정된 수요

3

+ 커넥터(RevenueCat/PostHog)

키워드별 수익 분석

mogut_status는 현재 등급을 보여주고, 자격 증명을 실시간으로 검증(verify: true)하며 180일 Apple Ads 키 교체까지 남은 기간을 카운트다운합니다.

App Store Connect 역할별 열리는 기능

키의 ASC 역할

가능한 작업

Sales(보고서 접근 권한) 또는 Finance

판매 보고서, 애널리틱스 보고서 다운로드, 리뷰, 메타데이터 가져오기

Admin

추가로: 애널리틱스 피드를 켜는 1회성 POST /v1/analyticsReportRequests — Apple은 이 단일 호출을 Admin이 있는 경우에만 실행할 수 있고 UI를 제공하지 않음

피드는 그 POST 이후에만 데이터를 만들기 시작합니다. Mogut은 MCP 화면에서 이 호출을 절대 보내지 않습니다. 터미널에서 npx mogut analytics enable --app <id>를 실행하세요(Admin .p8 경로를 묻고, 메모리에서만 사용한 뒤 아무것도 저장하지 않습니다). 또는 Admin을 가진 사람이 쓸 요청을 출력하려면 --print-only를 사용하세요. disable는 이를 되돌립니다.

고급: Apple Ads 인기 지수

공식 Apple Ads API에는 인기 지수가 없습니다(실시간 확인: POST /api/v5/keywords/popularities → 404). Ads UI가 보여주는 숫자는 문서화되지 않은 엔드포인트에서 온 것으로, OAuth가 아닌 웹 세션으로 인증합니다. Mogut은 그것을 읽을 수 있지만, 설치 마법사는 이를 묻지 않습니다. 이는 복사한 브라우저 쿠키라서 만료할 뿐 아니라, Apple Ads 약관상 그레이 존에 해당합니다. 이 값이 없으면 keyword_popularity_fetch는 낮은 신뢰도로 표시된 프록시 점수로 대체됩니다.

그래도 사용하려면:

  1. https://app-ads.apple.com에 로그인하고 아무 캠페인 화면이나 엽니다.

  2. 개발자 도구 → Network 탭을 열고 /cm/api를 필터링한 다음 요청 하나를 선택합니다.

  3. 그 요청의 Cookie 요청 헤더 전체를 복사합니다.

  4. MCP 클라이언트에서 Mogut을 실행하는 환경에 export MOGUT_APPLE_ADS_SESSION='<the cookie header>'를 설정하거나, com.milowda.credentials Keychain 서비스의 apple-ads-session 계정에 저장합니다.

세션이 만료하면 다시 수행합니다. 엔드포인트가 거부하는 일이 생기면 mogut_discover_sources가 해당 소스를 down으로 표시합니다.

보고서의 형태

report_app은 요청 시점에 맞춘 전체 보고서를 생성하고, daily_digest, weekly_change_report, monthly_status_report는 주기 보고서로 만들어 로컬 기록에서 델타를 읽습니다. 두 유형의 익명화된 골든 예시입니다. EXAMPLE_REPORT_FULL.md · EXAMPLE_REPORT_PERIODIC.md.

개발

npm install && npm run build && npm test

데이터 소스를 추가하시겠어요? CONTRIBUTING.md를 읽으세요 — 어댑터 계약과 픽스처 요구 사항은 테스트로 강제됩니다.

src/core/catalog.ts는 docs/TOOL_CATALOG.md에서 생성됩니다 — node scripts/gen-catalog.mjs로 다시 생성하세요.

MIT.

Available Tools

9 tools
mogut_discover_profilesA

Lists every profile, whether it is loaded, and the tools it contains.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral burden. 'Lists' signals a read-only action and the sentence specifies returned content, but it does not disclose possible limitations, failure modes, how 'loaded' is represented, or whether any state changes happen. This is adequate, not rich.

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

Conciseness5/5

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

A single sentence with zero filler. It leads with the action and immediately describes the meaningful parts of the result. Every part of the description 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?

For a zero-parameter tool with no output schema, this description gives enough orientation: it says what the operation produces and at what scope. It could add detail like the exact return format, but nothing critical is missing for an agent deciding whether to invoke it.

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

Parameters4/5

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

The tool has zero parameters and the input schema is empty, so there is little parameter-level semantics to add. The description appropriately focuses outward on what is returned rather than on inputs.

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?

Uses a specific verb ('Lists') and resource ('every profile'), and describes exactly what the output contains: load status and tools. This cleanly separates it from sibling tools like mogut_discover_sources and mogut_search_tools, which focus on different resources.

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 when to use it: when the agent needs a full inventory of profiles and their loaded-state/tools. However, it never explicitly names an alternative or explains when not to use it, leaving the routing decision to inference based on sibling tool names.

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

mogut_discover_sourcesA

Lists the data sources with their tier, required credentials, health status and confidence level. With probe=true it makes one live request per source instead of reporting what past calls recorded.

ParametersJSON Schema
NameRequiredDescriptionDefault
probeNorun one live health request per configured source (slower, but current)

TDQS

A4/5.0
Behavior4/5

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

No annotations exist, so the description carries the full behavioral transparency burden, and it is largely successful: it discloses the cached/past-call default vs. the live probe mode. A minor gap is that it never explicitly states that listing sources is a non-mutating read operation or how a failed live request is reported, but the central behavioral difference is clear.

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, both essential. The first fronts the exact purpose and output fields; the second efficiently covers the parameter's behavior. Every word earns its place.

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

Completeness5/5

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

For a tool with a single optional parameter and no output schema, this description is complete: it enumerates the returned fields, explains the default vs live modes, and covers the probe behavior. There is no meaningful missing context an agent would need to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100% with the probe parameter already documented, so the baseline is 3. The description exceeds that by contrasting probe=true with the default behavior (reporting what past calls recorded), which adds meaning beyond the schema's description of 'one live health request per configured source.'

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?

States a specific verb (lists) with a concrete resource (data sources) and the exact attributes returned: tier, required credentials, health status, and confidence level. It is distinguishable from sibling tools like mogut_discover_profiles by resource type, though it does not explicitly name any sibling.

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 gives clear mode-level guidance comparing probe=true (live one-request-per-source) to the default cached behavior, which helps an agent decide on the parameter value. However, it provides no explicit guidance on when to choose this tool over siblings such as mogut_status, mogut_setup_check, or mogut_discover_profiles.

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

mogut_explain_metricA

Explains how a score is computed: formula, inputs and caveats.

ParametersJSON Schema
NameRequiredDescriptionDefault
metricYesmetric name, one of: keyword_opportunity, keyword_difficulty, brand_dominance, keyword_popularity, market_difficulty, metadata_score, ppp_price, review_health

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries most of the behavioral disclosure burden. It clearly indicates the tool produces an explanation containing formula, inputs, and caveats, and the wording implies a read-only informational operation. It does not mention output format or whether the explanation is textual, but the behavior is not misleading.

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

Conciseness5/5

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

One short sentence with no filler. It front-loads the action and then gives the three elements the explanation will contain. Everything in the description is relevant and none of the schema information is repeated.

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

Completeness4/5

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

For a tool with one fully documented parameter and no nested objects, the description is mostly complete: it states what the tool produces and where caveats will be addressed. The main missing pieces are example output, return format, and a more explicit statement about the expected frontier target.

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 description adds minimal value here. It references 'inputs' as part of the explanation, but does not enumerate the parameter; the schema already does that with a clear list of valid metric names.

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 opens with a specific verb ('Explains') and a concrete resource: how a score is computed. It then states the exact content covered ('formula, inputs and caveats'), which separates it from sibling report, status, and discovery tools.

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 use context is implied rather than explicit: an agent would call this tool when it needs to understand how a metric was calculated. The description gives no explicit when-to-use or when-not-to-use guidance, though no sibling tool appears to overlap with this explanation function.

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

mogut_search_toolsA

Searches the whole tool catalog (including tools that are not loaded or not implemented yet) by name, description or profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYessearch term, e.g. "keyword" or "review"

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does reveal a non-obvious trait: the search covers tools that are not loaded or not implemented yet, which informs the agent about scope beyond the visible tool list. However, it says nothing about the return format, whether the search is case-sensitive, or any ordering or filtering behavior. Minimal behavioral context is provided, though enough to understand the main capability.

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

Conciseness5/5

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

One clean, front-loaded sentence that states the action, the scope, and the search criteria. Every clause adds value and there is no padding or redundancy. Efficiently sized for an API description of a straightforward search tool.

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—one query parameter, no nested objects, and no output schema. The description fully covers the tool's purpose, scope ('whole catalog'), and search dimensions, which is sufficient for an agent to decide when to call it and what to pass. The lack of an explicit statement about the returned format is a minor gap but does not block correct invocation given the tool's obvious search-and-return role.

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 already covers 100% of parameters with a clear description for 'query' ('search term', with examples). The tool description goes beyond the schema by stating which attributes of tools are searched (name, description, profile), giving the agent a fuller understanding of what the query can match. This adds meaningful context beyond the schema's simple 'search term' label.

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?

States a specific verb ('Searches'), a clear resource ('the whole tool catalog'), and an explicit attribute ('including tools that are not loaded or not implemented yet'). It also specifies the searchable fields (name, description, profile), which distinguishes it from sibling tools that handle status, setup, discovery of profiles/sources, or metric explanation. An agent can understand the tool's function without any ambiguity.

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 conveys strong context for when to use the tool: whenever an agent needs to locate a tool within the catalog, including unloaded or unimplemented ones. It doesn't explicitly name exclusions or alternatives among the sibling tools, but the contrast is implicit since siblings target specific operations rather than a catalog-wide search. This is clear enough for typical selection.

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

mogut_setup_checkA

Checks Keychain access, the SQLite database and any credentials an existing Heimdall install may already hold (never used without approval). Lists the manual setup links.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It explains what the tool examines, flags the approval prerequisite, and mentions its output. It does not explicitly state the tool is read-only, but 'Checks' plus the caution about approval gives the agent a clear safety picture.

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 compact, front-loaded with the main action, and every sentence adds useful information: what is checked, the approval caveat, and the listed output. There is no filler or 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?

For a no-argument tool with no output schema, the description supplies the key context: why to call it, what it touches, the approval constraint, and what it returns. It does not include deeper troubleshooting or interaction details, but those are not essential for this 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 input schema has zero parameters and 100% schema description coverage, so there is no hidden parameter burden for the description to explain. The 0-parameter baseline applies; no parameter guidance is missing.

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 names the verb and resources: 'Checks Keychain access, the SQLite database and any credentials' and 'Lists the manual setup links.' It does not explicitly compare itself to sibling tools like mogut_status or mogut_discover_profiles, but its setup-diagnostic purpose is unmistakable.

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?

It gives an explicit operational condition: 'never used without approval,' which is a useful guardrail for agents. The use case is implied by the tool name and by mentioning manual setup links, though it does not explicitly name alternative tools or state 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.

mogut_statusA

Current tier, loaded profiles, credential and optional-key state, source health, database info, and what the next tier would add. With verify=true each stored credential is tested against its live API.

ParametersJSON Schema
NameRequiredDescriptionDefault
verifyNotest every stored credential against its API (one live call per source)

TDQS

A3.7/5.0
Behavior4/5

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

Annotations are absent, so the description carries the full behavioral burden. It meaningfully discloses that verify=true triggers a live API test of each stored credential, which is the key side-effect an agent needs to anticipate. It doesn't note potential slowness or failure modes, but it is still notably transparent for a status tool.

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?

Two sentences, and both are informative. The first fronts the categories that compose the status report; the second explains the optional verify behavior. No excess text or repetition is present.

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 one optional boolean parameter and no output schema, the description gives enough of what it returns to call the tool correctly. It could be more explicit about how credentials are represented when verification fails or what exactly 'next tier would add' looks like, but the current text provides a suitable functional map.

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 schema already contains the parameter definition, including the behavior, with 100% coverage. The description largely restates this: 'each stored credential is tested against its API' mirrors the schema. It adds no additional semantic detail.

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 enumerates specific status categories — current tier, loaded profiles, credential/optional-key state, source health, database info, and next-tier additions — so the tool's purpose is clear despite the absence of an explicit verb. It also broadly differentiates itself from sibling tools that perform setup checks or discovery, since this is the only status-oriented one that returns this exact bundled snapshot.

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 listed content implies this is the tool to inspect overall system state, but no explicit when-to-use guidance is given. There is no mention of when an agent should prefer mogut_setup_check or mogut_discover_profiles instead, so usage has to be inferred.

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

report_appA

The full App Report in one call: listing + metadata audit, review mining, keyword opportunity (when terms are given), market difficulty, ASC performance (from previously imported data), rank history, seasonal calendar and culture notes. Sections degrade independently — a broken source is reported as skipped, never invented.

ParametersJSON Schema
NameRequiredDescriptionDefault
appYesat least one of appId, bundleId or an apps.apple.com URL
audienceNo
keywordsNotarget terms with your 0-1 semantic fit judgement; omit to skip the ASO section
storefrontYesISO 3166-1 alpha-2 storefront code, e.g. 'US'
maxReviewPagesNo

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does a strong job: it reveals that ASC performance depends on previously imported data, that sections fail independently, and that broken sources are reported as skipped rather than fabricated. This is valuable failure-mode context beyond what the schema could convey. It stops short of covering auth, rate limits, or output shape, but the degradation disclosure is substantive.

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 compact, uses a single evocative phrase front-loaded with the core purpose, and avoids repeating schema content. Every clause earns its place: the section list gives a complete sense of scope, and the graceful-degradation sentence provides critical behavioral context without waste.

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

Completeness3/5

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

For a complex tool with five parameters, a nested app object, one enum, and no output schema, the description does enough to convey main intent and failure behavior, but not the full picture. It omits return format details, expects the agent to guess how audience relates to 'culture notes', and does not explain maxReviewPages. The notable degradation guarantee partially compensates for missing structured metadata.

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 60%, with app, storefront, and keywords already explained in the schema. The description adds useful meaning for keywords by linking it to keyword opportunity and ASO section behavior. However, audience and maxReviewPages lack meaningful descriptions in both the schema and the tool description, so the overall parameter comprehension is just 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?

Description clearly identifies the tool as producing 'The full App Report in one call' for a single app, enumerating specific report sections. The scope is distinct from the sibling competitor and comparison report tools, and even within the listed sections an agent can infer the report covers. No ambiguity remains about the primary resource and action.

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: call this for a full single-app report and include keywords to activate that section. However, it never explicitly contrasts with sibling tools such as report_competitor_deep or report_comparison, nor states when to prefer them. It gives two conditions implicitly (one call, full multi-section report) but leaves alternative routing to inference.

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

report_comparisonA

Side-by-side comparison of your app against the SELECTED competitors on the shortlist, across metadata, product page, monetization and keyword ranks. The feature axis is semantic and is derived by you from the descriptions — the data carries the raw text.

ParametersJSON Schema
NameRequiredDescriptionDefault
termsNokeywords for the marketing axis; omit to skip it
ownAppIdYes
storefrontYesISO 3166-1 alpha-2 storefront code, e.g. 'US'
competitorAppIdsNoexplicit competitor set; omit to use the shortlist entries with status selected

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It conveys that the output is a side-by-side comparison and adds a somewhat cryptic note that the feature axis is 'semantic' and 'derived by you from the descriptions,' indicating the raw text is relevant. However, it leaves the mechanics of the comparison, any requirements for the shortlist, and possible limitations unexplored.

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?

The description is short and gets the main idea across in the first sentence, but the second sentence, 'The feature axis is semantic and is derived by you from the descriptions — the data carries the raw text,' is vague and confusing. It does not clearly earn its place in the definition.

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

Completeness3/5

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

For a report tool with no output schema and no annotations, the definition gives enough to understand that a side-by-side comparison is returned across several dimensions. It still leaves notable gaps: no concrete guidance on when to prefer this over report_app or report_competitor_deep, no explanation of what 'the feature axis is semantic' means for the agent, and no mention of output structure.

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 75%, and most parameter meaning is already captured: storefront, terms, and competitorAppIds each have descriptions in the schema. The tool description adds high-level comparison axes but does not meaningfully explain ownAppId or refine parameter semantics beyond the schema, so the baseline 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 states a clear, specific task: a 'side-by-side comparison of your app against the SELECTED competitors on the shortlist.' The scope and covered dimensions (metadata, product page, monetization, keyword ranks) make the tool's function immediately obvious and distinguish it from sibling tools like report_app or report_competitor_deep.

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 scopes the tool to the selected competitors on the shortlist, which gives an agent clear context for when this comparison tool is appropriate. It does not explicitly state when not to use it or mention sibling alternatives, but the shortlist-scoped framing is a useful selection signal.

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

report_competitor_deepA

Deep-dive on ONE competitor: public listing profile, changes observed between captures (inferred, low confidence), monetization signals (price + SensorTower estimates), keyword portfolio against your own ranks, and complaint mining with verbatim quotes. Everything is public data — what cannot be observed is skipped, not guessed.

ParametersJSON Schema
NameRequiredDescriptionDefault
termsNokeyword portfolio to check; omit to skip that section
ownAppIdNoinclude to compare ranks side by side
storefrontYesISO 3166-1 alpha-2 storefront code, e.g. 'US'
maxReviewPagesNo
competitorAppIdYes

TDQS

A4.6/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full transparency burden. It explicitly discloses that captured changes are inferred with low confidence, SensorTower data are estimates, and unobservable data is skipped rather than guessed. These are important trust hypotheses for an agent.

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 dense sentence that is front-loaded with the core differentiator ('ONE competitor'), lists output section markers, and ends in a concise policy about data limitations. No filler or redundant restatement.

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?

Without an output schema or annotations, the description still names all major report sections and explains the tool's limits. It does not describe the output dossier's structure, but the provided parameter schema and section enumeration are enough for an agent to invoke the tool correctly.

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

Parameters4/5

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

At 60% schema description coverage, the description adds meaningful context by linking the conceptual workflow to the parameters: competitor to competitorAppId, keyword portfolio to terms, and to ownAppId. It does not specifically explain maxReviewPages or storefront, but those are more self-explanatory and partially covered by 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?

Opens with 'Deep-dive on ONE competitor' and precisely enumerates what the tool produces: listing profile, inferred changes, monetization signals, keyword portfolio against own ranks, and complaint mining. This clearly distinguishes it from report_app and report_comparison.

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 'ONE competitor' language gives clear context and the sibling-tool naming for report_comparison implies the multi-competitor alternative. The 'everything is public data' caveat and 'skipped, not guessed' note also set agent expectations. It does not explicitly name an alternative or state a hard exclusion, so it stops short of a 5.

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

Tool Schema Changelog

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

  1. 9 tool updatesv1.0.0
    • First observedmogut_discover_profiles
    • First observedmogut_discover_sources
    • First observedmogut_explain_metric
    • First observedmogut_search_tools
    • First observedmogut_setup_check
    • First observedmogut_status
    • First observedreport_app
    • First observedreport_comparison
    • First observedreport_competitor_deep

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation4/5

The tool set is largely distinct, especially the three report tools. Some overlap exists between mogut_status, mogut_setup_check, and mogut_discover_sources around credentials and source health, but their overall purpose is clear enough to avoid major misselection.

Naming Consistency3/5

The naming pattern is mixed: some tools use the consistent mogut_ prefix with verb-noun forms, but others are noun phrases such as mogut_status and mogut_setup_check, and the report_ group follows a separate convention with report_competitor_deep being especially awkward. The naming is readable but not uniform.

Tool Count5/5

Nine tools is a well-scoped size for this server. The collection covers setup, health, orientation/exploration, metric understanding, and three distinct report types without unnecessary bloat.

Completeness4/5

The server covers its apparent read-only reporting and discovery mission well, including setup checks, source health, profile/tool discovery, metric explanation, and core report outputs. Obvious gaps are not severe: importing data or managing the competitor shortlist appears to be handled outside the MCP, but it is still an implicit dependency.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

  • App Store & Google Play keyword ranks, rivals, reviews, charts and AI visibility as an MCP server

  • App Store keyword rankings, competitors, markets, reviews and analytics for iOS apps, from your AI.

  • App Store keyword research, rank tracking and App Store Connect performance for your iOS apps.

  • Your agent needs app-store data — what an app looks like on the App Store and Google Play, what reviewers say, and what ranks for a search in a given country. **What you can ask for** • "What does this app's store listing look like, and how is it rated?" • "Pull recent reviews for this app and group the complaints." • "What apps rank for this search term in Japan?" • "List the top apps in this category on both stores." • "Compare this app's listing on iOS and Android." **How to use it** Point any MCP client at https://mcp.aisa.one/seo-apps/mcp and sign in with OAuth — there is no key to create or paste. 37 tools: Apple App Store and Google Play app info, app lists, category listings, reviews and store search results, in live and queued forms, with categories, languages and locations for each. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Read the store listing here, then ask the same agent what the app's website ranks for — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/seo/mcp for all of it at once — rankings, keywords, backlinks, site health and AI-answer visibility across DataForSEO, Semrush and Ahrefs.

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Scans websites to evaluate agent-readiness and produce an ASO Score Report across 34 signals, helping improve discoverability, trust, and interoperability for AI agents.
    5
    289 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for App Store Optimization that provides keyword research, competitor analysis, review sentiment, and metadata optimization using real App Store data without requiring an API key.
    53 npm
    5
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for mobile growth & user acquisition, connecting LLMs to a curated knowledge base of ad optimization insights and analytical skills for subscription apps.
    2
    MIT