MCP YouTube Transcript
An MCP server retrieving transcripts of YouTube videos
제작자가 쓴 설명(영어 원문)
Google Play Console, App Store Connect and AdMob via official APIs: releases, reviews, vitals, ads
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
GOOGLE_PLAY_SERVICE_ACCOUNT, ASC_KEY_ID, ASC_ISSUER_ID, ASC_PRIVATE_KEY_PATH, ASC_VENDOR_NUMBER, ADMOB_PUBLISHER_ID필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"app-console": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GOOGLE_PLAY_SERVICE_ACCOUNT",
"-e",
"ASC_KEY_ID",
"-e",
"ASC_ISSUER_ID",
"-e",
"ASC_PRIVATE_KEY_PATH",
"-e",
"ASC_VENDOR_NUMBER",
"-e",
"ADMOB_PUBLISHER_ID",
"ghcr.io/alekla0126/app-console-mcp:0.3.0"
],
"env": {
"GOOGLE_PLAY_SERVICE_ACCOUNT": "your-value",
"ASC_KEY_ID": "your-value",
"ASC_ISSUER_ID": "your-value",
"ASC_PRIVATE_KEY_PATH": "your-value",
"ASC_VENDOR_NUMBER": "your-value",
"ADMOB_PUBLISHER_ID": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add app-console --env GOOGLE_PLAY_SERVICE_ACCOUNT=your-value --env ASC_KEY_ID=your-value --env ASC_ISSUER_ID=your-value --env ASC_PRIVATE_KEY_PATH=your-value --env ASC_VENDOR_NUMBER=your-value --env ADMOB_PUBLISHER_ID=your-value -- docker run -i --rm -e GOOGLE_PLAY_SERVICE_ACCOUNT -e ASC_KEY_ID -e ASC_ISSUER_ID -e ASC_PRIVATE_KEY_PATH -e ASC_VENDOR_NUMBER -e ADMOB_PUBLISHER_ID ghcr.io/alekla0126/app-console-mcp:0.3.0실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"app-console": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GOOGLE_PLAY_SERVICE_ACCOUNT",
"-e",
"ASC_KEY_ID",
"-e",
"ASC_ISSUER_ID",
"-e",
"ASC_PRIVATE_KEY_PATH",
"-e",
"ASC_VENDOR_NUMBER",
"-e",
"ADMOB_PUBLISHER_ID",
"ghcr.io/alekla0126/app-console-mcp:0.3.0"
],
"env": {
"GOOGLE_PLAY_SERVICE_ACCOUNT": "your-value",
"ASC_KEY_ID": "your-value",
"ASC_ISSUER_ID": "your-value",
"ASC_PRIVATE_KEY_PATH": "your-value",
"ASC_VENDOR_NUMBER": "your-value",
"ADMOB_PUBLISHER_ID": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"app-console": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GOOGLE_PLAY_SERVICE_ACCOUNT",
"-e",
"ASC_KEY_ID",
"-e",
"ASC_ISSUER_ID",
"-e",
"ASC_PRIVATE_KEY_PATH",
"-e",
"ASC_VENDOR_NUMBER",
"-e",
"ADMOB_PUBLISHER_ID",
"ghcr.io/alekla0126/app-console-mcp:0.3.0"
],
"env": {
"GOOGLE_PLAY_SERVICE_ACCOUNT": "your-value",
"ASC_KEY_ID": "your-value",
"ASC_ISSUER_ID": "your-value",
"ASC_PRIVATE_KEY_PATH": "your-value",
"ASC_VENDOR_NUMBER": "your-value",
"ADMOB_PUBLISHER_ID": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
GOOGLE_PLAY_SERVICE_ACCOUNT envASC_KEY_ID envASC_ISSUER_ID envASC_PRIVATE_KEY_PATH envASC_VENDOR_NUMBER envADMOB_PUBLISHER_ID env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 Alekla0126 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.3.0)은 10일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Docker도 있어야 해요.
같은 카테고리에는: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
An MCP server retrieving transcripts of YouTube videos
GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.
AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Google Play Console, App Store Connect and AdMob from your terminal or from Claude — no browser.
Español
Driving store consoles through a browser agent burns tokens on screenshots and page snapshots and breaks whenever the UI changes. This project talks to the official APIs instead and answers in a few lines of plain text. Every tool exists twice, with identical output:
appconsole ...) for you, your scripts and CI.It ships as three Claude Code plugins (Google Play, App Store Connect, AdMob), each with its MCP server and a skill that teaches Claude the safe workflows. It also comes built into Alchemist Coder, the open-source desktop app for Claude Code and Codex: every agent there gets these tools for the services you have set up.
$ appconsole play vitals com.example.app
com.example.app (data up to 2026-10-19): crash: 0.31% 28-day user-perceived (ok, threshold 1.09%) newest versions (last 28 d): v42 0.12% (35% of users) · v41 0.44% (60% of users) anr: 0.52% 28-day user-perceived (ABOVE THRESHOLD, threshold 0.47%) newest versions (last 28 d): v42 0.21% (35% of users) · v41 0.70% (60% of users)
$ appconsole admob report --days 7 --by format --currency USD AdMob 2026-10-20 to 2026-10-26 by format: 128.40 USD (+9% vs previous 7 d: 117.80), 61210 impressions interstitial: 71.10 USD, 9340 impr, eCPM 7.61, match 88%, show 31% banner: 39.75 USD, 47880 impr, eCPM 0.83, match 95%, show 52%
Google Play (play) | App Store Connect (appstore) | AdMob (admob) |
|---|---|---|
apps list apps the key can see | apps list apps | accounts publisher accounts |
listing / update-listing title, short, full description, new languages | listing / update-listing name, subtitle, keywords, description, promo text, what's new | apps apps and ad unit ids |
tracks releases per track | versions versions and review state | report earnings, eCPM, match/show rate, CTR by app, ad unit, country, format, app/SDK/OS version, why ads are limited, ad source or mediation group, vs. previous period |
upload .aab/.apk to any track (staged or draft) | create-version new editable version | campaign-report promotion campaigns: installs, cost, CPI |
promote between tracks | builds processing state, export compliance | ad-sources networks and their adapters' settings |
rollout change %, complete, halt, resume | submit attach build + submit to App Review | mediation-groups / ad-unit-mappings ✱ |
reviews / reply | release release an approved manual-release version | create-app / create-ad-unit ✱ |
vitals crash and ANR rates (Google's 28-day numbers) | reviews / reply | map-ad-unit / create-mediation-group / update-mediation-group ✱ |
products subscriptions, base plans, prices | sales downloads, IAP units, proceeds per app | ab-experiment start or stop a mediation A/B test ✱ |
search-rank public search position | search-rank public search position | |
images / upload-images screenshots and graphics | screenshots / upload-screenshots per device and locale | |
users / grant / revoke users, service accounts and app permissions | products subscriptions and in-app purchases | |
data-safety send the Data safety form (CSV) |
✱ AdMob's limited access: Google has to enable your publisher id for these methods (ask your AdMob account manager or AdMob support) and the token needs the admob.monetization scope (appconsole admob login --monetization). Until then they explain what to ask for.
Safe by default. Every tool that changes something is a dry run unless you pass confirm=true (--confirm in the CLI). Google Play dry runs build the change in a draft edit and let Google validate it before discarding it, so you see real errors before anything is published. MCP tools carry readOnlyHint/destructiveHint annotations so clients can auto-approve reads and ask before writes.
You need uv (it fetches Python and the dependencies).
/plugin marketplace add Alekla0126/app-console-mcp
/plugin install google-play@app-console /plugin install app-store-connect@app-console /plugin install admob@app-console
Install only the ones you use. Each plugin asks for its credentials (paths and ids; you can leave them empty and use appconsole config instead), adds its MCP server and skill, and puts appconsole on the PATH of Claude's Bash tool.
{
"mcpServers": { "google-play": { "command": "uvx", "args": ["--from", "git+https://github.com/Alekla0126/app-console-mcp", "appconsole", "mcp", "play"], "env": { "GOOGLE_PLAY_SERVICE_ACCOUNT": "/path/to/service-account.json" } }, "app-store-connect": { "command": "uvx", "args": ["--from", "git+https://github.com/Alekla0126/app-console-mcp", "appconsole", "mcp", "appstore"] }, "admob": { "command": "uvx", "args": ["--from", "git+https://github.com/Alekla0126/app-console-mcp", "appconsole", "mcp", "admob"] } } }
appconsole mcp all serves the three services as a single server, for clients that take only one.
Or with the Claude Code CLI: claude mcp add google-play -- uvx --from git+https://github.com/Alekla0126/app-console-mcp appconsole mcp play
uv tool install git+https://github.com/Alekla0126/app-console-mcp
appconsole --help appconsole play reviews com.example.app --unanswered-only
Settings are read from environment variables first, then from ~/.config/appconsole/config.json (appconsole config set KEY VALUE, stored with 600 permissions). Only file paths and ids are stored; keys stay where you keep them. Run appconsole doctor to check all three services.
appconsole config set GOOGLE_PLAY_SERVICE_ACCOUNT /path/to/key.jsonusers, grant and revoke: appconsole config set GOOGLE_PLAY_DEVELOPER_ID , and give the key "Manage users and permissions".AuthKey_ .p8 (Apple lets you download it only once) and note the Key ID and the Issuer ID.appconsole config set ASC_KEY_ID ABC123XYZ
appconsole config set ASC_ISSUER_ID 00000000-0000-0000-0000-000000000000 appconsole config set ASC_PRIVATE_KEY_PATH ~/.appstoreconnect/private_keys/AuthKey_ABC123XYZ.p8 appconsole config set ASC_VENDOR_NUMBER 12345678 # optional, for appstore sales
Already use fastlane? Point ASC_API_KEY_JSON to your api_key.json instead. If the .p8 file sits in ~/.appstoreconnect/private_keys or ~/private_keys, the path is optional.
AdMob does not accept service accounts, only a Google user, so you authorize once:
appconsole admob login --client-secrets client_secret.json (opens the browser once; the token is saved in ~/.config/appconsole/admob-token.json). Add --monetization to also create apps, ad units and mediation groups, once Google enabled your publisher id for them.Alternative: gcloud application-default credentials with the AdMob scopes — gcloud auth application-default login --scopes=https://www.googleapis.com/auth/admob.readonly,https://www.googleapis.com/auth/admob.report,https://www.googleapis.com/auth/cloud-platform. With several publisher accounts set ADMOB_PUBLISHER_ID=pub-....
| Setting | Used by |
|---|---|
GOOGLE_PLAY_SERVICE_ACCOUNT | Google Play (falls back to GOOGLE_APPLICATION_CREDENTIALS) |
GOOGLE_PLAY_DEVELOPER_ID | Google Play users and permissions |
ASC_KEY_ID, ASC_ISSUER_ID, ASC_PRIVATE_KEY_PATH or ASC_PRIVATE_KEY | App Store Connect |
ASC_API_KEY_JSON | App Store Connect, fastlane-format key file instead of the three above |
ASC_VENDOR_NUMBER | appstore sales |
ADMOB_PUBLISHER_ID, ADMOB_TOKEN_FILE | AdMob, optional |
APPCONSOLE_HOME | config directory, default ~/.config/appconsole |
APPCONSOLE_DEBUG=1 | show full tracebacks in the CLI |
These still need the website, and the tools say so when you hit them:
uv venv && uv pip install -e '.[dev]'
.venv/bin/pytest && .venv/bin/ruff check src tests claude plugin validate .
bin/appconsole and the plugins run the package with uvx --from , which caches the build; after editing the sources use the .venv or add --refresh-package app-console-mcp. For a release, bump the version in pyproject.toml, src/app_console_mcp/__init__.py and the three entries of .claude-plugin/marketplace.json.
Tagging v* runs .github/workflows/publish.yml, which publishes to PyPI and then to the official MCP Registry (server.json). It is off until PyPI trusts the workflow: on pypi.org add a pending trusted publisher (project app-console-mcp, owner Alekla0126, repository app-console-mcp, workflow publish.yml, environment pypi), then gh variable set PUBLISH_PYPI --body true and re-run the workflow.
Until then, .github/workflows/docker.yml (on the same tags, or run by hand) pushes the all-in-one image to ghcr.io/alekla0126/app-console-mcp and lists that image in the MCP Registry instead. The registry reads the image, so the package must be public (GitHub → Packages → app-console-mcp → Package settings → Change visibility). Once PyPI is on, add the image to server.json's packages next to PyPI's, because the registry takes each version once.
A tool is one function decorated with @tool() (or @tool(write=True) with a confirm
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요