GitHub MCP

chính thức

Máy chủ MCP chính thức của GitHub dành cho tìm kiếm kho lưu trữ, vấn đề, yêu cầu kéo, ngữ cảnh mã và quy trình làm việc GitHub trong các ứng dụng AI tương thích MCP.

Bạn có thể làm gì với GitHub MCP?

  • Khám phá kho lưu trữ — Yêu cầu trợ lý của bạn duyệt qua các kho lưu trữ, tìm kiếm tệp tin và hiểu cấu trúc dự án bằng các công cụ như get_file_contents.
  • Quản lý Issue & PR — Để AI của bạn tạo, cập nhật và phân loại các issue và pull request, bao gồm xem xét các thay đổi mã và duy trì bảng dự án.
  • Giám sát CI/CD — Nhận thông tin chi tiết về các lần chạy workflow GitHub Actions, phân tích lỗi build và quản lý bản phát hành thông qua các truy vấn ngôn ngữ tự nhiên.
  • Phân tích bảo mật mã — Kiểm tra các phát hiện bảo mật, xem xét cảnh báo Dependabot và hiểu các mẫu mã trong toàn bộ cơ sở mã của bạn.
  • Cộng tác nhóm — Truy cập các cuộc thảo luận, quản lý thông báo và phân tích hoạt động của nhóm để tối ưu hóa quy trình phát triển.

Tài liệu

Go Report Card

Máy chủ GitHub MCP

Máy chủ GitHub MCP kết nối các công cụ AI trực tiếp với nền tảng GitHub. Điều này cho phép các tác nhân AI, trợ lý và chatbot có khả năng đọc kho lưu trữ và tệp mã, quản lý issue và PR, phân tích mã và tự động hóa quy trình làm việc. Tất cả thông qua tương tác ngôn ngữ tự nhiên.

Các trường hợp sử dụng

  • Quản lý kho lưu trữ: Duyệt và truy vấn mã, tìm kiếm tệp, phân tích commit và hiểu cấu trúc dự án trên bất kỳ kho lưu trữ nào bạn có quyền truy cập.
  • Tự động hóa Issue & PR: Tạo, cập nhật và quản lý issue và pull request. Để AI hỗ trợ phân loại lỗi, đánh giá thay đổi mã và duy trì bảng dự án.
  • CI/CD & Thông minh quy trình làm việc: Giám sát các lần chạy quy trình làm việc GitHub Actions, phân tích lỗi build, quản lý bản phát hành và nhận thông tin chi tiết về quy trình phát triển của bạn.
  • Phân tích mã: Kiểm tra các phát hiện bảo mật, xem xét cảnh báo Dependabot, hiểu các mẫu mã và nhận thông tin chi tiết toàn diện về cơ sở mã của bạn.
  • Cộng tác nhóm: Truy cập thảo luận, quản lý thông báo, phân tích hoạt động nhóm và hợp lý hóa quy trình cho nhóm của bạn.

Được xây dựng cho các nhà phát triển muốn kết nối các công cụ AI của họ với bối cảnh và khả năng của GitHub, từ các truy vấn ngôn ngữ tự nhiên đơn giản đến các quy trình tác nhân đa bước phức tạp.


Máy chủ GitHub MCP từ xa

Install in VS Code Install in VS Code Insiders Install in Visual Studio

Máy chủ GitHub MCP từ xa được GitHub lưu trữ và cung cấp phương pháp dễ nhất để bắt đầu. Nếu máy chủ MCP của bạn không hỗ trợ máy chủ MCP từ xa, đừng lo lắng! Bạn có thể sử dụng phiên bản cục bộ của Máy chủ GitHub MCP để thay thế.

Điều kiện tiên quyết

  1. Một máy chủ MCP tương thích có hỗ trợ máy chủ từ xa (VS Code 1.101+, Claude Desktop, Cursor, Windsurf, v.v.)
  2. Mọi chính sách áp dụng được bật

Cài đặt trong VS Code

Để cài đặt nhanh, hãy sử dụng một trong các nút cài đặt một cú nhấp chuột ở trên. Sau khi hoàn tất quy trình đó, hãy bật chế độ Agent (nằm cạnh ô nhập văn bản Copilot Chat) và máy chủ sẽ khởi động. Đảm bảo bạn đang sử dụng VS Code 1.101 trở lên hoặc mới hơn để hỗ trợ MCP từ xa và OAuth.

Ngoài ra, để cấu hình VS Code thủ công, hãy chọn khối JSON phù hợp từ các ví dụ bên dưới và thêm vào cấu hình máy chủ của bạn:

Sử dụng OAuthSử dụng GitHub PAT
VS Code (phiên bản 1.101 trở lên)
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "github_mcp_pat",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ]
}

Cài đặt trong các máy chủ MCP khác

  • Copilot CLI - Hướng dẫn cài đặt cho GitHub Copilot CLI
  • GitHub Copilot trong các IDE khác - Cài đặt cho JetBrains, Visual Studio, Eclipse và Xcode với GitHub Copilot
  • Ứng dụng Claude - Hướng dẫn cài đặt cho Claude Desktop và Claude Code CLI
  • Codex - Hướng dẫn cài đặt cho OpenAI Codex
  • Cursor - Hướng dẫn cài đặt cho IDE Cursor
  • OpenCode - Hướng dẫn cài đặt cho tác nhân đầu cuối OpenCode
  • Windsurf - Hướng dẫn cài đặt cho IDE Windsurf
  • Zed - Hướng dẫn cài đặt cho trình soạn thảo Zed
  • Rovo Dev CLI - Hướng dẫn cài đặt cho Rovo Dev CLI

Lưu ý: Mỗi ứng dụng máy chủ MCP cần cấu hình một GitHub App hoặc OAuth App để hỗ trợ truy cập từ xa qua OAuth. Bất kỳ ứng dụng máy chủ nào hỗ trợ máy chủ MCP từ xa đều nên hỗ trợ máy chủ GitHub từ xa với xác thực PAT. Chi tiết cấu hình và mức độ hỗ trợ khác nhau tùy theo máy chủ. Hãy tham khảo tài liệu của ứng dụng máy chủ để biết thêm thông tin.

Cấu hình

Cấu hình bộ công cụ

Xem Tài liệu Máy chủ Từ xa để biết chi tiết đầy đủ về cấu hình máy chủ từ xa, bộ công cụ, tiêu đề và cách sử dụng nâng cao. Tệp này cung cấp hướng dẫn và ví dụ toàn diện để kết nối, tùy chỉnh và cài đặt Máy chủ GitHub MCP từ xa trong VS Code và các máy chủ MCP khác.

Khi không có bộ công cụ nào được chỉ định, bộ công cụ mặc định sẽ được sử dụng.

Chế độ Insiders

Dùng thử các tính năng mới sớm! Máy chủ từ xa cung cấp phiên bản insiders với quyền truy cập sớm vào các tính năng mới và công cụ thử nghiệm.

Sử dụng Đường dẫn URLSử dụng Tiêu đề
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/insiders"
    }
  }
}
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "X-MCP-Insiders": "true"
      }
    }
  }
}

Xem Tài liệu Máy chủ Từ xa để biết thêm chi tiết và ví dụ, và Tính năng Insiders để biết danh sách đầy đủ những gì có sẵn.

GitHub Enterprise

GitHub Enterprise Cloud có nơi cư trú dữ liệu (ghe.com)

GitHub Enterprise Cloud cũng có thể sử dụng máy chủ từ xa.

Ví dụ cho https://octocorp.ghe.com với mã thông báo GitHub PAT:

{
    ...
    "github-octocorp": {
      "type": "http",
      "url": "https://copilot-api.octocorp.ghe.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    },
    ...
}

Lưu ý: Khi sử dụng OAuth với GitHub Enterprise trong VS Code và GitHub Copilot, bạn cũng cần cấu hình cài đặt VS Code của mình để trỏ đến phiên bản GitHub Enterprise của bạn - xem Xác thực từ VS Code

GitHub Enterprise Server

GitHub Enterprise Server không hỗ trợ lưu trữ máy chủ từ xa. Vui lòng tham khảo GitHub Enterprise Server và Enterprise Cloud có nơi cư trú dữ liệu (ghe.com) từ cấu hình máy chủ cục bộ.


Máy chủ GitHub MCP cục bộ

Install with Docker in VS Code Install with Docker in VS Code Insiders Install with Docker in Visual Studio

Điều kiện tiên quyết

  1. Để chạy máy chủ trong container, bạn cần cài đặt Docker.

  2. Sau khi cài đặt Docker, bạn cũng cần đảm bảo Docker đang chạy. Hình ảnh Docker có sẵn tại ghcr.io/github/github-mcp-server. Hình ảnh là công khai; nếu bạn gặp lỗi khi kéo, bạn có thể có mã thông báo hết hạn và cần docker logout ghcr.io.

  3. Xác thực. Trên github.com, bạn không cần tạo bất cứ thứ gì trước — các nút một cú nhấp chuột ở trên đăng nhập bạn bằng OAuth trong lần sử dụng đầu tiên (quy trình dựa trên trình duyệt; mã thông báo chỉ được giữ trong bộ nhớ). Các nút Docker xuất bản một cổng callback cố định (127.0.0.1:8085) để callback đăng nhập của container có thể truy cập được. Xem Đăng nhập OAuth Máy chủ Cục bộ để biết cách hoạt động, phương án dự phòng headless/device-code và cách mang OAuth hoặc GitHub App của riêng bạn (bắt buộc đối với GitHub Enterprise Server và ghe.com).

    Thích mã thông báo hơn? Bạn vẫn có thể xác thực bằng GitHub Personal Access Token bằng cách đặt GITHUB_PERSONAL_ACCESS_TOKEN để thay thế (nó được ưu tiên hơn OAuth). Máy chủ MCP có thể sử dụng nhiều API GitHub, vì vậy hãy bật các quyền mà bạn cảm thấy thoải mái khi cấp cho các công cụ AI của mình (để tìm hiểu thêm về mã thông báo truy cập, vui lòng xem tài liệu).

Xử lý PAT một cách an toàn

Biến môi trường (Khuyến nghị)

Để giữ GitHub PAT của bạn an toàn và có thể tái sử dụng trên các máy chủ MCP khác nhau:

  1. Lưu trữ PAT của bạn trong các biến môi trường

    export GITHUB_PAT=your_token_here
    

    Hoặc tạo tệp .env:

    GITHUB_PAT=your_token_here
    
  2. Bảo vệ tệp .env của bạn

    # Add to .gitignore to prevent accidental commits
    echo ".env" >> .gitignore
    
  3. Tham chiếu mã thông báo trong cấu hình

    # 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"
    }
    

Lưu ý: Hỗ trợ biến môi trường khác nhau tùy theo ứng dụng máy chủ và IDE. Một số ứng dụng (như Windsurf) yêu cầu mã thông báo được mã hóa cứng trong tệp cấu hình.

Các phương pháp hay nhất về bảo mật mã thông báo

  • Phạm vi tối thiểu: Chỉ cấp các quyền cần thiết

    • repo - Hoạt động kho lưu trữ
    • read:packages - Truy cập hình ảnh Docker
    • read:org - Truy cập nhóm tổ chức
  • Mã thông báo riêng biệt: Sử dụng các PAT khác nhau cho các dự án/môi trường khác nhau

  • Xoay vòng thường xuyên: Cập nhật mã thông báo định kỳ

  • Không bao giờ commit: Giữ mã thông báo ngoài kiểm soát phiên bản

  • Quyền tệp: Hạn chế quyền truy cập vào các tệp cấu hình chứa mã thông báo

    chmod 600 ~/.your-app/config.json
    

GitHub Enterprise Server và Enterprise Cloud có nơi cư trú dữ liệu (ghe.com)

Cờ --gh-host và biến môi trường GITHUB_HOST có thể được sử dụng để đặt tên máy chủ cho GitHub Enterprise Server hoặc GitHub Enterprise Cloud có nơi cư trú dữ liệu.

  • Đối với GitHub Enterprise Server, thêm tiền tố tên máy chủ bằng lược đồ URI https://. HTTPS là bắt buộc và được thực thi: các máy chủ không phải HTTPS bị từ chối để thông tin xác thực không bao giờ được gửi qua văn bản rõ ràng (ngoại lệ duy nhất là máy chủ loopback như http://localhost để phát triển cục bộ).
  • Đối với GitHub Enterprise Cloud có nơi cư trú dữ liệu, hãy sử dụng https://YOURSUBDOMAIN.ghe.com làm tên máy chủ.
"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>"
    }
}

Cài đặt

Cài đặt trong GitHub Copilot trên VS Code

Để cài đặt nhanh, hãy sử dụng một trong các nút cài đặt một cú nhấp chuột ở trên. Sau khi hoàn tất quy trình đó, hãy bật chế độ Agent (nằm cạnh ô nhập văn bản Copilot Chat) và máy chủ sẽ khởi động.

Tìm hiểu thêm về việc sử dụng các công cụ máy chủ MCP trong tài liệu chế độ agent của VS Code.

Cài đặt trong GitHub Copilot trên các IDE khác (JetBrains, Visual Studio, Eclipse, v.v.)

Thêm một trong các khối JSON sau vào cài đặt MCP của IDE của bạn.

Đăng nhập bằng OAuth (không cần tạo hoặc lưu trữ mã thông báo). Trên github.com, hình ảnh chính thức đã bao gồm thông tin đăng nhập ứng dụng, vì vậy bạn không cần cung cấp bất kỳ thông tin nào: nó chạy đăng nhập dựa trên trình duyệt trong lần sử dụng đầu tiên và giữ mã thông báo kết quả chỉ trong bộ nhớ. Trong Docker, điều này cần một cổng callback cố định được xuất bản đến loopback để callback đăng nhập của container có thể truy cập được:

{
  "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"
        }
      }
    }
  }
}

Xem Đăng nhập OAuth Máy chủ Cục bộ để biết quy trình nhị phân gốc (không cần cổng cố định), phương án dự phòng headless/device-code, GitHub Enterprise Server / ghe.com và cách mang OAuth hoặc GitHub App của riêng bạn.

Đối với các triển khai stdio không tương tác, hãy xem Xác thực GitHub App.

Hoặc xác thực bằng Personal Access Token. Đặt GITHUB_PERSONAL_ACCESS_TOKEN để thay thế (nó được ưu tiên hơn 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}"
        }
      }
    }
  }
}

Tùy chọn, bạn có thể thêm một ví dụ tương tự (tức là không có khóa mcp) vào một tệp có tên .vscode/mcp.json trong không gian làm việc của bạn. Điều này sẽ cho phép bạn chia sẻ cấu hình với các ứng dụng máy chủ khác chấp nhận cùng định dạng.

Ví dụ khối JSON không bao gồm khóa 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}"
      }
    }
  }
}

Cài đặt trong các máy chủ MCP khác

Đối với các ứng dụng máy chủ MCP khác, vui lòng tham khảo hướng dẫn cài đặt của chúng tôi:

  • Copilot CLI - Hướng dẫn cài đặt cho GitHub Copilot CLI
  • GitHub Copilot trong các IDE khác - Cài đặt cho JetBrains, Visual Studio, Eclipse và Xcode với GitHub Copilot
  • Claude Code & Claude Desktop - Hướng dẫn cài đặt cho Claude Code và Claude Desktop
  • Cursor - Hướng dẫn cài đặt cho IDE Cursor
  • Google Gemini CLI - Hướng dẫn cài đặt cho Google Gemini CLI
  • OpenCode - Hướng dẫn cài đặt cho tác nhân đầu cuối OpenCode
  • Windsurf - Hướng dẫn cài đặt cho IDE Windsurf
  • Zed - Hướng dẫn cài đặt cho trình soạn thảo Zed

Để có cái nhìn tổng quan đầy đủ về tất cả các tùy chọn cài đặt, hãy xem Chỉ mục Hướng dẫn Cài đặt của chúng tôi.

Lưu ý: Bất kỳ ứng dụng máy chủ nào hỗ trợ máy chủ MCP cục bộ đều có thể truy cập máy chủ GitHub MCP cục bộ. Tuy nhiên, quy trình cấu hình cụ thể, cú pháp và độ ổn định của tích hợp sẽ khác nhau tùy theo ứng dụng máy chủ. Mặc dù nhiều ứng dụng có thể tuân theo định dạng tương tự như các ví dụ trên, điều này không được đảm bảo. Vui lòng tham khảo tài liệu của ứng dụng máy chủ của bạn để biết cú pháp cấu hình MCP chính xác và quy trình thiết lập.

Xây dựng từ mã nguồn

Nếu bạn không có Docker, bạn có thể sử dụng go build để xây dựng tệp nhị phân trong thư mục cmd/github-mcp-server, và sử dụng lệnh github-mcp-server stdio với biến môi trường GITHUB_PERSONAL_ACCESS_TOKEN được đặt thành mã thông báo của bạn. Để chỉ định vị trí đầu ra của bản dựng, hãy sử dụng cờ -o. Bạn nên cấu hình máy chủ của mình để sử dụng tệp thực thi đã xây dựng làm command. Ví dụ:

{
  "mcp": {
    "servers": {
      "github": {
        "command": "/path/to/github-mcp-server",
        "args": ["stdio"],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
        }
      }
    }
  }
}

Cấu hình công cụ

Máy chủ GitHub MCP hỗ trợ bật hoặc tắt các nhóm chức năng cụ thể thông qua cờ --toolsets. Điều này cho phép bạn kiểm soát các khả năng API GitHub nào có sẵn cho các công cụ AI của mình. Chỉ bật các bộ công cụ bạn cần có thể giúp LLM lựa chọn công cụ và giảm kích thước ngữ cảnh.

Bộ công cụ không giới hạn ở Công cụ. Các Tài nguyên và Lời nhắc MCP liên quan cũng được bao gồm khi áp dụng.

Khi không có bộ công cụ nào được chỉ định, bộ công cụ mặc định sẽ được sử dụng.

Đang tìm kiếm ví dụ? Xem Hướng dẫn cấu hình máy chủ để biết các công thức phổ biến như thiết lập tối thiểu, chế độ chỉ đọc và kết hợp các công cụ với bộ công cụ.

Chỉ định bộ công cụ

Để chỉ định các bộ công cụ bạn muốn có sẵn cho LLM, bạn có thể truyền danh sách cho phép theo hai cách:

  1. Sử dụng đối số dòng lệnh:

    github-mcp-server --toolsets repos,issues,pull_requests,actions,code_security
    
  2. Sử dụng biến môi trường:

    GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" ./github-mcp-server
    

Biến môi trường GITHUB_TOOLSETS có quyền ưu tiên hơn đối số dòng lệnh nếu cả hai đều được cung cấp.

Chỉ định công cụ riêng lẻ

Bạn cũng có thể cấu hình các công cụ cụ thể bằng cờ --tools. Các công cụ có thể được sử dụng độc lập hoặc kết hợp với các bộ công cụ để kiểm soát chi tiết.

  1. Sử dụng đối số dòng lệnh:

    github-mcp-server --tools get_file_contents,issue_read,create_pull_request
    
  2. Sử dụng biến môi trường:

    GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" ./github-mcp-server
    
  3. Kết hợp với bộ công cụ (cộng dồn):

    github-mcp-server --toolsets repos,issues --tools get_gist
    

    Điều này đăng ký tất cả các công cụ từ bộ công cụ reposissues, cộng với get_gist.

Lưu ý quan trọng:

  • Các công cụ và bộ công cụ có thể được sử dụng cùng nhau
  • Chế độ chỉ đọc có quyền ưu tiên: các công cụ ghi bị bỏ qua nếu --read-only được đặt, ngay cả khi được yêu cầu rõ ràng qua --tools
  • Tên công cụ phải khớp chính xác (ví dụ: get_file_contents, không phải getFileContents). Tên công cụ không hợp lệ sẽ khiến máy chủ không khởi động được với thông báo lỗi
  • Khi các công cụ được đổi tên, tên cũ được giữ lại làm bí danh để tương thích ngược. Xem Đổi tên công cụ để biết chi tiết.

Sử dụng bộ công cụ với Docker

Khi sử dụng Docker, bạn có thể truyền các bộ công cụ dưới dạng biến môi trường:

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

Sử dụng công cụ với Docker

Khi sử dụng Docker, bạn có thể truyền các công cụ cụ thể dưới dạng biến môi trường. Bạn cũng có thể kết hợp các công cụ với bộ công cụ:

# 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

Bộ công cụ đặc biệt

Bộ công cụ "all"

Bộ công cụ đặc biệt all có thể được cung cấp để bật tất cả các bộ công cụ có sẵn bất kể cấu hình nào khác:

./github-mcp-server --toolsets all

Hoặc sử dụng biến môi trường:

GITHUB_TOOLSETS="all" ./github-mcp-server

Bộ công cụ "default"

Bộ công cụ mặc định default là cấu hình được truyền cho máy chủ nếu không có bộ công cụ nào được chỉ định.

Cấu hình mặc định là:

  • context
  • repos
  • issues
  • pull_requests
  • users

Để giữ cấu hình mặc định và thêm các bộ công cụ bổ sung:

GITHUB_TOOLSETS="default,stargazers" ./github-mcp-server

Chế độ Insiders

Máy chủ GitHub MCP cục bộ cung cấp phiên bản insiders với quyền truy cập sớm vào các tính năng mới và công cụ thử nghiệm.

  1. Sử dụng đối số dòng lệnh:

    ./github-mcp-server --insiders
    
  2. Sử dụng biến môi trường:

    GITHUB_INSIDERS=true ./github-mcp-server
    

Khi sử dụng Docker:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_INSIDERS=true \
  ghcr.io/github/github-mcp-server

Các bộ công cụ có sẵn

Các bộ công cụ sau đây có sẵn:

Bộ công cụMô tả
personcontextĐược khuyến nghị mạnh mẽ: Các công cụ cung cấp ngữ cảnh về người dùng hiện tại và ngữ cảnh GitHub bạn đang hoạt động
workflowactionsQuy trình làm việc GitHub Actions và các hoạt động CI/CD
code-squarecode_qualityCác công cụ liên quan đến chất lượng mã GitHub
codescancode_securityCác công cụ liên quan đến bảo mật mã, chẳng hạn như GitHub Code Scanning
copilotcopilotCác công cụ liên quan đến Copilot
copilotcopilot_issue_intentsCác công cụ gán vấn đề Copilot tùy chọn mang siêu dữ liệu ý định (lý do, độ tin cậy, gợi ý)
dependabotdependabotCác công cụ Dependabot
comment-discussiondiscussionsCác công cụ liên quan đến GitHub Discussions
logo-gistgistsCác công cụ liên quan đến GitHub Gist
git-branchgitCác công cụ liên quan đến GitHub Git API cho các hoạt động Git cấp thấp
issue-openedissuesCác công cụ liên quan đến GitHub Issues
taglabelsCác công cụ liên quan đến GitHub Labels
bellnotificationsCác công cụ liên quan đến GitHub Notifications
organizationorgsCác công cụ liên quan đến GitHub Organization
projectprojectsCác công cụ liên quan đến GitHub Projects
git-pull-requestpull_requestsCác công cụ liên quan đến GitHub Pull Request
reporeposCác công cụ liên quan đến GitHub Repository
shield-locksecret_protectionCác công cụ liên quan đến bảo vệ bí mật, chẳng hạn như GitHub Secret Scanning
shieldsecurity_advisoriesCác công cụ liên quan đến tư vấn bảo mật
starstargazersCác công cụ liên quan đến GitHub Stargazers
peopleusersCác công cụ liên quan đến GitHub User

Các bộ công cụ bổ sung trong máy chủ GitHub MCP từ xa

Bộ công cụMô tả
copilotCác công cụ liên quan đến Copilot (ví dụ: Copilot Coding Agent)
copilot_spacesCác công cụ liên quan đến Copilot Spaces
github_support_docs_searchTìm kiếm tài liệu để trả lời các câu hỏi về sản phẩm và hỗ trợ GitHub

Công cụ

workflow Actions
  • actions_get - Lấy chi tiết các tài nguyên GitHub Actions (quy trình làm việc, lần chạy quy trình làm việc, công việc và tạo phẩm)

    • OAuth Challenge Scopes: repo
    • method: Phương thức để thực thi (chuỗi, bắt buộc)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
    • resource_id: Định danh duy nhất của tài nguyên. Điều này sẽ thay đổi dựa trên "phương thức" được cung cấp, vì vậy hãy đảm bảo bạn cung cấp ID chính xác:
      • Cung cấp ID quy trình làm việc hoặc tên tệp quy trình làm việc (ví dụ: ci.yaml) cho phương thức 'get_workflow'.
      • Cung cấp ID lần chạy quy trình làm việc cho các phương thức 'get_workflow_run', 'get_workflow_run_usage' và 'get_workflow_run_logs_url'.
      • Cung cấp ID tạo phẩm cho phương thức 'download_workflow_run_artifact'.
      • Cung cấp ID công việc cho phương thức 'get_workflow_job'. (chuỗi, bắt buộc)
  • actions_list - Liệt kê các quy trình làm việc GitHub Actions trong một kho lưu trữ

    • OAuth Challenge Scopes: repo
    • method: Hành động để thực hiện (chuỗi, bắt buộc)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • page: Số trang để phân trang (mặc định: 1) (số, tùy chọn)
    • per_page: Kết quả mỗi trang để phân trang (mặc định: 30, tối đa: 100) (số, tùy chọn)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
    • resource_id: Định danh duy nhất của tài nguyên. Điều này sẽ thay đổi dựa trên "phương thức" được cung cấp, vì vậy hãy đảm bảo bạn cung cấp ID chính xác:
      • Không cung cấp ID tài nguyên nào cho phương thức 'list_workflows'.
      • Cung cấp ID quy trình làm việc hoặc tên tệp quy trình làm việc (ví dụ: ci.yaml) cho phương thức 'list_workflow_runs', hoặc bỏ qua để liệt kê tất cả các lần chạy quy trình làm việc trong kho lưu trữ.
      • Cung cấp ID lần chạy quy trình làm việc cho các phương thức 'list_workflow_jobs' và 'list_workflow_run_artifacts'. (chuỗi, tùy chọn)
    • workflow_jobs_filter: Bộ lọc cho các công việc quy trình làm việc. CHỈ được sử dụng khi phương thức là 'list_workflow_jobs' (đối tượng, tùy chọn)
    • workflow_runs_filter: Bộ lọc cho các lần chạy quy trình làm việc. CHỈ được sử dụng khi phương thức là 'list_workflow_runs' (đối tượng, tùy chọn)
  • actions_run_trigger - Kích hoạt các hành động quy trình làm việc GitHub Actions

    • OAuth Challenge Scopes: repo
    • inputs: Đầu vào mà quy trình làm việc chấp nhận. Chỉ được sử dụng cho phương thức 'run_workflow'. (đối tượng, tùy chọn)
    • method: Phương thức để thực thi (chuỗi, bắt buộc)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • ref: Tham chiếu git cho quy trình làm việc. Tham chiếu có thể là tên nhánh hoặc thẻ. Bắt buộc cho phương thức 'run_workflow'. (chuỗi, tùy chọn)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
    • run_id: ID của lần chạy quy trình làm việc. Bắt buộc cho tất cả các phương thức trừ 'run_workflow'. (số, tùy chọn)
    • workflow_id: ID quy trình làm việc (số) hoặc tên tệp quy trình làm việc (ví dụ: main.yml, ci.yaml). Bắt buộc cho phương thức 'run_workflow'. (chuỗi, tùy chọn)
  • get_job_logs - Lấy nhật ký công việc quy trình làm việc GitHub Actions

    • OAuth Challenge Scopes: repo
    • failed_only: Khi đúng, lấy nhật ký cho tất cả các công việc thất bại trong lần chạy quy trình làm việc được chỉ định bởi run_id. Yêu cầu run_id phải được cung cấp. (boolean, tùy chọn)
    • job_id: Định danh duy nhất của công việc quy trình làm việc. Bắt buộc khi lấy nhật ký cho một công việc duy nhất. (số, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
    • return_content: Trả về nội dung nhật ký thực tế thay vì URL (boolean, tùy chọn)
    • run_id: Định danh duy nhất của lần chạy quy trình làm việc. Bắt buộc khi failed_only là đúng để lấy nhật ký cho tất cả các công việc thất bại trong lần chạy. (số, tùy chọn)
    • tail_lines: Số dòng để trả về từ cuối nhật ký (số, tùy chọn)
code-square Chất lượng mã
  • get_code_quality_finding - Lấy thông tin phát hiện chất lượng mã
    • OAuth Challenge Scopes: repo
    • findingNumber: Số của phát hiện. (number, bắt buộc)
    • owner: Chủ sở hữu của kho lưu trữ. (string, bắt buộc)
    • repo: Tên của kho lưu trữ. (string, bắt buộc)
codescan Bảo mật mã
  • get_code_scanning_alert - Lấy cảnh báo quét mã

    • OAuth Challenge Scopes: security_events
    • alertNumber: Số của cảnh báo. (number, bắt buộc)
    • owner: Chủ sở hữu của kho lưu trữ. (string, bắt buộc)
    • repo: Tên của kho lưu trữ. (string, bắt buộc)
  • list_code_scanning_alerts - Liệt kê cảnh báo quét mã

    • OAuth Challenge Scopes: security_events
    • owner: Chủ sở hữu của kho lưu trữ. (string, bắt buộc)
    • page: Số trang cho phân trang (tối thiểu 1) (number, tùy chọn)
    • perPage: Số kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (number, tùy chọn)
    • ref: Tham chiếu Git cho các kết quả bạn muốn liệt kê. (string, tùy chọn)
    • repo: Tên của kho lưu trữ. (string, bắt buộc)
    • severity: Lọc cảnh báo quét mã theo mức độ nghiêm trọng (string, tùy chọn)
    • state: Lọc cảnh báo quét mã theo trạng thái. Mặc định là open (string, tùy chọn)
    • tool_name: Tên của công cụ được sử dụng để quét mã. (string, tùy chọn)
person Ngữ cảnh
  • get_me - Lấy hồ sơ người dùng của tôi

    • Không yêu cầu tham số
  • get_team_members - Lấy thành viên nhóm

    • OAuth Challenge Scopes: read:org
    • org: Tên đăng nhập tổ chức (chủ sở hữu) chứa nhóm. (string, bắt buộc)
    • team_slug: Slug của nhóm (string, bắt buộc)
  • get_teams - Lấy danh sách nhóm

    • OAuth Challenge Scopes: read:org
    • user: Tên người dùng để lấy nhóm. Nếu không được cung cấp, sử dụng người dùng đã xác thực. (string, tùy chọn)
copilot Copilot
  • assign_copilot_to_issue - Gán Copilot cho issue

    • OAuth Challenge Scopes: repo
    • base_ref: Tham chiếu Git (ví dụ: nhánh) mà agent sẽ bắt đầu công việc từ đó. Nếu không được chỉ định, mặc định là nhánh mặc định của kho lưu trữ (string, tùy chọn)
    • custom_instructions: Hướng dẫn tùy chỉnh tùy chọn để hướng dẫn agent ngoài nội dung issue. Sử dụng để cung cấp thêm ngữ cảnh, ràng buộc hoặc hướng dẫn không có trong mô tả issue (string, tùy chọn)
    • issue_number: Số issue (number, bắt buộc)
    • owner: Chủ sở hữu kho lưu trữ (string, bắt buộc)
    • repo: Tên kho lưu trữ (string, bắt buộc)
  • request_copilot_review - Yêu cầu đánh giá Copilot

    • OAuth Challenge Scopes: repo
    • owner: Chủ sở hữu kho lưu trữ (string, bắt buộc)
    • pullNumber: Số pull request (number, bắt buộc)
    • repo: Tên kho lưu trữ (string, bắt buộc)
copilot Ý định Issue Copilot
  • assign_copilot_to_issue_with_intent - Gán Copilot cho issue với ý định
    • OAuth Challenge Scopes: repo
    • base_ref: Tham chiếu Git (ví dụ: nhánh) mà agent sẽ bắt đầu công việc từ đó. Nếu không được chỉ định, mặc định là nhánh mặc định của kho lưu trữ. Bị bỏ qua khi is_suggestion là true (string, tùy chọn)
    • confidence: Mức độ tự tin của bạn trong lựa chọn này. 'HIGH' cho tín hiệu rõ ràng hoặc yêu cầu tường minh từ người dùng, 'MEDIUM' cho suy luận hợp lý với một số sự mơ hồ, 'LOW' cho dự đoán tốt nhất với tín hiệu hạn chế. (string, bắt buộc)
    • custom_instructions: Hướng dẫn tùy chỉnh tùy chọn để hướng dẫn agent ngoài nội dung issue. Bị bỏ qua khi is_suggestion là true (string, tùy chọn)
    • is_suggestion: Nếu true, ghi lại một ý định gán Copilot đang chờ xử lý thay vì khởi chạy agent. Việc phê duyệt sau đó sẽ cung cấp ngữ cảnh khởi chạy; base_ref và custom_instructions bị bỏ qua trong trường hợp này. (boolean, bắt buộc)
    • issue_number: Số issue (number, bắt buộc)
    • owner: Chủ sở hữu kho lưu trữ (string, bắt buộc)
    • rationale: Một câu ngắn gọn giải thích cụ thể điều gì về issue đã dẫn đến việc chọn Copilot. Nêu rõ tín hiệu cụ thể (ví dụ: 'Nhiệm vụ có phạm vi rõ ràng với tiêu chí chấp nhận rõ ràng'). (string, bắt buộc)
    • repo: Tên kho lưu trữ (string, bắt buộc)
dependabot Dependabot
  • get_dependabot_alert - Lấy cảnh báo dependabot

    • OAuth Challenge Scopes: security_events
    • alertNumber: Số của cảnh báo. (number, bắt buộc)
    • owner: Chủ sở hữu của kho lưu trữ. (string, bắt buộc)
    • repo: Tên của kho lưu trữ. (string, bắt buộc)
  • list_dependabot_alerts - Liệt kê cảnh báo dependabot

    • OAuth Challenge Scopes: security_events
    • after: Con trỏ cho phân trang. Sử dụng con trỏ từ phản hồi trước đó. (string, tùy chọn)
    • owner: Chủ sở hữu của kho lưu trữ. (string, bắt buộc)
    • perPage: Số kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (number, tùy chọn)
    • repo: Tên của kho lưu trữ. (string, bắt buộc)
    • severity: Lọc cảnh báo dependabot theo mức độ nghiêm trọng (string, tùy chọn)
    • state: Lọc cảnh báo dependabot theo trạng thái. Mặc định là open (string, tùy chọn)
comment-discussion Thảo luận
  • discussion_comment_write - Quản lý bình luận thảo luận

    • OAuth Challenge Scopes: repo
    • body: Nội dung bình luận (bắt buộc cho các phương thức 'add', 'reply' và 'update') (string, tùy chọn)
    • commentNodeID: ID Node của bình luận thảo luận (bắt buộc cho các phương thức 'reply', 'update', 'delete', 'mark_answer' và 'unmark_answer'). Đối với 'reply', đây là bình luận cấp cao nhất để trả lời; GitHub Discussions chỉ hỗ trợ một cấp lồng nhau. (string, tùy chọn)
    • discussionNumber: Số thảo luận (bắt buộc cho các phương thức 'add' và 'reply') (number, tùy chọn)
    • method: Thao tác ghi để thực hiện trên bình luận thảo luận. Các tùy chọn là:
      • 'add' - thêm một bình luận cấp cao nhất mới vào một thảo luận.
      • 'reply' - trả lời một bình luận thảo luận cấp cao nhất (GitHub Discussions chỉ hỗ trợ một cấp lồng nhau).
      • 'update' - cập nhật một bình luận thảo luận hiện có.
      • 'delete' - xóa một bình luận thảo luận.
      • 'mark_answer' - đánh dấu một bình luận thảo luận là câu trả lời (chỉ dành cho Hỏi & Đáp).
      • 'unmark_answer' - bỏ đánh dấu một bình luận thảo luận là câu trả lời (chỉ dành cho Hỏi & Đáp). (string, bắt buộc)
    • owner: Chủ sở hữu kho lưu trữ (bắt buộc cho các phương thức 'add' và 'reply') (string, tùy chọn)
    • repo: Tên kho lưu trữ (bắt buộc cho các phương thức 'add' và 'reply') (string, tùy chọn)
  • get_discussion - Lấy thảo luận

    • OAuth Challenge Scopes: repo
    • discussionNumber: Số thảo luận (number, bắt buộc)
    • owner: Chủ sở hữu kho lưu trữ (string, bắt buộc)
    • repo: Tên kho lưu trữ (string, bắt buộc)
  • get_discussion_comments - Lấy bình luận thảo luận

    • OAuth Challenge Scopes: repo
    • after: Con trỏ cho phân trang. Sử dụng con trỏ từ phản hồi trước đó. (string, tùy chọn)
    • discussionNumber: Số thảo luận (number, bắt buộc)
    • includeReplies: Khi true, mỗi bình luận cấp cao nhất sẽ bao gồm các câu trả lời của nó được lồng bên trong (tối đa 100 câu trả lời cho mỗi bình luận, là mức tối đa của GitHub API). Mặc định là false. (boolean, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (string, bắt buộc)
    • perPage: Số kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (number, tùy chọn)
    • repo: Tên kho lưu trữ (string, bắt buộc)
  • list_discussion_categories - Liệt kê danh mục thảo luận

    • OAuth Challenge Scopes: repo
    • owner: Chủ sở hữu kho lưu trữ (string, bắt buộc)
    • repo: Tên kho lưu trữ. Nếu không được cung cấp, các danh mục thảo luận sẽ được truy vấn ở cấp tổ chức. (string, tùy chọn)
  • list_discussions - Liệt kê thảo luận

    • OAuth Challenge Scopes: repo
    • after: Con trỏ cho phân trang. Sử dụng con trỏ từ phản hồi trước đó. (string, tùy chọn)
    • category: Bộ lọc tùy chọn theo ID danh mục thảo luận. Nếu được cung cấp, chỉ các thảo luận có danh mục này được liệt kê. (string, tùy chọn)
    • direction: Hướng sắp xếp. (string, tùy chọn)
    • orderBy: Sắp xếp thảo luận theo trường. Nếu được cung cấp, 'direction' cũng cần được cung cấp. (string, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (string, bắt buộc)
    • perPage: Số kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (number, tùy chọn)
    • repo: Tên kho lưu trữ. Nếu không được cung cấp, các thảo luận sẽ được truy vấn ở cấp tổ chức. (string, tùy chọn)
logo-gist Gists
  • create_gist - Tạo Gist

    • OAuth Challenge Scopes: gist
    • content: Nội dung để tạo gist một tệp đơn giản (string, bắt buộc)
    • description: Mô tả của gist (string, tùy chọn)
    • filename: Tên tệp để tạo gist một tệp đơn giản (string, bắt buộc)
    • public: Liệu gist có công khai hay không (boolean, tùy chọn)
  • get_gist - Lấy nội dung Gist

    • gist_id: ID của gist (string, bắt buộc)
  • list_gists - Liệt kê Gists

    • page: Số trang cho phân trang (tối thiểu 1) (number, tùy chọn)
    • perPage: Số kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (number, tùy chọn)
    • since: Chỉ các gist được cập nhật sau thời gian này (dấu thời gian ISO 8601) (string, tùy chọn)
    • username: Tên người dùng GitHub (bỏ qua để lấy gist của người dùng đã xác thực) (string, tùy chọn)
  • update_gist - Cập nhật Gist

    • OAuth Challenge Scopes: gist
    • content: Nội dung cho tệp (string, bắt buộc)
    • description: Mô tả cập nhật của gist (string, tùy chọn)
    • filename: Tên tệp để cập nhật hoặc tạo (string, bắt buộc)
    • gist_id: ID của gist cần cập nhật (string, bắt buộc)
git-branch Git - **get_repository_tree** - Lấy cây thư mục của repository - **OAuth Challenge Scopes**: `repo` - `owner`: Chủ sở hữu repository (tên người dùng hoặc tổ chức) (string, bắt buộc) - `path_filter`: Tiền tố đường dẫn tùy chọn để lọc kết quả cây thư mục (ví dụ: 'src/' để chỉ hiển thị các tệp trong thư mục src) (string, tùy chọn) - `recursive`: Đặt tham số này thành true sẽ trả về các đối tượng hoặc cây con được tham chiếu bởi cây thư mục. Mặc định là false (boolean, tùy chọn) - `repo`: Tên repository (string, bắt buộc) - `tree_sha`: Giá trị SHA1 hoặc tên ref (nhánh hoặc thẻ) của cây thư mục. Mặc định là nhánh mặc định của repository (string, tùy chọn)
issue-opened Issues
  • add_issue_comment - Thêm bình luận vào issue hoặc pull request

    • OAuth Challenge Scopes: repo
    • body: Nội dung bình luận. Bắt buộc trừ khi có phản ứng (reaction). (string, tùy chọn)
    • comment_id: ID số của bình luận issue hoặc pull request để phản ứng. Sử dụng tham số này cho phản ứng với bình luận; bỏ qua để phản ứng với chính issue hoặc pull request. Không thể kết hợp với body. (integer, tùy chọn)
    • issue_number: Số issue hoặc pull request để bình luận hoặc phản ứng. (number, bắt buộc)
    • owner: Chủ sở hữu repository (string, bắt buộc)
    • reaction: Phản ứng biểu tượng cảm xúc (emoji) để thêm. Bắt buộc trừ khi có body. (string, tùy chọn)
    • repo: Tên repository (string, bắt buộc)
  • get_label - Lấy một nhãn cụ thể từ repository

    • OAuth Challenge Scopes: repo
    • name: Tên nhãn. (string, bắt buộc)
    • owner: Chủ sở hữu repository (tên người dùng hoặc tên tổ chức) (string, bắt buộc)
    • repo: Tên repository (string, bắt buộc)
  • issue_read - Lấy chi tiết issue

    • OAuth Challenge Scopes: repo
    • issue_number: Số của issue (number, bắt buộc)
    • method: Thao tác đọc để thực hiện trên một issue. Các tùy chọn là:
      1. get - Lấy chi tiết issue. Cũng trả về các cờ phân cấp nỗ lực tốt nhất (has_parent, has_children); parentsub_issues_summary là các tóm tắt quan hệ tùy chọn, và closed_by_pull_requests tóm tắt các pull request được cấu hình để đóng issue dưới dạng total_count cộng với tối đa 5 references.
      2. get_comments - Lấy bình luận của issue.
      3. get_sub_issues - Lấy các issue con (children) của issue.
      4. get_parent - Lấy issue cha, nếu issue này là issue con của một issue khác.
      5. get_labels - Lấy các nhãn được gán cho issue. (string, bắt buộc)
    • owner: Chủ sở hữu của repository (string, bắt buộc)
    • page: Số trang cho phân trang (tối thiểu 1) (number, tùy chọn)
    • perPage: Số kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (number, tùy chọn)
    • repo: Tên của repository (string, bắt buộc)
  • issue_write - Tạo hoặc cập nhật issue/pull request

    • OAuth Challenge Scopes: repo
    • assignees: Tên người dùng để gán cho issue này (string[], tùy chọn)
    • body: Nội dung body của issue (string, tùy chọn)
    • duplicate_of: Số issue mà issue này là bản sao của. Bắt buộc khi state_reason là 'duplicate'. (number, tùy chọn)
    • issue_fields: Các giá trị trường issue để đặt hoặc xóa. Mỗi mục yêu cầu 'field_name' và chính xác một trong 'value', 'field_option_name' hoặc 'delete: true'. (object[], tùy chọn)
    • issue_number: Số issue để cập nhật (number, tùy chọn)
    • labels: Các nhãn để áp dụng cho issue này (string[], tùy chọn)
    • method: Thao tác ghi để thực hiện trên một issue. Các tùy chọn là:
      • 'create' - tạo một issue mới.
      • 'update' - cập nhật một issue hiện có. (string, bắt buộc)
    • milestone: Số milestone (number, tùy chọn)
    • owner: Chủ sở hữu repository (string, bắt buộc)
    • parent_issue_number: Số issue của issue cha. Chỉ được sử dụng khi method là 'create' và không thể kết hợp với issue_fields. Issue mới được tạo và gắn vào issue cha này trong cùng một thao tác. (number, tùy chọn)
    • parent_owner: Chủ sở hữu repository của issue cha. Phải được cung cấp cùng với parent_repo. Bỏ qua cả hai để sử dụng owner và repo. Chỉ được sử dụng khi method là 'create' và parent_issue_number được cung cấp. (string, tùy chọn)
    • parent_repo: Tên repository của issue cha. Phải được cung cấp cùng với parent_owner. Bỏ qua cả hai để sử dụng owner và repo. Chỉ được sử dụng khi method là 'create' và parent_issue_number được cung cấp. (string, tùy chọn)
    • repo: Tên repository (string, bắt buộc)
    • state: Trạng thái mới (string, tùy chọn)
    • state_reason: Lý do cho việc thay đổi trạng thái. Bị bỏ qua trừ khi trạng thái được thay đổi. (string, tùy chọn)
    • title: Tiêu đề issue (string, tùy chọn)
    • type: Loại của issue này. Đối với cập nhật, truyền null để xóa loại hiện tại. Chỉ sử dụng nếu loại issue được bật cho repository này. Sử dụng list_issue_types để lấy các giá trị loại hợp lệ cho repository này hoặc tổ chức sở hữu của nó. Nếu repository không hỗ trợ loại issue, bỏ qua tham số này. (string | null, tùy chọn)
  • list_issue_fields - Liệt kê các trường issue

    • OAuth Challenge Scopes: repo, read:org
    • owner: Chủ sở hữu tài khoản của repository hoặc tổ chức. Tên không phân biệt chữ hoa chữ thường. (string, bắt buộc)
    • repo: Tên của repository. Khi được cung cấp, trả về các trường cho repository cụ thể này (kế thừa từ tổ chức của nó). Khi bỏ qua, trả về các trường cấp tổ chức trực tiếp. (string, tùy chọn)
  • list_issue_types - Liệt kê các loại issue có sẵn

    • OAuth Challenge Scopes: repo, read:org
    • owner: Chủ sở hữu tài khoản của repository hoặc tổ chức. (string, bắt buộc)
    • repo: Tên của repository. Khi được cung cấp, trả về các loại issue cho repository cụ thể này. Khi bỏ qua, trả về các loại issue cấp tổ chức trực tiếp. (string, tùy chọn)
  • list_issues - Liệt kê các issue

    • OAuth Challenge Scopes: repo
    • after: Con trỏ cho phân trang. Sử dụng con trỏ từ phản hồi trước đó. (string, tùy chọn)
    • direction: Hướng sắp xếp. Nếu được cung cấp, 'orderBy' cũng cần được cung cấp. (string, tùy chọn)
    • field_filters: Lọc theo các giá trị trường issue tùy chỉnh. Mỗi mục nhập nhận một field_name và một value; máy chủ tra cứu trường và ép kiểu giá trị sang loại của nó (tên tùy chọn chọn một, văn bản, số hoặc ngày YYYY-MM-DD). (object[], tùy chọn)
    • fields: Tập hợp con các trường để trả về cho mỗi issue. Nếu bỏ qua, tất cả các trường được trả về. Sử dụng tham số này để giảm kích thước phản hồi khi bạn chỉ cần các trường cụ thể; đặc biệt bỏ qua 'body' và 'field_values' sẽ loại bỏ dữ liệu lớn nhất trên mỗi kết quả. (string[], tùy chọn)
    • labels: Lọc theo nhãn (string[], tùy chọn)
    • orderBy: Sắp xếp các issue theo trường. Nếu được cung cấp, 'direction' cũng cần được cung cấp. (string, tùy chọn)
    • owner: Chủ sở hữu repository (string, bắt buộc)
    • perPage: Số kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (number, tùy chọn)
    • repo: Tên repository (string, bắt buộc)
    • since: Lọc theo ngày (dấu thời gian ISO 8601) (string, tùy chọn)
    • state: Lọc theo trạng thái, theo mặc định cả issue mở và đóng được trả về khi không được cung cấp (string, tùy chọn)
  • search_issues - Tìm kiếm các issue

    • OAuth Challenge Scopes: repo
    • fields: Tập hợp con các trường để trả về cho mỗi kết quả issue. Nếu bỏ qua, tất cả các trường được trả về. Sử dụng tham số này để giảm kích thước phản hồi khi bạn chỉ cần các trường cụ thể; đặc biệt bỏ qua 'body', 'reactions' và 'labels' sẽ loại bỏ dữ liệu lớn nhất trên mỗi kết quả. (string[], tùy chọn)
    • order: Thứ tự sắp xếp (string, tùy chọn)
    • owner: Chủ sở hữu repository tùy chọn. Nếu được cung cấp cùng với repo, chỉ các issue cho repository này được liệt kê. (string, tùy chọn)
    • page: Số trang cho phân trang (tối thiểu 1) (number, tùy chọn)
    • perPage: Số kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (number, tùy chọn)
    • query: Truy vấn tìm kiếm, dưới dạng ngôn ngữ tự nhiên. Khi người dùng đưa ra các cách diễn đạt thay thế, hãy bao gồm chúng dưới dạng các từ đơn giản thay vì nối chúng bằng OR. (string, bắt buộc)
    • repo: Tên repository tùy chọn. Nếu được cung cấp cùng với owner, chỉ các issue cho repository này được liệt kê. (string, tùy chọn)
    • sort: Trường sắp xếp theo số lượng khớp của các danh mục, mặc định là khớp tốt nhất (string, tùy chọn)
  • sub_issue_write - Thay đổi issue con

    • OAuth Challenge Scopes: repo
    • after_id: ID của issue con được ưu tiên sau (chỉ định either after_id OR before_id) (number, tùy chọn)
    • before_id: ID của issue con được ưu tiên trước (chỉ định either after_id OR before_id) (number, tùy chọn)
    • issue_number: Số của issue cha (number, bắt buộc)
    • method: Hành động để thực hiện trên một issue con Các tùy chọn là:
      • 'add' - thêm một issue con vào issue cha trong repository GitHub.
      • 'remove' - xóa một issue con khỏi issue cha trong repository GitHub.
      • 'reprioritize' - thay đổi thứ tự của các issue con trong một issue cha trong repository GitHub. Sử dụng either 'after_id' hoặc 'before_id' để chỉ định vị trí mới. Ghi phân cấp issue. Để di chuyển một issue con đến một issue cha mới, sử dụng add với replace_parent=true; không có trường cha có thể ghi. (string, bắt buộc)
    • owner: Chủ sở hữu repository (string, bắt buộc)
    • replace_parent: Khi true, thay thế issue cha hiện tại của issue con. Chỉ sử dụng với phương thức 'add'. (boolean, tùy chọn)
    • repo: Tên repository (string, bắt buộc)
    • sub_issue_id: ID của issue con để thêm. ID không giống với số issue (number, bắt buộc)
tag Labels
  • get_label - Lấy một nhãn cụ thể từ repository

    • OAuth Challenge Scopes: repo
    • name: Tên nhãn. (string, bắt buộc)
    • owner: Chủ sở hữu repository (tên người dùng hoặc tên tổ chức) (string, bắt buộc)
    • repo: Tên repository (string, bắt buộc)
  • label_write - Các thao tác ghi trên nhãn repository

    • OAuth Challenge Scopes: repo
    • color: Màu nhãn dưới dạng mã hex 6 ký tự không có tiền tố '#' (ví dụ: 'f29513'). Bắt buộc cho 'create', tùy chọn cho 'update'. (string, tùy chọn)
    • description: Văn bản mô tả nhãn. Tùy chọn cho 'create' và 'update'. (string, tùy chọn)
    • method: Thao tác để thực hiện: 'create', 'update' hoặc 'delete' (string, bắt buộc)
    • name: Tên nhãn - bắt buộc cho tất cả các thao tác (string, bắt buộc)
    • new_name: Tên mới cho nhãn (chỉ được sử dụng với phương thức 'update' để đổi tên) (string, tùy chọn)
    • owner: Chủ sở hữu repository (tên người dùng hoặc tên tổ chức) (string, bắt buộc)
    • repo: Tên repository (string, bắt buộc)
  • list_label - Liệt kê các nhãn từ repository

    • OAuth Challenge Scopes: repo
    • owner: Chủ sở hữu repository (tên người dùng hoặc tên tổ chức) - bắt buộc cho tất cả các thao tác (string, bắt buộc)
    • repo: Tên repository - bắt buộc cho tất cả các thao tác (string, bắt buộc)
bell Notifications - **dismiss_notification** - Bỏ qua thông báo - **Phạm vi OAuth Challenge**: `notifications` - `state`: Trạng thái mới của thông báo (đã đọc/đã hoàn thành) (chuỗi, bắt buộc) - `threadID`: ID của chuỗi thông báo (chuỗi, bắt buộc)
  • get_notification_details - Lấy chi tiết thông báo

    • Phạm vi OAuth Challenge: notifications
    • notificationID: ID của thông báo (chuỗi, bắt buộc)
  • list_notifications - Liệt kê thông báo

    • Phạm vi OAuth Challenge: notifications
    • before: Chỉ hiển thị các thông báo được cập nhật trước thời điểm đã cho (định dạng ISO 8601) (chuỗi, tùy chọn)
    • filter: Lọc thông báo, sử dụng mặc định trừ khi được chỉ định. Thông báo đã đọc là những thông báo đã được người dùng xác nhận. Thông báo tham gia là những thông báo mà người dùng trực tiếp tham gia, chẳng hạn như các vấn đề hoặc yêu cầu kéo mà họ đã bình luận hoặc tạo. (chuỗi, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ tùy chọn. Nếu được cung cấp cùng với repo, chỉ các thông báo cho kho lưu trữ này được liệt kê. (chuỗi, tùy chọn)
    • page: Số trang cho phân trang (tối thiểu 1) (số, tùy chọn)
    • perPage: Kết quả trên mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (số, tùy chọn)
    • repo: Tên kho lưu trữ tùy chọn. Nếu được cung cấp cùng với chủ sở hữu, chỉ các thông báo cho kho lưu trữ này được liệt kê. (chuỗi, tùy chọn)
    • since: Chỉ hiển thị các thông báo được cập nhật sau thời điểm đã cho (định dạng ISO 8601) (chuỗi, tùy chọn)
  • manage_notification_subscription - Quản lý đăng ký thông báo

    • Phạm vi OAuth Challenge: notifications
    • action: Hành động cần thực hiện: bỏ qua, theo dõi hoặc xóa đăng ký thông báo. (chuỗi, bắt buộc)
    • notificationID: ID của chuỗi thông báo. (chuỗi, bắt buộc)
  • manage_repository_notification_subscription - Quản lý đăng ký thông báo kho lưu trữ

    • Phạm vi OAuth Challenge: notifications
    • action: Hành động cần thực hiện: bỏ qua, theo dõi hoặc xóa đăng ký thông báo kho lưu trữ. (chuỗi, bắt buộc)
    • owner: Chủ sở hữu tài khoản của kho lưu trữ. (chuỗi, bắt buộc)
    • repo: Tên của kho lưu trữ. (chuỗi, bắt buộc)
  • mark_all_notifications_read - Đánh dấu tất cả thông báo là đã đọc

    • Phạm vi OAuth Challenge: notifications
    • lastReadAt: Mô tả thời điểm cuối cùng mà thông báo được kiểm tra (tùy chọn). Mặc định: Bây giờ (chuỗi, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ tùy chọn. Nếu được cung cấp cùng với repo, chỉ các thông báo cho kho lưu trữ này được đánh dấu là đã đọc. (chuỗi, tùy chọn)
    • repo: Tên kho lưu trữ tùy chọn. Nếu được cung cấp cùng với chủ sở hữu, chỉ các thông báo cho kho lưu trữ này được đánh dấu là đã đọc. (chuỗi, tùy chọn)
organization Tổ chức
  • search_orgs - Tìm kiếm tổ chức
    • Phạm vi OAuth Challenge: read:org
    • order: Thứ tự sắp xếp (chuỗi, tùy chọn)
    • page: Số trang cho phân trang (tối thiểu 1) (số, tùy chọn)
    • perPage: Kết quả trên mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (số, tùy chọn)
    • query: Truy vấn tìm kiếm tổ chức. Ví dụ: 'microsoft', 'location:california', 'created:>=2025-01-01'. Tìm kiếm được tự động giới hạn ở type:org. (chuỗi, bắt buộc)
    • sort: Trường sắp xếp theo danh mục (chuỗi, tùy chọn)
project Dự án
  • projects_get - Lấy chi tiết tài nguyên GitHub Projects

    • Phạm vi OAuth Challenge: read:project
    • field_id: ID của trường. Bắt buộc cho phương thức 'get_project_field'. (số, tùy chọn)
    • field_names: Danh sách cụ thể các tên trường cần bao gồm trong phản hồi khi lấy một mục dự án (ví dụ: ["Status", "Priority"]). Được phân giải phía máy chủ thành ID trường — truyền giá trị này thay vì 'fields' khi bạn chỉ biết tên có thể đọc được. Loại trừ lẫn nhau với 'fields' — chỉ cung cấp một trong hai, không cung cấp cả hai. Chỉ được sử dụng cho phương thức 'get_project_item'. (string[], tùy chọn)
    • fields: Danh sách cụ thể các ID trường cần bao gồm trong phản hồi khi lấy một mục dự án (ví dụ: ["102589", "985201", "169875"]). Nếu cả 'fields' và 'field_names' đều không được cung cấp, chỉ có trường tiêu đề được bao gồm. Loại trừ lẫn nhau với 'field_names' — chỉ cung cấp một trong hai, không cung cấp cả hai. Chỉ được sử dụng cho phương thức 'get_project_item'. (string[], tùy chọn)
    • item_id: ID của mục. Bắt buộc cho phương thức 'get_project_item'. (số, tùy chọn)
    • method: Phương thức cần thực thi (chuỗi, bắt buộc)
    • owner: Chủ sở hữu (đăng nhập người dùng hoặc tổ chức). Tên không phân biệt chữ hoa chữ thường. (chuỗi, tùy chọn)
    • owner_type: Loại chủ sở hữu (người dùng hoặc tổ chức). Nếu không được cung cấp, sẽ được tự động phát hiện. (chuỗi, tùy chọn)
    • project_number: Số của dự án. (số, tùy chọn)
    • status_update_id: ID nút của bản cập nhật trạng thái dự án. Bắt buộc cho phương thức 'get_project_status_update'. (chuỗi, tùy chọn)
    • view_id: ID nút của chế độ xem dự án. Bắt buộc cho phương thức 'get_project_view'. (chuỗi, tùy chọn)
  • projects_list - Liệt kê tài nguyên GitHub Projects

    • Phạm vi OAuth Challenge: read:project
    • after: Con trỏ phân trang chuyển tiếp từ pageInfo.nextCursor trước đó. (chuỗi, tùy chọn)
    • before: Con trỏ phân trang lùi từ pageInfo.prevCursor trước đó (hiếm). (chuỗi, tùy chọn)
    • field_names: Tên trường cần bao gồm khi liệt kê các mục dự án (ví dụ: ["Status", "Priority"]). Được phân giải phía máy chủ thành ID trường — truyền giá trị này thay vì 'fields' khi bạn chỉ biết tên có thể đọc được. Các tên không phân giải được sẽ trả về lỗi có cấu trúc. Loại trừ lẫn nhau với 'fields' — chỉ cung cấp một trong hai, không cung cấp cả hai. Chỉ được sử dụng cho phương thức 'list_project_items'. (string[], tùy chọn)
    • fields: ID trường cần bao gồm khi liệt kê các mục dự án (ví dụ: ["102589", "985201"]). QUAN TRỌNG: Luôn cung cấp để lấy giá trị trường. Nếu không có giá trị này (và không có 'field_names'), chỉ trả về tiêu đề. Loại trừ lẫn nhau với 'field_names' — chỉ cung cấp một trong hai, không cung cấp cả hai. Chỉ được sử dụng cho phương thức 'list_project_items'. (string[], tùy chọn)
    • method: Hành động cần thực hiện (chuỗi, bắt buộc)
    • owner: Chủ sở hữu (đăng nhập người dùng hoặc tổ chức). Tên không phân biệt chữ hoa chữ thường. (chuỗi, bắt buộc)
    • owner_type: Loại chủ sở hữu (người dùng hoặc tổ chức). Nếu không được cung cấp, sẽ tự động thử cả hai. (chuỗi, tùy chọn)
    • per_page: Kết quả trên mỗi trang (tối đa 50) (số, tùy chọn)
    • project_number: Số của dự án. Bắt buộc cho các phương thức 'list_project_fields', 'list_project_items', 'list_project_views' và 'list_project_status_updates'. (số, tùy chọn)
    • query: Chuỗi lọc/truy vấn. Đối với list_projects: lọc theo văn bản tiêu đề và trạng thái (ví dụ: "roadmap is:open"). Đối với list_project_items: lọc nâng cao bằng cú pháp lọc dự án của GitHub. (chuỗi, tùy chọn)
  • projects_write - Quản lý GitHub Projects

    • Phạm vi OAuth Challenge: project
    • body: Nội dung của bản cập nhật trạng thái (markdown). Được sử dụng cho phương thức 'create_project_status_update'. (chuỗi, tùy chọn)
    • field_name: Tên của trường lặp (ví dụ: 'Sprint'). Bắt buộc cho phương thức 'create_iteration_field'. (chuỗi, tùy chọn)
    • filter: Bộ lọc chế độ xem đã lưu; bỏ qua khi cập nhật để giữ nguyên, hoặc truyền null để xóa. (chuỗi | null, tùy chọn)
    • issue_number: Số vấn đề. Bắt buộc cho 'add_project_item' khi item_type là 'issue'. Cũng được chấp nhận bởi 'update_project_item' để phân giải mục theo số vấn đề (kết hợp với item_owner và item_repo). (số, tùy chọn)
    • item_id: ID mục dự án. Bắt buộc cho 'delete_project_item'. Đối với 'update_project_item', cung cấp item_id hoặc (item_owner + item_repo + issue_number) để phân giải mục theo vấn đề. (số, tùy chọn)
    • item_owner: Chủ sở hữu (người dùng hoặc tổ chức) của kho lưu trữ chứa vấn đề hoặc yêu cầu kéo. Bắt buộc cho phương thức 'add_project_item'. Cũng được chấp nhận bởi 'update_project_item' khi phân giải mục theo số vấn đề. (chuỗi, tùy chọn)
    • item_repo: Tên của kho lưu trữ chứa vấn đề hoặc yêu cầu kéo. Bắt buộc cho phương thức 'add_project_item'. Cũng được chấp nhận bởi 'update_project_item' khi phân giải mục theo số vấn đề. (chuỗi, tùy chọn)
    • item_type: Loại của mục, là issue hoặc pull_request. Bắt buộc cho phương thức 'add_project_item'. (chuỗi, tùy chọn)
    • items: Các mục cần cập nhật với 'updated_field' cấp cao nhất. Bắt buộc cho 'update_project_items'; ưu tiên sử dụng thay vì gọi 'update_project_item' trong vòng lặp. Mỗi mục phải khớp chính xác một biến thể tham chiếu: 'node_id', 'item_id' dạng số, hoặc 'item_owner' + 'item_repo' + 'issue_number'. Giới hạn: 50 mục mỗi lần gọi. (object[], tùy chọn)
    • iteration_duration: Thời lượng tính bằng ngày cho các lần lặp của trường (ví dụ: 7 cho hàng tuần, 14 cho hai tuần một lần). Bắt buộc cho phương thức 'create_iteration_field'. (số, tùy chọn)
    • iterations: Các lần lặp tùy chỉnh cho phương thức 'create_iteration_field'. Chỉ đặt khi bạn cần các lần lặp có thời lượng khác nhau, khoảng nghỉ giữa chúng hoặc tiêu đề cụ thể. Nếu không, hãy bỏ qua: GitHub tự động tạo ba lần lặp với 'iteration_duration' ngày bắt đầu từ 'start_date', đây là lựa chọn đúng cho hầu hết các trường hợp. (object[], tùy chọn)
    • layout: Bố cục chế độ xem; bắt buộc khi tạo chế độ xem. (chuỗi, tùy chọn)
    • method: Phương thức cần thực thi (chuỗi, bắt buộc)
    • name: Tên chế độ xem; bắt buộc khi tạo chế độ xem. (chuỗi, tùy chọn)
    • owner: Chủ sở hữu dự án (đăng nhập người dùng hoặc tổ chức). Tên không phân biệt chữ hoa chữ thường. (chuỗi, bắt buộc)
    • owner_type: Loại chủ sở hữu (người dùng hoặc tổ chức). Bắt buộc cho phương thức 'create_project'. Nếu không được cung cấp cho các phương thức khác, sẽ được tự động phát hiện. (chuỗi, tùy chọn)
    • project_number: Số của dự án. Bắt buộc cho tất cả các phương thức trừ 'create_project'. (số, tùy chọn)
    • pull_request_number: Số yêu cầu kéo (sử dụng khi item_type là 'pull_request' cho phương thức 'add_project_item'). Cung cấp issue_number hoặc pull_request_number. (số, tùy chọn)
    • start_date: Ngày bắt đầu theo định dạng YYYY-MM-DD. Được sử dụng cho các phương thức 'create_project_status_update' và 'create_iteration_field'. (chuỗi, tùy chọn)
    • status: Trạng thái của dự án. Được sử dụng cho phương thức 'create_project_status_update'. (chuỗi, tùy chọn)
    • target_date: Ngày mục tiêu của bản cập nhật trạng thái theo định dạng YYYY-MM-DD. Được sử dụng cho phương thức 'create_project_status_update'. (chuỗi, tùy chọn)
    • title: Tiêu đề dự án. Bắt buộc cho phương thức 'create_project'. (chuỗi, tùy chọn)
    • updated_field: Trường/giá trị cần áp dụng, sử dụng {"id": 123, "value": ...} hoặc {"name": "Status", "value": ...}; null xóa trường. Bắt buộc cho 'update_project_item' và 'update_project_items', trong đó một trường/giá trị cấp cao nhất áp dụng cho mọi mục trong một lô. Đối với trường SINGLE_SELECT của 'update_project_item', dạng tên chấp nhận tên tùy chọn; dạng ID mong đợi ID tùy chọn. (object, tùy chọn)
    • view_id: ID nút chế độ xem dự án để cập nhật hoặc xóa; phải thuộc về owner/project_number. (chuỗi, tùy chọn)
    • visible_field_names: Danh sách có thứ tự các tên trường dự án để hiển thị khi tạo hoặc thay thế khi cập nhật; bỏ qua khi cập nhật để giữ nguyên, hoặc truyền [] để đặt lại. Loại trừ lẫn nhau với visible_fields. Roadmap chỉ chấp nhận []. (string[], tùy chọn)
    • visible_fields: Danh sách có thứ tự các ID cơ sở dữ liệu trường dự án để hiển thị khi tạo hoặc thay thế khi cập nhật; bỏ qua khi cập nhật để giữ nguyên, hoặc truyền [] để đặt lại. Loại trừ lẫn nhau với visible_field_names. Roadmap chỉ chấp nhận []. (string[], tùy chọn)
git-pull-request Pull Requests
  • add_comment_to_pending_review - Thêm bình luận đánh giá vào bản đánh giá pull request đang chờ mới nhất của người yêu cầu

    • OAuth Challenge Scopes: repo
    • body: Nội dung của bình luận đánh giá (chuỗi, bắt buộc)
    • line: Dòng của blob trong diff pull request mà bình luận áp dụng. Đối với bình luận nhiều dòng, đây là dòng cuối của phạm vi (số, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • path: Đường dẫn tương đối đến tệp cần bình luận (chuỗi, bắt buộc)
    • pullNumber: Số pull request (số, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
    • side: Phía của diff để bình luận. LEFT biểu thị trạng thái trước đó, RIGHT biểu thị trạng thái mới (chuỗi, tùy chọn)
    • startLine: Đối với bình luận nhiều dòng, dòng đầu tiên của phạm vi mà bình luận áp dụng (số, tùy chọn)
    • startSide: Đối với bình luận nhiều dòng, phía bắt đầu của diff mà bình luận áp dụng. LEFT biểu thị trạng thái trước đó, RIGHT biểu thị trạng thái mới (chuỗi, tùy chọn)
    • subjectType: Cấp độ mà bình luận được nhắm đến (chuỗi, bắt buộc)
  • add_reply_to_pull_request_comment - Thêm phản hồi vào bình luận pull request

    • OAuth Challenge Scopes: repo
    • body: Nội dung của phản hồi. Bắt buộc trừ khi có phản ứng được cung cấp. (chuỗi, tùy chọn)
    • commentId: ID số của bình luận đánh giá pull request để phản hồi hoặc phản ứng. Sử dụng số từ anchor #discussion_r..., không phải ID nút luồng GraphQL (PRRT_...). (số, bắt buộc)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • pullNumber: Số pull request. Bắt buộc khi có nội dung được cung cấp. (số, tùy chọn)
    • reaction: Phản ứng biểu tượng cảm xúc để thêm. Bắt buộc trừ khi có nội dung được cung cấp. (chuỗi, tùy chọn)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
  • create_pull_request - Mở pull request mới

    • OAuth Challenge Scopes: repo
    • base: Nhánh để hợp nhất vào (chuỗi, bắt buộc)
    • body: Mô tả PR (chuỗi, tùy chọn)
    • draft: Tạo dưới dạng PR nháp (boolean, tùy chọn)
    • head: Nhánh chứa các thay đổi (chuỗi, bắt buộc)
    • maintainer_can_modify: Cho phép chỉnh sửa của người duy trì (boolean, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
    • reviewers: Tên người dùng GitHub hoặc người đánh giá nhóm ORG/team-slug để yêu cầu đánh giá (chuỗi[], tùy chọn)
    • title: Tiêu đề PR (chuỗi, bắt buộc)
  • list_pull_requests - Liệt kê pull requests

    • OAuth Challenge Scopes: repo
    • base: Lọc theo nhánh cơ sở (chuỗi, tùy chọn)
    • direction: Hướng sắp xếp (chuỗi, tùy chọn)
    • fields: Tập hợp con các trường để trả về cho mỗi pull request. Nếu bỏ qua, tất cả các trường được trả về. Sử dụng để giảm kích thước phản hồi khi chỉ cần các trường cụ thể; đặc biệt bỏ qua 'body' sẽ giảm dữ liệu lớn nhất trên mỗi kết quả. (chuỗi[], tùy chọn)
    • head: Lọc theo người dùng/tổ chức head và nhánh (chuỗi, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • page: Số trang cho phân trang (tối thiểu 1) (số, tùy chọn)
    • perPage: Kết quả trên mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (số, tùy chọn)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
    • sort: Sắp xếp theo (chuỗi, tùy chọn)
    • state: Lọc theo trạng thái (chuỗi, tùy chọn)
  • merge_pull_request - Hợp nhất pull request

    • OAuth Challenge Scopes: repo
    • commit_message: Chi tiết bổ sung cho commit hợp nhất (chuỗi, tùy chọn)
    • commit_title: Tiêu đề cho commit hợp nhất (chuỗi, tùy chọn)
    • merge_method: Phương thức hợp nhất (chuỗi, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • pullNumber: Số pull request (số, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
  • pull_request_read - Lấy chi tiết cho một pull request

    • OAuth Challenge Scopes: repo
    • after: Con trỏ cho phân trang, chỉ được sử dụng bởi phương thức get_review_comments. Truyền endCursor từ PageInfo của trang trước để lấy trang tiếp theo. (chuỗi, tùy chọn)
    • method: Hành động để chỉ định dữ liệu pull request nào cần được truy xuất từ GitHub. Các tùy chọn có thể:
      1. get - Lấy chi tiết của một pull request cụ thể.
      2. get_diff - Lấy diff của một pull request.
      3. get_status - Lấy trạng thái commit kết hợp của commit head trong một pull request.
      4. get_files - Lấy danh sách các tệp đã thay đổi trong một pull request. Sử dụng với các tham số phân trang để kiểm soát số lượng kết quả trả về.
      5. get_commits - Lấy danh sách các commit trên một pull request. Sử dụng với các tham số phân trang để kiểm soát số lượng kết quả trả về.
      6. get_review_comments - Lấy các luồng đánh giá trên một pull request. Mỗi luồng chứa các bình luận đánh giá được nhóm logic trên cùng một vị trí mã trong quá trình đánh giá pull request. Trả về các luồng với siêu dữ liệu (isResolved, isOutdated, isCollapsed) và các bình luận liên quan. Sử dụng phân trang dựa trên con trỏ (perPage, after) để kiểm soát kết quả.
      7. get_reviews - Lấy các đánh giá trên một pull request. Khi được yêu cầu bình luận đánh giá, sử dụng phương thức get_review_comments. Sử dụng với các tham số phân trang để kiểm soát số lượng kết quả trả về.
      8. get_comments - Lấy các bình luận trên một pull request. Sử dụng nếu người dùng không cụ thể muốn bình luận đánh giá. Sử dụng với các tham số phân trang để kiểm soát số lượng kết quả trả về.
      9. get_check_runs - Lấy các lần chạy kiểm tra cho commit head của một pull request. Các lần chạy kiểm tra là các công việc và kiểm tra CI/CD riêng lẻ chạy trên PR. (chuỗi, bắt buộc)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • page: Số trang cho phân trang (tối thiểu 1) (số, tùy chọn)
    • perPage: Kết quả trên mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (số, tùy chọn)
    • pullNumber: Số pull request (số, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
  • pull_request_review_write - Các thao tác ghi (tạo, gửi, xóa) trên đánh giá pull request

    • OAuth Challenge Scopes: repo
    • body: Nội dung bình luận đánh giá (chuỗi, tùy chọn)
    • commitID: SHA của commit để đánh giá (chuỗi, tùy chọn)
    • event: Hành động đánh giá để thực hiện. (chuỗi, tùy chọn)
    • method: Thao tác ghi để thực hiện trên đánh giá pull request. (chuỗi, bắt buộc)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • pullNumber: Số pull request (số, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
    • threadId: ID nút của luồng đánh giá (ví dụ: PRRT_kwDOxxx). Bắt buộc cho các phương thức resolve_thread và unresolve_thread. Lấy ID luồng từ pull_request_read với phương thức get_review_comments. (chuỗi, tùy chọn)
  • search_pull_requests - Tìm kiếm pull requests

    • OAuth Challenge Scopes: repo
    • fields: Tập hợp con các trường để trả về cho mỗi kết quả pull request. Nếu bỏ qua, tất cả các trường được trả về. Sử dụng để giảm kích thước phản hồi khi chỉ cần các trường cụ thể; đặc biệt bỏ qua 'body', 'reactions' và 'labels' sẽ giảm dữ liệu lớn nhất trên mỗi kết quả. (chuỗi[], tùy chọn)
    • order: Thứ tự sắp xếp (chuỗi, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ tùy chọn. Nếu được cung cấp cùng với repo, chỉ các pull request cho kho lưu trữ này được liệt kê. (chuỗi, tùy chọn)
    • page: Số trang cho phân trang (tối thiểu 1) (số, tùy chọn)
    • perPage: Kết quả trên mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (số, tùy chọn)
    • query: Truy vấn tìm kiếm sử dụng cú pháp tìm kiếm pull request của GitHub (chuỗi, bắt buộc)
    • repo: Tên kho lưu trữ tùy chọn. Nếu được cung cấp cùng với owner, chỉ các pull request cho kho lưu trữ này được liệt kê. (chuỗi, tùy chọn)
    • sort: Trường sắp xếp theo số lượng khớp của các danh mục, mặc định là khớp tốt nhất (chuỗi, tùy chọn)
  • update_pull_request - Chỉnh sửa pull request

    • OAuth Challenge Scopes: repo
    • base: Tên nhánh cơ sở mới (chuỗi, tùy chọn)
    • body: Mô tả mới (chuỗi, tùy chọn)
    • draft: Đánh dấu pull request là nháp (true) hoặc sẵn sàng để đánh giá (false) (boolean, tùy chọn)
    • maintainer_can_modify: Cho phép chỉnh sửa của người duy trì (boolean, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • pullNumber: Số pull request để cập nhật (số, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
    • reviewers: Tên người dùng GitHub hoặc người đánh giá nhóm ORG/team-slug để yêu cầu đánh giá (chuỗi[], tùy chọn)
    • state: Trạng thái mới (chuỗi, tùy chọn)
    • title: Tiêu đề mới (chuỗi, tùy chọn)
  • update_pull_request_branch - Cập nhật nhánh pull request

    • OAuth Challenge Scopes: repo
    • expectedHeadSha: SHA dự kiến của tham chiếu HEAD của pull request (chuỗi, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • pullNumber: Số pull request (số, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
repo Repositories
  • create_branch - Tạo nhánh

    • OAuth Challenge Scopes: repo
    • branch: Tên cho nhánh mới (chuỗi, bắt buộc)
    • from_branch: Nhánh nguồn (mặc định là nhánh mặc định của repo) (chuỗi, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
  • create_or_update_file - Tạo hoặc cập nhật tệp

    • OAuth Challenge Scopes: repo, workflow
    • allow_symlink_write: Đặt true để cập nhật chính liên kết tượng trưng; nội dung phải là đường dẫn đích mới của nó. (boolean, tùy chọn)
    • branch: Nhánh để tạo/cập nhật tệp (chuỗi, bắt buộc)
    • content: Nội dung của tệp, chính xác như nó sẽ xuất hiện sau khi được ghi. Không mã hóa base64; máy chủ này thực hiện điều đó trước khi gọi REST API. (chuỗi, bắt buộc)
    • message: Thông điệp commit (chuỗi, bắt buộc)
    • owner: Chủ sở hữu kho lưu trữ (tên người dùng hoặc tổ chức) (chuỗi, bắt buộc)
    • path: Đường dẫn nơi tạo/cập nhật tệp (chuỗi, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
    • sha: SHA blob của tệp đang được thay thế. Bắt buộc nếu tệp đã tồn tại. (chuỗi, tùy chọn)
  • create_repository - Tạo kho lưu trữ

    • OAuth Challenge Scopes: repo
    • autoInit: Khởi tạo với README (boolean, tùy chọn)
    • description: Mô tả kho lưu trữ (chuỗi, tùy chọn)
    • name: Tên kho lưu trữ (chuỗi, bắt buộc)
    • organization: Tổ chức để tạo kho lưu trữ (bỏ qua để tạo trong tài khoản cá nhân của bạn) (chuỗi, tùy chọn)
    • private: Liệu kho lưu trữ có nên là riêng tư hay không. Mặc định là true (riêng tư) khi bỏ qua. (boolean, tùy chọn)
  • delete_file - Xóa tệp

    • OAuth Challenge Scopes: repo, workflow
    • branch: Nhánh để xóa tệp (chuỗi, bắt buộc)
    • message: Thông điệp commit (chuỗi, bắt buộc)
    • owner: Chủ sở hữu kho lưu trữ (tên người dùng hoặc tổ chức) (chuỗi, bắt buộc)
    • path: Đường dẫn đến tệp cần xóa (chuỗi, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
  • delete_repository - Xóa kho lưu trữ

    • OAuth Challenge Scopes: delete_repo, repo
    • owner: Chủ sở hữu kho lưu trữ (tên người dùng hoặc tổ chức) (chuỗi, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
  • fork_repository - Fork kho lưu trữ

    • OAuth Challenge Scopes: repo
    • organization: Tổ chức để fork tới (chuỗi, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
  • get_commit - Lấy chi tiết commit

    • OAuth Challenge Scopes: repo
    • detail: Mức độ chi tiết để bao gồm cho các tệp đã thay đổi. "none" bỏ qua stats và files hoàn toàn. "stats" (mặc định) bao gồm siêu dữ liệu từng tệp: tên tệp, trạng thái và số dòng mã (thêm, xóa, thay đổi), không có nội dung patch. "full_patch" bổ sung thêm nội dung diff hợp nhất cho mỗi tệp và có thể rất lớn. (chuỗi, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • page: Số trang cho phân trang (tối thiểu 1) (số, tùy chọn)
    • perPage: Kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (số, tùy chọn)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
    • sha: Commit SHA, tên nhánh hoặc tên thẻ (chuỗi, bắt buộc)
  • get_file_contents - Lấy nội dung tệp hoặc thư mục

    • OAuth Challenge Scopes: repo
    • fields: Tập hợp con các trường để trả về cho mỗi mục khi đường dẫn là thư mục. Nếu bỏ qua, tất cả các trường được trả về. Bỏ qua khi đường dẫn là một tệp duy nhất. Sử dụng để giảm kích thước phản hồi khi liệt kê thư mục và bạn chỉ cần các trường cụ thể, ví dụ chỉ 'name' và 'type'. (chuỗi[], tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (tên người dùng hoặc tổ chức) (chuỗi, bắt buộc)
    • path: Đường dẫn đến tệp/thư mục (chuỗi, tùy chọn)
    • ref: Chấp nhận các git refs tùy chọn như refs/tags/{tag}, refs/heads/{branch} hoặc refs/pull/{pr_number}/head (chuỗi, tùy chọn)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
    • sha: Chấp nhận commit SHA tùy chọn. Nếu được chỉ định, nó sẽ được sử dụng thay cho ref (chuỗi, tùy chọn)
  • get_latest_release - Lấy bản phát hành mới nhất

    • OAuth Challenge Scopes: repo
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
  • get_release_by_tag - Lấy bản phát hành theo tên thẻ

    • OAuth Challenge Scopes: repo
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
    • tag: Tên thẻ (ví dụ: 'v1.0.0') (chuỗi, bắt buộc)
  • get_tag - Lấy chi tiết thẻ

    • OAuth Challenge Scopes: repo
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
    • tag: Tên thẻ (chuỗi, bắt buộc)
  • list_branches - Liệt kê các nhánh

    • OAuth Challenge Scopes: repo
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • page: Số trang cho phân trang (tối thiểu 1) (số, tùy chọn)
    • perPage: Kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (số, tùy chọn)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
  • list_commits - Liệt kê các commit

    • OAuth Challenge Scopes: repo
    • author: Tên người dùng hoặc địa chỉ email của tác giả để lọc commit (chuỗi, tùy chọn)
    • fields: Tập hợp con các trường để trả về cho mỗi commit. Nếu bỏ qua, tất cả các trường được trả về. Sử dụng để giảm kích thước phản hồi khi bạn chỉ cần các trường cụ thể, ví dụ chỉ 'sha' và 'html_url'. (chuỗi[], tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • page: Số trang cho phân trang (tối thiểu 1) (số, tùy chọn)
    • path: Chỉ các commit chứa đường dẫn tệp này sẽ được trả về (chuỗi, tùy chọn)
    • perPage: Kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (số, tùy chọn)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
    • sha: Commit SHA, tên nhánh hoặc tên thẻ để liệt kê các commit. Nếu không được cung cấp, sử dụng nhánh mặc định của kho lưu trữ. Nếu cung cấp commit SHA, sẽ liệt kê các commit cho đến SHA đó. (chuỗi, tùy chọn)
    • since: Chỉ các commit sau ngày này sẽ được trả về (định dạng ISO 8601: YYYY-MM-DDTHH:MM:SSZ hoặc YYYY-MM-DD) (chuỗi, tùy chọn)
    • until: Chỉ các commit trước ngày này sẽ được trả về (định dạng ISO 8601: YYYY-MM-DDTHH:MM:SSZ hoặc YYYY-MM-DD) (chuỗi, tùy chọn)
  • list_releases - Liệt kê các bản phát hành

    • OAuth Challenge Scopes: repo
    • fields: Tập hợp con các trường để trả về cho mỗi bản phát hành. Nếu bỏ qua, tất cả các trường được trả về. Sử dụng để giảm kích thước phản hồi khi bạn chỉ cần các trường cụ thể; bỏ qua 'body' đặc biệt giảm dữ liệu lớn nhất mỗi bản phát hành. (chuỗi[], tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • page: Số trang cho phân trang (tối thiểu 1) (số, tùy chọn)
    • perPage: Kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (số, tùy chọn)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
  • list_repository_collaborators - Liệt kê cộng tác viên của kho lưu trữ

    • OAuth Challenge Scopes: repo
    • affiliation: Lọc theo liên kết. Có thể là một trong: 'outside' (cộng tác viên bên ngoài), 'direct' (tất cả có quyền bất kể tư cách thành viên tổ chức), 'all' (tất cả cộng tác viên). Mặc định: 'all' (chuỗi, tùy chọn)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • page: Số trang cho phân trang (mặc định 1, tối thiểu 1) (số, tùy chọn)
    • perPage: Kết quả mỗi trang cho phân trang (mặc định 30, tối thiểu 1, tối đa 100) (số, tùy chọn)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
  • list_tags - Liệt kê các thẻ

    • OAuth Challenge Scopes: repo
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • page: Số trang cho phân trang (tối thiểu 1) (số, tùy chọn)
    • perPage: Kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (số, tùy chọn)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
  • push_files - Đẩy tệp vào kho lưu trữ

    • OAuth Challenge Scopes: repo, workflow
    • branch: Nhánh để đẩy tới (chuỗi, bắt buộc)
    • files: Mảng các đối tượng tệp để đẩy, mỗi đối tượng có path (chuỗi) và content (chuỗi) (object[], bắt buộc)
    • message: Thông điệp commit (chuỗi, bắt buộc)
    • owner: Chủ sở hữu kho lưu trữ (chuỗi, bắt buộc)
    • repo: Tên kho lưu trữ (chuỗi, bắt buộc)
  • search_code - Tìm kiếm mã

    • OAuth Challenge Scopes: repo
    • fields: Tập hợp con các trường để trả về cho mỗi kết quả tìm kiếm mã. Nếu bỏ qua, tất cả các trường được trả về. Sử dụng để giảm kích thước phản hồi khi bạn chỉ cần các trường cụ thể; bỏ qua 'repository' và 'text_matches' đặc biệt giảm dữ liệu lớn nhất mỗi kết quả. (chuỗi[], tùy chọn)
    • order: Thứ tự sắp xếp cho kết quả (chuỗi, tùy chọn)
    • page: Số trang cho phân trang (tối thiểu 1) (số, tùy chọn)
    • perPage: Kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (số, tùy chọn)
    • query: Truy vấn tìm kiếm (GitHub code search REST). AND ngầm giữa các thuật ngữ; hỗ trợ OR, NOT"quoted phrase" cho khớp chính xác. Bộ định tính: repo:owner/repo, org:, user:, language:, path:dir (khớp tiền tố), filename:exact.ext, extension:, in:file, in:path, size:, is:archived, is:fork. Tối đa 256 ký tự. Ví dụ: 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. (chuỗi, bắt buộc)
    • sort: Trường sắp xếp (chỉ 'indexed') (chuỗi, tùy chọn)
  • search_commits - Tìm kiếm commit

    • OAuth Challenge Scopes: repo
    • order: Thứ tự sắp xếp (chuỗi, tùy chọn)
    • page: Số trang cho phân trang (tối thiểu 1) (số, tùy chọn)
    • perPage: Kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (số, tùy chọn)
    • query: Truy vấn tìm kiếm commit (GitHub commit search REST). Chỉ tìm kiếm thông điệp commit trên nhánh mặc định. Giới hạn tìm kiếm với repo:owner/repo, org: hoặc user: (truy vấn không có bộ định tính phạm vi khớp trên toàn bộ GitHub và thường không phải điều bạn muốn). Bộ định tính khác: author:, committer:, author-name:, committer-name:, author-email:, committer-email:, author-date:, committer-date: (hỗ trợ phạm vi >, <, >=, <=YYYY-MM-DD..YYYY-MM-DD), merge:true|false, hash:, tree:, parent:, is:public. Ví dụ: repo:owner/repo fix panic; org:github author:defunkt committer-date:>=2024-01-01; "refactor cache" repo:o/r; hash:abc1234 repo:o/r. (chuỗi, bắt buộc)
    • sort: Sắp xếp theo ngày tác giả hoặc người commit (mặc định là khớp tốt nhất) (chuỗi, tùy chọn)
  • search_repositories - Tìm kiếm kho lưu trữ

    • OAuth Challenge Scopes: repo
    • minimal_output: Trả về thông tin kho lưu trữ tối thiểu (mặc định: true). Khi false, trả về các đối tượng kho lưu trữ GitHub API đầy đủ. (boolean, tùy chọn)
    • order: Thứ tự sắp xếp (chuỗi, tùy chọn)
    • page: Số trang cho phân trang (tối thiểu 1) (số, tùy chọn)
    • perPage: Kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (số, tùy chọn)
    • query: Truy vấn tìm kiếm kho lưu trữ. Ví dụ: 'machine learning in:name stars:>1000 language:python', 'topic:react', 'user:facebook'. Hỗ trợ cú pháp tìm kiếm nâng cao để lọc chính xác. (chuỗi, bắt buộc)
    • sort: Sắp xếp kho lưu trữ theo trường, mặc định là khớp tốt nhất (chuỗi, tùy chọn)
shield-lock Bảo vệ bí mật
  • get_secret_scanning_alert - Lấy cảnh báo quét bí mật

    • OAuth Challenge Scopes: security_events
    • alertNumber: Số của cảnh báo. (số, bắt buộc)
    • owner: Chủ sở hữu của kho lưu trữ. (chuỗi, bắt buộc)
    • repo: Tên của kho lưu trữ. (chuỗi, bắt buộc)
  • list_secret_scanning_alerts - Liệt kê cảnh báo quét bí mật

    • OAuth Challenge Scopes: security_events
    • owner: Chủ sở hữu của kho lưu trữ. (chuỗi, bắt buộc)
    • page: Số trang cho phân trang (tối thiểu 1) (số, tùy chọn)
    • perPage: Kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (số, tùy chọn)
    • repo: Tên của kho lưu trữ. (chuỗi, bắt buộc)
    • resolution: Lọc theo giải pháp (chuỗi, tùy chọn)
    • secret_type: Danh sách phân tách bằng dấu phẩy các loại bí mật để trả về. Tất cả các mẫu bí mật mặc định được trả về. Để trả về các mẫu chung, truyền tên token trong tham số. (chuỗi, tùy chọn)
    • state: Lọc theo trạng thái (chuỗi, tùy chọn)
shield Cố vấn bảo mật
  • get_global_security_advisory - Lấy cố vấn bảo mật toàn cầu

    • OAuth Challenge Scopes: security_events
    • ghsaId: ID Cố vấn bảo mật GitHub (định dạng: GHSA-xxxx-xxxx-xxxx). (chuỗi, bắt buộc)
  • list_global_security_advisories - Liệt kê các cảnh báo bảo mật toàn cầu

    • OAuth Challenge Scopes: security_events
    • affects: Lọc các cảnh báo theo gói hoặc phiên bản bị ảnh hưởng (ví dụ: "package1,package2@1.0.0"). (string, tùy chọn)
    • cveId: Lọc theo ID CVE. (string, tùy chọn)
    • cwes: Lọc theo ID Common Weakness Enumeration (ví dụ: ["79", "284", "22"]). (string[], tùy chọn)
    • ecosystem: Lọc theo hệ sinh thái gói. (string, tùy chọn)
    • ghsaId: Lọc theo ID GitHub Security Advisory (định dạng: GHSA-xxxx-xxxx-xxxx). (string, tùy chọn)
    • isWithdrawn: Có chỉ trả về các cảnh báo đã rút lại hay không. (boolean, tùy chọn)
    • modified: Lọc theo ngày xuất bản hoặc cập nhật hoặc khoảng ngày (ngày ISO 8601 hoặc khoảng). (string, tùy chọn)
    • published: Lọc theo ngày xuất bản hoặc khoảng ngày (ngày ISO 8601 hoặc khoảng). (string, tùy chọn)
    • severity: Lọc theo mức độ nghiêm trọng. (string, tùy chọn)
    • type: Loại cảnh báo. (string, tùy chọn)
    • updated: Lọc theo ngày cập nhật hoặc khoảng ngày (ngày ISO 8601 hoặc khoảng). (string, tùy chọn)
  • list_org_repository_security_advisories - Liệt kê các cảnh báo bảo mật kho lưu trữ của tổ chức

    • OAuth Challenge Scopes: security_events
    • direction: Hướng sắp xếp. (string, tùy chọn)
    • org: Tên đăng nhập của tổ chức. (string, bắt buộc)
    • sort: Trường sắp xếp. (string, tùy chọn)
    • state: Lọc theo trạng thái cảnh báo. (string, tùy chọn)
  • list_repository_security_advisories - Liệt kê các cảnh báo bảo mật kho lưu trữ

    • OAuth Challenge Scopes: security_events
    • direction: Hướng sắp xếp. (string, tùy chọn)
    • owner: Chủ sở hữu của kho lưu trữ. (string, bắt buộc)
    • repo: Tên của kho lưu trữ. (string, bắt buộc)
    • sort: Trường sắp xếp. (string, tùy chọn)
    • state: Lọc theo trạng thái cảnh báo. (string, tùy chọn)
star Stargazers
  • list_starred_repositories - Liệt kê các kho lưu trữ đã gắn sao

    • OAuth Challenge Scopes: repo
    • direction: Hướng sắp xếp kết quả. (string, tùy chọn)
    • page: Số trang cho phân trang (tối thiểu 1) (number, tùy chọn)
    • perPage: Số kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (number, tùy chọn)
    • sort: Cách sắp xếp kết quả. Có thể là 'created' (khi kho lưu trữ được gắn sao) hoặc 'updated' (khi kho lưu trữ được đẩy lần cuối). (string, tùy chọn)
    • username: Tên người dùng để liệt kê các kho lưu trữ đã gắn sao. Mặc định là người dùng đã xác thực. (string, tùy chọn)
  • star_repository - Gắn sao kho lưu trữ

    • OAuth Challenge Scopes: repo
    • owner: Chủ sở hữu kho lưu trữ (string, bắt buộc)
    • repo: Tên kho lưu trữ (string, bắt buộc)
  • unstar_repository - Bỏ gắn sao kho lưu trữ

    • OAuth Challenge Scopes: repo
    • owner: Chủ sở hữu kho lưu trữ (string, bắt buộc)
    • repo: Tên kho lưu trữ (string, bắt buộc)
people Users
  • search_users - Tìm kiếm người dùng
    • OAuth Challenge Scopes: repo
    • order: Thứ tự sắp xếp (string, tùy chọn)
    • page: Số trang cho phân trang (tối thiểu 1) (number, tùy chọn)
    • perPage: Số kết quả mỗi trang cho phân trang (tối thiểu 1, tối đa 100) (number, tùy chọn)
    • query: Truy vấn tìm kiếm người dùng. Ví dụ: 'john smith', 'location:seattle', 'followers:>100'. Tìm kiếm tự động được giới hạn ở type:user. (string, bắt buộc)
    • sort: Sắp xếp người dùng theo số người theo dõi hoặc số kho lưu trữ, hoặc theo thời điểm người đó tham gia GitHub. (string, tùy chọn)

Các Công Cụ Bổ Sung trong Máy Chủ GitHub MCP Từ Xa

Copilot
  • create_pull_request_with_copilot - Thực hiện tác vụ với tác nhân mã hóa GitHub Copilot
    • owner: Chủ sở hữu kho lưu trữ. Bạn có thể đoán chủ sở hữu, nhưng hãy xác nhận với người dùng trước khi tiếp tục. (string, bắt buộc)
    • repo: Tên kho lưu trữ. Bạn có thể đoán tên kho lưu trữ, nhưng hãy xác nhận với người dùng trước khi tiếp tục. (string, bắt buộc)
    • problem_statement: Mô tả chi tiết về tác vụ cần thực hiện (ví dụ: 'Triển khai tính năng X', 'Sửa lỗi Y', v.v.) (string, bắt buộc)
    • title: Tiêu đề cho pull request sẽ được tạo (string, bắt buộc)
    • base_ref: Tham chiếu Git (ví dụ: nhánh) mà tác nhân sẽ bắt đầu công việc từ đó. Nếu không được chỉ định, mặc định là nhánh mặc định của kho lưu trữ (string, tùy chọn)
Copilot Spaces
  • Ghi chú xác thực

    • PAT chi tiết không bị ẩn bởi bộ lọc phạm vi PAT cổ điển, vì vậy các công cụ này vẫn có thể xuất hiện ngay cả khi mã thông báo không thể sử dụng chúng.
    • Đối với các không gian thuộc tổ chức, PAT chi tiết phải được cài đặt trên tổ chức sở hữu và bao gồm organization_copilot_spaces: read.
    • Nếu một không gian thuộc tổ chức chứa các tài nguyên được hỗ trợ bởi kho lưu trữ, mã thông báo cũng phải có quyền truy cập vào mọi kho lưu trữ được tham chiếu hoặc không gian có thể được coi là không tìm thấy.
  • get_copilot_space - Lấy Copilot Space

    • owner: Chủ sở hữu của không gian. (string, bắt buộc)
    • name: Tên của không gian. (string, bắt buộc)
  • list_copilot_spaces - Liệt kê Copilot Spaces

Tìm Kiếm Tài Liệu Hỗ Trợ GitHub
  • github_support_docs_search - Truy xuất tài liệu liên quan để trả lời các câu hỏi về sản phẩm và hỗ trợ GitHub. Các chủ đề hỗ trợ bao gồm: GitHub Actions Workflows, Xác thực, Yêu cầu Hỗ trợ GitHub, Thực hành Pull Request, Bảo trì Kho lưu trữ, GitHub Pages, GitHub Packages, GitHub Discussions, Copilot Spaces
    • query: Đầu vào từ người dùng về câu hỏi họ cần được trả lời. Đây là tin nhắn người dùng thô mới nhất chưa chỉnh sửa. Bạn LUÔN LUÔN để nguyên tin nhắn của người dùng, không bao giờ sửa đổi nó. (string, bắt buộc)

Chế Độ Chỉ Đọc

Để chạy máy chủ ở chế độ chỉ đọc, bạn có thể sử dụng cờ --read-only. Điều này sẽ chỉ cung cấp các công cụ chỉ đọc, ngăn chặn mọi sửa đổi đối với kho lưu trữ, vấn đề, pull request, v.v.

./github-mcp-server --read-only

Khi sử dụng Docker, bạn có thể truyền chế độ chỉ đọc dưới dạng biến môi trường:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_READ_ONLY=1 \
  ghcr.io/github/github-mcp-server

Chế Độ Khóa

Chế độ khóa giới hạn nội dung mà máy chủ sẽ hiển thị từ các kho lưu trữ công khai. Khi được bật, máy chủ sẽ kiểm tra xem tác giả của mỗi mục có quyền truy cập đẩy vào kho lưu trữ hay không. Các kho lưu trữ riêng tư không bị ảnh hưởng và cộng tác viên giữ quyền truy cập đầy đủ vào nội dung của chính họ.

Chế độ khóa là một bộ lọc nội dung nỗ lực tốt nhất nhằm giảm nguy cơ tiêm prompt từ nội dung kho lưu trữ không đáng tin cậy (vấn đề, pull request, bình luận, cam kết, v.v.). Nó không phải là ranh giới ủy quyền: nó không thay đổi những gì thông tin xác thực GitHub cơ bản có thể đọc hoặc ghi, và nội dung bị giữ lại khỏi phản hồi công cụ đã lọc vẫn có thể truy cập được thông qua các công cụ khác hoặc truy cập API GitHub trực tiếp với cùng thông tin xác thực.

Như một ngoại lệ có chủ đích, nội dung do một nhóm nhỏ tài khoản bot đáng tin cậy (hiện tại là github-actions[bot]copilot) tạo ra luôn được coi là an toàn, bất kể quyền truy cập đẩy. Điều này tránh lọc đầu ra tự động hóa thông thường (ví dụ: cam kết hoặc bình luận do CI tạo) mà nếu không sẽ bị giữ lại trong chế độ khóa.

./github-mcp-server --lockdown-mode

Khi chạy với Docker, hãy đặt biến môi trường tương ứng:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_LOCKDOWN_MODE=1 \
  ghcr.io/github/github-mcp-server

Trong chế độ HTTP, cờ này (hoặc GITHUB_LOCKDOWN_MODE) là giới hạn trên: tiêu đề yêu cầu X-MCP-Lockdown có thể bật chế độ khóa khi người vận hành chưa bật, nhưng nó không thể tắt chế độ khóa mà người vận hành đã bật. Xem Hướng dẫn Cấu hình Máy chủ để biết chi tiết.

Hành vi của chế độ khóa phụ thuộc vào công cụ được gọi.

Các công cụ sau sẽ trả về lỗi khi tác giả thiếu quyền truy cập đẩy:

  • issue_read:get
  • pull_request_read:get
  • pull_request_read:get_diff
  • pull_request_read:get_files
  • pull_request_read:get_commits

Các công cụ sau sẽ lọc nội dung từ người dùng thiếu quyền truy cập đẩy:

  • issue_read:get_comments
  • issue_read:get_sub_issues
  • pull_request_read:get_comments
  • pull_request_read:get_review_comments
  • pull_request_read:get_reviews

i18n / Ghi Đè Mô Tả

Mô tả của các công cụ có thể được ghi đè bằng cách tạo một tệp github-mcp-server-config.json trong cùng thư mục với tệp nhị phân.

Tệp phải chứa một đối tượng JSON với tên công cụ làm khóa và mô tả mới làm giá trị. Ví dụ:

{
  "TOOL_ADD_ISSUE_COMMENT_DESCRIPTION": "an alternative description",
  "TOOL_CREATE_BRANCH_DESCRIPTION": "Create a new branch in a GitHub repository"
}

Bạn có thể tạo bản xuất của các bản dịch hiện tại bằng cách chạy tệp nhị phân với cờ --export-translations.

Cờ này sẽ giữ nguyên mọi bản dịch/ghi đè bạn đã thực hiện, đồng thời thêm mọi bản dịch mới đã được thêm vào tệp nhị phân kể từ lần cuối bạn xuất.

./github-mcp-server --export-translations
cat github-mcp-server-config.json

Bạn cũng có thể sử dụng biến ENV để ghi đè mô tả. Tên biến môi trường giống với các khóa trong tệp JSON, có tiền tố là GITHUB_MCP_ và tất cả đều viết hoa.

Ví dụ: để ghi đè công cụ TOOL_ADD_ISSUE_COMMENT_DESCRIPTION, bạn có thể đặt biến môi trường sau:

export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description"

Ghi Đè Tên và Tiêu Đề Máy Chủ

Cơ chế ghi đè tương tự có thể được sử dụng để tùy chỉnh các trường nametitle của máy chủ MCP trong phản hồi khởi tạo. Điều này hữu ích khi chạy nhiều phiên bản GitHub MCP Server (ví dụ: một cho github.com và một cho GitHub Enterprise Server) để các tác nhân có thể phân biệt chúng.

KhóaBiến Môi TrườngMặc Định
SERVER_NAMEGITHUB_MCP_SERVER_NAMEgithub-mcp-server
SERVER_TITLEGITHUB_MCP_SERVER_TITLEGitHub MCP Server

Ví dụ: để cấu hình một phiên bản máy chủ cho GitHub Enterprise Server:

{
  "SERVER_NAME": "ghes-mcp-server",
  "SERVER_TITLE": "GHES MCP Server"
}

Hoặc sử dụng biến môi trường:

export GITHUB_MCP_SERVER_NAME="ghes-mcp-server"
export GITHUB_MCP_SERVER_TITLE="GHES MCP Server"

Sử Dụng Thư Viện

API Go được xuất của mô-đun này hiện nên được coi là không ổn định và có thể thay đổi phá vỡ. Trong tương lai, chúng tôi có thể cung cấp sự ổn định; vui lòng gửi vấn đề nếu có trường hợp sử dụng mà điều này có giá trị.

Đóng Góp

Mọi đóng góp đều được hoan nghênh. Trước khi mở pull request, vui lòng đọc hướng dẫn đóng góp để biết hướng dẫn thiết lập, kiểm thử, linting và tạo tài liệu.

Hỗ Trợ

Để được trợ giúp sử dụng GitHub MCP Server, hãy xem hướng dẫn hỗ trợ. Nếu bạn tìm thấy lỗi hoặc muốn yêu cầu tính năng, vui lòng tìm kiếm các vấn đề hiện có trước khi mở vấn đề mới.

Bảo Mật

Vui lòng không báo cáo lỗ hổng bảo mật qua các vấn đề công khai. Làm theo hướng dẫn trong chính sách bảo mật để báo cáo lỗ hổng một cách có trách nhiệm.

Giấy Phép

Dự án này được cấp phép theo các điều khoản của giấy phép mã nguồn mở MIT. Vui lòng tham khảo MIT để biết đầy đủ các điều khoản.