MCP YouTube Transcript
An MCP server retrieving transcripts of YouTube videos
作者提供的说明(英文原文)
MCP server for Walmart Connect Ads, Sam's Club Sponsored Ads, and Walmart Marketplace APIs
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"walmart-ads": {
"command": "uvx",
"args": [
"mcp-walmart-ads"
]
}
}
}在终端中运行这条命令
claude mcp add walmart-ads -- uvx mcp-walmart-ads粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"walmart-ads": {
"command": "uvx",
"args": [
"mcp-walmart-ads"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"walmart-ads": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-walmart-ads"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
注册名称已通过 GitHub 账户 alyiox 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.5.1)于39天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。
同一分类中有: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、图片和脚本已被移除。链接会离开本站。
MCP server for three Walmart Inc. API families, behind one tool surface:
| Platform | APIs | Auth |
|---|---|---|
walmart:ads — Walmart Connect | Sponsored Products, Display | RSA-SHA256 signature + bearer token |
walmart:marketplace — Walmart Marketplace | 28 domains (orders, items, feeds, reports, …) | OAuth2 client_credentials |
samsclub:ads — Sam's Club | Sponsored Products | RSA-SHA256 signature + bearer token |
Four tools over 31 apis and 424 operations — discovery, a generic proxy, and a downloader. An agent finds endpoints in the bundled OpenAPI specs and calls them; the server signs, acquires tokens, and builds headers.
walmart:ads:sponsored-products:SBAProfileUpdateV2
└─ retailer ─┘└ line ┘└─── api name ───┘└── operationId ──┘ └────────── platform ─────────┘ credentials attach here
An operation id alone resolves to a host and an auth model. A matching : suffix means the same surface for another retailer — 13 shared operation ids of 90.
Set up your config (see Configuration), then run the server:
# Run directly with uvx (no clone needed)
npx -y @modelcontextprotocol/inspector@latest uvx mcp-walmart-ads
# Or run from source
git clone https://github.com/alyiox/mcp-walmart-ads.git cd mcp-walmart-ads uv sync npx -y @modelcontextprotocol/inspector@latest uv run mcp-walmart-ads
config.json MUST live at ~/.config/mcp-walmart-ads/config.json. The server reads it once at startup, so a corrected file REQUIRES a restart.
Windows:
~maps to%USERPROFILE%(typicallyC:\Users\), making the full
path
%USERPROFILE%\.config\mcp-walmart-ads\config.json.
Create the directory and copy the example:
# Unix-like (macOS, Linux, WSL, …)
mkdir -p ~/.config/mcp-walmart-ads/keys/walmart-ads cp config.example.json ~/.config/mcp-walmart-ads/config.json
# Windows (PowerShell)
New-Item -ItemType Directory -Force "$env:USERPROFILE\.config\mcp-walmart-ads\keys\walmart-ads" Copy-Item config.example.json "$env:USERPROFILE\.config\mcp-walmart-ads\config.json"
platforms.<platform>.regions.<region>.<environment> = <auth block>
is the two-segment prefix an api id starts with, so a config key is literally the value you pass as the platform tool parameter — nothing to translate.
The auth block's shape follows the platform's auth model. There is exactly one shape per platform, so no discriminator field is needed.
Signature platforms (walmart:ads, samsclub:ads):
{
"platforms": { "walmart:ads": { "regions": { "us": { "production": { "consumer_id": "your-consumer-id", "private_key": "./keys/walmart-ads/us-prod.pem", "private_key_version": "1", "bearer_token": "your-bearer-token", "base_urls": { "sponsored-products": "https://developer.api.walmart.com/api-proxy/service/WPA/Api/v1", "display": "https://developer.api.walmart.com/api-proxy/service/display/api/v1" } } } } } } }
| Field | Notes |
|---|---|
consumer_id | Partner Network consumer ID |
private_key | Path to the RSA private key (PEM). Relative paths resolve against the config directory |
private_key_version | Key version string (default "1") |
bearer_token | OAuth bearer token |
base_urls. | One per api in the platform's discovery surface. Keys MAY be bare (sponsored-products) or fully qualified (walmart:ads:sponsored-products); extra keys are allowed for the auxiliary specs reached by raw method+path |
Environment names are free-form here — Walmart may issue a tenant only production, or production and staging.
OAuth2 platform (walmart:marketplace):
{
"platforms": { "walmart:marketplace": { "regions": { "us": { "production": { "credentials": [ { "client_id": "your-client-id", "client_secret": "your-client-secret", "advertisers": [ { "id": 7060158, "partner_id": "10001234" }, { "id": 7060159 } ] } ] } } } } } }
environment MUST be production or sandbox; base URLs are fixed by the server and absent from the file. Advertiser ids nest under the credential that serves them, so a secret appears exactly once and a dangling advertiser reference is structurally impossible. partner_id is per-seller because two payments operations require it as WM_PARTNER_ID; an all-zero value reads as absent, since that is what a generated config writes for a seller without one, and scripts/backfill_partner_ids.py fills the gaps from Walmart.
Regions are a namespace, not a route — every walmart:marketplace region reaches the same hosts. The level exists because advertiser ids are unique only within a region.
A populated walmart:marketplace block runs to tens of kilobytes of credentials, 88% of the file here, and a stray comma while editing it takes down every platform: a parse failure precedes per-platform validation. Platforms MAY therefore live in drop-in files under config.d/, merged over the base:
~/.config/mcp-walmart-ads/
├── config.json # server-wide settings, and any platforms you like ├── config.d/ │ ├── walmart-marketplace.json # only a "platforms" object │ └── samsclub-ads.json └── keys/
platforms; server-wide settings stay in config.json.*.json directly in config.d/ is read, so .bak and editor swap files are ignored.private_key paths resolve against config.json's directory either way, so moving a platform into config.d/ needs no path edits.config.d/ directory means no change in behavior.A malformed block for one platform MUST NOT stop the others loading. Read wmt://platforms to see which loaded and what regions and environments they declare: one that failed has no regions, and reading one of its environments returns the loader's own message — which file, which fields, and that a fix needs a restart.
| Field | Default | Notes |
|---|---|---|
response_cache_ttl | 3600 | Seconds a truncated body or download stays readable at its resource URI |
truncate_threshold | 2048 | Response bytes returned inline before truncating to a preview |
spec_refresh | {"auto": true, "interval": 7} | Background spec refresh. auto turns the sweep on or off; interval is days between sweeps, and MAY be fractional |
wap-tenant-id)Pass tenant on call_endpoint and download_file for non-US walmart:ads markets (WMT_CA, WMT_MX, WBD_OD, …). Omit it for US and for walmart:marketplace.
list_endpointsList operations across every api, with optional filters.
| Parameter | Notes |
|---|---|
query | Case-insensitive substring on operation id, path, or summary |
api | Limit to one api, e.g. walmart:marketplace:order-management |
platform | Limit to one platform — walmart:ads, walmart:marketplace, samsclub:ads (schema enum) |
tag | Filter by OpenAPI tag |
method | Filter by HTTP verb — GET, POST, PUT, PATCH, DELETE (schema enum) |
Returned operation ids are qualified (api:operationId) and pass straight to describe_endpoint or call_endpoint.
describe_endpointOne operation plus every components.schemas entry reachable from it, so a request body can be built without the full spec. Server-managed auth and QoS headers are omitted.
| Parameter | Notes |
|---|---|
operation_id | Qualified (api:operationId), or bare when unambiguous |
api | Api to resolve a bare id in, e.g. walmart:ads:sponsored-products |
call_endpointExecute an authenticated request against any configured platform. Signing, token acquisition with per-credential caching and single-flight refresh, and one retry after a 401 all happen server-side.
| Parameter | Notes |
|---|---|
region, environment | Required. Src: config |
operation_id | Qualified or bare. Resolves api, platform, method, path, and required headers |
api | Required with raw method + path; otherwise inferred from operation_id. Accepts the two auxiliary walmart:ads specs |
method, path | Raw route, reaching alpha/beta/unpublished endpoints absent from the specs |
path_params | Values for {placeholders} in the path |
params, body | Query string and JSON body |
file_path | Send the file as multipart/form-data — Marketplace feed uploads. Pair with the feedType query parameter |
advertiser_id | MUST be given on `walmart:marketplace`, where it selects the credential. Optional on the ads platforms, where it is sent as X-Advertiser-ID |
tenant | WAP tenant for non-US walmart:ads regions |
A response larger than truncate_threshold is previewed inline, with the full body at wmt://responses/{request_id} and a reproducible cURL at wmt://curl/{request_id} — bearer tokens, access tokens, and signatures replaced with placeholders.
download_fileDownload a report, label, or snapshot from an authenticated endpoint. Give a full url (the details URL from a display snapshot poll, say), or operation_id, or api with method + path. platform is required only for a bare url.
With dest_path the bytes are written there. Without it they are gunzipped when gzipped and cached, and the result carries cached_at — a binary payload with no dest_path asks for one instead. Redirects are followed, keeping auth headers on a relative or same-host Location and dropping credentials cross-host; the result includes urls, the hop path.
33 OpenAPI documents ship in the wheel. A refresh writes updated copies to ~/.cache/mcp-walmart-ads/specs/, which outranks the bundle on read. The bundle is never written at runtime, so it stays the floor a damaged or missing cache falls back to.
Walmart publishes no OpenAPI files, but each ReadMe reference page hydrates its HTML with the registry UUIDs of its documents, and https://dash.readme.com/api/v1/api-registry/ serves the full spec unauthenticated. That covers Walmart Connect and all 28 Marketplace domains. Sam's Club publishes neither, so its spec is hand-authored from the developer docs: scripts/build_samsclub_spec.py regenerates a *candidate* from those docs, and the scheduled spec drift workflow opens a PR when they change,
只显示了开头部分;其余内容请在仓库中阅读