MCP YouTube Transcript
An MCP server retrieving transcripts of YouTube videos
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Search Bluesky posts and feeds; read profiles, threads, and trends. STDIO or Streamable HTTP.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
BLUESKY_CLAMP_READ_LIMITS, BLUESKY_IDENTIFIER, BLUESKY_APP_PASSWORD, MCP_LOG_LEVELค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://bluesky.caseyjhand.com/mcpเปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"bluesky": {
"command": "npx",
"args": [
"-y",
"@cyanheads/bluesky-mcp-server"
],
"env": {
"BLUESKY_CLAMP_READ_LIMITS": "ใส่ค่าของคุณ",
"BLUESKY_IDENTIFIER": "ใส่ค่าของคุณ",
"BLUESKY_APP_PASSWORD": "ใส่ค่าของคุณ",
"MCP_LOG_LEVEL": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http bluesky https://bluesky.caseyjhand.com/mcpclaude mcp add bluesky --env BLUESKY_CLAMP_READ_LIMITS='ใส่ค่าของคุณ' --env BLUESKY_IDENTIFIER='ใส่ค่าของคุณ' --env BLUESKY_APP_PASSWORD='ใส่ค่าของคุณ' --env MCP_LOG_LEVEL='ใส่ค่าของคุณ' -- npx -y @cyanheads/bluesky-mcp-serverเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"bluesky": {
"url": "https://bluesky.caseyjhand.com/mcp"
}
}
}วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"bluesky": {
"command": "npx",
"args": [
"-y",
"@cyanheads/bluesky-mcp-server"
],
"env": {
"BLUESKY_CLAMP_READ_LIMITS": "ใส่ค่าของคุณ",
"BLUESKY_IDENTIFIER": "ใส่ค่าของคุณ",
"BLUESKY_APP_PASSWORD": "ใส่ค่าของคุณ",
"MCP_LOG_LEVEL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"bluesky": {
"type": "http",
"url": "https://bluesky.caseyjhand.com/mcp"
}
}
}วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"bluesky": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/bluesky-mcp-server"
],
"env": {
"BLUESKY_CLAMP_READ_LIMITS": "ใส่ค่าของคุณ",
"BLUESKY_IDENTIFIER": "ใส่ค่าของคุณ",
"BLUESKY_APP_PASSWORD": "ใส่ค่าของคุณ",
"MCP_LOG_LEVEL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://bluesky.caseyjhand.com/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
BLUESKY_CLAMP_READ_LIMITS envBLUESKY_IDENTIFIER envMCP_LOG_LEVEL envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ชื่อและคำอธิบายเครื่องมือตามที่ server ตอบมาเมื่อ 6 พ.ย. 2569 ผู้ทำเป็นคนเขียน ไม่ใช่เรา แสดงเป็นข้อความล้วน
bsky_get_profileFetch a Bluesky actor's public profile by handle (e.g. "bsky.app") or DID (e.g. "did:plc:z72i7hdynmk6r22z27h6tvur"). Returns displayName, handle, DID, bio, pronouns, website, ordered profile links, follower/following/post counts, associated list/feed/starter-pack counts and label
bsky_search_actorsFind Bluesky accounts by name or handle fragment. Returns ranked profiles with handle, DID, displayName, bio, account creation timestamp, moderation labels with provenance, pronouns when the account set them, and Bluesky verification status — which tells a verified account from a
bsky_get_trendingFetch the current real-time trending topics on Bluesky. Returns topics with display name, Bluesky's one-sentence summary of the story, post count, category (politics, sports, pop-culture, etc.), status, start time, and the representative accounts driving each topic — so "who is t
bsky_search_feedsSearch metadata in the provider’s public feed catalog, without credentials. This searches feed names and descriptions, not post text, and does not enumerate every feed. Returns feeds in provider order with generator AT-URIs and creator identities; pass a feedUri to bsky_get_feed
bsky_get_feedRead the posts a Bluesky feed generator serves, in the order the feed ranks them. Accepts the feed's AT-URI (at:// /app.bsky.feed.generator/ ) or its bsky.app page (https://bsky.app/profile/ /feed/ ). Feeds come from the "feedUri" of each bsky_get_trending topic — the way to read
bsky_get_author_feedGet a Bluesky user's recent feed ordered newest-first. Filter by post type: "posts_with_replies" (everything), "posts_no_replies" (excludes replies), "posts_and_author_threads" (posts the author started), "posts_with_media" (the actor's own posts with images or video — no link ca
bsky_get_post_threadFetch the conversation for a post by AT-URI — the parent chain upward and the reply tree downward. Enter the thread at any point and traverse the discussion. AT-URIs have the format "at:// / / " and are returned in the "uri" field of every post the other post-returning tools emit
bsky_get_post_quotesRead the quote posts behind a Bluesky post's "quoteCount" — the posts that embed it with commentary of their own. Sort latest (default) is newest first; top is descending like count as ordered by Bluesky. On Bluesky this is where much of the reaction to a post lives; bsky_get_pos
bsky_get_post_interactionsList the accounts behind a post’s likes or reposts without credentials, in provider order. Accepts a post AT-URI or bsky.app post URL; a handle authority costs one extra resolution request. Returns actor summaries with account creation and label provenance when supplied, and a se
bsky_get_followsFetch the social graph edges for a Bluesky account — who follows them, or who they follow. Returns paginated actor profiles (handle, DID, displayName, bio, account creation timestamp, moderation labels with provenance, pronouns when set, and Bluesky verification status) plus a su
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub cyanheads ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตอบกลับใน 575 ms (HTTP 200)
ไม่ต้องล็อกอิน
อ่านคำอธิบายเครื่องมือ 10 ตัวแล้ว ไม่พบคำสั่งแอบแฝงถึง AI
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: BLUESKY_APP_PASSWORD
ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.7.0) เข้า registry 5 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
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.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
@cyanheads/bluesky-mcp-server Search Bluesky posts and feeds; read profiles, threads, and trends. STDIO or Streamable HTTP. 11 Tools • 1 Profile Resource • 1 Guide
Public Hosted Server: https://bluesky.caseyjhand.com/mcp
Read Bluesky without an account: profiles, feed catalog searches, trending topics and the feeds behind them, custom and author feeds, threads, and quote posts. Paste a bsky.app link or @handle anywhere one is asked for, and add an optional app password to unlock full-text post search.
| Tool | Description |
|---|---|
bsky_search_posts | Full-text search across public Bluesky posts, with author, mention, language, tag, domain, URL, date, and sort filters — offered only when an app password is configured |
bsky_get_profile | Fetch a Bluesky actor's public profile by handle or DID — the handle↔DID resolver |
bsky_get_feed | Read a feed generator's posts — a trend's feed, Discover, or any custom feed — by AT-URI or bsky.app URL |
bsky_get_author_feed | A user's recent posts ordered newest-first, filterable by post type |
bsky_get_post_thread | Fetch the conversation for a post by AT-URI or bsky.app URL — parent chain upward and reply tree downward, with what Bluesky counted but did not return |
bsky_get_post_quotes | Read the quote posts behind a post's quoteCount, newest first or by like count — where much of the reaction to a post lives |
bsky_get_post_interactions | List the accounts that liked or reposted a post, with optional account creation and separate like timestamps |
bsky_search_actors | Find Bluesky accounts by name or handle fragment |
bsky_search_feeds | Search public feed catalog names and descriptions, then read a returned feedUri with bsky_get_feed |
bsky_get_follows | Paginated social graph edges — who a user follows or who follows them |
bsky_get_trending | Real-time trending topics on Bluesky with a story summary, post count, category, status, the accounts driving each topic, and the feed that collects its posts |
| Resource | Description |
|---|---|
bsky://profile/{actor} | A Bluesky actor's public profile, addressable by handle or DID |
Use bsky_get_profile for programmatic access or bsky://profile/{actor} to inject profile context directly.
bluesky-guide covers topic research, account attribution, and reactions to a post, including identifier chains and coverage checks. It ships with plugin installs and is readable over MCP at skill://bluesky-guide/SKILL.md without credentials.
bsky_search_posts toolBLUESKY_IDENTIFIER and BLUESKY_APP_PASSWORD are set — without them it is absent from tools/list (see Post search)search_auth_failed (the login or its renewal was rejected), search_login_limited (the account's daily login limit is used up — the error names when searching resumes), or search_refused (Bluesky refused the search)@handle or a bsky.app profile URL — mentions matches rich-text mentions only), two-letter language code, hashtag (with or without #), linked domain (bare hostname, leading www. dropped) or exact url (in text links or link cards), since/until, and top/latest sort; up to 100 results per call via opaque cursor paginationsince/until compare against each post's sort time — the earlier of createdAt and indexedAt — to the whole second, inclusive; a date alone is 00:00:00 UTC, so until: "2026-01-01" covers all of 2025-12-31"fil", "eng") is rejected, since Bluesky search ignores one and returns unfiltered results; the code is sent lowercased, and later subtags are accepted but ignored upstream (en-US filters as en)upstream_rejected_filter error reason instead of a bare status code; a cursor it can't decode fails as invalid_cursor, after one requesthitsTotal is Bluesky's estimate, never an exact count: below 10,000 it is an upper bound on what paging returns (Bluesky counts before dropping posts it won't return), and exactly 10,000 — the cap — means "at least that many"; truncated/shown/cap are keyed on the returned cursor, which Bluesky omits once nothing more matcheslimit that fits and returned whole — budgetCapped: true, with hitsTotal and the cursor from that one responsetype-discriminated union (images, external, record, video, unknown); a quoted post carries its own attachments up to 3 nesting levels, with omittedEmbeds counting what went deeper and recordKind naming a quote that's deleted, blocked, detached, or not a postalt, including on quoted posts and media attached alongside a quote; multiline alt renders as literal quoted text, like image altPost tools preserve optional rich-text facets separately from the original text: UTF-8 byte ranges (inclusive byteStart, exclusive byteEnd) and complete link URIs, mention DIDs, and tags. Unrecognized feature variants and additional upstream fields remain visible as literal metadata on both channels. Quoted posts retain their own facets within the existing embed-depth bound. Both response channels include this metadata in the response budget; bsky_get_post_quotes omits the queried target's facets together with its restated text.
bsky_get_feed toolat:// /app.bsky.feed.generator/ ) or its bsky.app page (https://bsky.app/profile/ /feed/ , with any trailing /, ?…, or #… ignored); a trend's feedUri works as-is, and Discover is at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hotresolveHandle), a DID owner none; any other collection, such as a post AT-URI, is rejected before the upstream callpinned: true; a repost carries repostedBy/repostedAtlimit with more behind itlimit that fits and returned whole, marked budgetCapped: true; a ranked feed reranks on every request, so its posts and cursor still come from one responsefeed_not_found (no such feed or handle), feed_unavailable (the feed's generator did not answer — not retried, so a down feed fails fast), feed_requires_login (a personalized feed)bsky_get_profile tool@handle or the account's bsky.app page (https://bsky.app/profile/ ); returns displayName, handle, DID, bio, pronouns, website, follower/following/post counts, avatar, moderation labels, and pinned post AT-URIwebsite and pronouns are absent when the account set neither; optional links carries ordered profile buttons separately from website, with each record's URI/CID, complete destination URL, optional title/icon, and moderation labels (val, src?, cts?). An omitted array stays omitted and an explicit empty array stays empty; the profile resource returns the same fieldsassociated carries only supplied lists, feedgens, starterPacks, and labeler; zero counts, labeler: false, and an empty object stay distinct from absent metadata on both the tool and resourceverification carries Bluesky's full verification state — verifiedStatus and trustedVerifierStatus (valid, invalid, or none, passed through verbatim) and every verification a trusted verifier issued, with its issuer, validity, date, and record AT-URI; absent when Bluesky sent nonecontent[], since it's account-authored text that can carry its own markdown structureactor_not_found when the handle doesn't resolve — resolve the handle with bsky_search_actors firstbsky_get_author_feed tool@handle or the account's bsky.app pagefilter: posts_with_replies, posts_no_replies (default, excludes replies), and posts_and_author_threads include reposts; posts_with_media (the actor's own posts with images or video, no link cards) and posts_with_video return noneinclude_pins: true adds the profile's pinned post, marked pinned: true, first on the first page — in addition to limit, and whether or not it matches filterrepostedBy and repostedAt; author always names who actually wrote the postlimit counts them too, so a heavily-reposting account can return far fewer of its own posts than the limit suggests; originalPosts/reposts report the actual split whenever a repost is presentตัดมาแค่ช่วงต้น อ่านต่อใน repo