MCP YouTube Transcript
An MCP server retrieving transcripts of YouTube videos
作者提供的说明(英文原文)
Explore, clean, transform and export your Mammoth Analytics data from an AI client.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
https://mcp.mammoth.io/mcp在终端中运行这条命令
claude mcp add --transport http mammoth https://mcp.mammoth.io/mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"mammoth": {
"url": "https://mcp.mammoth.io/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"mammoth": {
"type": "http",
"url": "https://mcp.mammoth.io/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
https://mcp.mammoth.io/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
服务器要求先登录,才会列出它的工具。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过域名 mammoth.io 验证(注册中心会核实域名所有权)
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
在 637 毫秒内响应(HTTP 401)
声明支持 OAuth 登录,你的 AI 应用可以带你去登录
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于–,最新版本(0.2.12)于前天进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有: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、图片和脚本已被移除。链接会离开本站。
The Mammoth MCP server. An AI client (Claude, ChatGPT) uses its tools to explore, clean, transform and export data in Mammoth, as the signed-in user.
The server depends on one Mammoth package: the SDK (mammoth-io). Every tool reaches Mammoth through the API, as the SDK does. The server imports no backend code.
https://mcp.mammoth.io/mcp. Add that URL to your MCP client and sign in with your Mammoth account (OAuth). Nothing to install.pip install mammoth-mcp-server, then set MCP_ENCRYPTION_KEY and start mammoth-mcp-server (see From a virtual environment below). MCP_ENCRYPTION_KEY must be a Fernet key: 32 url-safe base64-encoded bytes. Generate one with python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())". The server refuses to start without it, or with a value that is not a Fernet key.| Path | What it holds |
|---|---|
mammoth_mcp_server/tools/ | The tools, one module per area (views, pipeline, files, dashboards, ...). |
mammoth_mcp_server/sdk.py | The SDK client a tool call is given, and the API's errors in words a model can use. |
mammoth_mcp_server/jobs.py | The wait for a job that an API route started. |
mammoth_mcp_server/task_params.py | The map from a transformation to the pipeline task the API takes. |
mammoth_mcp_server/tokens.py | The check of a caller's token: Mammoth says whether it is live and which server it is for. |
mammoth_mcp_server/store.py | Short-lived records in Redis: upload tickets. |
mammoth_mcp_server/upload_routes.py | The page a user drops a local file on. |
mammoth_mcp_server/server_card.py | The public server card at /.well-known/mcp/server-card.json. |
mammoth_mcp_server/shape.py | What a read tool hands the model, cut from the API's answer. |
mammoth_mcp_server/app.py | The ASGI app and main(). |
mammoth_mcp_server/config.py | Every deployment setting, read from the environment. |
| Variable | Default | Meaning |
|---|---|---|
MCP_SERVER_URL | https://mcp.mammoth.io | This server, as a client reaches it. |
MAMMOTH_APP_URL | https://app.mammoth.io | The web app, for the links a tool gives the user. |
MAMMOTH_DASHBOARD_URL | MAMMOTH_APP_URL | The host that serves a published dashboard. |
MAMMOTH_API_URL | MAMMOTH_APP_URL + /api/v2 | The API every tool call goes to. |
MAMMOTH_API_ROOT | /api/v2 | The path the API is served under. Set it empty for an API reached directly. |
MAMMOTH_OAUTH_URL | MAMMOTH_APP_URL + /api/v2 | Mammoth's authorization server (its issuer), where a client signs the user in. |
MCP_REDIS_URL | redis://localhost:6379/0 | Where upload tickets are kept. |
MCP_ENCRYPTION_KEY | none | A Fernet key. The caller's token in an upload ticket is sealed with it. Required. |
MCP_STORE_PREFIX | mammoth_mcp | Keeps this deployment's records apart in a shared Redis. |
MCP_HOST, MCP_PORT | 127.0.0.1, 8270 | Where the server listens. |
This server signs nobody in. Mammoth's own authorization server does: the OAuth server the Mammoth API serves. This server is an OAuth resource server only.
/mcp with no token. The server answers 401 and points to /.well-known/oauth-protected-resource/mcp.MAMMOTH_OAUTH_URL). The client reads the server's metadata there and sends the user to it. /mcp (the resource parameter, RFC 8707)./mcp with that token. On every request the server asks Mammoth what the token is for (GET /workspaces/current). The server takes the token only when Mammoth says it is live and was issued for this server's URI.A token belongs to one workspace. A tool call for another workspace is refused. A Mammoth API token made by hand in Workspace settings was issued for no server, so this server refuses it.
The server keeps no sign-in and no token, with one exception: an upload link holds the caller's token, sealed, in Redis until the user uploads or 30 minutes pass.
/mcp, in mvc-service const.ini, section [oauth], key MCP_RESOURCES. Mammoth issues a token for no other resource.GET /workspaces/current must return the token's resource beside the workspace id. Without it this server refuses every token.Before it works in an environment below lists every step, in the order to check them.
The image is built from this repository, so a deployment never waits for a release of the SDK. Build it from the repository root, which is the build context:
cp mammoth-mcp-server/deploy/.dockerignore.example .dockerignore
docker build -f mammoth-mcp-server/deploy/Dockerfile -t mammoth-mcp-server . docker run --env-file mammoth-mcp-server/deploy/.env -p 8270:8270 mammoth-mcp-server
With a Redis of its own, as one stack:
cp mammoth-mcp-server/.env.example mammoth-mcp-server/deploy/.env # then set the values
docker compose -f mammoth-mcp-server/deploy/compose.yaml up -d --build
The server keeps nothing in memory between requests, so it scales by adding containers. They share only Redis.
pip install mammoth-mcp-server
cp .env.example .env # then set the values mammoth-mcp-server # or: uvicorn mammoth_mcp_server.app:create_app --factory
deploy/ holds| File | What it is for |
|---|---|
Dockerfile | The image, built from this repository |
compose.yaml | The server and a Redis, as one stack |
.dockerignore.example | Copy to the repository root before building |
mammoth-mcp-server-container.service.example | systemd, running the container |
mammoth-mcp-server.service.example | systemd, running a virtual environment |
nginx.example.conf | Both server blocks a deployment needs |
Each of these stops the sign-in on its own, so check them in order.
MCP_SERVER_URL at the server's port. deploy/nginx.example.conf holds the server block.MCP_RESOURCES = /mcp, in mvc-service const.ini, section [oauth]. Mammoth issues a token for no other resource./.well-known/oauth-authorization-server/api/v2, and apiv2 serves it at its own path, so the front door has to join the two. The second server block in deploy/nginx.example.conf does it. Check it with: curl https://<mammoth host>/.well-known/oauth-authorization-server/api/v2
It must answer the document, not 404.
Then a client connects to /mcp, and the user signs in to Mammoth and picks a workspace and a project.
cd mammoth-mcp-server
python -m pytest tests -q
The tests reach no server. The SDK client and the tools are real; only the HTTP transport under the client is replaced.