MCP YouTube Transcript
An MCP server retrieving transcripts of YouTube videos
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Search, read and publish X posts and manage users, lists and media via the X API v2.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
X_API_KEY, X_API_KEY_SECRET, X_ACCESS_TOKEN, X_ACCESS_TOKEN_SECRET, MEDIA_ROOT, MCP_TRANSPORT, MCP_NAME, MCP_PATH, SERVER_PORT, SERVER_READ_TIMEOUT, SERVER_WRITE_TIMEOUT, LOG_MODE, MAX_IDLE_CONNS_PER_HOST, X_DEBUG, POSTS_MAX_QUERIES, POSTS_MAX_USERNAMES, POSTS_MAX_IDS, POSTS_DEFAULT_RESULTS, POSTS_MAX_RESULTS, POSTS_DEFAULT_DAYS, POSTS_MAX_DAYS, POSTS_DEFAULT_TIMEOUT_MS, POSTS_MIN_TIMEOUT_MS, POSTS_MAX_TIMEOUT_MS, USERS_MAX_USERNAMES, USERS_MAX_IDS, USERS_DEFAULT_RESULTS, USERS_MAX_RESULTS, USERS_DEFAULT_TIMEOUT_MS, USERS_MIN_TIMEOUT_MS, USERS_MAX_TIMEOUT_MS, LISTS_DEFAULT_RESULTS, LISTS_MAX_RESULTS, LISTS_DEFAULT_TIMEOUT_MS, LISTS_MIN_TIMEOUT_MS, LISTS_MAX_TIMEOUT_MS, MEDIA_CHUNK_BYTES, MEDIA_POLL_INTERVAL_MS, MEDIA_DEFAULT_TIMEOUT_MS, MEDIA_MIN_TIMEOUT_MS, MEDIA_MAX_TIMEOUT_MSค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ลิงก์ไปที่ไฟล์ของผู้ทำเอง เราไม่ได้เก็บหรือแพ็กใหม่ เปิดไฟล์แล้ว Claude Desktop จะติดตั้งให้
พิมพ์คำสั่งนี้ใน Terminal
claude mcp add x --env X_API_KEY='ใส่ค่าของคุณ' --env X_API_KEY_SECRET='ใส่ค่าของคุณ' --env X_ACCESS_TOKEN='ใส่ค่าของคุณ' --env X_ACCESS_TOKEN_SECRET='ใส่ค่าของคุณ' --env MEDIA_ROOT='ใส่ค่าของคุณ' --env MCP_TRANSPORT='ใส่ค่าของคุณ' --env MCP_NAME='ใส่ค่าของคุณ' --env MCP_PATH='ใส่ค่าของคุณ' --env SERVER_PORT='ใส่ค่าของคุณ' --env SERVER_READ_TIMEOUT='ใส่ค่าของคุณ' --env SERVER_WRITE_TIMEOUT='ใส่ค่าของคุณ' --env LOG_MODE='ใส่ค่าของคุณ' --env MAX_IDLE_CONNS_PER_HOST='ใส่ค่าของคุณ' --env X_DEBUG='ใส่ค่าของคุณ' --env POSTS_MAX_QUERIES='ใส่ค่าของคุณ' --env POSTS_MAX_USERNAMES='ใส่ค่าของคุณ' --env POSTS_MAX_IDS='ใส่ค่าของคุณ' --env POSTS_DEFAULT_RESULTS='ใส่ค่าของคุณ' --env POSTS_MAX_RESULTS='ใส่ค่าของคุณ' --env POSTS_DEFAULT_DAYS='ใส่ค่าของคุณ' --env POSTS_MAX_DAYS='ใส่ค่าของคุณ' --env POSTS_DEFAULT_TIMEOUT_MS='ใส่ค่าของคุณ' --env POSTS_MIN_TIMEOUT_MS='ใส่ค่าของคุณ' --env POSTS_MAX_TIMEOUT_MS='ใส่ค่าของคุณ' --env USERS_MAX_USERNAMES='ใส่ค่าของคุณ' --env USERS_MAX_IDS='ใส่ค่าของคุณ' --env USERS_DEFAULT_RESULTS='ใส่ค่าของคุณ' --env USERS_MAX_RESULTS='ใส่ค่าของคุณ' --env USERS_DEFAULT_TIMEOUT_MS='ใส่ค่าของคุณ' --env USERS_MIN_TIMEOUT_MS='ใส่ค่าของคุณ' --env USERS_MAX_TIMEOUT_MS='ใส่ค่าของคุณ' --env LISTS_DEFAULT_RESULTS='ใส่ค่าของคุณ' --env LISTS_MAX_RESULTS='ใส่ค่าของคุณ' --env LISTS_DEFAULT_TIMEOUT_MS='ใส่ค่าของคุณ' --env LISTS_MIN_TIMEOUT_MS='ใส่ค่าของคุณ' --env LISTS_MAX_TIMEOUT_MS='ใส่ค่าของคุณ' --env MEDIA_CHUNK_BYTES='ใส่ค่าของคุณ' --env MEDIA_POLL_INTERVAL_MS='ใส่ค่าของคุณ' --env MEDIA_DEFAULT_TIMEOUT_MS='ใส่ค่าของคุณ' --env MEDIA_MIN_TIMEOUT_MS='ใส่ค่าของคุณ' --env MEDIA_MAX_TIMEOUT_MS='ใส่ค่าของคุณ' -- docker run -i --rm -e X_API_KEY -e X_API_KEY_SECRET -e X_ACCESS_TOKEN -e X_ACCESS_TOKEN_SECRET -e MEDIA_ROOT -e MCP_TRANSPORT -e MCP_NAME -e MCP_PATH -e SERVER_PORT -e SERVER_READ_TIMEOUT -e SERVER_WRITE_TIMEOUT -e LOG_MODE -e MAX_IDLE_CONNS_PER_HOST -e X_DEBUG -e POSTS_MAX_QUERIES -e POSTS_MAX_USERNAMES -e POSTS_MAX_IDS -e POSTS_DEFAULT_RESULTS -e POSTS_MAX_RESULTS -e POSTS_DEFAULT_DAYS -e POSTS_MAX_DAYS -e POSTS_DEFAULT_TIMEOUT_MS -e POSTS_MIN_TIMEOUT_MS -e POSTS_MAX_TIMEOUT_MS -e USERS_MAX_USERNAMES -e USERS_MAX_IDS -e USERS_DEFAULT_RESULTS -e USERS_MAX_RESULTS -e USERS_DEFAULT_TIMEOUT_MS -e USERS_MIN_TIMEOUT_MS -e USERS_MAX_TIMEOUT_MS -e LISTS_DEFAULT_RESULTS -e LISTS_MAX_RESULTS -e LISTS_DEFAULT_TIMEOUT_MS -e LISTS_MIN_TIMEOUT_MS -e LISTS_MAX_TIMEOUT_MS -e MEDIA_CHUNK_BYTES -e MEDIA_POLL_INTERVAL_MS -e MEDIA_DEFAULT_TIMEOUT_MS -e MEDIA_MIN_TIMEOUT_MS -e MEDIA_MAX_TIMEOUT_MS ghcr.io/role1776/mcp-x:0.1.1เติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"x": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"X_API_KEY",
"-e",
"X_API_KEY_SECRET",
"-e",
"X_ACCESS_TOKEN",
"-e",
"X_ACCESS_TOKEN_SECRET",
"-e",
"MEDIA_ROOT",
"-e",
"MCP_TRANSPORT",
"-e",
"MCP_NAME",
"-e",
"MCP_PATH",
"-e",
"SERVER_PORT",
"-e",
"SERVER_READ_TIMEOUT",
"-e",
"SERVER_WRITE_TIMEOUT",
"-e",
"LOG_MODE",
"-e",
"MAX_IDLE_CONNS_PER_HOST",
"-e",
"X_DEBUG",
"-e",
"POSTS_MAX_QUERIES",
"-e",
"POSTS_MAX_USERNAMES",
"-e",
"POSTS_MAX_IDS",
"-e",
"POSTS_DEFAULT_RESULTS",
"-e",
"POSTS_MAX_RESULTS",
"-e",
"POSTS_DEFAULT_DAYS",
"-e",
"POSTS_MAX_DAYS",
"-e",
"POSTS_DEFAULT_TIMEOUT_MS",
"-e",
"POSTS_MIN_TIMEOUT_MS",
"-e",
"POSTS_MAX_TIMEOUT_MS",
"-e",
"USERS_MAX_USERNAMES",
"-e",
"USERS_MAX_IDS",
"-e",
"USERS_DEFAULT_RESULTS",
"-e",
"USERS_MAX_RESULTS",
"-e",
"USERS_DEFAULT_TIMEOUT_MS",
"-e",
"USERS_MIN_TIMEOUT_MS",
"-e",
"USERS_MAX_TIMEOUT_MS",
"-e",
"LISTS_DEFAULT_RESULTS",
"-e",
"LISTS_MAX_RESULTS",
"-e",
"LISTS_DEFAULT_TIMEOUT_MS",
"-e",
"LISTS_MIN_TIMEOUT_MS",
"-e",
"LISTS_MAX_TIMEOUT_MS",
"-e",
"MEDIA_CHUNK_BYTES",
"-e",
"MEDIA_POLL_INTERVAL_MS",
"-e",
"MEDIA_DEFAULT_TIMEOUT_MS",
"-e",
"MEDIA_MIN_TIMEOUT_MS",
"-e",
"MEDIA_MAX_TIMEOUT_MS",
"ghcr.io/role1776/mcp-x:0.1.1"
],
"env": {
"X_API_KEY": "ใส่ค่าของคุณ",
"X_API_KEY_SECRET": "ใส่ค่าของคุณ",
"X_ACCESS_TOKEN": "ใส่ค่าของคุณ",
"X_ACCESS_TOKEN_SECRET": "ใส่ค่าของคุณ",
"MEDIA_ROOT": "ใส่ค่าของคุณ",
"MCP_TRANSPORT": "ใส่ค่าของคุณ",
"MCP_NAME": "ใส่ค่าของคุณ",
"MCP_PATH": "ใส่ค่าของคุณ",
"SERVER_PORT": "ใส่ค่าของคุณ",
"SERVER_READ_TIMEOUT": "ใส่ค่าของคุณ",
"SERVER_WRITE_TIMEOUT": "ใส่ค่าของคุณ",
"LOG_MODE": "ใส่ค่าของคุณ",
"MAX_IDLE_CONNS_PER_HOST": "ใส่ค่าของคุณ",
"X_DEBUG": "ใส่ค่าของคุณ",
"POSTS_MAX_QUERIES": "ใส่ค่าของคุณ",
"POSTS_MAX_USERNAMES": "ใส่ค่าของคุณ",
"POSTS_MAX_IDS": "ใส่ค่าของคุณ",
"POSTS_DEFAULT_RESULTS": "ใส่ค่าของคุณ",
"POSTS_MAX_RESULTS": "ใส่ค่าของคุณ",
"POSTS_DEFAULT_DAYS": "ใส่ค่าของคุณ",
"POSTS_MAX_DAYS": "ใส่ค่าของคุณ",
"POSTS_DEFAULT_TIMEOUT_MS": "ใส่ค่าของคุณ",
"POSTS_MIN_TIMEOUT_MS": "ใส่ค่าของคุณ",
"POSTS_MAX_TIMEOUT_MS": "ใส่ค่าของคุณ",
"USERS_MAX_USERNAMES": "ใส่ค่าของคุณ",
"USERS_MAX_IDS": "ใส่ค่าของคุณ",
"USERS_DEFAULT_RESULTS": "ใส่ค่าของคุณ",
"USERS_MAX_RESULTS": "ใส่ค่าของคุณ",
"USERS_DEFAULT_TIMEOUT_MS": "ใส่ค่าของคุณ",
"USERS_MIN_TIMEOUT_MS": "ใส่ค่าของคุณ",
"USERS_MAX_TIMEOUT_MS": "ใส่ค่าของคุณ",
"LISTS_DEFAULT_RESULTS": "ใส่ค่าของคุณ",
"LISTS_MAX_RESULTS": "ใส่ค่าของคุณ",
"LISTS_DEFAULT_TIMEOUT_MS": "ใส่ค่าของคุณ",
"LISTS_MIN_TIMEOUT_MS": "ใส่ค่าของคุณ",
"LISTS_MAX_TIMEOUT_MS": "ใส่ค่าของคุณ",
"MEDIA_CHUNK_BYTES": "ใส่ค่าของคุณ",
"MEDIA_POLL_INTERVAL_MS": "ใส่ค่าของคุณ",
"MEDIA_DEFAULT_TIMEOUT_MS": "ใส่ค่าของคุณ",
"MEDIA_MIN_TIMEOUT_MS": "ใส่ค่าของคุณ",
"MEDIA_MAX_TIMEOUT_MS": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"x": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"X_API_KEY",
"-e",
"X_API_KEY_SECRET",
"-e",
"X_ACCESS_TOKEN",
"-e",
"X_ACCESS_TOKEN_SECRET",
"-e",
"MEDIA_ROOT",
"-e",
"MCP_TRANSPORT",
"-e",
"MCP_NAME",
"-e",
"MCP_PATH",
"-e",
"SERVER_PORT",
"-e",
"SERVER_READ_TIMEOUT",
"-e",
"SERVER_WRITE_TIMEOUT",
"-e",
"LOG_MODE",
"-e",
"MAX_IDLE_CONNS_PER_HOST",
"-e",
"X_DEBUG",
"-e",
"POSTS_MAX_QUERIES",
"-e",
"POSTS_MAX_USERNAMES",
"-e",
"POSTS_MAX_IDS",
"-e",
"POSTS_DEFAULT_RESULTS",
"-e",
"POSTS_MAX_RESULTS",
"-e",
"POSTS_DEFAULT_DAYS",
"-e",
"POSTS_MAX_DAYS",
"-e",
"POSTS_DEFAULT_TIMEOUT_MS",
"-e",
"POSTS_MIN_TIMEOUT_MS",
"-e",
"POSTS_MAX_TIMEOUT_MS",
"-e",
"USERS_MAX_USERNAMES",
"-e",
"USERS_MAX_IDS",
"-e",
"USERS_DEFAULT_RESULTS",
"-e",
"USERS_MAX_RESULTS",
"-e",
"USERS_DEFAULT_TIMEOUT_MS",
"-e",
"USERS_MIN_TIMEOUT_MS",
"-e",
"USERS_MAX_TIMEOUT_MS",
"-e",
"LISTS_DEFAULT_RESULTS",
"-e",
"LISTS_MAX_RESULTS",
"-e",
"LISTS_DEFAULT_TIMEOUT_MS",
"-e",
"LISTS_MIN_TIMEOUT_MS",
"-e",
"LISTS_MAX_TIMEOUT_MS",
"-e",
"MEDIA_CHUNK_BYTES",
"-e",
"MEDIA_POLL_INTERVAL_MS",
"-e",
"MEDIA_DEFAULT_TIMEOUT_MS",
"-e",
"MEDIA_MIN_TIMEOUT_MS",
"-e",
"MEDIA_MAX_TIMEOUT_MS",
"ghcr.io/role1776/mcp-x:0.1.1"
],
"env": {
"X_API_KEY": "ใส่ค่าของคุณ",
"X_API_KEY_SECRET": "ใส่ค่าของคุณ",
"X_ACCESS_TOKEN": "ใส่ค่าของคุณ",
"X_ACCESS_TOKEN_SECRET": "ใส่ค่าของคุณ",
"MEDIA_ROOT": "ใส่ค่าของคุณ",
"MCP_TRANSPORT": "ใส่ค่าของคุณ",
"MCP_NAME": "ใส่ค่าของคุณ",
"MCP_PATH": "ใส่ค่าของคุณ",
"SERVER_PORT": "ใส่ค่าของคุณ",
"SERVER_READ_TIMEOUT": "ใส่ค่าของคุณ",
"SERVER_WRITE_TIMEOUT": "ใส่ค่าของคุณ",
"LOG_MODE": "ใส่ค่าของคุณ",
"MAX_IDLE_CONNS_PER_HOST": "ใส่ค่าของคุณ",
"X_DEBUG": "ใส่ค่าของคุณ",
"POSTS_MAX_QUERIES": "ใส่ค่าของคุณ",
"POSTS_MAX_USERNAMES": "ใส่ค่าของคุณ",
"POSTS_MAX_IDS": "ใส่ค่าของคุณ",
"POSTS_DEFAULT_RESULTS": "ใส่ค่าของคุณ",
"POSTS_MAX_RESULTS": "ใส่ค่าของคุณ",
"POSTS_DEFAULT_DAYS": "ใส่ค่าของคุณ",
"POSTS_MAX_DAYS": "ใส่ค่าของคุณ",
"POSTS_DEFAULT_TIMEOUT_MS": "ใส่ค่าของคุณ",
"POSTS_MIN_TIMEOUT_MS": "ใส่ค่าของคุณ",
"POSTS_MAX_TIMEOUT_MS": "ใส่ค่าของคุณ",
"USERS_MAX_USERNAMES": "ใส่ค่าของคุณ",
"USERS_MAX_IDS": "ใส่ค่าของคุณ",
"USERS_DEFAULT_RESULTS": "ใส่ค่าของคุณ",
"USERS_MAX_RESULTS": "ใส่ค่าของคุณ",
"USERS_DEFAULT_TIMEOUT_MS": "ใส่ค่าของคุณ",
"USERS_MIN_TIMEOUT_MS": "ใส่ค่าของคุณ",
"USERS_MAX_TIMEOUT_MS": "ใส่ค่าของคุณ",
"LISTS_DEFAULT_RESULTS": "ใส่ค่าของคุณ",
"LISTS_MAX_RESULTS": "ใส่ค่าของคุณ",
"LISTS_DEFAULT_TIMEOUT_MS": "ใส่ค่าของคุณ",
"LISTS_MIN_TIMEOUT_MS": "ใส่ค่าของคุณ",
"LISTS_MAX_TIMEOUT_MS": "ใส่ค่าของคุณ",
"MEDIA_CHUNK_BYTES": "ใส่ค่าของคุณ",
"MEDIA_POLL_INTERVAL_MS": "ใส่ค่าของคุณ",
"MEDIA_DEFAULT_TIMEOUT_MS": "ใส่ค่าของคุณ",
"MEDIA_MIN_TIMEOUT_MS": "ใส่ค่าของคุณ",
"MEDIA_MAX_TIMEOUT_MS": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
MCP_TRANSPORT envMCP_NAME envMCP_PATH envSERVER_PORT envSERVER_READ_TIMEOUT envSERVER_WRITE_TIMEOUT envLOG_MODE envMAX_IDLE_CONNS_PER_HOST envX_DEBUG envPOSTS_MAX_QUERIES envPOSTS_MAX_USERNAMES envPOSTS_MAX_IDS envPOSTS_DEFAULT_RESULTS envPOSTS_MAX_RESULTS envPOSTS_DEFAULT_DAYS envPOSTS_MAX_DAYS envPOSTS_DEFAULT_TIMEOUT_MS envPOSTS_MIN_TIMEOUT_MS envPOSTS_MAX_TIMEOUT_MS envUSERS_MAX_USERNAMES envUSERS_MAX_IDS envUSERS_DEFAULT_RESULTS envUSERS_MAX_RESULTS envUSERS_DEFAULT_TIMEOUT_MS envUSERS_MIN_TIMEOUT_MS envUSERS_MAX_TIMEOUT_MS envLISTS_DEFAULT_RESULTS envLISTS_MAX_RESULTS envLISTS_DEFAULT_TIMEOUT_MS envLISTS_MIN_TIMEOUT_MS envLISTS_MAX_TIMEOUT_MS envMEDIA_CHUNK_BYTES envMEDIA_POLL_INTERVAL_MS envMEDIA_DEFAULT_TIMEOUT_MS envMEDIA_MIN_TIMEOUT_MS envMEDIA_MAX_TIMEOUT_MS envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub Role1776 ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: X_API_KEY, X_API_KEY_SECRET, X_ACCESS_TOKEN, X_ACCESS_TOKEN_SECRET, MEDIA_ROOT
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.1) เข้า registry 2 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker, MCPB ในเครื่องด้วย
ในหมวดเดียวกันมี 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 รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
mcp-x
An MCP server that gives an LLM the X (Twitter) API: read and search posts, manage users and lists, upload media, and publish — as the account whose keys it runs on.
Website · Costs · Credentials · Tools · Quick start · Configuration · Architecture · Contributing
mcp-x is a Model Context Protocol server written in Go. It exposes the X API v2 to any MCP-compatible client (Claude Desktop, IDE agents, custom LLM apps) as 42 tools covering posts, users, lists and media.
It authenticates with OAuth 1.0a user context, which means every call acts *as a real X account* — the one the four keys belong to. x_post_create publishes publicly. x_user_follow really follows. x_post_delete is irreversible. This is not a sandbox, and it is not free: see The X API costs money before you wire it into an agent.
Both transports the MCP SDK supports are available and expose the identical tool set:
[!WARNING]
There is no free tier any more. X retired the Free/Basic/Pro subscription tiers for new developers and moved to pay-per-use credits: you buy credits upfront in the Developer Console and every request deducts from the balance in real time. Legacy Basic ($200/mo) and Pro ($5,000/mo) subscriptions survive only for accounts that already had them; Enterprise starts around $42,000/mo. A new developer account today gets pay-per-use and nothing else.
Rates at the time of writing (official pricing — always re-check the Console, they have changed several times in 2026):
| Operation | Price |
|---|---|
| Post read | $0.005 per post returned |
| Owned read (your own posts, bookmarks, followers, likes, lists) | $0.001 per resource |
| User read | $0.010 per user returned |
| Likes / mutes / blocks read | $0.001 per resource |
| Followers / following read | $0.010 per resource |
| Publishing a post | $0.015 per request |
| Publishing a post containing a URL | $0.200 per request |
| Like / repost and other interactions | $0.015 per request |
| List and bookmark writes | $0.005–$0.010 per request |
Two things follow from this, and both are baked into the server:
max_results: 100 on x_posts_search costs twenty times what max_results: 5 costs for the same query. Every read tool's description tells the model to ask for the smallest max_results that answers the question, and the batching tools (x_posts_lookup, x_users_lookup) tell it to batch rather than loop.x_posts_count first, then pay for x_posts_search.X also deduplicates: the same resource fetched twice inside a 24-hour UTC window is billed once. And pay-per-use is capped at 3 million post reads per billing cycle — past that, only Enterprise.
When the money runs out the API answers with a distinct error, and the server maps it to a message that explicitly tells the model not to retry — see Errors.
The server needs four OAuth 1.0a values, all from one X app:
X_API_KEY
X_API_KEY_SECRET X_ACCESS_TOKEN X_ACCESS_TOKEN_SECRET
The first pair identifies the *app*; the second pair identifies the *account acting through it*. mcp-x uses AuthenMethodOAuth1UserContext, not app-only bearer auth, because every write endpoint and every "me" endpoint (x_users_me, x_posts_home, x_bookmarks_list, mentions) requires a user context. There is no bearer-token mode.
[!IMPORTANT]
An access token permanently keeps the permissions the app had at the moment it was generated. If you created the token while the app was Read-only and then flipped the app to Read and Write, the token is *still* read-only. Nothing about the app settings page will tell you this. Every write will fail with X's
oauth1-permissionsproblem type, forever, until you go back to Keys and tokens and regenerate the Access Token and Secret.
This is the single most common setup failure with the X API, which is why the server checks for it at startup and refuses to start with:
`
the access token is read-only: set the app permissions to Read and Write
in the X Developer Console, then regenerate the Access Token and Secret
`
Regenerating the *API Key/Secret* is not the fix. Regenerate the Access Token and Secret.
Before registering a single tool, the server calls GET /2/users/me once (client.Bootstrap) with a 15-second deadline. This does three jobs:
POST /2/users/:id/... and looking the id up per write would be another billed request.A failure here is fatal by design. A server that starts and then fails every call is worse than one that does not start.
The cost of that choice is worth stating plainly: there is no way to try this server without a funded X developer account. No credentials means no startup, which means no tool list — /mcp and claude mcp list will show a failed connection and nothing else. To confirm an install short of that, run the binary with -version, and read the Tools section for what it would have exposed.
The four values are credentials for a live account with write access. Keep them in a file only you can read, pass it with -env, and never commit it — .env is gitignored, .env.example is the template. When running under an MCP client, the client's env block works too; it takes precedence over the .env file.
42 tools in four groups. Every tool carries MCP annotations: readOnlyHint on reads, destructiveHint on anything irreversible (x_post_delete, x_list_delete, unlike, unrepost, unfollow, member removal). Each returns a structured JSON payload matching its output schema; the SDK mirrors the same JSON into the text content block for clients that do not read structuredContent.
Every tool accepts an optional timeout_ms, clamped into the group's [MIN, MAX] window (see Limits).
| Tool | Description |
|---|---|
| `x_posts_search` | Searches recent posts for several queries in parallel. Recent search reaches back 7 days only. |
| `x_posts_count` | Counts matches per query bucketed by minute/hour/day. Does not spend post reads — use it to size a topic before searching. |
| `x_posts_lookup` | Fetches up to 100 posts by id in one call. |
| `x_posts_by_user` | Recent posts for several usernames, fetched in parallel. |
| `x_posts_mentions` | Posts mentioning the key owner. |
| `x_posts_home` | The key owner's home timeline. |
| `x_posts_quotes` | Posts quoting a given post. |
| `x_posts_liked` | Posts the key owner liked. |
| `x_bookmarks_list` | The key owner's bookmarks. |
| `x_post_liked_by` | Users who liked a given post. |
| `x_post_reposted_by` | Users who reposted a given post. |
x_posts_search| Parameter | Type | Default | Notes |
|---|---|---|---|
queries | []string | — | Required. Run in parallel, capped at POSTS_MAX_QUERIES (5). ≤ 512 chars each. |
max_results | int | 10 | Posts per query, 1..100. Every one is billed. |
sort_order | string | — | recency (newest first) or relevancy (best match). |
days | int | 7 | How far back, 1..7. The API cannot go further. |
include_retweets | bool | false | When false the server appends -is:retweet to every query. |
timeout_ms | int64 | 15000 | Whole-call timeout, clamped to [2000, 60000]. |
Query operators go inside the query string:
| Operator | Meaning |
|---|---|
| *space* | AND |
OR | explicit OR |
-term | NOT |
( ) | grouping |
from:user / to:user | by author / by recipient |
@user / #tag | mentions / hashtags |
"exact phrase" | exact phrase |
lang:en | language |
is:retweet is:reply is:quote is:verified | post kind |
has:media has:images has:videos has:links | attachments |
url:example.com | linked domain |
conversation_id:123 | one thread |
x_posts_count| Parameter | Type | Default | Notes |
|---|---|---|---|
queries | []string | — | Required. Same operators as x_posts_search. |
granularity | string | hour | minute, hour or day. |
days | int | 7 | 1..7, same window. |
timeout_ms | int64 | 15000 | Clamped to [2000, 60000]. |
x_posts_lookup| Parameter | Type | Default | Notes |
|---|---|---|---|
ids | []string | — | Required. 1..100 post ids. Batch them; do not call once per id. |
x_posts_by_user| Parameter | Type | Default | Notes |
|---|---|---|---|
usernames | []string | — | Required. Without the @. Capped at POSTS_MAX_USERNAMES (5), fetched in parallel. |
max_results | int | 10 | Posts per user, 1..100. |
exclude | []string | — | replies and/or retweets. |
days | int | 7 | 1..7. |
timeout_ms | int64 | 15000 | Clamped to [2000, 60000]. |
x_posts_mentions, x_posts_home, x_posts_liked and x_bookmarks_list share one shape: max_results (1..100), pagination_token, timeout_ms. x_posts_quotes, x_post_liked_by and x_post_reposted_by add a required id.
Pagination is explicit and manual: a response carries next_token, and you pass it back as pagination_token for the next page. The server never walks pages on its own — each page is billed, so that decision stays with the caller.
| Tool | Annotation | Description |
|---|---|---|
| `x_post_create` | write | Publishes a post. Public and billed ($0.015, or $0.20 with a link). |
| `x_post_delete` | de
ตัดมาแค่ช่วงต้น อ่านต่อใน repo