GitHub
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Draft a factual standup from the git commits and pull request activity you supply.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"standupgen": {
"command": "npx",
"args": [
"-y",
"@reneturcios/standupgen",
"mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add standupgen -- npx -y @reneturcios/standupgen mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"standupgen": {
"command": "npx",
"args": [
"-y",
"@reneturcios/standupgen",
"mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"standupgen": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@reneturcios/standupgen",
"mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub CloudCorpRecords ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.0) เข้า registry 4 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js, Docker ในเครื่องด้วย
ในหมวดเดียวกันมี GitHub, Desktop Commander, Cloudflare MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
A standup written from memory drifts toward whatever felt biggest, and quietly drops the small fixes that actually shipped. standupgen takes the opposite approach: you hand it the activity records — git commits and pull request activity — and it drafts the standup from exactly those records, nothing added and nothing embellished. The result is factual, local, and yours to edit before you paste it anywhere.
The rendered standup is short Markdown with up to three sections:
opened or updated, sorted by number, each tagged with its state.closed, sorted by number.A section with nothing in it is left out entirely. When there is no activity at all, the standup is just the heading and "No recorded activity.". Alongside the text, the result carries counts — commits, merged, in progress, closed — so the numbers and the prose always agree.
An optional author filter narrows the standup to one person: only commits and pull requests whose own author field is present and matches exactly are included, and the counts are taken over that filtered set. Records without an author never survive the filter. The heading label defaults to "Yesterday" and can be set with date_label.
Malformed input — a list that is not an array, an entry that is not an object, a missing, empty, or non-string hash, subject, or title, a pull request number that is missing, not an integer, below 1, or duplicated, a state outside opened / updated / merged / closed, an empty author or date label — is a validation error naming the offending path (for example pull_requests[1].number must be an integer >= 1), and no partial standup is produced. The computation is pure and local: no network, no configuration, and no repository is read — only the records you pass in.
npx @reneturcios/standupgen generate --input args.json
npx @reneturcios/standupgen --version
args.json contains the full arguments object:
{
"date_label": "Yesterday", "commits": [ { "hash": "a1b2c3d4e5", "subject": "Fix retry backoff", "author": "rene" }, { "hash": "f6e7d8c9b0", "subject": "Add export button", "author": "rene" } ], "pull_requests": [ { "number": 42, "title": "Retry backoff", "state": "merged", "author": "rene" }, { "number": 43, "title": "Dark mode", "state": "opened", "author": "rene" }, { "number": 40, "title": "Old experiment", "state": "closed", "author": "rene" } ] }
commits and pull_requests are both optional and default to empty. The output object is printed as JSON:
{
"standup": "## Standup — Yesterday\n\n### Done\n- Fix retry backoff (a1b2c3d)\n- Add export button (f6e7d8c)\n- Merged #42: Retry backoff\n\n### In progress\n- #43: Dark mode (opened)\n\n### Closed without merging\n- #40: Old experiment", "counts": { "commits": 2, "merged": 1, "in_progress": 1, "closed": 1 } }
Rendered, the standup reads:
Exit codes: 0 on success, 1 on a runtime error (including an unreadable or invalid input file, or invalid input), 2 on a usage error.
npx -y @reneturcios/standupgen mcp
MCP client config:
{
"mcpServers": { "standupgen": { "command": "npx", "args": ["-y", "@reneturcios/standupgen", "mcp"] } } }
generate_standup — Draft a factual standup from git commits and pull request activity.commits (array, optional, default []) — commits as {hash, subject, author?} objects; hash is rendered as its first 7 characterspull_requests (array, optional, default []) — pull requests as {number, title, state, author?} objects; number is a positive integer unique across the set and state is one of opened, updated, merged, closedauthor (string, optional) — when given, only this author's commits and pull requests are included (exact match); records without an author are excludeddate_label (string, optional, default "Yesterday") — label for the standup headingReturns {standup, counts} where counts is {commits, merged, in_progress, closed} over the filtered sets.
docker run -i ghcr.io/cloudcorprecords/standupgen
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/standupgen generate --input /w/args.json
npm install
npm run build # tsc -> dist/ npm test # tsx --test test/*.test.ts (pure local, no network) npm run dev # run the CLI from source
MIT — Copyright (c) 2026 Rene Turcios