GitHub
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Developer-ready GitHub MCP server with 5-tool hybrid architecture and dynamic discovery.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
GITHUB_PERSONAL_ACCESS_TOKEN, GITHUB_API_URL, GITHUB_READ_ONLY, GITHUB_EXPOSE_ALL_TOOLS, MCP_OUTPUT_FORMATค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"github": {
"command": "npx",
"args": [
"-y",
"@sumirati/mcp-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ใส่ค่าของคุณ",
"GITHUB_API_URL": "ใส่ค่าของคุณ",
"GITHUB_READ_ONLY": "ใส่ค่าของคุณ",
"GITHUB_EXPOSE_ALL_TOOLS": "ใส่ค่าของคุณ",
"MCP_OUTPUT_FORMAT": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add github --env GITHUB_PERSONAL_ACCESS_TOKEN='ใส่ค่าของคุณ' --env GITHUB_API_URL='ใส่ค่าของคุณ' --env GITHUB_READ_ONLY='ใส่ค่าของคุณ' --env GITHUB_EXPOSE_ALL_TOOLS='ใส่ค่าของคุณ' --env MCP_OUTPUT_FORMAT='ใส่ค่าของคุณ' -- npx -y @sumirati/mcp-githubเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"github": {
"command": "npx",
"args": [
"-y",
"@sumirati/mcp-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ใส่ค่าของคุณ",
"GITHUB_API_URL": "ใส่ค่าของคุณ",
"GITHUB_READ_ONLY": "ใส่ค่าของคุณ",
"GITHUB_EXPOSE_ALL_TOOLS": "ใส่ค่าของคุณ",
"MCP_OUTPUT_FORMAT": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"github": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@sumirati/mcp-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ใส่ค่าของคุณ",
"GITHUB_API_URL": "ใส่ค่าของคุณ",
"GITHUB_READ_ONLY": "ใส่ค่าของคุณ",
"GITHUB_EXPOSE_ALL_TOOLS": "ใส่ค่าของคุณ",
"MCP_OUTPUT_FORMAT": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
GITHUB_API_URL envGITHUB_READ_ONLY envGITHUB_EXPOSE_ALL_TOOLS envMCP_OUTPUT_FORMAT envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub sumirati ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: GITHUB_PERSONAL_ACCESS_TOKEN
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (2.2.0) เข้า registry 20 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี 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 รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
@sumirati/mcp-github)A modern, 2026 AI-native Model Context Protocol (MCP) server for GitHub REST API, engineered for autonomous AI agents and developer workflows.
In early MCP servers, exposing 50–100+ eager tool definitions flooded every LLM turn with thousands of redundant schema tokens ("System Prompt Tax") and degraded reasoning coherence.
@sumirati/mcp-github solves this with a 5-Tool Hybrid Surface:
get_file_contents, get_repository, get_commit) remain eager tools for instant zero-hop execution.github_find_actions $\rightarrow$ github_execute_action), delivering 91%–99% token savings with default high-density Markdown tables and summaries (format: "markdown" | "json").list_pull_requests), the server dynamically executes it with full input validation and projection.LLM Prompt Context (5-Tool Hybrid Surface):
├── 1. github_find_actions(query, [domain], [format]) [Meta Discovery] ├── 2. github_execute_action(action, params, [format]) [Meta Dynamic Execution] ├── 3. get_file_contents(owner, repo, path) [Eager Daily Driver #1] ├── 4. get_repository(owner, repo) [Eager Daily Driver #2] └── 5. get_commit(owner, repo, ref) [Eager Daily Driver #3]
Under the hood (Dynamic Registry): └── 83 Curated Actions across 13 Domains (grounded in GitHub REST API 2022-11-28)
get_branch_protection), file reading (auto Base64-decoded, symbol outlines, line slicing), single-file commits, and forks.get_commit), atomic multi-file commits via Git Trees API (create_commit, push_files), and commit status checks.create, update, merge), review comments, inline diff reviews, and unified diff inspection with lockfile filtering.list_workflow_run_artifacts, get_workflow_run_artifact), smart failure log extraction (get_job_logs), run cancel/rerun, and manual workflow dispatch.create_team), accessible repositories, and API health/rate-limit diagnostics (system_health_check).npx (No installation needed)npx -y @sumirati/mcp-github
npm install -g @sumirati/mcp-github
mcp-github
git clone https://github.com/sumirati/mcp-github.git
cd mcp-github npm install npm test npm start
| Variable | Required | Default | Description |
|---|---|---|---|
GITHUB_PERSONAL_ACCESS_TOKEN | Yes | — | GitHub Personal Access Token (classic or fine-grained) |
GITHUB_TOKEN | No | — | Alternative token variable name |
GITHUB_API_URL | No | https://api.github.com | Base API URL (or GitHub Enterprise Server) |
GITHUB_READ_ONLY | No | false | Enable 3-tier read-only mode (true, 1, yes) |
GITHUB_EXPOSE_ALL_TOOLS | No | false | Set to true (or GITHUB_EXPOSE_LEGACY_TOOLS=true) to expose all 83 tools directly on ListTools for legacy clients |
MCP_OUTPUT_FORMAT | No | markdown | Default output format for tool execution (markdown or json) |
Add to your MCP configuration file (mcp_config.json or claude_desktop_config.json):
{
"mcpServers": { "github": { "command": "npx", "args": ["-y", "@sumirati/mcp-github"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": " ", "GITHUB_READ_ONLY": "false" } } } }
{
"mcpServers": { "github": { "command": "node", "args": ["/path/to/mcp-github/index.js"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": " ", "GITHUB_READ_ONLY": "false" } } } }
All 83 actions feature strict Zod input validation and 2-tier output projection:
| Tool | Type | Description |
|---|---|---|
github_find_actions | Meta | Search and discover available GitHub operations across all 13 domains with compact parameter signatures |
github_execute_action | Meta | Execute any discovered GitHub platform action with input validation and token-optimized projection |
get_file_contents | Eager | Read raw file contents (auto Base64 decoded), symbol outlines, line ranges, or directory listings at any ref |
get_repository | Eager | Retrieve repository metadata, visibility, description, default branch, HTML URL, and counts |
get_commit | Eager | Inspect Git commit details, author info, and token-capped file diffs |
repositories — 12 actions)| Action | Description | Mutating? |
|---|---|---|
search_repositories | Search for repositories across GitHub or within an organization using query qualifiers (e.g. 'org:myorg language:typescript') with capped pagination (max 100). If owner and repository name are known, prefer 'get_repository' for exact O(1) lookup. | No |
get_repository | Get repository metadata, visibility, description, default branch, clone URL, and statistics for an exact owner/repo. Use when verifying repository settings or checking default branch name. | No |
create_repository | Create a new GitHub repository under the authenticated user account or a specified organization. Requires write permissions and GITHUB_READ_ONLY=false. Auto-initializes with a default README commit unless auto_init is false. | Yes |
get_file_contents | Read current file contents, extract symbol outlines ('outline_only: true'), slice line ranges, or list directory entries at a specified git ref. Automatically decodes Base64 into UTF-8. Use 'outline_only: true' first to inspect structure in ~50-100 tokens, then request specific line ranges. | No |
create_or_update_file | Create a new file or overwrite an existing file on a branch in a single atomic commit. If updating, provide the file's current blob SHA in 'sha' (or leave empty to auto-resolve). Requires write permissions and GITHUB_READ_ONLY=false. | Yes |
delete_file | Delete an existing file from a branch in a git commit. Requires the current blob SHA to guard against concurrent overwrites. Requires write permissions and GITHUB_READ_ONLY=false. | Yes |
list_branches | List branches in a repository with protection status and head commit SHAs. Supports upstream filtering by protected status and capped pagination (max 100). If branch name is already known, prefer 'get_branch'. | No |
get_branch | Get detailed status of a specific branch, including branch protection rules and latest commit details. Use to verify branch existence or protection policies before merging or deleting. | No |
get_branch_protection | Retrieve comprehensive branch protection rules for a specific Git branch, including required status checks, required reviews, admin enforcement, and force-push / deletion restrictions. | No |
create_branch | Create a new git branch pointing to a commit SHA or branched from an existing branch (defaults to 'main'). Use before committing changes or opening a pull request. Requires write permissions and GITHUB_READ_ONLY=false. | Yes |
delete_branch | Delete a branch from a repository. Protected: explicitly rejects requests to delete the default branch (e.g. 'main') to prevent repository breakage. Requires write permissions and GITHUB_READ_ONLY=false. | Yes |
fork_repository | Fork a repository into the authenticated user's account or a specified organization namespace. Use when contributing to upstream projects where direct push access is restricted. Requires write permissions and GITHUB_READ_ONLY=false. | Yes |
commits — 6 actions)| Action | Description | Mutating? |
|---|---|---|
list_commits | List repository commit history chronologically with upstream filtering (sha, path, author, since, until) and capped pagination (max 100). For viewing actual line-by-line diffs of a commit, use get_commit instead. | No |
get_commit | Get detailed commit metadata, file modification statistics, and unified diffs for a specific commit SHA or ref. Use when reviewing code changes in a commit or debugging regressions. Diffs are token-budget optimized and truncated at max_diff_lines (default: 400 lines). | No |
create_commit | Create an atomic Git commit with multiple created, updated, or deleted files using the GitHub Git Trees API. Use when refactoring, applying multi-file code changes, or updating code and docs together. Avoids multiple individual single-file commits and does not require local git cloning. Requires write permissions and GITHUB_READ_ONLY=false. | Yes |
push_files | Alias for 'create_commit': atomically commit additions, modifications, or deletions to multiple files in a single Git commit via the GitHub Git Database API. Requires write permissions and GITHUB_READ_ONLY=false. | Yes |
| get_commit_status | Get the combined status check state (pending, success, failure)
ตัดมาแค่ช่วงต้น อ่านต่อใน repo