MCP YouTube Transcript
An MCP server retrieving transcripts of YouTube videos
作者による説明(英語の原文)
Publish and schedule posts to LinkedIn, X, Facebook, Instagram, Threads, Bluesky and YouTube Shorts.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
POSTMCPAI_API_KEY, POSTMCPAI_PROJECT_ID「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"postmcp": {
"command": "npx",
"args": [
"-y",
"@postmcpai/server"
],
"env": {
"POSTMCPAI_API_KEY": "your-value",
"POSTMCPAI_PROJECT_ID": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add postmcp --env POSTMCPAI_API_KEY=your-value --env POSTMCPAI_PROJECT_ID=your-value -- npx -y @postmcpai/server動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"postmcp": {
"command": "npx",
"args": [
"-y",
"@postmcpai/server"
],
"env": {
"POSTMCPAI_API_KEY": "your-value",
"POSTMCPAI_PROJECT_ID": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"postmcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@postmcpai/server"
],
"env": {
"POSTMCPAI_API_KEY": "your-value",
"POSTMCPAI_PROJECT_ID": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
POSTMCPAI_PROJECT_ID envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント postmcp で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:POSTMCPAI_API_KEY
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.0.1)がレジストリに届いたのは2 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況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、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Official PostMCP AI Model Context Protocol (MCP) Server. Connect your social media publishing pipelines directly into AI assistants, desktop applications, IDE workflows, and web environments like Claude Desktop, Claude.ai, Cursor, and ChatGPT Custom GPTs.
Supported platforms include LinkedIn, X (Twitter), Facebook, Instagram, Threads, Bluesky, and YouTube Shorts.
mediaUrls to publish a carousel on Instagram and Threads, a multi-photo post on Facebook and LinkedIn, or a four-image gallery on X and Bluesky - one call, every network's ceiling checked up front.POSTMCPAI_API_KEY), URL query parameters (?apikey=YOUR_KEY), or HTTP authorization headers (x-api-key, Bearer token).workspaceId, also settable per connection (?projectId=..., x-project-id) or per process (POSTMCPAI_PROJECT_ID)./openapi.json) and REST endpoints (/api/tools/:name) for ChatGPT Custom GPT integration.npm run package:plugin.mcp-server/
├── bin/ │ └── cli.js # Executable CLI entry point (Stdio / HTTP mode runner) ├── src/ │ ├── config.js # Centralized configuration & environment loader │ ├── client.js # Backend API client, API key & workspace extraction │ ├── platforms.js # Platform limits, credit pricing & post cost helper │ ├── tools/ │ │ ├── definitions.js# MCP tool JSON schemas & parameter specifications │ │ ├── handlers.js # MCP tool execution handlers │ │ └── index.js # Tool definitions aggregator │ ├── server.js # MCP Server instance factory │ ├── routes/ │ │ ├── oauth.js # OAuth 2.0 & RFC 9728 discovery endpoints │ │ ├── openapi.js # OpenAPI 3.0 schema & ChatGPT REST endpoints │ │ ├── mcpHttp.js # MCP Streamable HTTP transport (/mcp) │ │ └── health.js # Health check & system metadata endpoints │ ├── app.js # Express application factory │ └── index.js # Main library entry point ├── index.js # Executable wrapper script ├── package.json └── README.md
| Environment Variable | Description | Default Value |
|---|---|---|
POSTMCPAI_API_KEY | Required. Your secret API key from the PostMCP AI dashboard. | None |
POSTMCPAI_API_URL | Backend API root. Only set for a self-hosted or local backend. | https://api.postmcpai.com |
POSTMCPAI_PROJECT_ID | Optional. Overrides the workspace the API key is bound to. Overridden in turn by a call's workspaceId. | The workspace the API key was issued from |
PORT | Setting this launches the server in Remote Streamable HTTP Mode. | None (Defaults to Stdio Mode) |
Every tool below also accepts an optional workspaceId (from list_workspaces) to act on a specific workspace.
| Tool Name | Description | Required | Optional |
|---|---|---|---|
get_user_info | Authenticated user: plan, credit balance, active workspace and role. | — | workspaceId |
list_workspaces | Every workspace the user belongs to, with ids, roles, and connected platforms. | — | — |
get_connected_accounts | Connected social profiles with the profileId needed to target them. | — | workspaceId |
get_account_health | Connections whose token expired or is close to it and need reconnecting. | — | workspaceId |
get_profile_analytics | A connected profile's followers, following, post count and views from its network. Stored reading is free; refresh reads the network now for 1 credit. | platform, profileId | refresh |
list_posts | Post queue, newest first, with per-profile delivery status, pagination and counts. | — | status, page, limit, all |
get_post | One post in full: which profiles received it, live URLs, and per-profile errors. | id | — |
get_post_analytics | Views, likes, comments, shares, saves and clicks per profile, plus the raw platform metrics. Stored reading is free; refresh reads the networks now for 1 credit. | id | refresh |
| Tool Name | Description | Required | Optional |
|---|---|---|---|
preflight_post | Dry run: character limits, unconnected profiles, missing media, carousel ceilings, credit cost. Publishes nothing. | content | targetAccounts, platforms, mediaUrl, mediaUrls |
create_post | Draft, schedule, or immediately publish a post to named profiles. Each profile becomes its own post with its own id. Several mediaUrls publish as a carousel. | content | targetAccounts, variants, platforms, publishImmediately, scheduleDate, scheduleTime, timezone, mediaUrl, mediaUrls, youtube |
publish_post_now | Publish an existing post immediately; also retries a failed post, skipping delivered profiles. | id | — |
update_post | Update content, target profiles, schedule, media, or status. mediaUrls replaces the whole attachment set. | id | content, targetAccounts, platforms, scheduleDate, scheduleTime, timezone, mediaUrl, mediaUrls, youtube, status |
reschedule_post | Move a post to a new slot, keeping copy and targets. Re-arms failed and draft posts. | id, scheduleDate, scheduleTime | timezone |
reset_stuck_post | Release a post stuck mid-publish so it can be retried. Delivered profiles keep their state. | id | force |
delete_post | Cancel and delete a scheduled or failed post. | id | — |
generate_image | Generate a post image and return its hosted URL for mediaUrl. Costs 20 credits; paid plans only. | prompt | styleImageUrl |
create_media_upload_url | Authorize a direct image/video upload; returns a signed PUT URL and the future public URL. | fileName, contentType, fileSize | workspaceId |
complete_media_upload | Register a successfully uploaded file in the media library and return mediaUrl. | url, key, fileName, contentType, fileSize | workspaceId |
import_media_from_url | Copy a public image/video into storage and the media library; returns mediaUrl. | url | workspaceId |
For a local file, the MCP client needs an HTTP upload capability:
create_media_upload_url with fileName, contentType (MIME type), and fileSize (bytes). For example: { "fileName": "launch.png", "contentType": "image/png", "fileSize": 245760 }.uploadUrl with the returned headers. Do not send your PostMCP API key to storage. The URL expires after expiresIn seconds (normally 900); request another if it expires. The file is not uploaded merely by creating the URL.complete_media_upload with the returned publicUrl as url, the returned key, and the same file metadata. Use the same workspaceId on both tools. This registers the file; it does not transfer or verify the bytes.mediaUrl in create_post or update_post, or collect several URLs in mediaUrls for a carousel.For an existing public file, call import_media_from_url with { "url": "https://example.com/launch.png" }. The backend downloads it and returns the stored mediaUrl in one call. The URL must serve the file directly without authentication; private-network URLs are rejected by the backend.
Storage supports PNG, JPEG, GIF, WebP, AVIF, HEIC, MP4, MOV, WebM and M4V, with a 25 MiB image ceiling and a 512 MiB video ceiling. Individual social platforms have stricter publishing requirements; use preflight_post before publishing. File bytes and base64 never travel through the MCP JSON request. If library registration fails after storage succeeds, the result includes librarySaved: false and a warning while preserving the usable mediaUrl.
| Tool Name | Description | Required | Optional |
|---|---|---|---|
multicall | Run up to 20 of the tools above in one request, in order. Tool names are validated before anything executes, so a typo cannot leave half a batch written. Cannot nest. | calls | stopOnError, workspaceId |
{
"calls": [ { "id": "img", "tool": "generate_image", "arguments": { "prompt": "launch banner" } }, { "tool": "create_post", "arguments": { "content": "We shipped it 🚀", "targetAccounts": [ { "platform": "linkedin", "profileId": "lin_7741903" }, { "platform": "twitter", "profileId": "tw_1293847", "content": "We shipped it 🚀" } ], "scheduleDate": "2026-09-01", "scheduleTime": "10:00", "timezone": "Asia/Kolkata" } } ], "stopOnError": true }
The reply carries one entry per call — { id, tool, ok, result } or { id, tool, ok: false, error } — plus counts and, when a failure stopped the batch, the calls that were skipped.
mediaUrls is the ordered attachment set. One URL is an ordinary media post; two or more publish as a multi-media post on every network but YouTube, with the first URL as the cover:
| Platform | Items per post | Video in a set of several? | Lands as |
|---|---|---|---|
| 2–10 | yes | Carousel | |
| Threads | 2–20 | yes | Carousel |
| up to 10 | no | Multi-photo post | |
| up to 20 | no | Multi-image post | |
| X / Twitter | up to 4 | no | Gallery on one tweet |
| Bluesky | up to 4 | no | Gallery on one post |
| YouTube | 1 | — | One video per upload |
{
"content": "Five things we learned shipping v2 👉", "targetAccounts": [ { "platform": "instagram", "profileId": "17841400000000" }, { "platform": "threads", "profileId": "9988776655" }, { "platform": "twitter", "profileId": "tw_1293847", "mediaUrls": ["https://cdn.example.com/v2/1.png", "https://cdn.example.com/v2/2.png", "https://cdn.example.com/v2/3.png", "https://cdn.example.com/v2/4.png"] } ], "mediaUrls": [ "https://cdn.example.com/v2/1.png", "https://cdn.example.com/v2/2.png", "https://cdn.example.com/v2/3.png", "https://cdn.example.com/v2/4.png", "https://cdn.example.com/v2/5.png" ], "scheduleDate": "2026-09-01", "scheduleTime": "10:00", "timezone": "Asia/Kolkata" }
冒頭だけを表示しています。続きはリポジトリで読めます