GitHub MCP
ทางการเซิร์ฟเวอร์ GitHub MCP อย่างเป็นทางการสำหรับการค้นหาที่เก็บข้อมูล ปัญหา คำขอดึงข้อมูล บริบทโค้ด และเวิร์กโฟลว์ของ GitHub ในไคลเอนต์ AI ที่รองรับ MCP
คุณทำอะไรได้บ้างด้วย GitHub MCP?
- การสำรวจ repository — ให้ผู้ช่วยของคุณเรียกดู repositories ค้นหาไฟล์ และทำความเข้าใจโครงสร้างโปรเจกต์ด้วยเครื่องมืออย่าง
get_file_contents - การจัดการ Issue และ PR — ให้ AI ของคุณสร้าง อัปเดต และจัดลำดับความสำคัญของ issues และ pull requests รวมถึงการตรวจสอบการเปลี่ยนแปลงโค้ดและการดูแล project boards
- การติดตาม CI/CD — รับข้อมูลเชิงลึกเกี่ยวกับการทำงานของ GitHub Actions workflow วิเคราะห์สาเหตุที่ build ล้มเหลว และจัดการ releases ผ่านคำสั่งภาษาธรรมชาติ
- การวิเคราะห์ความปลอดภัยของโค้ด — ตรวจสอบผลลัพธ์ด้านความปลอดภัย ทบทวนการแจ้งเตือนจาก Dependabot และทำความเข้าใจรูปแบบโค้ดทั่วทั้ง codebase ของคุณ
- การทำงานร่วมกันในทีม — เข้าถึง discussions จัดการ notifications และวิเคราะห์กิจกรรมของทีมเพื่อปรับปรุงกระบวนการพัฒนาให้มีประสิทธิภาพ
เอกสาร
เซิร์ฟเวอร์ GitHub MCP
เซิร์ฟเวอร์ GitHub MCP เชื่อมต่อเครื่องมือ AI เข้ากับแพลตฟอร์ม GitHub โดยตรง ทำให้เอเจนต์ ผู้ช่วย และแชทบอท AI สามารถอ่านรีโพซิทอรีและไฟล์โค้ด จัดการ Issues และ PR วิเคราะห์โค้ด และทำงานอัตโนมัติได้ ทั้งหมดผ่านการโต้ตอบด้วยภาษาธรรมชาติ
กรณีการใช้งาน
- การจัดการรีโพซิทอรี: เรียกดูและค้นหาโค้ด ค้นหาไฟล์ วิเคราะห์ commits และทำความเข้าใจโครงสร้างโปรเจกต์ในรีโพซิทอรีใดก็ตามที่คุณเข้าถึงได้
- ระบบอัตโนมัติสำหรับ Issues และ PR: สร้าง อัปเดต และจัดการ issues และ pull requests ให้ AI ช่วยคัดกรองบั๊ก ตรวจสอบการเปลี่ยนแปลงโค้ด และดูแลบอร์ดโปรเจกต์
- ความชาญฉลาดด้าน CI/CD และเวิร์กโฟลว์: ติดตามการทำงานของ GitHub Actions workflow วิเคราะห์ความล้มเหลวในการ build จัดการ releases และรับข้อมูลเชิงลึกเกี่ยวกับไปป์ไลน์การพัฒนาของคุณ
- การวิเคราะห์โค้ด: ตรวจสอบผลลัพธ์ด้านความปลอดภัย ตรวจสอบ Dependabot alerts ทำความเข้าใจรูปแบบโค้ด และรับข้อมูลเชิงลึกที่ครอบคลุมเกี่ยวกับโค้ดเบสของคุณ
- การทำงานร่วมกันในทีม: เข้าถึงการสนทนา จัดการการแจ้งเตือน วิเคราะห์กิจกรรมของทีม และปรับปรุงกระบวนการทำงานของทีม
สร้างขึ้นสำหรับนักพัฒนาที่ต้องการเชื่อมต่อเครื่องมือ AI ของตนเข้ากับบริบทและความสามารถของ GitHub ตั้งแต่คำสั่งภาษาธรรมชาติแบบง่ายไปจนถึงเวิร์กโฟลว์เอเจนต์แบบหลายขั้นตอนที่ซับซ้อน
เซิร์ฟเวอร์ GitHub MCP ระยะไกล
เซิร์ฟเวอร์ GitHub MCP ระยะไกลโฮสต์โดย GitHub และเป็นวิธีที่ง่ายที่สุดในการเริ่มต้นใช้งาน หาก MCP host ของคุณไม่รองรับเซิร์ฟเวอร์ MCP ระยะไกล ไม่ต้องกังวล! คุณสามารถใช้ เวอร์ชันท้องถิ่นของเซิร์ฟเวอร์ GitHub MCP แทนได้
ข้อกำหนดเบื้องต้น
- MCP host ที่เข้ากันได้พร้อมรองรับเซิร์ฟเวอร์ระยะไกล (VS Code 1.101+, Claude Desktop, Cursor, Windsurf ฯลฯ)
- นโยบายที่เกี่ยวข้อง ที่เปิดใช้งานแล้ว
ติดตั้งใน VS Code
สำหรับการติดตั้งที่รวดเร็ว ให้ใช้ปุ่มติดตั้งแบบคลิกเดียวด้านบน เมื่อคุณทำตามขั้นตอนเสร็จสิ้น ให้สลับไปที่โหมด Agent (อยู่ที่ช่องป้อนข้อความ Copilot Chat) แล้วเซิร์ฟเวอร์จะเริ่มทำงาน ตรวจสอบให้แน่ใจว่าคุณใช้ VS Code 1.101 หรือ ใหม่กว่า สำหรับการรองรับ MCP ระยะไกลและ OAuth
หรือหากต้องการกำหนดค่า VS Code ด้วยตนเอง ให้เลือกบล็อก JSON ที่เหมาะสมจากตัวอย่างด้านล่างและเพิ่มลงในการกำหนดค่า host ของคุณ:
| ใช้ OAuth | ใช้ GitHub PAT |
|---|---|
| VS Code (เวอร์ชัน 1.101 ขึ้นไป) | |
|
|
ติดตั้งใน MCP hosts อื่นๆ
- Copilot CLI - คู่มือการติดตั้งสำหรับ GitHub Copilot CLI
- GitHub Copilot ใน IDE อื่นๆ - การติดตั้งสำหรับ JetBrains, Visual Studio, Eclipse และ Xcode พร้อม GitHub Copilot
- แอปพลิเคชัน Claude - คู่มือการติดตั้งสำหรับ Claude Desktop และ Claude Code CLI
- Codex - คู่มือการติดตั้งสำหรับ OpenAI Codex
- Cursor - คู่มือการติดตั้งสำหรับ Cursor IDE
- OpenCode - คู่มือการติดตั้งสำหรับเอเจนต์เทอร์มินัล OpenCode
- Windsurf - คู่มือการติดตั้งสำหรับ Windsurf IDE
- Zed - คู่มือการติดตั้งสำหรับ Zed editor
- Rovo Dev CLI - คู่มือการติดตั้งสำหรับ Rovo Dev CLI
หมายเหตุ: แอปพลิเคชัน MCP host แต่ละตัวจำเป็นต้องกำหนดค่า GitHub App หรือ OAuth App เพื่อรองรับการเข้าถึงระยะไกลผ่าน OAuth แอปพลิเคชัน host ใดก็ตามที่รองรับเซิร์ฟเวอร์ MCP ระยะไกลควรรองรับเซิร์ฟเวอร์ GitHub ระยะไกลด้วยการตรวจสอบสิทธิ์ PAT รายละเอียดการกำหนดค่าและระดับการสนับสนุนแตกต่างกันไปตาม host โปรดดูเอกสารของแอปพลิเคชัน host สำหรับข้อมูลเพิ่มเติม
การกำหนดค่า
การกำหนดค่า Toolset
ดู เอกสารเซิร์ฟเวอร์ระยะไกล สำหรับรายละเอียดทั้งหมดเกี่ยวกับการกำหนดค่าเซิร์ฟเวอร์ระยะไกล toolsets headers และการใช้งานขั้นสูง ไฟล์นี้ให้คำแนะนำและตัวอย่างที่ครอบคลุมสำหรับการเชื่อมต่อ การปรับแต่ง และการติดตั้งเซิร์ฟเวอร์ GitHub MCP ระยะไกลใน VS Code และ MCP hosts อื่นๆ
เมื่อไม่มีการระบุ toolsets จะใช้ toolsets เริ่มต้น
โหมด Insiders
ลองใช้ฟีเจอร์ใหม่ก่อนใคร! เซิร์ฟเวอร์ระยะไกลมีเวอร์ชัน insiders ที่ให้เข้าถึงฟีเจอร์ใหม่และเครื่องมือทดลองได้ก่อนใคร
| ใช้ URL Path | ใช้ Header |
|---|---|
|
|
ดู เอกสารเซิร์ฟเวอร์ระยะไกล สำหรับรายละเอียดและตัวอย่างเพิ่มเติม และ ฟีเจอร์ Insiders สำหรับรายการทั้งหมดที่มีให้ใช้งาน
GitHub Enterprise
GitHub Enterprise Cloud พร้อม data residency (ghe.com)
GitHub Enterprise Cloud ยังสามารถใช้เซิร์ฟเวอร์ระยะไกลได้
ตัวอย่างสำหรับ https://octocorp.ghe.com พร้อม GitHub PAT token:
{
...
"github-octocorp": {
"type": "http",
"url": "https://copilot-api.octocorp.ghe.com/mcp",
"headers": {
"Authorization": "Bearer ${input:github_mcp_pat}"
}
},
...
}
หมายเหตุ: เมื่อใช้ OAuth กับ GitHub Enterprise ใน VS Code และ GitHub Copilot คุณต้องกำหนดค่าการตั้งค่า VS Code เพื่อชี้ไปยังอินสแตนซ์ GitHub Enterprise ของคุณด้วย - ดู ตรวจสอบสิทธิ์จาก VS Code
GitHub Enterprise Server
GitHub Enterprise Server ไม่รองรับการโฮสต์เซิร์ฟเวอร์ระยะไกล โปรดดู GitHub Enterprise Server และ Enterprise Cloud พร้อม data residency (ghe.com) จากการกำหนดค่าเซิร์ฟเวอร์ท้องถิ่น
เซิร์ฟเวอร์ GitHub MCP ท้องถิ่น
ข้อกำหนดเบื้องต้น
-
ในการรันเซิร์ฟเวอร์ในคอนเทนเนอร์ คุณจะต้องติดตั้ง Docker
-
เมื่อติดตั้ง Docker แล้ว คุณต้องตรวจสอบให้แน่ใจว่า Docker กำลังทำงานอยู่ อิมเมจ Docker มีให้ใช้งานที่
ghcr.io/github/github-mcp-serverอิมเมจเป็นแบบสาธารณะ หากคุณได้รับข้อผิดพลาดในการดึงข้อมูล คุณอาจมี token หมดอายุและจำเป็นต้องdocker logout ghcr.io -
การตรวจสอบสิทธิ์ บน github.com คุณไม่จำเป็นต้องสร้างอะไรล่วงหน้า — ปุ่มคลิกเดียวด้านบนจะให้คุณเข้าสู่ระบบด้วย OAuth ในการใช้งานครั้งแรก (เป็นขั้นตอนผ่านเบราว์เซอร์ token จะถูกเก็บไว้ในหน่วยความจำเท่านั้น) ปุ่ม Docker จะเผยแพร่พอร์ต callback แบบคงที่ (
127.0.0.1:8085) เพื่อให้ callback การเข้าสู่ระบบของคอนเทนเนอร์เข้าถึงได้ ดู การเข้าสู่ระบบ OAuth ของเซิร์ฟเวอร์ท้องถิ่น สำหรับวิธีการทำงาน ทางเลือกแบบ headless/device-code และการนำ OAuth หรือ GitHub App ของคุณเองมาใช้ (จำเป็นสำหรับ GitHub Enterprise Server และghe.com)ต้องการใช้ token หรือไม่? คุณยังสามารถตรวจสอบสิทธิ์ด้วย GitHub Personal Access Token โดยตั้งค่า
GITHUB_PERSONAL_ACCESS_TOKENแทน (มีลำดับความสำคัญเหนือกว่า OAuth) เซิร์ฟเวอร์ MCP สามารถใช้ GitHub APIs จำนวนมาก ดังนั้นโปรดเปิดใช้งานสิทธิ์ที่คุณรู้สึกสบายใจที่จะมอบให้กับเครื่องมือ AI ของคุณ (หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ access tokens โปรดดู เอกสารประกอบ)
การจัดการ PAT อย่างปลอดภัย
ตัวแปรสภาพแวดล้อม (แนะนำ)
เพื่อให้ GitHub PAT ของคุณปลอดภัยและนำกลับมาใช้ใหม่ได้ใน MCP hosts ต่างๆ:
-
จัดเก็บ PAT ของคุณในตัวแปรสภาพแวดล้อม
export GITHUB_PAT=your_token_hereหรือสร้างไฟล์
.env:GITHUB_PAT=your_token_here -
ปกป้องไฟล์
.envของคุณ# Add to .gitignore to prevent accidental commits echo ".env" >> .gitignore -
อ้างอิง token ในการกำหนดค่า
# CLI usage claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PAT -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server # In config files (where supported) "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "$GITHUB_PAT" }
หมายเหตุ: การรองรับตัวแปรสภาพแวดล้อมแตกต่างกันไปตามแอป host และ IDE แอปพลิเคชันบางตัว (เช่น Windsurf) กำหนดให้ต้องใส่ token แบบฮาร์ดโค้ดในไฟล์กำหนดค่า
แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยของ Token
-
ขอบเขตขั้นต่ำ: ให้สิทธิ์ที่จำเป็นเท่านั้น
repo- การดำเนินการกับรีโพซิทอรีread:packages- การเข้าถึงอิมเมจ Dockerread:org- การเข้าถึงทีมองค์กร
-
แยก token: ใช้ PAT ที่แตกต่างกันสำหรับโปรเจกต์/สภาพแวดล้อมที่แตกต่างกัน
-
หมุนเวียนเป็นประจำ: อัปเดต token เป็นระยะ
-
ห้าม commit: เก็บ token ไว้นอกระบบควบคุมเวอร์ชัน
-
สิทธิ์ไฟล์: จำกัดการเข้าถึงไฟล์กำหนดค่าที่มี token
chmod 600 ~/.your-app/config.json
GitHub Enterprise Server และ Enterprise Cloud พร้อม data residency (ghe.com)
แฟล็ก --gh-host และตัวแปรสภาพแวดล้อม GITHUB_HOST สามารถใช้เพื่อตั้งค่า
hostname สำหรับ GitHub Enterprise Server หรือ GitHub Enterprise Cloud พร้อม data residency
- สำหรับ GitHub Enterprise Server ให้ใส่คำนำหน้า hostname ด้วย URI scheme
https://จำเป็นต้องใช้ HTTPS และบังคับใช้: host ที่ไม่ใช่ HTTPS จะถูกปฏิเสธเพื่อไม่ให้ข้อมูลประจำตัวถูกส่งผ่าน cleartext (ข้อยกเว้นเพียงอย่างเดียวคือ host แบบ loopback เช่นhttp://localhostสำหรับการพัฒนาท้องถิ่น) - สำหรับ GitHub Enterprise Cloud พร้อม data residency ให้ใช้
https://YOURSUBDOMAIN.ghe.comเป็น hostname
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"-e",
"GITHUB_HOST",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}",
"GITHUB_HOST": "https://<your GHES or ghe.com domain name>"
}
}
การติดตั้ง
ติดตั้งใน GitHub Copilot บน VS Code
สำหรับการติดตั้งที่รวดเร็ว ให้ใช้ปุ่มติดตั้งแบบคลิกเดียวด้านบน เมื่อคุณทำตามขั้นตอนเสร็จสิ้น ให้สลับไปที่โหมด Agent (อยู่ที่ช่องป้อนข้อความ Copilot Chat) แล้วเซิร์ฟเวอร์จะเริ่มทำงาน
เรียนรู้เพิ่มเติมเกี่ยวกับการใช้เครื่องมือ MCP server ใน เอกสารโหมด agent ของ VS Code
ติดตั้งใน GitHub Copilot บน IDE อื่นๆ (JetBrains, Visual Studio, Eclipse ฯลฯ)
เพิ่มบล็อก JSON หนึ่งในต่อไปนี้ในการตั้งค่า MCP ของ IDE ของคุณ
เข้าสู่ระบบด้วย OAuth (ไม่ต้องสร้างหรือจัดเก็บ token) บน github.com อิมเมจอย่างเป็นทางการมีข้อมูลประจำตัวของแอปอยู่แล้ว ดังนั้นคุณไม่ต้องระบุเอง: จะรันการเข้าสู่ระบบผ่านเบราว์เซอร์ในการใช้งานครั้งแรกและเก็บ token ที่ได้ ในหน่วยความจำเท่านั้น ใน Docker จำเป็นต้องเผยแพร่พอร์ต callback แบบคงที่ไปยัง loopback เพื่อให้ callback การเข้าสู่ระบบของคอนเทนเนอร์เข้าถึงได้:
{
"mcp": {
"servers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-p",
"127.0.0.1:8085:8085",
"-e",
"GITHUB_OAUTH_CALLBACK_PORT",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_OAUTH_CALLBACK_PORT": "8085"
}
}
}
}
}
ดู การเข้าสู่ระบบ OAuth ของเซิร์ฟเวอร์ท้องถิ่น สำหรับขั้นตอนแบบ native-binary (ไม่ต้องใช้พอร์ตคงที่) ทางเลือกแบบ headless/device-code GitHub Enterprise Server / ghe.com และการนำ OAuth หรือ GitHub App ของคุณเองมาใช้
สำหรับการปรับใช้ stdio แบบไม่โต้ตอบ ดู การตรวจสอบสิทธิ์ GitHub App
หรือตรวจสอบสิทธิ์ด้วย Personal Access Token ตั้งค่า GITHUB_PERSONAL_ACCESS_TOKEN แทน (มีลำดับความสำคัญเหนือกว่า OAuth):
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "github_token",
"description": "GitHub Personal Access Token",
"password": true
}
],
"servers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
}
}
}
}
}
คุณสามารถเพิ่มตัวอย่างที่คล้ายกัน (เช่น ไม่มีคีย์ mcp) ในไฟล์ชื่อ .vscode/mcp.json ในเวิร์กสเปซของคุณได้ ซึ่งจะช่วยให้คุณแชร์การกำหนดค่ากับแอปพลิเคชัน host อื่นๆ ที่ยอมรับรูปแบบเดียวกัน
ตัวอย่างบล็อก JSON ที่ไม่รวมคีย์ MCP
{
"inputs": [
{
"type": "promptString",
"id": "github_token",
"description": "GitHub Personal Access Token",
"password": true
}
],
"servers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
}
}
}
}
ติดตั้งใน MCP Hosts อื่นๆ
สำหรับแอปพลิเคชัน MCP host อื่นๆ โปรดดูคู่มือการติดตั้งของเรา:
- Copilot CLI - คู่มือการติดตั้งสำหรับ GitHub Copilot CLI
- GitHub Copilot ใน IDE อื่นๆ - การติดตั้งสำหรับ JetBrains, Visual Studio, Eclipse และ Xcode พร้อม GitHub Copilot
- Claude Code และ Claude Desktop - คู่มือการติดตั้งสำหรับ Claude Code และ Claude Desktop
- Cursor - คู่มือการติดตั้งสำหรับ Cursor IDE
- Google Gemini CLI - คู่มือการติดตั้งสำหรับ Google Gemini CLI
- OpenCode - คู่มือการติดตั้งสำหรับเอเจนต์เทอร์มินัล OpenCode
- Windsurf - คู่มือการติดตั้งสำหรับ Windsurf IDE
- Zed - คู่มือการติดตั้งสำหรับ Zed editor
สำหรับภาพรวมที่สมบูรณ์ของตัวเลือกการติดตั้งทั้งหมด ดู ดัชนีคู่มือการติดตั้ง
หมายเหตุ: แอปพลิเคชันโฮสต์ใดๆ ที่รองรับเซิร์ฟเวอร์ MCP ในเครื่องควรจะสามารถเข้าถึงเซิร์ฟเวอร์ GitHub MCP ในเครื่องได้ อย่างไรก็ตาม กระบวนการกำหนดค่าที่เฉพาะเจาะจง ไวยากรณ์ และความเสถียรของการผสานรวมจะแตกต่างกันไปตามแอปพลิเคชันโฮสต์ แม้ว่าหลายแอปพลิเคชันอาจใช้รูปแบบที่คล้ายกับตัวอย่างข้างต้น แต่ก็ไม่มีการรับประกัน โปรดดูเอกสารประกอบของแอปพลิเคชันโฮสต์ของคุณสำหรับไวยากรณ์การกำหนดค่า MCP ที่ถูกต้องและขั้นตอนการตั้งค่า
สร้างจากซอร์สโค้ด
หากคุณไม่มี Docker คุณสามารถใช้ go build เพื่อสร้างไบนารีในไดเรกทอรี cmd/github-mcp-server และใช้คำสั่ง github-mcp-server stdio โดยตั้งค่าตัวแปรสภาพแวดล้อม GITHUB_PERSONAL_ACCESS_TOKEN เป็นโทเค็นของคุณ หากต้องการระบุตำแหน่งเอาต์พุตของการ build ให้ใช้แฟล็ก -o คุณควรกำหนดค่าเซิร์ฟเวอร์ของคุณให้ใช้ไฟล์ปฏิบัติการที่สร้างขึ้นเป็น command ตัวอย่างเช่น:
{
"mcp": {
"servers": {
"github": {
"command": "/path/to/github-mcp-server",
"args": ["stdio"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
}
การกำหนดค่าเครื่องมือ
เซิร์ฟเวอร์ GitHub MCP รองรับการเปิดหรือปิดใช้งานกลุ่มฟังก์ชันการทำงานเฉพาะผ่านแฟล็ก --toolsets ซึ่งช่วยให้คุณควบคุมความสามารถของ GitHub API ที่พร้อมใช้งานสำหรับเครื่องมือ AI ของคุณได้ การเปิดใช้งานเฉพาะชุดเครื่องมือที่คุณต้องการสามารถช่วยให้ LLM เลือกเครื่องมือได้ดีขึ้นและลดขนาดบริบท
ชุดเครื่องมือไม่ได้จำกัดเฉพาะเครื่องมือเท่านั้น ทรัพยากร MCP และพรอมต์ที่เกี่ยวข้องจะรวมอยู่ด้วยเมื่อเกี่ยวข้อง
เมื่อไม่มีการระบุชุดเครื่องมือ จะใช้ ชุดเครื่องมือเริ่มต้น
กำลังมองหาตัวอย่างอยู่หรือไม่? ดู คู่มือการกำหนดค่าเซิร์ฟเวอร์ สำหรับสูตรทั่วไป เช่น การตั้งค่าขั้นต่ำ โหมดอ่านอย่างเดียว และการรวมเครื่องมือเข้ากับชุดเครื่องมือ
การระบุชุดเครื่องมือ
หากต้องการระบุชุดเครื่องมือที่คุณต้องการให้พร้อมใช้งานสำหรับ LLM คุณสามารถส่งรายการอนุญาตได้สองวิธี:
-
การใช้ Argument ใน Command Line:
github-mcp-server --toolsets repos,issues,pull_requests,actions,code_security -
การใช้ตัวแปรสภาพแวดล้อม:
GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" ./github-mcp-server
ตัวแปรสภาพแวดล้อม GITHUB_TOOLSETS มีลำดับความสำคัญเหนือกว่า argument ใน command line หากมีการระบุทั้งสองอย่าง
การระบุเครื่องมือแต่ละรายการ
คุณยังสามารถกำหนดค่าเครื่องมือเฉพาะโดยใช้แฟล็ก --tools ได้อีกด้วย เครื่องมือสามารถใช้ได้อย่างอิสระหรือรวมกับชุดเครื่องมือเพื่อการควบคุมที่ละเอียด
-
การใช้ Argument ใน Command Line:
github-mcp-server --tools get_file_contents,issue_read,create_pull_request -
การใช้ตัวแปรสภาพแวดล้อม:
GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" ./github-mcp-server -
การรวมกับชุดเครื่องมือ (แบบเพิ่มเติม):
github-mcp-server --toolsets repos,issues --tools get_gistวิธีนี้จะลงทะเบียนเครื่องมือทั้งหมดจากชุดเครื่องมือ
reposและissuesรวมถึงget_gist
หมายเหตุสำคัญ:
- เครื่องมือและชุดเครื่องมือสามารถใช้ร่วมกันได้
- โหมดอ่านอย่างเดียวมีความสำคัญสูงกว่า: เครื่องมือเขียนจะถูกข้ามหากตั้งค่า
--read-onlyแม้ว่าจะมีการร้องขออย่างชัดเจนผ่าน--toolsก็ตาม - ชื่อเครื่องมือต้องตรงกันทุกประการ (เช่น
get_file_contentsไม่ใช่getFileContents) ชื่อเครื่องมือที่ไม่ถูกต้องจะทำให้เซิร์ฟเวอร์ล้มเหลวเมื่อเริ่มต้นพร้อมกับข้อความแสดงข้อผิดพลาด - เมื่อมีการเปลี่ยนชื่อเครื่องมือ ชื่อเก่าจะถูกเก็บไว้เป็นนามแฝงเพื่อความเข้ากันได้ย้อนหลัง ดู การเปลี่ยนชื่อเครื่องมือ สำหรับรายละเอียด
การใช้ชุดเครื่องมือกับ Docker
เมื่อใช้ Docker คุณสามารถส่งชุดเครื่องมือเป็นตัวแปรสภาพแวดล้อมได้:
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" \
ghcr.io/github/github-mcp-server
การใช้เครื่องมือกับ Docker
เมื่อใช้ Docker คุณสามารถส่งเครื่องมือเฉพาะเป็นตัวแปรสภาพแวดล้อมได้ คุณยังสามารถรวมเครื่องมือเข้ากับชุดเครื่องมือได้:
# Tools only
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" \
ghcr.io/github/github-mcp-server
# Tools combined with toolsets (additive)
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_TOOLSETS="repos,issues" \
-e GITHUB_TOOLS="get_gist" \
ghcr.io/github/github-mcp-server
ชุดเครื่องมือพิเศษ
ชุดเครื่องมือ "all"
ชุดเครื่องมือพิเศษ all สามารถระบุได้เพื่อเปิดใช้งานชุดเครื่องมือที่มีอยู่ทั้งหมดโดยไม่คำนึงถึงการกำหนดค่าอื่นๆ:
./github-mcp-server --toolsets all
หรือใช้ตัวแปรสภาพแวดล้อม:
GITHUB_TOOLSETS="all" ./github-mcp-server
ชุดเครื่องมือ "default"
ชุดเครื่องมือเริ่มต้น default คือการกำหนดค่าที่ส่งไปยังเซิร์ฟเวอร์หากไม่มีการระบุชุดเครื่องมือ
การกำหนดค่าเริ่มต้นคือ:
- context
- repos
- issues
- pull_requests
- users
เพื่อรักษาการกำหนดค่าเริ่มต้นและเพิ่มชุดเครื่องมือเพิ่มเติม:
GITHUB_TOOLSETS="default,stargazers" ./github-mcp-server
โหมด Insiders
เซิร์ฟเวอร์ GitHub MCP ในเครื่องมีเวอร์ชัน insiders ที่ให้สิทธิ์เข้าถึงฟีเจอร์ใหม่และเครื่องมือทดลองได้ก่อนใคร
-
การใช้ Argument ใน Command Line:
./github-mcp-server --insiders -
การใช้ตัวแปรสภาพแวดล้อม:
GITHUB_INSIDERS=true ./github-mcp-server
เมื่อใช้ Docker:
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_INSIDERS=true \
ghcr.io/github/github-mcp-server
ชุดเครื่องมือที่มีอยู่
ชุดเครื่องมือต่อไปนี้พร้อมใช้งาน:
| ชุดเครื่องมือ | คำอธิบาย | |
|---|---|---|
context | แนะนำอย่างยิ่ง: เครื่องมือที่ให้บริบทเกี่ยวกับผู้ใช้ปัจจุบันและบริบท GitHub ที่คุณกำลังดำเนินการอยู่ | |
actions | เวิร์กโฟลว์ GitHub Actions และการดำเนินการ CI/CD | |
code_quality | เครื่องมือที่เกี่ยวข้องกับคุณภาพโค้ดของ GitHub | |
code_security | เครื่องมือที่เกี่ยวข้องกับความปลอดภัยของโค้ด เช่น GitHub Code Scanning | |
copilot | เครื่องมือที่เกี่ยวข้องกับ Copilot | |
copilot_issue_intents | เครื่องมือกำหนดงาน Copilot แบบเลือกเข้าร่วมที่นำข้อมูลเมตาของเจตนา (เหตุผล ความมั่นใจ ข้อเสนอแนะ) | |
dependabot | เครื่องมือ Dependabot | |
discussions | เครื่องมือที่เกี่ยวข้องกับ GitHub Discussions | |
gists | เครื่องมือที่เกี่ยวข้องกับ GitHub Gist | |
git | เครื่องมือที่เกี่ยวข้องกับ GitHub Git API สำหรับการดำเนินการ Git ระดับต่ำ | |
issues | เครื่องมือที่เกี่ยวข้องกับ GitHub Issues | |
labels | เครื่องมือที่เกี่ยวข้องกับ GitHub Labels | |
notifications | เครื่องมือที่เกี่ยวข้องกับการแจ้งเตือนของ GitHub | |
orgs | เครื่องมือที่เกี่ยวข้องกับองค์กร GitHub | |
projects | เครื่องมือที่เกี่ยวข้องกับ GitHub Projects | |
pull_requests | เครื่องมือที่เกี่ยวข้องกับ Pull Request ของ GitHub | |
repos | เครื่องมือที่เกี่ยวข้องกับ Repository ของ GitHub | |
secret_protection | เครื่องมือที่เกี่ยวข้องกับการป้องกันความลับ เช่น GitHub Secret Scanning | |
security_advisories | เครื่องมือที่เกี่ยวข้องกับ Security advisories | |
stargazers | เครื่องมือที่เกี่ยวข้องกับ Stargazers ของ GitHub | |
users | เครื่องมือที่เกี่ยวข้องกับผู้ใช้ GitHub |
ชุดเครื่องมือเพิ่มเติมในเซิร์ฟเวอร์ GitHub MCP ระยะไกล
| ชุดเครื่องมือ | คำอธิบาย |
|---|---|
copilot | เครื่องมือที่เกี่ยวข้องกับ Copilot (เช่น Copilot Coding Agent) |
copilot_spaces | เครื่องมือที่เกี่ยวข้องกับ Copilot Spaces |
github_support_docs_search | ค้นหาเอกสารเพื่อตอบคำถามเกี่ยวกับผลิตภัณฑ์และการสนับสนุนของ GitHub |
เครื่องมือ

Actions
-
actions_get - รับรายละเอียดของทรัพยากร GitHub Actions (เวิร์กโฟลว์ การรันเวิร์กโฟลว์ งาน และอาร์ติแฟกต์)
- OAuth Challenge Scopes:
repo method: เมธอดที่จะดำเนินการ (สตริง, จำเป็น)owner: เจ้าของ Repository (สตริง, จำเป็น)repo: ชื่อ Repository (สตริง, จำเป็น)resource_id: ตัวระบุเฉพาะของทรัพยากร ค่านี้จะแตกต่างกันไปตาม "method" ที่ระบุ ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณระบุ ID ที่ถูกต้อง:- ระบุ workflow ID หรือชื่อไฟล์เวิร์กโฟลว์ (เช่น ci.yaml) สำหรับเมธอด 'get_workflow'
- ระบุ workflow run ID สำหรับเมธอด 'get_workflow_run', 'get_workflow_run_usage' และ 'get_workflow_run_logs_url'
- ระบุ artifact ID สำหรับเมธอด 'download_workflow_run_artifact'
- ระบุ job ID สำหรับเมธอด 'get_workflow_job' (สตริง, จำเป็น)
- OAuth Challenge Scopes:
-
actions_list - รายการเวิร์กโฟลว์ GitHub Actions ใน Repository
- OAuth Challenge Scopes:
repo method: การดำเนินการที่จะดำเนินการ (สตริง, จำเป็น)owner: เจ้าของ Repository (สตริง, จำเป็น)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ค่าเริ่มต้น: 1) (ตัวเลข, ไม่บังคับ)per_page: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ค่าเริ่มต้น: 30, สูงสุด: 100) (ตัวเลข, ไม่บังคับ)repo: ชื่อ Repository (สตริง, จำเป็น)resource_id: ตัวระบุเฉพาะของทรัพยากร ค่านี้จะแตกต่างกันไปตาม "method" ที่ระบุ ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณระบุ ID ที่ถูกต้อง:- อย่าระบุ resource ID สำหรับเมธอด 'list_workflows'
- ระบุ workflow ID หรือชื่อไฟล์เวิร์กโฟลว์ (เช่น ci.yaml) สำหรับเมธอด 'list_workflow_runs' หรือละเว้นเพื่อรายการการรันเวิร์กโฟลว์ทั้งหมดใน Repository
- ระบุ workflow run ID สำหรับเมธอด 'list_workflow_jobs' และ 'list_workflow_run_artifacts' (สตริง, ไม่บังคับ)
workflow_jobs_filter: ตัวกรองสำหรับงานเวิร์กโฟลว์ ใช้เท่านั้น เมื่อเมธอดเป็น 'list_workflow_jobs' (ออบเจ็กต์, ไม่บังคับ)workflow_runs_filter: ตัวกรองสำหรับการรันเวิร์กโฟลว์ ใช้เท่านั้น เมื่อเมธอดเป็น 'list_workflow_runs' (ออบเจ็กต์, ไม่บังคับ)
- OAuth Challenge Scopes:
-
actions_run_trigger - ทริกเกอร์การดำเนินการเวิร์กโฟลว์ GitHub Actions
- OAuth Challenge Scopes:
repo inputs: อินพุตที่เวิร์กโฟลว์ยอมรับ ใช้เฉพาะสำหรับเมธอด 'run_workflow' (ออบเจ็กต์, ไม่บังคับ)method: เมธอดที่จะดำเนินการ (สตริง, จำเป็น)owner: เจ้าของ Repository (สตริง, จำเป็น)ref: การอ้างอิง git สำหรับเวิร์กโฟลว์ การอ้างอิงสามารถเป็นชื่อสาขาหรือแท็กได้ จำเป็นสำหรับเมธอด 'run_workflow' (สตริง, ไม่บังคับ)repo: ชื่อ Repository (สตริง, จำเป็น)run_id: ID ของการรันเวิร์กโฟลว์ จำเป็นสำหรับทุกเมธอดยกเว้น 'run_workflow' (ตัวเลข, ไม่บังคับ)workflow_id: workflow ID (ตัวเลข) หรือชื่อไฟล์เวิร์กโฟลว์ (เช่น main.yml, ci.yaml) จำเป็นสำหรับเมธอด 'run_workflow' (สตริง, ไม่บังคับ)
- OAuth Challenge Scopes:
-
get_job_logs - รับบันทึกงานเวิร์กโฟลว์ GitHub Actions
- OAuth Challenge Scopes:
repo failed_only: เมื่อเป็น true จะได้รับบันทึกสำหรับงานที่ล้มเหลวทั้งหมดในการรันเวิร์กโฟลว์ที่ระบุโดย run_id ต้องระบุ run_id (บูลีน, ไม่บังคับ)job_id: ตัวระบุเฉพาะของงานเวิร์กโฟลว์ จำเป็นเมื่อรับบันทึกสำหรับงานเดียว (ตัวเลข, ไม่บังคับ)owner: เจ้าของ Repository (สตริง, จำเป็น)repo: ชื่อ Repository (สตริง, จำเป็น)return_content: ส่งคืนเนื้อหาบันทึกจริงแทน URL (บูลีน, ไม่บังคับ)run_id: ตัวระบุเฉพาะของการรันเวิร์กโฟลว์ จำเป็นเมื่อ failed_only เป็น true เพื่อรับบันทึกสำหรับงานที่ล้มเหลวทั้งหมดในการรัน (ตัวเลข, ไม่บังคับ)tail_lines: จำนวนบรรทัดที่จะส่งคืนจากท้ายบันทึก (ตัวเลข, ไม่บังคับ)
- OAuth Challenge Scopes:

คุณภาพโค้ด
- get_code_quality_finding - รับผลการตรวจสอบคุณภาพโค้ด
- OAuth Challenge Scopes:
repo findingNumber: หมายเลขของผลการตรวจสอบ (number, required)owner: เจ้าของ repository (string, required)repo: ชื่อของ repository (string, required)
- OAuth Challenge Scopes:

ความปลอดภัยของโค้ด
-
get_code_scanning_alert - รับการแจ้งเตือนการสแกนโค้ด
- OAuth Challenge Scopes:
security_events alertNumber: หมายเลขของการแจ้งเตือน (number, required)owner: เจ้าของ repository (string, required)repo: ชื่อของ repository (string, required)
- OAuth Challenge Scopes:
-
list_code_scanning_alerts - รายการการแจ้งเตือนการสแกนโค้ด
- OAuth Challenge Scopes:
security_events owner: เจ้าของ repository (string, required)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)ref: Git reference สำหรับผลลัพธ์ที่คุณต้องการแสดง (string, optional)repo: ชื่อของ repository (string, required)severity: กรองการแจ้งเตือนการสแกนโค้ดตามความรุนแรง (string, optional)state: กรองการแจ้งเตือนการสแกนโค้ดตามสถานะ ค่าเริ่มต้นคือ open (string, optional)tool_name: ชื่อของเครื่องมือที่ใช้สำหรับการสแกนโค้ด (string, optional)
- OAuth Challenge Scopes:

บริบท
-
get_me - รับโปรไฟล์ผู้ใช้ของฉัน
- ไม่มีพารามิเตอร์ที่ต้องระบุ
-
get_team_members - รับสมาชิกทีม
- OAuth Challenge Scopes:
read:org org: องค์กรที่เข้าสู่ระบบ (เจ้าของ) ที่มีทีมนี้ (string, required)team_slug: Team slug (string, required)
- OAuth Challenge Scopes:
-
get_teams - รับทีม
- OAuth Challenge Scopes:
read:org user: ชื่อผู้ใช้เพื่อรับทีม หากไม่ระบุ จะใช้ผู้ใช้ที่ผ่านการยืนยันตัวตน (string, optional)
- OAuth Challenge Scopes:

Copilot
-
assign_copilot_to_issue - มอบหมาย Copilot ให้กับ issue
- OAuth Challenge Scopes:
repo base_ref: Git reference (เช่น branch) ที่ agent จะเริ่มทำงาน หากไม่ระบุ จะใช้ branch เริ่มต้นของ repository (string, optional)custom_instructions: คำแนะนำเพิ่มเติมที่กำหนดเองเพื่อแนะนำ agent นอกเหนือจากเนื้อหา issue ใช้เพื่อให้บริบท ข้อจำกัด หรือคำแนะนำเพิ่มเติมที่ไม่ได้ระบุในคำอธิบาย issue (string, optional)issue_number: หมายเลข issue (number, required)owner: เจ้าของ repository (string, required)repo: ชื่อ repository (string, required)
- OAuth Challenge Scopes:
-
request_copilot_review - ขอให้ Copilot ตรวจสอบ
- OAuth Challenge Scopes:
repo owner: เจ้าของ repository (string, required)pullNumber: หมายเลข pull request (number, required)repo: ชื่อ repository (string, required)
- OAuth Challenge Scopes:

Copilot Issue Intents
- assign_copilot_to_issue_with_intent - มอบหมาย Copilot ให้กับ issue พร้อม intent
- OAuth Challenge Scopes:
repo base_ref: Git reference (เช่น branch) ที่ agent จะเริ่มทำงาน หากไม่ระบุ จะใช้ branch เริ่มต้นของ repository จะถูกละเว้นเมื่อ is_suggestion เป็น true (string, optional)confidence: ความมั่นใจในการเลือกนี้ 'HIGH' สำหรับสัญญาณที่ชัดเจนหรือคำขอจากผู้ใช้โดยตรง 'MEDIUM' สำหรับการอนุมานที่สมเหตุสมผลแต่มีความคลุมเครือ 'LOW' สำหรับการคาดเดาที่ดีที่สุดโดยมีสัญญาณจำกัด (string, required)custom_instructions: คำแนะนำเพิ่มเติมที่กำหนดเองเพื่อแนะนำ agent นอกเหนือจากเนื้อหา issue จะถูกละเว้นเมื่อ is_suggestion เป็น true (string, optional)is_suggestion: หากเป็น true จะบันทึก intent การมอบหมาย Copilot ที่รอดำเนินการแทนการเริ่ม agent การอนุมัติในภายหลังจะให้บริบทการเริ่มทำงาน base_ref และ custom_instructions จะถูกละเว้นในกรณีนี้ (boolean, required)issue_number: หมายเลข issue (number, required)owner: เจ้าของ repository (string, required)rationale: ประโยคสั้น ๆ หนึ่งประโยคที่อธิบายว่าอะไรใน issue ที่นำไปสู่การเลือก Copilot ระบุสัญญาณที่เป็นรูปธรรม (เช่น 'งานที่มีขอบเขตชัดเจนพร้อมเกณฑ์การยอมรับที่ชัดเจน') (string, required)repo: ชื่อ repository (string, required)
- OAuth Challenge Scopes:

Dependabot
-
get_dependabot_alert - รับการแจ้งเตือน Dependabot
- OAuth Challenge Scopes:
security_events alertNumber: หมายเลขของการแจ้งเตือน (number, required)owner: เจ้าของ repository (string, required)repo: ชื่อของ repository (string, required)
- OAuth Challenge Scopes:
-
list_dependabot_alerts - รายการการแจ้งเตือน Dependabot
- OAuth Challenge Scopes:
security_events after: Cursor สำหรับการแบ่งหน้า ใช้ cursor จากการตอบกลับก่อนหน้า (string, optional)owner: เจ้าของ repository (string, required)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)repo: ชื่อของ repository (string, required)severity: กรองการแจ้งเตือน Dependabot ตามความรุนแรง (string, optional)state: กรองการแจ้งเตือน Dependabot ตามสถานะ ค่าเริ่มต้นคือ open (string, optional)
- OAuth Challenge Scopes:

การสนทนา
-
discussion_comment_write - จัดการความคิดเห็นในการสนทนา
- OAuth Challenge Scopes:
repo body: เนื้อหาความคิดเห็น (จำเป็นสำหรับวิธี 'add', 'reply' และ 'update') (string, optional)commentNodeID: Node ID ของความคิดเห็นในการสนทนา (จำเป็นสำหรับวิธี 'reply', 'update', 'delete', 'mark_answer' และ 'unmark_answer') สำหรับ 'reply' นี่คือความคิดเห็นระดับบนสุดที่จะตอบกลับ GitHub Discussions รองรับการซ้อนเพียงระดับเดียวเท่านั้น (string, optional)discussionNumber: หมายเลขการสนทนา (จำเป็นสำหรับวิธี 'add' และ 'reply') (number, optional)method: การดำเนินการเขียนที่ต้องการทำกับความคิดเห็นในการสนทนา ตัวเลือกมีดังนี้:- 'add' - เพิ่มความคิดเห็นระดับบนสุดใหม่ในการสนทนา
- 'reply' - ตอบกลับความคิดเห็นระดับบนสุดในการสนทนา (GitHub Discussions รองรับการซ้อนเพียงระดับเดียวเท่านั้น)
- 'update' - อัปเดตความคิดเห็นในการสนทนาที่มีอยู่
- 'delete' - ลบความคิดเห็นในการสนทนา
- 'mark_answer' - ทำเครื่องหมายความคิดเห็นในการสนทนาเป็นคำตอบ (เฉพาะ Q&A)
- 'unmark_answer' - ยกเลิกการทำเครื่องหมายความคิดเห็นในการสนทนาเป็นคำตอบ (เฉพาะ Q&A) (string, required)
owner: เจ้าของ repository (จำเป็นสำหรับวิธี 'add' และ 'reply') (string, optional)repo: ชื่อ repository (จำเป็นสำหรับวิธี 'add' และ 'reply') (string, optional)
- OAuth Challenge Scopes:
-
get_discussion - รับการสนทนา
- OAuth Challenge Scopes:
repo discussionNumber: หมายเลขการสนทนา (number, required)owner: เจ้าของ repository (string, required)repo: ชื่อ repository (string, required)
- OAuth Challenge Scopes:
-
get_discussion_comments - รับความคิดเห็นในการสนทนา
- OAuth Challenge Scopes:
repo after: Cursor สำหรับการแบ่งหน้า ใช้ cursor จากการตอบกลับก่อนหน้า (string, optional)discussionNumber: หมายเลขการสนทนา (number, required)includeReplies: เมื่อเป็น true ความคิดเห็นระดับบนสุดแต่ละรายการจะรวมคำตอบที่ซ้อนอยู่ภายใน (สูงสุด 100 คำตอบต่อความคิดเห็น ซึ่งเป็นค่าสูงสุดของ GitHub API) ค่าเริ่มต้นคือ false (boolean, optional)owner: เจ้าของ repository (string, required)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)repo: ชื่อ repository (string, required)
- OAuth Challenge Scopes:
-
list_discussion_categories - รายการหมวดหมู่การสนทนา
- OAuth Challenge Scopes:
repo owner: เจ้าของ repository (string, required)repo: ชื่อ repository หากไม่ระบุ จะสอบถามหมวดหมู่การสนทนาที่ระดับองค์กร (string, optional)
- OAuth Challenge Scopes:
-
list_discussions - รายการการสนทนา
- OAuth Challenge Scopes:
repo after: Cursor สำหรับการแบ่งหน้า ใช้ cursor จากการตอบกลับก่อนหน้า (string, optional)category: ตัวกรองเพิ่มเติมตาม ID หมวดหมู่การสนทนา หากระบุ จะแสดงเฉพาะการสนทนาที่มีหมวดหมู่นี้ (string, optional)direction: ทิศทางการเรียงลำดับ (string, optional)orderBy: เรียงลำดับการสนทนาตามฟิลด์ หากระบุ ต้องระบุ 'direction' ด้วย (string, optional)owner: เจ้าของ repository (string, required)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)repo: ชื่อ repository หากไม่ระบุ จะสอบถามการสนทนาที่ระดับองค์กร (string, optional)
- OAuth Challenge Scopes:

Gists
-
create_gist - สร้าง Gist
- OAuth Challenge Scopes:
gist content: เนื้อหาสำหรับการสร้าง gist ไฟล์เดียวแบบง่าย (string, required)description: คำอธิบายของ gist (string, optional)filename: ชื่อไฟล์สำหรับการสร้าง gist ไฟล์เดียวแบบง่าย (string, required)public: ว่า gist เป็นสาธารณะหรือไม่ (boolean, optional)
- OAuth Challenge Scopes:
-
get_gist - รับเนื้อหา Gist
gist_id: ID ของ gist (string, required)
-
list_gists - รายการ Gists
page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)since: เฉพาะ gists ที่อัปเดตหลังเวลานี้ (timestamp ISO 8601) (string, optional)username: ชื่อผู้ใช้ GitHub (ละเว้นสำหรับ gists ของผู้ใช้ที่ผ่านการยืนยันตัวตน) (string, optional)
-
update_gist - อัปเดต Gist
- OAuth Challenge Scopes:
gist content: เนื้อหาสำหรับไฟล์ (string, required)description: คำอธิบายที่อัปเดตของ gist (string, optional)filename: ชื่อไฟล์ที่จะอัปเดตหรือสร้าง (string, required)gist_id: ID ของ gist ที่จะอัปเดต (string, required)
- OAuth Challenge Scopes:

Git
- **get_repository_tree** - รับโครงสร้างต้นไม้ของ repository
- **OAuth Challenge Scopes**: `repo`
- `owner`: เจ้าของ repository (ชื่อผู้ใช้หรือองค์กร) (string, required)
- `path_filter`: คำนำหน้าเส้นทางที่ไม่บังคับเพื่อกรองผลลัพธ์ของโครงสร้างต้นไม้ (เช่น 'src/' เพื่อแสดงเฉพาะไฟล์ในไดเรกทอรี src) (string, optional)
- `recursive`: การตั้งค่าพารามิเตอร์นี้เป็น true จะส่งคืนออบเจกต์หรือซับทรีที่อ้างอิงโดยทรี ค่าเริ่มต้นคือ false (boolean, optional)
- `repo`: ชื่อ repository (string, required)
- `tree_sha`: ค่า SHA1 หรือชื่อ ref (branch หรือ tag) ของทรี ค่าเริ่มต้นคือ branch เริ่มต้นของ repository (string, optional)

ปัญหา (Issues)
-
add_issue_comment - เพิ่มความคิดเห็นในปัญหาหรือ pull request
- OAuth Challenge Scopes:
repo body: เนื้อหาความคิดเห็น จำเป็นต้องระบุเว้นแต่จะมีการให้ reaction (string, optional)comment_id: ID ตัวเลขของความคิดเห็นในปัญหาหรือ pull request ที่จะทำ reaction ใช้สำหรับ reaction ต่อความคิดเห็น ละเว้นเพื่อทำ reaction ต่อปัญหาหรือ pull request เอง ไม่สามารถใช้ร่วมกับ body ได้ (integer, optional)issue_number: หมายเลขปัญหาหรือ pull request ที่จะแสดงความคิดเห็นหรือทำ reaction (number, required)owner: เจ้าของ repository (string, required)reaction: reaction อีโมจิที่จะเพิ่ม จำเป็นต้องระบุเว้นแต่จะมีการให้ body (string, optional)repo: ชื่อ repository (string, required)
- OAuth Challenge Scopes:
-
get_label - รับป้ายกำกับเฉพาะจาก repository
- OAuth Challenge Scopes:
repo name: ชื่อป้ายกำกับ (string, required)owner: เจ้าของ repository (ชื่อผู้ใช้หรือชื่อองค์กร) (string, required)repo: ชื่อ repository (string, required)
- OAuth Challenge Scopes:
-
issue_read - รับรายละเอียดปัญหา
- OAuth Challenge Scopes:
repo issue_number: หมายเลขของปัญหา (number, required)method: การดำเนินการอ่านที่ต้องทำกับปัญหาเดียว ตัวเลือกมีดังนี้:- get - รับรายละเอียดปัญหา นอกจากนี้ยังส่งคืนแฟลกลำดับชั้นแบบ best-effort (
has_parent,has_children);parentและsub_issues_summaryเป็นสรุปความสัมพันธ์แบบไม่บังคับ และclosed_by_pull_requestsสรุป pull requests ที่กำหนดค่าให้ปิดปัญหาเป็นtotal_countบวกกับreferencesสูงสุด 5 รายการ - get_comments - รับความคิดเห็นของปัญหา
- get_sub_issues - รับปัญหาย่อย (ลูก) ของปัญหา
- get_parent - รับปัญหาหลัก หากปัญหานี้เป็นปัญหาย่อยของปัญหาอื่น
- get_labels - รับป้ายกำกับที่กำหนดให้กับปัญหา (string, required)
- get - รับรายละเอียดปัญหา นอกจากนี้ยังส่งคืนแฟลกลำดับชั้นแบบ best-effort (
owner: เจ้าของ repository (string, required)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)repo: ชื่อของ repository (string, required)
- OAuth Challenge Scopes:
-
issue_write - สร้างหรืออัปเดตปัญหา/pull request
- OAuth Challenge Scopes:
repo assignees: ชื่อผู้ใช้ที่จะกำหนดให้กับปัญหานี้ (string[], optional)body: เนื้อหาของปัญหา (string, optional)duplicate_of: หมายเลขปัญหาที่ปัญหานี้เป็นสำเนาซ้ำ จำเป็นต้องระบุเมื่อ state_reason เป็น 'duplicate' (number, optional)issue_fields: ค่าฟิลด์ของปัญหาที่จะตั้งหรือล้าง แต่ละรายการต้องมี 'field_name' และหนึ่งใน 'value', 'field_option_name' หรือ 'delete: true' (object[], optional)issue_number: หมายเลขปัญหาที่จะอัปเดต (number, optional)labels: ป้ายกำกับที่จะใช้กับปัญหานี้ (string[], optional)method: การดำเนินการเขียนที่ต้องทำกับปัญหาเดียว ตัวเลือกมีดังนี้:- 'create' - สร้างปัญหาใหม่
- 'update' - อัปเดตปัญหาที่มีอยู่ (string, required)
milestone: หมายเลข milestone (number, optional)owner: เจ้าของ repository (string, required)parent_issue_number: หมายเลขปัญหาของปัญหาหลัก ใช้เฉพาะเมื่อ method เป็น 'create' และไม่สามารถใช้ร่วมกับ issue_fields ได้ ปัญหาใหม่จะถูกสร้างและแนบกับปัญหาหลักนี้ในการดำเนินการเดียวกัน (number, optional)parent_owner: เจ้าของ repository ของปัญหาหลัก ต้องระบุพร้อมกับ parent_repo ละเว้นทั้งสองเพื่อใช้ owner และ repo ใช้เฉพาะเมื่อ method เป็น 'create' และมีการระบุ parent_issue_number (string, optional)parent_repo: ชื่อ repository ของปัญหาหลัก ต้องระบุพร้อมกับ parent_owner ละเว้นทั้งสองเพื่อใช้ owner และ repo ใช้เฉพาะเมื่อ method เป็น 'create' และมีการระบุ parent_issue_number (string, optional)repo: ชื่อ repository (string, required)state: สถานะใหม่ (string, optional)state_reason: เหตุผลสำหรับการเปลี่ยนสถานะ จะถูกละเว้นเว้นแต่จะมีการเปลี่ยนสถานะ (string, optional)title: ชื่อเรื่องของปัญหา (string, optional)type: ประเภทของปัญหานี้ สำหรับการอัปเดต ให้ส่ง null เพื่อลบประเภทปัจจุบัน ใช้เฉพาะเมื่อเปิดใช้งานประเภทปัญหาสำหรับ repository นี้ ใช้ list_issue_types เพื่อรับค่าประเภทที่ถูกต้องสำหรับ repository นี้หรือองค์กรเจ้าของ หาก repository ไม่รองรับประเภทปัญหา ให้ละเว้นพารามิเตอร์นี้ (string | null, optional)
- OAuth Challenge Scopes:
-
list_issue_fields - แสดงรายการฟิลด์ปัญหา
- OAuth Challenge Scopes:
repo,read:org owner: เจ้าของบัญชีของ repository หรือองค์กร ชื่อไม่คำนึงถึงตัวพิมพ์ใหญ่เล็ก (string, required)repo: ชื่อของ repository เมื่อระบุ จะส่งคืนฟิลด์สำหรับ repository เฉพาะนี้ (สืบทอดจากองค์กร) เมื่อละเว้น จะส่งคืนฟิลด์ระดับองค์กรโดยตรง (string, optional)
- OAuth Challenge Scopes:
-
list_issue_types - แสดงรายการประเภทปัญหาที่มี
- OAuth Challenge Scopes:
repo,read:org owner: เจ้าของบัญชีของ repository หรือองค์กร (string, required)repo: ชื่อของ repository เมื่อระบุ จะส่งคืนประเภทปัญหาสำหรับ repository เฉพาะนี้ เมื่อละเว้น จะส่งคืนประเภทปัญหาระดับองค์กรโดยตรง (string, optional)
- OAuth Challenge Scopes:
-
list_issues - แสดงรายการปัญหา
- OAuth Challenge Scopes:
repo after: เคอร์เซอร์สำหรับการแบ่งหน้า ใช้เคอร์เซอร์จากการตอบกลับก่อนหน้า (string, optional)direction: ทิศทางการเรียงลำดับ หากระบุ ต้องระบุ 'orderBy' ด้วย (string, optional)field_filters: กรองตามค่าฟิลด์ปัญหาที่กำหนดเอง แต่ละรายการรับ field_name และค่า เซิร์ฟเวอร์ค้นหาฟิลด์และแปลงค่าเป็นประเภทของฟิลด์นั้น (ชื่อตัวเลือกแบบเลือกเดียว, ข้อความ, ตัวเลข หรือวันที่ YYYY-MM-DD) (object[], optional)fields: ชุดย่อยของฟิลด์ที่จะส่งคืนสำหรับแต่ละปัญหา หากละเว้น จะส่งคืนฟิลด์ทั้งหมด ใช้เพื่อลดขนาดการตอบกลับเมื่อคุณต้องการเฉพาะฟิลด์บางอย่าง การละเว้น 'body' และ 'field_values' โดยเฉพาะจะลดข้อมูลที่ใหญ่ที่สุดต่อผลลัพธ์ (string[], optional)labels: กรองตามป้ายกำกับ (string[], optional)orderBy: เรียงลำดับปัญหาตามฟิลด์ หากระบุ ต้องระบุ 'direction' ด้วย (string, optional)owner: เจ้าของ repository (string, required)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)repo: ชื่อ repository (string, required)since: กรองตามวันที่ (timestamp ISO 8601) (string, optional)state: กรองตามสถานะ โดยค่าเริ่มต้นจะส่งคืนทั้งปัญหาที่เปิดและปิดเมื่อไม่ระบุ (string, optional)
- OAuth Challenge Scopes:
-
search_issues - ค้นหาปัญหา
- OAuth Challenge Scopes:
repo fields: ชุดย่อยของฟิลด์ที่จะส่งคืนสำหรับแต่ละผลลัพธ์ปัญหา หากละเว้น จะส่งคืนฟิลด์ทั้งหมด ใช้เพื่อลดขนาดการตอบกลับเมื่อคุณต้องการเฉพาะฟิลด์บางอย่าง การละเว้น 'body', 'reactions' และ 'labels' โดยเฉพาะจะลดข้อมูลที่ใหญ่ที่สุดต่อผลลัพธ์ (string[], optional)order: ลำดับการเรียงลำดับ (string, optional)owner: เจ้าของ repository ที่ไม่บังคับ หากระบุพร้อมกับ repo จะแสดงเฉพาะปัญหาสำหรับ repository นี้ (string, optional)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)query: คำค้นหา เป็นภาษาธรรมชาติ เมื่อผู้ใช้ให้คำที่ใช้แทนได้ ให้รวมเป็นคำธรรมดาแทนที่จะเชื่อมด้วย OR (string, required)repo: ชื่อ repository ที่ไม่บังคับ หากระบุพร้อมกับ owner จะแสดงเฉพาะปัญหาสำหรับ repository นี้ (string, optional)sort: ฟิลด์การเรียงลำดับตามจำนวนการตรงกันของหมวดหมู่ ค่าเริ่มต้นคือการตรงกันที่ดีที่สุด (string, optional)
- OAuth Challenge Scopes:
-
sub_issue_write - เปลี่ยนปัญหาย่อย
- OAuth Challenge Scopes:
repo after_id: ID ของปัญหาย่อยที่จะจัดลำดับความสำคัญรองลงมา (ควรระบุ after_id หรือ before_id อย่างใดอย่างหนึ่ง) (number, optional)before_id: ID ของปัญหาย่อยที่จะจัดลำดับความสำคัญก่อน (ควรระบุ after_id หรือ before_id อย่างใดอย่างหนึ่ง) (number, optional)issue_number: หมายเลขของปัญหาหลัก (number, required)method: การดำเนินการที่ต้องทำกับปัญหาย่อยเดียว ตัวเลือกมีดังนี้:- 'add' - เพิ่มปัญหาย่อยให้กับปัญหาหลักใน repository GitHub
- 'remove' - ลบปัญหาย่อยออกจากปัญหาหลักใน repository GitHub
- 'reprioritize' - เปลี่ยนลำดับของปัญหาย่อยภายในปัญหาหลักใน repository GitHub ใช้ 'after_id' หรือ 'before_id' เพื่อระบุตำแหน่งใหม่
เขียนลำดับชั้นของปัญหา หากต้องการย้ายปัญหาย่อยไปยังปัญหาหลักใหม่ ให้ใช้
addกับreplace_parent=true; ไม่มีฟิลด์ parent ที่เขียนได้ (string, required)
owner: เจ้าของ repository (string, required)replace_parent: เมื่อเป็น true จะแทนที่ปัญหาหลักปัจจุบันของปัญหาย่อย ใช้กับ method 'add' เท่านั้น (boolean, optional)repo: ชื่อ repository (string, required)sub_issue_id: ID ของปัญหาย่อยที่จะเพิ่ม ID ไม่เหมือนกับหมายเลขปัญหา (number, required)
- OAuth Challenge Scopes:

ป้ายกำกับ (Labels)
-
get_label - รับป้ายกำกับเฉพาะจาก repository
- OAuth Challenge Scopes:
repo name: ชื่อป้ายกำกับ (string, required)owner: เจ้าของ repository (ชื่อผู้ใช้หรือชื่อองค์กร) (string, required)repo: ชื่อ repository (string, required)
- OAuth Challenge Scopes:
-
label_write - การดำเนินการเขียนบนป้ายกำกับของ repository
- OAuth Challenge Scopes:
repo color: สีของป้ายกำกับเป็นรหัส hex 6 ตัวอักษรโดยไม่มีคำนำหน้า '#' (เช่น 'f29513') จำเป็นสำหรับ 'create' ไม่บังคับสำหรับ 'update' (string, optional)description: ข้อความคำอธิบายป้ายกำกับ ไม่บังคับสำหรับ 'create' และ 'update' (string, optional)method: การดำเนินการที่ต้องทำ: 'create', 'update' หรือ 'delete' (string, required)name: ชื่อป้ายกำกับ - จำเป็นสำหรับทุกการดำเนินการ (string, required)new_name: ชื่อใหม่สำหรับป้ายกำกับ (ใช้เฉพาะกับ method 'update' เพื่อเปลี่ยนชื่อ) (string, optional)owner: เจ้าของ repository (ชื่อผู้ใช้หรือชื่อองค์กร) (string, required)repo: ชื่อ repository (string, required)
- OAuth Challenge Scopes:
-
list_label - แสดงรายการป้ายกำกับจาก repository
- OAuth Challenge Scopes:
repo owner: เจ้าของ repository (ชื่อผู้ใช้หรือชื่อองค์กร) - จำเป็นสำหรับทุกการดำเนินการ (string, required)repo: ชื่อ repository - จำเป็นสำหรับทุกการดำเนินการ (string, required)
- OAuth Challenge Scopes:

การแจ้งเตือน (Notifications)
- **dismiss_notification** - ปิดการแจ้งเตือน
- **OAuth Challenge Scopes**: `notifications`
- `state`: สถานะใหม่ของการแจ้งเตือน (อ่านแล้ว/เสร็จสิ้น) (string, required)
- `threadID`: ID ของเธรดการแจ้งเตือน (string, required)
-
get_notification_details - ดูรายละเอียดการแจ้งเตือน
- OAuth Challenge Scopes:
notifications notificationID: ID ของการแจ้งเตือน (string, required)
- OAuth Challenge Scopes:
-
list_notifications - รายการการแจ้งเตือน
- OAuth Challenge Scopes:
notifications before: แสดงเฉพาะการแจ้งเตือนที่อัปเดตก่อนเวลาที่กำหนด (รูปแบบ ISO 8601) (string, optional)filter: กรองการแจ้งเตือน ใช้ค่าเริ่มต้นเว้นแต่ระบุไว้ การแจ้งเตือนที่อ่านแล้วคือการแจ้งเตือนที่ผู้ใช้รับทราบแล้ว การแจ้งเตือนแบบมีส่วนร่วมคือการแจ้งเตือนที่ผู้ใช้เกี่ยวข้องโดยตรง เช่น ปัญหาหรือคำขอดึงที่ผู้ใช้แสดงความคิดเห็นหรือสร้างขึ้น (string, optional)owner: เจ้าของพื้นที่เก็บข้อมูล (ไม่บังคับ) หากระบุพร้อมกับ repo จะแสดงเฉพาะการแจ้งเตือนสำหรับพื้นที่เก็บข้อมูลนี้ (string, optional)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)repo: ชื่อพื้นที่เก็บข้อมูล (ไม่บังคับ) หากระบุพร้อมกับ owner จะแสดงเฉพาะการแจ้งเตือนสำหรับพื้นที่เก็บข้อมูลนี้ (string, optional)since: แสดงเฉพาะการแจ้งเตือนที่อัปเดตหลังเวลาที่กำหนด (รูปแบบ ISO 8601) (string, optional)
- OAuth Challenge Scopes:
-
manage_notification_subscription - จัดการการสมัครรับการแจ้งเตือน
- OAuth Challenge Scopes:
notifications action: การดำเนินการที่ต้องทำ: ละเว้น ดู หรือลบการสมัครรับการแจ้งเตือน (string, required)notificationID: ID ของเธรดการแจ้งเตือน (string, required)
- OAuth Challenge Scopes:
-
manage_repository_notification_subscription - จัดการการสมัครรับการแจ้งเตือนของพื้นที่เก็บข้อมูล
- OAuth Challenge Scopes:
notifications action: การดำเนินการที่ต้องทำ: ละเว้น ดู หรือลบการสมัครรับการแจ้งเตือนของพื้นที่เก็บข้อมูล (string, required)owner: เจ้าของบัญชีของพื้นที่เก็บข้อมูล (string, required)repo: ชื่อของพื้นที่เก็บข้อมูล (string, required)
- OAuth Challenge Scopes:
-
mark_all_notifications_read - ทำเครื่องหมายการแจ้งเตือนทั้งหมดว่าอ่านแล้ว
- OAuth Challenge Scopes:
notifications lastReadAt: อธิบายจุดสุดท้ายที่ตรวจสอบการแจ้งเตือน (ไม่บังคับ) ค่าเริ่มต้น: ตอนนี้ (string, optional)owner: เจ้าของพื้นที่เก็บข้อมูล (ไม่บังคับ) หากระบุพร้อมกับ repo จะทำเครื่องหมายเฉพาะการแจ้งเตือนสำหรับพื้นที่เก็บข้อมูลนี้ว่าอ่านแล้ว (string, optional)repo: ชื่อพื้นที่เก็บข้อมูล (ไม่บังคับ) หากระบุพร้อมกับ owner จะทำเครื่องหมายเฉพาะการแจ้งเตือนสำหรับพื้นที่เก็บข้อมูลนี้ว่าอ่านแล้ว (string, optional)
- OAuth Challenge Scopes:

องค์กร
- search_orgs - ค้นหาองค์กร
- OAuth Challenge Scopes:
read:org order: ลำดับการจัดเรียง (string, optional)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)query: คำค้นหาองค์กร ตัวอย่าง: 'microsoft', 'location:california', 'created:>=2025-01-01' การค้นหาจะจำกัดขอบเขตเป็น type:org โดยอัตโนมัติ (string, required)sort: ฟิลด์การจัดเรียงตามหมวดหมู่ (string, optional)
- OAuth Challenge Scopes:

โปรเจกต์
-
projects_get - ดูรายละเอียดทรัพยากร GitHub Projects
- OAuth Challenge Scopes:
read:project field_id: ID ของฟิลด์ จำเป็นสำหรับเมธอด 'get_project_field' (number, optional)field_names: รายการชื่อฟิลด์เฉพาะที่จะรวมในคำตอบเมื่อดึงรายการโปรเจกต์ (เช่น ["Status", "Priority"]) แปลงเป็น ID ฟิลด์ฝั่งเซิร์ฟเวอร์ — ใช้ค่านี้แทน 'fields' เมื่อคุณรู้เฉพาะชื่อที่อ่านได้ของมนุษย์ ไม่สามารถใช้ร่วมกับ 'fields' — ระบุเพียงอย่างใดอย่างหนึ่ง ใช้เฉพาะกับเมธอด 'get_project_item' (string[], optional)fields: รายการ ID ฟิลด์เฉพาะที่จะรวมในคำตอบเมื่อดึงรายการโปรเจกต์ (เช่น ["102589", "985201", "169875"]) หากไม่ระบุ 'fields' หรือ 'field_names' จะรวมเฉพาะฟิลด์ชื่อเรื่อง ไม่สามารถใช้ร่วมกับ 'field_names' — ระบุเพียงอย่างใดอย่างหนึ่ง ใช้เฉพาะกับเมธอด 'get_project_item' (string[], optional)item_id: ID ของรายการ จำเป็นสำหรับเมธอด 'get_project_item' (number, optional)method: เมธอดที่จะดำเนินการ (string, required)owner: เจ้าของ (ชื่อผู้ใช้หรือองค์กร) ชื่อไม่คำนึงถึงตัวพิมพ์ใหญ่เล็ก (string, optional)owner_type: ประเภทเจ้าของ (ผู้ใช้หรือองค์กร) หากไม่ระบุ จะตรวจจับโดยอัตโนมัติ (string, optional)project_number: หมายเลขของโปรเจกต์ (number, optional)status_update_id: ID โหนดของการอัปเดตสถานะโปรเจกต์ จำเป็นสำหรับเมธอด 'get_project_status_update' (string, optional)view_id: ID โหนดของมุมมองโปรเจกต์ จำเป็นสำหรับเมธอด 'get_project_view' (string, optional)
- OAuth Challenge Scopes:
-
projects_list - รายการทรัพยากร GitHub Projects
- OAuth Challenge Scopes:
read:project after: เคอร์เซอร์แบ่งหน้าไปข้างหน้าจาก pageInfo.nextCursor ของหน้าก่อนหน้า (string, optional)before: เคอร์เซอร์แบ่งหน้าย้อนหลังจาก pageInfo.prevCursor ของหน้าก่อนหน้า (พบได้น้อย) (string, optional)field_names: ชื่อฟิลด์ที่จะรวมเมื่อแสดงรายการรายการโปรเจกต์ (เช่น ["Status", "Priority"]) แปลงเป็น ID ฟิลด์ฝั่งเซิร์ฟเวอร์ — ใช้ค่านี้แทน 'fields' เมื่อคุณรู้เฉพาะชื่อที่อ่านได้ของมนุษย์ ชื่อที่ไม่สามารถแปลงได้จะส่งคืนข้อผิดพลาดแบบมีโครงสร้าง ไม่สามารถใช้ร่วมกับ 'fields' — ระบุเพียงอย่างใดอย่างหนึ่ง ใช้เฉพาะกับเมธอด 'list_project_items' (string[], optional)fields: ID ฟิลด์ที่จะรวมเมื่อแสดงรายการรายการโปรเจกต์ (เช่น ["102589", "985201"]) สำคัญมาก: ระบุเสมอเพื่อรับค่าฟิลด์ หากไม่ระบุ (และไม่ระบุ 'field_names') จะส่งคืนเฉพาะชื่อเรื่อง ไม่สามารถใช้ร่วมกับ 'field_names' — ระบุเพียงอย่างใดอย่างหนึ่ง ใช้เฉพาะกับเมธอด 'list_project_items' (string[], optional)method: การดำเนินการที่จะดำเนินการ (string, required)owner: เจ้าของ (ชื่อผู้ใช้หรือองค์กร) ชื่อไม่คำนึงถึงตัวพิมพ์ใหญ่เล็ก (string, required)owner_type: ประเภทเจ้าของ (ผู้ใช้หรือองค์กร) หากไม่ระบุ จะลองทั้งสองแบบโดยอัตโนมัติ (string, optional)per_page: ผลลัพธ์ต่อหน้า (สูงสุด 50) (number, optional)project_number: หมายเลขของโปรเจกต์ จำเป็นสำหรับเมธอด 'list_project_fields', 'list_project_items', 'list_project_views' และ 'list_project_status_updates' (number, optional)query: สตริงตัวกรอง/คำค้นหา สำหรับ list_projects: กรองตามข้อความชื่อเรื่องและสถานะ (เช่น "roadmap is:open") สำหรับ list_project_items: การกรองขั้นสูงโดยใช้ไวยากรณ์การกรองโปรเจกต์ของ GitHub (string, optional)
- OAuth Challenge Scopes:
-
projects_write - จัดการ GitHub Projects
- OAuth Challenge Scopes:
project body: เนื้อหาของการอัปเดตสถานะ (markdown) ใช้สำหรับเมธอด 'create_project_status_update' (string, optional)field_name: ชื่อของฟิลด์ iteration (เช่น 'Sprint') จำเป็นสำหรับเมธอด 'create_iteration_field' (string, optional)filter: ตัวกรองมุมมองที่บันทึกไว้ ละเว้นเมื่ออัปเดตเพื่อรักษาไว้ หรือส่ง null เพื่อล้าง (string | null, optional)issue_number: หมายเลขปัญหา จำเป็นสำหรับ 'add_project_item' เมื่อ item_type เป็น 'issue' ยังยอมรับโดย 'update_project_item' เพื่อค้นหารายการตามหมายเลขปัญหา (รวมกับ item_owner และ item_repo) (number, optional)item_id: ID รายการโปรเจกต์ จำเป็นสำหรับ 'delete_project_item' สำหรับ 'update_project_item' ระบุ item_id หรือ (item_owner + item_repo + issue_number) เพื่อค้นหารายการตามปัญหา (number, optional)item_owner: เจ้าของ (ผู้ใช้หรือองค์กร) ของพื้นที่เก็บข้อมูลที่มีปัญหาหรือคำขอดึง จำเป็นสำหรับเมธอด 'add_project_item' ยอมรับโดย 'update_project_item' เมื่อค้นหารายการตามหมายเลขปัญหา (string, optional)item_repo: ชื่อของพื้นที่เก็บข้อมูลที่มีปัญหาหรือคำขอดึง จำเป็นสำหรับเมธอด 'add_project_item' ยอมรับโดย 'update_project_item' เมื่อค้นหารายการตามหมายเลขปัญหา (string, optional)item_type: ประเภทของรายการ ไม่ว่าเป็น issue หรือ pull_request จำเป็นสำหรับเมธอด 'add_project_item' (string, optional)items: รายการที่จะอัปเดตด้วย 'updated_field' ระดับบน จำเป็นสำหรับ 'update_project_items' ควรใช้แทนการเรียก 'update_project_item' ในลูป แต่ละรายการต้องตรงกับรูปแบบอ้างอิงเดียว: 'node_id', 'item_id' เชิงตัวเลข หรือ 'item_owner' + 'item_repo' + 'issue_number' จำกัด: 50 รายการต่อการเรียก (object[], optional)iteration_duration: ระยะเวลาเป็นวันสำหรับ iteration ของฟิลด์ (เช่น 7 สำหรับรายสัปดาห์, 14 สำหรับรายปักษ์) จำเป็นสำหรับเมธอด 'create_iteration_field' (number, optional)iterations: iteration ที่กำหนดเองสำหรับเมธอด 'create_iteration_field' ตั้งค่าเฉพาะเมื่อคุณต้องการ iteration ที่มีระยะเวลาแตกต่างกัน ช่องว่างระหว่าง หรือชื่อเฉพาะ มิฉะนั้นละเว้น: GitHub สร้างสาม iteration ของ 'iteration_duration' วันโดยอัตโนมัติเริ่มจาก 'start_date' ซึ่งเป็นตัวเลือกที่ถูกต้องสำหรับกรณีส่วนใหญ่ (object[], optional)layout: เค้าโครงมุมมอง จำเป็นเมื่อสร้างมุมมอง (string, optional)method: เมธอดที่จะดำเนินการ (string, required)name: ชื่อมุมมอง จำเป็นเมื่อสร้างมุมมอง (string, optional)owner: เจ้าของโปรเจกต์ (ชื่อผู้ใช้หรือองค์กร) ชื่อไม่คำนึงถึงตัวพิมพ์ใหญ่เล็ก (string, required)owner_type: ประเภทเจ้าของ (ผู้ใช้หรือองค์กร) จำเป็นสำหรับเมธอด 'create_project' หากไม่ระบุสำหรับเมธอดอื่น จะตรวจจับโดยอัตโนมัติ (string, optional)project_number: หมายเลขของโปรเจกต์ จำเป็นสำหรับทุกเมธอดยกเว้น 'create_project' (number, optional)pull_request_number: หมายเลขคำขอดึง (ใช้เมื่อ item_type เป็น 'pull_request' สำหรับเมธอด 'add_project_item') ระบุ issue_number หรือ pull_request_number (number, optional)start_date: วันที่เริ่มต้นในรูปแบบ YYYY-MM-DD ใช้สำหรับเมธอด 'create_project_status_update' และ 'create_iteration_field' (string, optional)status: สถานะของโปรเจกต์ ใช้สำหรับเมธอด 'create_project_status_update' (string, optional)target_date: วันที่เป้าหมายของการอัปเดตสถานะในรูปแบบ YYYY-MM-DD ใช้สำหรับเมธอด 'create_project_status_update' (string, optional)title: ชื่อเรื่องของโปรเจกต์ จำเป็นสำหรับเมธอด 'create_project' (string, optional)updated_field: ฟิลด์/ค่าที่จะใช้ โดยใช้ {"id": 123, "value": ...} หรือ {"name": "Status", "value": ...}; null ล้างฟิลด์ จำเป็นสำหรับ 'update_project_item' และ 'update_project_items' โดยที่ฟิลด์/ค่าระดับบนหนึ่งรายการใช้กับทุกรายการในชุด สำหรับฟิลด์ SINGLE_SELECT ของ 'update_project_item' รูปแบบชื่อยอมรับชื่อตัวเลือก รูปแบบ ID คาดหวัง ID ตัวเลือก (object, optional)view_id: ID โหนดมุมมองโปรเจกต์สำหรับอัปเดตหรือลบ ต้องเป็นของ owner/project_number (string, optional)visible_field_names: ชื่อฟิลด์โปรเจกต์ที่เรียงลำดับเพื่อแสดงเมื่อสร้างหรือแทนที่เมื่ออัปเดต ละเว้นเมื่ออัปเดตเพื่อรักษาไว้ หรือส่ง [] เพื่อรีเซ็ต ไม่สามารถใช้ร่วมกับ visible_fields Roadmap ยอมรับเฉพาะ [] (string[], optional)visible_fields: ID ฐานข้อมูลฟิลด์โปรเจกต์ที่เรียงลำดับเพื่อแสดงเมื่อสร้างหรือแทนที่เมื่ออัปเดต ละเว้นเมื่ออัปเดตเพื่อรักษาไว้ หรือส่ง [] เพื่อรีเซ็ต ไม่สามารถใช้ร่วมกับ visible_field_names Roadmap ยอมรับเฉพาะ [] (string[], optional)
- OAuth Challenge Scopes:

Pull Requests
-
add_comment_to_pending_review - เพิ่มความคิดเห็นรีวิวไปยังรีวิว pull request ที่รอดำเนินการล่าสุดของผู้ร้องขอ
- OAuth Challenge Scopes:
repo body: ข้อความของความคิดเห็นรีวิว (สตริง, จำเป็น)line: บรรทัดของ blob ใน diff ของ pull request ที่ความคิดเห็นใช้กับ สำหรับความคิดเห็นหลายบรรทัด ให้ใช้บรรทัดสุดท้ายของช่วง (ตัวเลข, ไม่บังคับ)owner: เจ้าของ repository (สตริง, จำเป็น)path: เส้นทางสัมพัทธ์ไปยังไฟล์ที่ต้องการความคิดเห็น (สตริง, จำเป็น)pullNumber: หมายเลข pull request (ตัวเลข, จำเป็น)repo: ชื่อ repository (สตริง, จำเป็น)side: ด้านของ diff ที่จะแสดงความคิดเห็น LEFT หมายถึงสถานะก่อนหน้า RIGHT หมายถึงสถานะใหม่ (สตริง, ไม่บังคับ)startLine: สำหรับความคิดเห็นหลายบรรทัด บรรทัดแรกของช่วงที่ความคิดเห็นใช้กับ (ตัวเลข, ไม่บังคับ)startSide: สำหรับความคิดเห็นหลายบรรทัด ด้านเริ่มต้นของ diff ที่ความคิดเห็นใช้กับ LEFT หมายถึงสถานะก่อนหน้า RIGHT หมายถึงสถานะใหม่ (สตริง, ไม่บังคับ)subjectType: ระดับที่ความคิดเห็นถูกกำหนดเป้าหมาย (สตริง, จำเป็น)
- OAuth Challenge Scopes:
-
add_reply_to_pull_request_comment - เพิ่มการตอบกลับไปยังความคิดเห็น pull request
- OAuth Challenge Scopes:
repo body: ข้อความของการตอบกลับ จำเป็นเว้นแต่จะมีการระบุ reaction (สตริง, ไม่บังคับ)commentId: ID ตัวเลขของความคิดเห็นรีวิว pull request ที่จะตอบกลับหรือแสดง reaction ใช้ตัวเลขจาก anchor #discussion_r... ไม่ใช่ GraphQL thread node ID (PRRT_...) (ตัวเลข, จำเป็น)owner: เจ้าของ repository (สตริง, จำเป็น)pullNumber: หมายเลข pull request จำเป็นเมื่อมีการระบุ body (ตัวเลข, ไม่บังคับ)reaction: Emoji reaction ที่จะเพิ่ม จำเป็นเว้นแต่จะมีการระบุ body (สตริง, ไม่บังคับ)repo: ชื่อ repository (สตริง, จำเป็น)
- OAuth Challenge Scopes:
-
create_pull_request - เปิด pull request ใหม่
- OAuth Challenge Scopes:
repo base: สาขาที่จะ merge เข้าไป (สตริง, จำเป็น)body: คำอธิบาย PR (สตริง, ไม่บังคับ)draft: สร้างเป็น PR แบบร่าง (draft) (บูลีน, ไม่บังคับ)head: สาขาที่มีการเปลี่ยนแปลง (สตริง, จำเป็น)maintainer_can_modify: อนุญาตให้ผู้ดูแลแก้ไข (บูลีน, ไม่บังคับ)owner: เจ้าของ repository (สตริง, จำเป็น)repo: ชื่อ repository (สตริง, จำเป็น)reviewers: ชื่อผู้ใช้ GitHub หรือผู้รีวิวทีม ORG/team-slug ที่จะขอรีวิว (สตริง[], ไม่บังคับ)title: ชื่อ PR (สตริง, จำเป็น)
- OAuth Challenge Scopes:
-
list_pull_requests - แสดงรายการ pull requests
- OAuth Challenge Scopes:
repo base: กรองตามสาขาฐาน (สตริง, ไม่บังคับ)direction: ทิศทางการเรียงลำดับ (สตริง, ไม่บังคับ)fields: ชุดย่อยของฟิลด์ที่จะส่งคืนสำหรับแต่ละ pull request หากละเว้น จะส่งคืนฟิลด์ทั้งหมด ใช้เพื่อลดขนาดการตอบสนองเมื่อคุณต้องการเฉพาะฟิลด์บางอย่าง การละเว้น 'body' โดยเฉพาะจะลดข้อมูลที่ใหญ่ที่สุดต่อผลลัพธ์ (สตริง[], ไม่บังคับ)head: กรองตามผู้ใช้/องค์กร head และสาขา (สตริง, ไม่บังคับ)owner: เจ้าของ repository (สตริง, จำเป็น)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (ตัวเลข, ไม่บังคับ)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (ตัวเลข, ไม่บังคับ)repo: ชื่อ repository (สตริง, จำเป็น)sort: เรียงตาม (สตริง, ไม่บังคับ)state: กรองตามสถานะ (สตริง, ไม่บังคับ)
- OAuth Challenge Scopes:
-
merge_pull_request - Merge pull request
- OAuth Challenge Scopes:
repo commit_message: รายละเอียดเพิ่มเติมสำหรับ merge commit (สตริง, ไม่บังคับ)commit_title: ชื่อสำหรับ merge commit (สตริง, ไม่บังคับ)merge_method: วิธีการ merge (สตริง, ไม่บังคับ)owner: เจ้าของ repository (สตริง, จำเป็น)pullNumber: หมายเลข pull request (ตัวเลข, จำเป็น)repo: ชื่อ repository (สตริง, จำเป็น)
- OAuth Challenge Scopes:
-
pull_request_read - รับรายละเอียดสำหรับ pull request เดี่ยว
- OAuth Challenge Scopes:
repo after: Cursor สำหรับการแบ่งหน้า ใช้เฉพาะกับเมธอด get_review_comments ส่ง endCursor จาก PageInfo ของหน้าก่อนหน้าเพื่อดึงหน้าถัดไป (สตริง, ไม่บังคับ)method: การดำเนินการเพื่อระบุว่าข้อมูล pull request ใดที่ต้องดึงจาก GitHub ตัวเลือกที่เป็นไปได้:- get - รับรายละเอียดของ pull request ที่ระบุ
- get_diff - รับ diff ของ pull request
- get_status - รับสถานะ commit รวมของ head commit ใน pull request
- get_files - รับรายการไฟล์ที่เปลี่ยนแปลงใน pull request ใช้กับพารามิเตอร์การแบ่งหน้าเพื่อควบคุมจำนวนผลลัพธ์ที่ส่งคืน
- get_commits - รับรายการ commits บน pull request ใช้กับพารามิเตอร์การแบ่งหน้าเพื่อควบคุมจำนวนผลลัพธ์ที่ส่งคืน
- get_review_comments - รับเธรดรีวิวบน pull request แต่ละเธรดประกอบด้วยความคิดเห็นรีวิวที่จัดกลุ่มตามตรรกะที่ทำบนตำแหน่งโค้ดเดียวกันระหว่างการรีวิว pull request ส่งคืนเธรดพร้อม metadata (isResolved, isOutdated, isCollapsed) และความคิดเห็นที่เกี่ยวข้อง ใช้การแบ่งหน้าตาม cursor (perPage, after) เพื่อควบคุมผลลัพธ์
- get_reviews - รับรีวิวบน pull request เมื่อถูกขอความคิดเห็นรีวิว ให้ใช้เมธอด get_review_comments ใช้กับพารามิเตอร์การแบ่งหน้าเพื่อควบคุมจำนวนผลลัพธ์ที่ส่งคืน
- get_comments - รับความคิดเห็นบน pull request ใช้หากผู้ใช้ไม่ต้องการความคิดเห็นรีวิวโดยเฉพาะ ใช้กับพารามิเตอร์การแบ่งหน้าเพื่อควบคุมจำนวนผลลัพธ์ที่ส่งคืน
- get_check_runs - รับ check runs สำหรับ head commit ของ pull request Check runs คืองานและตรวจสอบ CI/CD แต่ละรายการที่ทำงานบน PR (สตริง, จำเป็น)
owner: เจ้าของ repository (สตริง, จำเป็น)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (ตัวเลข, ไม่บังคับ)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (ตัวเลข, ไม่บังคับ)pullNumber: หมายเลข pull request (ตัวเลข, จำเป็น)repo: ชื่อ repository (สตริง, จำเป็น)
- OAuth Challenge Scopes:
-
pull_request_review_write - การดำเนินการเขียน (สร้าง, ส่ง, ลบ) บนรีวิว pull request
- OAuth Challenge Scopes:
repo body: ข้อความความคิดเห็นรีวิว (สตริง, ไม่บังคับ)commitID: SHA ของ commit ที่จะรีวิว (สตริง, ไม่บังคับ)event: การดำเนินการรีวิวที่จะดำเนินการ (สตริง, ไม่บังคับ)method: การดำเนินการเขียนที่จะดำเนินการบนรีวิว pull request (สตริง, จำเป็น)owner: เจ้าของ repository (สตริง, จำเป็น)pullNumber: หมายเลข pull request (ตัวเลข, จำเป็น)repo: ชื่อ repository (สตริง, จำเป็น)threadId: ID โหนดของเธรดรีวิว (เช่น PRRT_kwDOxxx) จำเป็นสำหรับเมธอด resolve_thread และ unresolve_thread รับ ID เธรดจาก pull_request_read ด้วยเมธอด get_review_comments (สตริง, ไม่บังคับ)
- OAuth Challenge Scopes:
-
search_pull_requests - ค้นหา pull requests
- OAuth Challenge Scopes:
repo fields: ชุดย่อยของฟิลด์ที่จะส่งคืนสำหรับแต่ละผลลัพธ์ pull request หากละเว้น จะส่งคืนฟิลด์ทั้งหมด ใช้เพื่อลดขนาดการตอบสนองเมื่อคุณต้องการเฉพาะฟิลด์บางอย่าง การละเว้น 'body', 'reactions' และ 'labels' โดยเฉพาะจะลดข้อมูลที่ใหญ่ที่สุดต่อผลลัพธ์ (สตริง[], ไม่บังคับ)order: ลำดับการเรียง (สตริง, ไม่บังคับ)owner: เจ้าของ repository ที่ไม่บังคับ หากระบุพร้อมกับ repo จะแสดงเฉพาะ pull requests สำหรับ repository นี้ (สตริง, ไม่บังคับ)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (ตัวเลข, ไม่บังคับ)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (ตัวเลข, ไม่บังคับ)query: คำค้นหาโดยใช้ไวยากรณ์การค้นหา pull request ของ GitHub (สตริง, จำเป็น)repo: ชื่อ repository ที่ไม่บังคับ หากระบุพร้อมกับ owner จะแสดงเฉพาะ pull requests สำหรับ repository นี้ (สตริง, ไม่บังคับ)sort: ฟิลด์การเรียงตามจำนวนการจับคู่ของหมวดหมู่ ค่าเริ่มต้นคือการจับคู่ที่ดีที่สุด (สตริง, ไม่บังคับ)
- OAuth Challenge Scopes:
-
update_pull_request - แก้ไข pull request
- OAuth Challenge Scopes:
repo base: ชื่อสาขาฐานใหม่ (สตริง, ไม่บังคับ)body: คำอธิบายใหม่ (สตริง, ไม่บังคับ)draft: ทำเครื่องหมาย pull request เป็นแบบร่าง (true) หรือพร้อมสำหรับรีวิว (false) (บูลีน, ไม่บังคับ)maintainer_can_modify: อนุญาตให้ผู้ดูแลแก้ไข (บูลีน, ไม่บังคับ)owner: เจ้าของ repository (สตริง, จำเป็น)pullNumber: หมายเลข pull request ที่จะอัปเดต (ตัวเลข, จำเป็น)repo: ชื่อ repository (สตริง, จำเป็น)reviewers: ชื่อผู้ใช้ GitHub หรือผู้รีวิวทีม ORG/team-slug ที่จะขอรีวิว (สตริง[], ไม่บังคับ)state: สถานะใหม่ (สตริง, ไม่บังคับ)title: ชื่อใหม่ (สตริง, ไม่บังคับ)
- OAuth Challenge Scopes:
-
update_pull_request_branch - อัปเดตสาขา pull request
- OAuth Challenge Scopes:
repo expectedHeadSha: SHA ที่คาดหวังของ HEAD ref ของ pull request (สตริง, ไม่บังคับ)owner: เจ้าของ repository (สตริง, จำเป็น)pullNumber: หมายเลข pull request (ตัวเลข, จำเป็น)repo: ชื่อ repository (สตริง, จำเป็น)
- OAuth Challenge Scopes:

Repositories
-
create_branch - สร้างสาขา
- OAuth Challenge Scopes:
repo branch: ชื่อสำหรับสาขาใหม่ (สตริง, จำเป็น)from_branch: สาขาต้นทาง (ค่าเริ่มต้นคือสาขาเริ่มต้นของ repo) (สตริง, ไม่บังคับ)owner: เจ้าของ repository (สตริง, จำเป็น)repo: ชื่อ repository (สตริง, จำเป็น)
- OAuth Challenge Scopes:
-
create_or_update_file - สร้างหรืออัปเดตไฟล์
- OAuth Challenge Scopes:
repo,workflow allow_symlink_write: ตั้งค่าเป็น true เพื่ออัปเดต symbolic link เอง เนื้อหาต้องเป็นเส้นทางเป้าหมายใหม่ (บูลีน, ไม่บังคับ)branch: สาขาที่จะสร้าง/อัปเดตไฟล์ (สตริง, จำเป็น)content: เนื้อหาของไฟล์ ตามที่ควรปรากฏเมื่อเขียนแล้ว อย่าเข้ารหัส base64 เซิร์ฟเวอร์นี้จะทำก่อนเรียก REST API (สตริง, จำเป็น)message: ข้อความ commit (สตริง, จำเป็น)owner: เจ้าของ repository (ชื่อผู้ใช้หรือองค์กร) (สตริง, จำเป็น)path: เส้นทางที่จะสร้าง/อัปเดตไฟล์ (สตริง, จำเป็น)repo: ชื่อ repository (สตริง, จำเป็น)sha: blob SHA ของไฟล์ที่ถูกแทนที่ จำเป็นหากไฟล์มีอยู่แล้ว (สตริง, ไม่บังคับ)
- OAuth Challenge Scopes:
-
create_repository - สร้าง repository
- OAuth Challenge Scopes:
repo autoInit: เริ่มต้นด้วย README (บูลีน, ไม่บังคับ)description: คำอธิบาย repository (สตริง, ไม่บังคับ)name: ชื่อ repository (สตริง, จำเป็น)organization: องค์กรที่จะสร้าง repository (ละเว้นเพื่อสร้างในบัญชีส่วนตัวของคุณ) (สตริง, ไม่บังคับ)private: ว่า repository ควรเป็นแบบส่วนตัวหรือไม่ ค่าเริ่มต้นคือ true (ส่วนตัว) เมื่อละเว้น (บูลีน, ไม่บังคับ)
- OAuth Challenge Scopes:
-
delete_file - ลบไฟล์
- OAuth Challenge Scopes:
repo,workflow branch: สาขาที่จะลบไฟล์ (สตริง, จำเป็น)message: ข้อความ commit (สตริง, จำเป็น)owner: เจ้าของ repository (ชื่อผู้ใช้หรือองค์กร) (สตริง, จำเป็น)path: เส้นทางไปยังไฟล์ที่จะลบ (สตริง, จำเป็น)repo: ชื่อ repository (สตริง, จำเป็น)
- OAuth Challenge Scopes:
-
delete_repository - ลบที่เก็บ
- OAuth Challenge Scopes:
delete_repo,repo owner: เจ้าของที่เก็บ (ชื่อผู้ใช้หรือองค์กร) (string, required)repo: ชื่อที่เก็บ (string, required)
- OAuth Challenge Scopes:
-
fork_repository - Fork ที่เก็บ
- OAuth Challenge Scopes:
repo organization: องค์กรที่จะ fork ไป (string, optional)owner: เจ้าของที่เก็บ (string, required)repo: ชื่อที่เก็บ (string, required)
- OAuth Challenge Scopes:
-
get_commit - ดูรายละเอียด commit
- OAuth Challenge Scopes:
repo detail: ระดับรายละเอียดที่จะรวมสำหรับไฟล์ที่เปลี่ยนแปลง "none" จะละเว้น stats และไฟล์ทั้งหมด "stats" (ค่าเริ่มต้น) รวม metadata ต่อไฟล์: ชื่อไฟล์ สถานะ และจำนวนบรรทัดโค้ด (เพิ่ม ลบ เปลี่ยนแปลง) โดยไม่มีเนื้อหา patch "full_patch" จะรวมเนื้อหา unified diff สำหรับแต่ละไฟล์เพิ่มเติม และอาจมีขนาดใหญ่มาก (string, optional)owner: เจ้าของที่เก็บ (string, required)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)repo: ชื่อที่เก็บ (string, required)sha: Commit SHA, ชื่อ branch หรือชื่อ tag (string, required)
- OAuth Challenge Scopes:
-
get_file_contents - ดูเนื้อหาไฟล์หรือไดเรกทอรี
- OAuth Challenge Scopes:
repo fields: ชุดย่อยของฟิลด์ที่จะส่งคืนสำหรับแต่ละรายการเมื่อ path เป็นไดเรกทอรี หากละเว้น จะส่งคืนทุกฟิลด์ จะถูกละเว้นเมื่อ path เป็นไฟล์เดียว ใช้เพื่อลดขนาดการตอบสนองเมื่อแสดงรายการไดเรกทอรีและคุณต้องการเฉพาะฟิลด์บางอย่าง เช่น 'name' และ 'type' เท่านั้น (string[], optional)owner: เจ้าของที่เก็บ (ชื่อผู้ใช้หรือองค์กร) (string, required)path: Path ไปยังไฟล์/ไดเรกทอรี (string, optional)ref: รองรับ git refs ทางเลือก เช่นrefs/tags/{tag},refs/heads/{branch}หรือrefs/pull/{pr_number}/head(string, optional)repo: ชื่อที่เก็บ (string, required)sha: รองรับ commit SHA ทางเลือก หากระบุ จะใช้แทน ref (string, optional)
- OAuth Challenge Scopes:
-
get_latest_release - ดู release ล่าสุด
- OAuth Challenge Scopes:
repo owner: เจ้าของที่เก็บ (string, required)repo: ชื่อที่เก็บ (string, required)
- OAuth Challenge Scopes:
-
get_release_by_tag - ดู release ตามชื่อ tag
- OAuth Challenge Scopes:
repo owner: เจ้าของที่เก็บ (string, required)repo: ชื่อที่เก็บ (string, required)tag: ชื่อ tag (เช่น 'v1.0.0') (string, required)
- OAuth Challenge Scopes:
-
get_tag - ดูรายละเอียด tag
- OAuth Challenge Scopes:
repo owner: เจ้าของที่เก็บ (string, required)repo: ชื่อที่เก็บ (string, required)tag: ชื่อ tag (string, required)
- OAuth Challenge Scopes:
-
list_branches - แสดงรายการ branches
- OAuth Challenge Scopes:
repo owner: เจ้าของที่เก็บ (string, required)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)repo: ชื่อที่เก็บ (string, required)
- OAuth Challenge Scopes:
-
list_commits - แสดงรายการ commits
- OAuth Challenge Scopes:
repo author: ชื่อผู้ใช้หรืออีเมลของผู้เขียนเพื่อกรอง commits (string, optional)fields: ชุดย่อยของฟิลด์ที่จะส่งคืนสำหรับแต่ละ commit หากละเว้น จะส่งคืนทุกฟิลด์ ใช้เพื่อลดขนาดการตอบสนองเมื่อคุณต้องการเฉพาะฟิลด์บางอย่าง เช่น 'sha' และ 'html_url' เท่านั้น (string[], optional)owner: เจ้าของที่เก็บ (string, required)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, optional)path: เฉพาะ commits ที่มี path ไฟล์นี้จะถูกส่งคืน (string, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)repo: ชื่อที่เก็บ (string, required)sha: Commit SHA, ชื่อ branch หรือ tag เพื่อแสดงรายการ commits หากไม่ระบุ จะใช้ branch เริ่มต้นของที่เก็บ หากระบุ commit SHA จะแสดงรายการ commits จนถึง SHA นั้น (string, optional)since: เฉพาะ commits หลังจากวันที่นี้จะถูกส่งคืน (รูปแบบ ISO 8601: YYYY-MM-DDTHH:MM:SSZ หรือ YYYY-MM-DD) (string, optional)until: เฉพาะ commits ก่อนวันที่นี้จะถูกส่งคืน (รูปแบบ ISO 8601: YYYY-MM-DDTHH:MM:SSZ หรือ YYYY-MM-DD) (string, optional)
- OAuth Challenge Scopes:
-
list_releases - แสดงรายการ releases
- OAuth Challenge Scopes:
repo fields: ชุดย่อยของฟิลด์ที่จะส่งคืนสำหรับแต่ละ release หากละเว้น จะส่งคืนทุกฟิลด์ ใช้เพื่อลดขนาดการตอบสนองเมื่อคุณต้องการเฉพาะฟิลด์บางอย่าง โดยเฉพาะการละเว้น 'body' จะลดข้อมูลที่ใหญ่ที่สุดต่อ release (string[], optional)owner: เจ้าของที่เก็บ (string, required)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)repo: ชื่อที่เก็บ (string, required)
- OAuth Challenge Scopes:
-
list_repository_collaborators - แสดงรายการผู้ร่วมงานในที่เก็บ
- OAuth Challenge Scopes:
repo affiliation: กรองตามสังกัด สามารถเป็นหนึ่งใน: 'outside' (ผู้ร่วมงานภายนอก), 'direct' (ทั้งหมดที่มีสิทธิ์โดยไม่คำนึงถึงสมาชิกองค์กร), 'all' (ผู้ร่วมงานทั้งหมด) ค่าเริ่มต้น: 'all' (string, optional)owner: เจ้าของที่เก็บ (string, required)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ค่าเริ่มต้น 1, ขั้นต่ำ 1) (number, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ค่าเริ่มต้น 30, ขั้นต่ำ 1, สูงสุด 100) (number, optional)repo: ชื่อที่เก็บ (string, required)
- OAuth Challenge Scopes:
-
list_tags - แสดงรายการ tags
- OAuth Challenge Scopes:
repo owner: เจ้าของที่เก็บ (string, required)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)repo: ชื่อที่เก็บ (string, required)
- OAuth Challenge Scopes:
-
push_files - Push ไฟล์ไปยังที่เก็บ
- OAuth Challenge Scopes:
repo,workflow branch: Branch ที่จะ push ไป (string, required)files: อาร์เรย์ของออบเจกต์ไฟล์ที่จะ push แต่ละออบเจกต์มี path (string) และ content (string) (object[], required)message: ข้อความ commit (string, required)owner: เจ้าของที่เก็บ (string, required)repo: ชื่อที่เก็บ (string, required)
- OAuth Challenge Scopes:
-
search_code - ค้นหาโค้ด
- OAuth Challenge Scopes:
repo fields: ชุดย่อยของฟิลด์ที่จะส่งคืนสำหรับแต่ละผลการค้นหาโค้ด หากละเว้น จะส่งคืนทุกฟิลด์ ใช้เพื่อลดขนาดการตอบสนองเมื่อคุณต้องการเฉพาะฟิลด์บางอย่าง โดยเฉพาะการละเว้น 'repository' และ 'text_matches' จะลดข้อมูลที่ใหญ่ที่สุดต่อผลลัพธ์ (string[], optional)order: ลำดับการเรียงสำหรับผลลัพธ์ (string, optional)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)query: คำค้นหา (GitHub code search REST) มี AND โดยนัยระหว่างคำ รองรับOR,NOT, และ"quoted phrase"สำหรับการจับคู่แบบตรงทั้งหมด ตัวระบุ:repo:owner/repo,org:,user:,language:,path:dir(การจับคู่คำนำหน้า),filename:exact.ext,extension:,in:file,in:path,size:,is:archived,is:fork. สูงสุด 256 อักขระ ตัวอย่าง:WithContext language:go org:github;"package main" repo:o/r;func extension:go path:cmd repo:o/r;NOT TODO language:go repo:o/r. (string, required)sort: ฟิลด์การเรียง ('indexed' เท่านั้น) (string, optional)
- OAuth Challenge Scopes:
-
search_commits - ค้นหา commits
- OAuth Challenge Scopes:
repo order: ลำดับการเรียง (string, optional)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)query: คำค้นหา commit (GitHub commit search REST) ค้นหาข้อความ commit บน branch เริ่มต้นเท่านั้น จำกัดการค้นหาด้วยrepo:owner/repo,org:, หรือuser:(คำค้นหาที่ไม่มีตัวระบุขอบเขตจะจับคู่ทั่วทั้ง GitHub และมักไม่ใช่สิ่งที่คุณต้องการ) ตัวระบุอื่นๆ:author:,committer:,author-name:,committer-name:,author-email:,committer-email:,author-date:,committer-date:(รองรับช่วง>,<,>=,<=, และYYYY-MM-DD..YYYY-MM-DD),merge:true|false,hash:,tree:,parent:,is:public. ตัวอย่าง:repo:owner/repo fix panic;org:github author:defunkt committer-date:>=2024-01-01;"refactor cache" repo:o/r;hash:abc1234 repo:o/r. (string, required)sort: เรียงตามวันที่ผู้เขียนหรือผู้ commit (ค่าเริ่มต้นคือการจับคู่ที่ดีที่สุด) (string, optional)
- OAuth Challenge Scopes:
-
search_repositories - ค้นหาที่เก็บ
- OAuth Challenge Scopes:
repo minimal_output: ส่งคืนข้อมูลที่เก็บขั้นต่ำ (ค่าเริ่มต้น: true) เมื่อเป็น false จะส่งคืนออบเจกต์ API ที่เก็บ GitHub เต็มรูปแบบ (boolean, optional)order: ลำดับการเรียง (string, optional)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)query: คำค้นหาที่เก็บ ตัวอย่าง: 'machine learning in:name stars:>1000 language:python', 'topic:react', 'user:facebook' รองรับไวยากรณ์การค้นหาขั้นสูงสำหรับการกรองที่แม่นยำ (string, required)sort: เรียงที่เก็บตามฟิลด์ ค่าเริ่มต้นคือการจับคู่ที่ดีที่สุด (string, optional)
- OAuth Challenge Scopes:

การป้องกันความลับ
-
get_secret_scanning_alert - ดูการแจ้งเตือนการสแกนความลับ
- OAuth Challenge Scopes:
security_events alertNumber: หมายเลขของการแจ้งเตือน (number, required)owner: เจ้าของที่เก็บ (string, required)repo: ชื่อที่เก็บ (string, required)
- OAuth Challenge Scopes:
-
list_secret_scanning_alerts - แสดงรายการการแจ้งเตือนการสแกนความลับ
- OAuth Challenge Scopes:
security_events owner: เจ้าของที่เก็บ (string, required)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, optional)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, optional)repo: ชื่อที่เก็บ (string, required)resolution: กรองตามการแก้ไข (string, optional)secret_type: รายการประเภทความลับที่คั่นด้วยเครื่องหมายจุลภาคที่จะส่งคืน รูปแบบความลับเริ่มต้นทั้งหมดจะถูกส่งคืน หากต้องการส่งคืนรูปแบบทั่วไป ให้ส่งชื่อ token ในพารามิเตอร์ (string, optional)state: กรองตามสถานะ (string, optional)
- OAuth Challenge Scopes:

คำแนะนำด้านความปลอดภัย
-
get_global_security_advisory - ดูคำแนะนำด้านความปลอดภัยระดับโลก
- OAuth Challenge Scopes:
security_events ghsaId: GitHub Security Advisory ID (รูปแบบ: GHSA-xxxx-xxxx-xxxx) (string, required)
- OAuth Challenge Scopes:
-
list_global_security_advisories - แสดงรายการคำแนะนำด้านความปลอดภัยระดับโลก
- OAuth Challenge Scopes:
security_events affects: กรองคำแนะนำตามแพ็กเกจหรือเวอร์ชันที่ได้รับผลกระทบ (เช่น "package1,package2@1.0.0") (string, ไม่บังคับ)cveId: กรองตาม CVE ID (string, ไม่บังคับ)cwes: กรองตาม Common Weakness Enumeration IDs (เช่น ["79", "284", "22"]) (string[], ไม่บังคับ)ecosystem: กรองตามระบบนิเวศของแพ็กเกจ (string, ไม่บังคับ)ghsaId: กรองตาม GitHub Security Advisory ID (รูปแบบ: GHSA-xxxx-xxxx-xxxx) (string, ไม่บังคับ)isWithdrawn: ระบุว่าจะคืนค่าเฉพาะคำแนะนำที่ถูกถอนออกหรือไม่ (boolean, ไม่บังคับ)modified: กรองตามวันที่เผยแพร่หรืออัปเดต หรือช่วงวันที่ (วันที่ ISO 8601 หรือช่วง) (string, ไม่บังคับ)published: กรองตามวันที่เผยแพร่หรือช่วงวันที่ (วันที่ ISO 8601 หรือช่วง) (string, ไม่บังคับ)severity: กรองตามระดับความรุนแรง (string, ไม่บังคับ)type: ประเภทของคำแนะนำ (string, ไม่บังคับ)updated: กรองตามวันที่อัปเดตหรือช่วงวันที่ (วันที่ ISO 8601 หรือช่วง) (string, ไม่บังคับ)
- OAuth Challenge Scopes:
-
list_org_repository_security_advisories - แสดงรายการคำแนะนำด้านความปลอดภัยของคลังขององค์กร
- OAuth Challenge Scopes:
security_events direction: ทิศทางการเรียงลำดับ (string, ไม่บังคับ)org: ชื่อเข้าสู่ระบบขององค์กร (string, จำเป็น)sort: ฟิลด์สำหรับการเรียงลำดับ (string, ไม่บังคับ)state: กรองตามสถานะของคำแนะนำ (string, ไม่บังคับ)
- OAuth Challenge Scopes:
-
list_repository_security_advisories - แสดงรายการคำแนะนำด้านความปลอดภัยของคลัง
- OAuth Challenge Scopes:
security_events direction: ทิศทางการเรียงลำดับ (string, ไม่บังคับ)owner: เจ้าของคลัง (string, จำเป็น)repo: ชื่อของคลัง (string, จำเป็น)sort: ฟิลด์สำหรับการเรียงลำดับ (string, ไม่บังคับ)state: กรองตามสถานะของคำแนะนำ (string, ไม่บังคับ)
- OAuth Challenge Scopes:

Stargazers
-
list_starred_repositories - แสดงรายการคลังที่ติดดาว
- OAuth Challenge Scopes:
repo direction: ทิศทางสำหรับการเรียงลำดับผลลัพธ์ (string, ไม่บังคับ)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, ไม่บังคับ)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, ไม่บังคับ)sort: วิธีการเรียงลำดับผลลัพธ์ สามารถเป็น 'created' (เมื่อคลังถูกติดดาว) หรือ 'updated' (เมื่อคลังถูกพุชครั้งล่าสุด) (string, ไม่บังคับ)username: ชื่อผู้ใช้เพื่อแสดงรายการคลังที่ติดดาว ค่าเริ่มต้นคือผู้ใช้ที่ได้รับการรับรองความถูกต้อง (string, ไม่บังคับ)
- OAuth Challenge Scopes:
-
star_repository - ติดดาวคลัง
- OAuth Challenge Scopes:
repo owner: เจ้าของคลัง (string, จำเป็น)repo: ชื่อคลัง (string, จำเป็น)
- OAuth Challenge Scopes:
-
unstar_repository - เลิกติดดาวคลัง
- OAuth Challenge Scopes:
repo owner: เจ้าของคลัง (string, จำเป็น)repo: ชื่อคลัง (string, จำเป็น)
- OAuth Challenge Scopes:

Users
- search_users - ค้นหาผู้ใช้
- OAuth Challenge Scopes:
repo order: ลำดับการเรียง (string, ไม่บังคับ)page: หมายเลขหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1) (number, ไม่บังคับ)perPage: ผลลัพธ์ต่อหน้าสำหรับการแบ่งหน้า (ขั้นต่ำ 1, สูงสุด 100) (number, ไม่บังคับ)query: คำค้นหาผู้ใช้ ตัวอย่าง: 'john smith', 'location:seattle', 'followers:>100' การค้นหาจะถูกจำกัดขอบเขตเป็น type:user โดยอัตโนมัติ (string, จำเป็น)sort: เรียงผู้ใช้ตามจำนวนผู้ติดตามหรือคลัง หรือเมื่อบุคคลเข้าร่วม GitHub (string, ไม่บังคับ)
- OAuth Challenge Scopes:
เครื่องมือเพิ่มเติมใน Remote GitHub MCP Server
Copilot
- create_pull_request_with_copilot - ปฏิบัติงานกับ GitHub Copilot coding agent
owner: เจ้าของคลัง คุณสามารถเดาเจ้าของได้ แต่ควรยืนยันกับผู้ใช้ก่อนดำเนินการ (string, จำเป็น)repo: ชื่อคลัง คุณสามารถเดาชื่อคลังได้ แต่ควรยืนยันกับผู้ใช้ก่อนดำเนินการ (string, จำเป็น)problem_statement: คำอธิบายโดยละเอียดของงานที่จะดำเนินการ (เช่น 'Implement a feature that does X', 'Fix bug Y', ฯลฯ) (string, จำเป็น)title: ชื่อเรื่องสำหรับ pull request ที่จะถูกสร้าง (string, จำเป็น)base_ref: Git reference (เช่น branch) ที่ agent จะเริ่มทำงาน หากไม่ระบุ จะใช้ค่าเริ่มต้นเป็น branch หลักของคลัง (string, ไม่บังคับ)
Copilot Spaces
-
หมายเหตุเกี่ยวกับการรับรองความถูกต้อง
- Fine-grained PATs จะไม่ถูกซ่อนโดยการกรองขอบเขตของ classic PAT ดังนั้นเครื่องมือเหล่านี้อาจยังปรากฏแม้ว่าโทเค็นจะไม่สามารถใช้งานได้ก็ตาม
- สำหรับ spaces ที่เป็นขององค์กร Fine-grained PATs ต้องถูกติดตั้งบนองค์กรที่เป็นเจ้าของและรวมถึง
organization_copilot_spaces: read - หาก space ที่เป็นขององค์กรมีทรัพยากรที่ backed by repository โทเค็นต้องสามารถเข้าถึงทุกคลังที่อ้างอิงได้ มิฉะนั้น space อาจถูกถือว่าไม่พบ
-
get_copilot_space - รับ Copilot Space
owner: เจ้าของ space (string, จำเป็น)name: ชื่อของ space (string, จำเป็น)
-
list_copilot_spaces - แสดงรายการ Copilot Spaces
GitHub Support Docs Search
- github_support_docs_search - ดึงเอกสารที่เกี่ยวข้องเพื่อตอบคำถามเกี่ยวกับผลิตภัณฑ์และการสนับสนุนของ GitHub หัวข้อการสนับสนุนรวมถึง: GitHub Actions Workflows, Authentication, GitHub Support Inquiries, Pull Request Practices, Repository Maintenance, GitHub Pages, GitHub Packages, GitHub Discussions, Copilot Spaces
query: ข้อมูลจากผู้ใช้เกี่ยวกับคำถามที่ต้องการคำตอบ นี่คือข้อความผู้ใช้ดิบล่าสุดที่ไม่มีการแก้ไข คุณควรปล่อยข้อความผู้ใช้ไว้ตามเดิมเสมอ และไม่ควรแก้ไข (string, จำเป็น)
โหมดอ่านอย่างเดียว
เพื่อรันเซิร์ฟเวอร์ในโหมดอ่านอย่างเดียว คุณสามารถใช้แฟล็ก --read-only ได้ ซึ่งจะเสนอเฉพาะเครื่องมือที่อ่านอย่างเดียวเท่านั้น ป้องกันการแก้ไขคลัง, issues, pull requests, ฯลฯ
./github-mcp-server --read-only
เมื่อใช้ Docker คุณสามารถส่งโหมดอ่านอย่างเดียวเป็นตัวแปรสภาพแวดล้อม:
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_READ_ONLY=1 \
ghcr.io/github/github-mcp-server
โหมด Lockdown
โหมด Lockdown จำกัดเนื้อหาที่เซิร์ฟเวอร์จะแสดงจากคลังสาธารณะ เมื่อเปิดใช้งาน เซิร์ฟเวอร์จะตรวจสอบว่าผู้เขียนแต่ละรายการมีสิทธิ์ push ไปยังคลังหรือไม่ คลังส่วนตัวไม่ได้รับผลกระทบ และผู้ร่วมงานยังคงเข้าถึงเนื้อหาของตนเองได้เต็มที่
โหมด Lockdown เป็นตัวกรองเนื้อหาแบบ best-effort ที่มีจุดประสงค์เพื่อลดความเสี่ยงของการฉีด prompt จากเนื้อหาคลังที่ไม่น่าเชื่อถือ (issues, pull requests, ความคิดเห็น, commits, ฯลฯ) มัน ไม่ใช่ ขอบเขตการอนุญาต: มันไม่ได้เปลี่ยนสิ่งที่ข้อมูลรับรอง GitHub พื้นฐานสามารถอ่านหรือเขียนได้ และเนื้อหาที่ถูกระงับจากการตอบสนองของเครื่องมือที่ถูกกรองอาจยังเข้าถึงได้ผ่านเครื่องมืออื่นหรือการเข้าถึง GitHub API โดยตรงด้วยข้อมูลรับรองเดียวกัน
เป็นข้อยกเว้นโดยเจตนา เนื้อหาที่เขียนโดยชุดบัญชีบอทที่เชื่อถือได้จำนวนเล็กน้อย (ปัจจุบันคือ github-actions[bot] และ copilot) จะถูกถือว่าปลอดภัยเสมอ โดยไม่คำนึงถึงสิทธิ์ push ซึ่งหลีกเลี่ยงการกรองผลลัพธ์อัตโนมัติตามปกติ (เช่น commits หรือความคิดเห็นที่สร้างโดย CI) ที่อาจถูกระงับภายใต้โหมด Lockdown
./github-mcp-server --lockdown-mode
เมื่อรันด้วย Docker ให้ตั้งค่าตัวแปรสภาพแวดล้อมที่เกี่ยวข้อง:
docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
-e GITHUB_LOCKDOWN_MODE=1 \
ghcr.io/github/github-mcp-server
ในโหมด HTTP แฟล็กนี้ (หรือ GITHUB_LOCKDOWN_MODE) เป็นขอบเขตบน: ส่วนหัวคำขอ X-MCP-Lockdown สามารถเปิดใช้งานโหมด Lockdown เมื่อผู้ปฏิบัติงานยังไม่ได้เปิด แต่ไม่สามารถปิดใช้งานโหมด Lockdown ที่ผู้ปฏิบัติงานเปิดไว้แล้วได้ ดู Server Configuration Guide สำหรับรายละเอียด
พฤติกรรมของโหมด Lockdown ขึ้นอยู่กับเครื่องมือที่ถูกเรียกใช้
เครื่องมือต่อไปนี้จะคืนค่าข้อผิดพลาดเมื่อผู้เขียนไม่มีสิทธิ์ push:
issue_read:getpull_request_read:getpull_request_read:get_diffpull_request_read:get_filespull_request_read:get_commits
เครื่องมือต่อไปนี้จะกรองเนื้อหาจากผู้ใช้ที่ไม่มีสิทธิ์ push:
issue_read:get_commentsissue_read:get_sub_issuespull_request_read:get_commentspull_request_read:get_review_commentspull_request_read:get_reviews
i18n / การแทนที่คำอธิบาย
คำอธิบายของเครื่องมือสามารถถูกแทนที่ได้โดยการสร้างไฟล์
github-mcp-server-config.json ในไดเรกทอรีเดียวกับไบนารี
ไฟล์ควรมี JSON object ที่มีชื่อเครื่องมือเป็นคีย์และคำอธิบายใหม่เป็นค่า ตัวอย่างเช่น:
{
"TOOL_ADD_ISSUE_COMMENT_DESCRIPTION": "an alternative description",
"TOOL_CREATE_BRANCH_DESCRIPTION": "Create a new branch in a GitHub repository"
}
คุณสามารถสร้าง export ของการแปลปัจจุบันได้โดยการรันไบนารีด้วย
แฟล็ก --export-translations
แฟล็กนี้จะรักษาการแปล/การแทนที่ที่คุณทำไว้ ในขณะที่เพิ่ม การแปลใหม่ที่ถูกเพิ่มเข้าไปในไบนารีตั้งแต่ครั้งสุดท้ายที่คุณ export
./github-mcp-server --export-translations
cat github-mcp-server-config.json
คุณยังสามารถใช้ ENV vars เพื่อแทนที่คำอธิบายได้ ชื่อตัวแปรสภาพแวดล้อม
เหมือนกับคีย์ในไฟล์ JSON โดยมีคำนำหน้าด้วย
GITHUB_MCP_ และเป็นตัวพิมพ์ใหญ่ทั้งหมด
ตัวอย่างเช่น เพื่อแทนที่เครื่องมือ TOOL_ADD_ISSUE_COMMENT_DESCRIPTION คุณสามารถ
ตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้:
export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description"
การแทนที่ชื่อเซิร์ฟเวอร์และชื่อเรื่อง
กลไกการแทนที่เดียวกันนี้สามารถใช้เพื่อปรับแต่งฟิลด์ name และ
title ของ MCP server ในการตอบสนองการเริ่มต้น ซึ่งมีประโยชน์เมื่อรัน
GitHub MCP Server หลายอินสแตนซ์ (เช่น หนึ่งสำหรับ github.com และหนึ่งสำหรับ
GitHub Enterprise Server) เพื่อให้ agents สามารถแยกแยะระหว่างพวกเขาได้
| คีย์ | ตัวแปรสภาพแวดล้อม | ค่าเริ่มต้น |
|---|---|---|
SERVER_NAME | GITHUB_MCP_SERVER_NAME | github-mcp-server |
SERVER_TITLE | GITHUB_MCP_SERVER_TITLE | GitHub MCP Server |
ตัวอย่างเช่น เพื่อกำหนดค่าอินสแตนซ์เซิร์ฟเวอร์สำหรับ GitHub Enterprise Server:
{
"SERVER_NAME": "ghes-mcp-server",
"SERVER_TITLE": "GHES MCP Server"
}
หรือใช้ตัวแปรสภาพแวดล้อม:
export GITHUB_MCP_SERVER_NAME="ghes-mcp-server"
export GITHUB_MCP_SERVER_TITLE="GHES MCP Server"
การใช้งานไลบรารี
Go API ที่ถูก export ของโมดูลนี้ควรถือว่าไม่เสถียรในขณะนี้ และอาจมีการเปลี่ยนแปลงที่ทำลายความเข้ากันได้ ในอนาคต เราอาจเสนอความเสถียร; โปรดแจ้ง issue หากมีกรณีการใช้งานที่สิ่งนี้จะมีคุณค่า
การมีส่วนร่วม
ยินดีต้อนรับการมีส่วนร่วม ก่อนเปิด pull request โปรดอ่าน contributing guide สำหรับคำแนะนำเกี่ยวกับการตั้งค่า การทดสอบ การ lint และการสร้างเอกสาร
การสนับสนุน
สำหรับความช่วยเหลือในการใช้ GitHub MCP Server ดู support guide หากคุณพบข้อบกพร่องหรือต้องการขอฟีเจอร์ โปรดค้นหา issues ที่มีอยู่ก่อนเปิด issue ใหม่
ความปลอดภัย
โปรดอย่ารายงานช่องโหว่ด้านความปลอดภัยผ่าน issues สาธารณะ ปฏิบัติตามคำแนะนำใน security policy เพื่อรายงานช่องโหว่อย่างมีความรับผิดชอบ
สัญญาอนุญาต
โครงการนี้ได้รับอนุญาตภายใต้เงื่อนไขของสัญญาอนุญาตโอเพนซอร์ส MIT โปรดอ้างอิง MIT สำหรับเงื่อนไขฉบับเต็ม