GitHub MCP

官方

官方GitHub MCP伺服器,用於在相容MCP的AI客戶端中進行倉庫搜尋、議題、拉取請求、程式碼上下文及GitHub工作流程。

你可以用 GitHub MCP 做什麼?

  • Repository探索 — 讓您的助手瀏覽儲存庫、搜尋檔案,並使用如 get_file_contents 等工具來理解專案結構。
  • Issue 與 PR 管理 — 讓您的 AI 建立、更新及分類 issue 和 pull request,包括審查程式碼變更與維護專案看板。
  • CI/CD 監控 — 透過自然語言查詢,取得 GitHub Actions 工作流程執行的洞察、分析建置失敗,並管理發行版本。
  • 程式碼安全分析 — 檢查安全發現、審閱 Dependabot 警示,並理解您程式碼庫中的程式碼模式。
  • 團隊協作 — 存取討論、管理通知,並分析團隊活動以簡化開發流程。

文件

Go Report Card

GitHub MCP 伺服器

GitHub MCP 伺服器將 AI 工具直接連接到 GitHub 平台。這讓 AI 代理、助理和聊天機器人能夠讀取儲存庫和程式碼檔案、管理 issue 和 PR、分析程式碼,以及自動化工作流程。全部透過自然語言互動完成。

使用案例

  • 儲存庫管理:瀏覽和查詢程式碼、搜尋檔案、分析提交,並了解您有權存取之任何儲存庫的專案結構。
  • Issue 與 PR 自動化:建立、更新和管理 issue 與 pull request。讓 AI 協助分類錯誤、審查程式碼變更,並維護專案看板。
  • CI/CD 與工作流程智慧:監控 GitHub Actions 工作流程執行、分析建置失敗、管理版本,並深入了解您的開發管線。
  • 程式碼分析:檢查安全性發現、審查 Dependabot 警報、了解程式碼模式,並取得您程式碼庫的全面洞察。
  • 團隊協作:存取討論、管理通知、分析團隊活動,並為您的團隊簡化流程。

專為想要將 AI 工具連接到 GitHub 情境和功能的開發者而設計,從簡單的自然語言查詢到複雜的多步驟代理工作流程。


遠端 GitHub MCP 伺服器

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

遠端 GitHub MCP 伺服器由 GitHub 託管,提供最簡單的啟動方式。如果您的 MCP 主機不支援遠端 MCP 伺服器,別擔心!您可以改用 GitHub MCP 伺服器的本機版本

先決條件

  1. 一個相容且支援遠端伺服器的 MCP 主機(VS Code 1.101+、Claude Desktop、Cursor、Windsurf 等)
  2. 任何適用的 已啟用政策

在 VS Code 中安裝

如需快速安裝,請使用上方的一鍵安裝按鈕之一。完成該流程後,切換 Agent 模式(位於 Copilot Chat 文字輸入旁),伺服器便會啟動。請確保您使用的是 VS Code 1.101更新版本,以支援遠端 MCP 和 OAuth。

或者,若要手動設定 VS Code,請從下方範例中選擇適當的 JSON 區塊,並將其新增至您的主機設定:

使用 OAuth使用 GitHub PAT
VS Code(1.101 或更高版本)
{
  "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
    }
  ]
}

在其他 MCP 主機中安裝

注意: 每個 MCP 主機應用程式都需要設定 GitHub App 或 OAuth App,以支援透過 OAuth 進行遠端存取。任何支援遠端 MCP 伺服器的主機應用程式,都應支援使用 PAT 驗證的遠端 GitHub 伺服器。設定細節和支援等級因主機而異。請務必參閱主機應用程式的文件以取得更多資訊。

設定

工具集設定

請參閱 遠端伺服器文件,以了解遠端伺服器設定、工具集、標頭和進階用法的完整詳細資訊。此檔案提供在 VS Code 和其他 MCP 主機中連接、自訂和安裝遠端 GitHub MCP 伺服器的全面說明和範例。

當未指定工具集時,會使用 預設工具集

Insiders 模式

搶先試用新功能! 遠端伺服器提供 insiders 版本,可搶先使用新功能和實驗性工具。

使用 URL 路徑使用標頭
{
  "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"
      }
    }
  }
}

請參閱 遠端伺服器文件 以了解更多詳細資訊和範例,並參閱 Insiders 功能 以取得可用功能的完整清單。

GitHub Enterprise

具有資料駐留功能的 GitHub Enterprise Cloud(ghe.com)

GitHub Enterprise Cloud 也可以使用遠端伺服器。

使用 GitHub PAT token 的 https://octocorp.ghe.com 範例:

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

注意: 在 VS Code 和 GitHub Copilot 中搭配 GitHub Enterprise 使用 OAuth 時,您還需要設定 VS Code 設定以指向您的 GitHub Enterprise 執行個體 - 請參閱 從 VS Code 進行驗證

GitHub Enterprise Server

GitHub Enterprise Server 不支援遠端伺服器託管。請參閱本機伺服器設定中的 GitHub Enterprise Server 和具有資料駐留功能的 Enterprise Cloud(ghe.com)


本機 GitHub MCP 伺服器

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

先決條件

  1. 若要在容器中執行伺服器,您需要安裝 Docker

  2. Docker 安裝完成後,您還需要確保 Docker 正在執行。Docker 映像檔位於 ghcr.io/github/github-mcp-server。該映像檔是公開的;如果您在拉取時遇到錯誤,可能是您的 token 已過期,需要 docker logout ghcr.io

  3. 驗證。 在 github.com 上,您不需要事先建立任何東西 — 上方的一鍵按鈕會在首次使用時透過 OAuth 讓您登入(瀏覽器型流程;token 僅保存在記憶體中)。Docker 按鈕會發布一個固定的回呼連接埠(127.0.0.1:8085),以便容器的登入回呼可以到達。請參閱 本機伺服器 OAuth 登入 以了解其運作方式、無頭/裝置碼後備方案,以及自備 OAuth 或 GitHub App(GitHub Enterprise Server 和 ghe.com 需要)。

    偏好使用 token?您仍然可以透過設定 GITHUB_PERSONAL_ACCESS_TOKEN 來使用 GitHub Personal Access Token 進行驗證(它優先於 OAuth)。MCP 伺服器可以使用許多 GitHub API,因此請啟用您認為可以放心授予 AI 工具的權限(若要了解更多關於存取 token 的資訊,請查看 文件)。

安全處理 PAT

環境變數(建議)

為了在不同的 MCP 主機之間安全地保存和重複使用您的 GitHub PAT:

  1. 將您的 PAT 儲存在環境變數中

    export GITHUB_PAT=your_token_here
    

    或建立一個 .env 檔案:

    GITHUB_PAT=your_token_here
    
  2. 保護您的 .env 檔案

    # Add to .gitignore to prevent accidental commits
    echo ".env" >> .gitignore
    
  3. 在設定中引用 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"
    }
    

注意:環境變數支援因主機應用程式和 IDE 而異。某些應用程式(如 Windsurf)需要在設定檔中硬編碼 token。

Token 安全最佳實務

  • 最小權限範圍:僅授予必要的權限

    • repo - 儲存庫操作
    • read:packages - Docker 映像檔存取
    • read:org - 組織團隊存取
  • 分開的 token:為不同的專案/環境使用不同的 PAT

  • 定期輪換:定期更新 token

  • 絕不提交:將 token 排除在版本控制之外

  • 檔案權限:限制包含 token 的設定檔的存取權限

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

GitHub Enterprise Server 和具有資料駐留功能的 Enterprise Cloud(ghe.com)

旗標 --gh-host 和環境變數 GITHUB_HOST 可用於設定 GitHub Enterprise Server 或具有資料駐留功能的 GitHub Enterprise Cloud 的主機名稱。

  • 對於 GitHub Enterprise Server,請在主機名稱前加上 https:// URI 配置。需要且強制使用 HTTPS:拒絕非 HTTPS 主機,以確保憑證絕不會透過明文傳送(唯一的例外是迴路主機,例如用於本機開發的 http://localhost)。
  • 對於具有資料駐留功能的 GitHub Enterprise Cloud,請使用 https://YOURSUBDOMAIN.ghe.com 作為主機名稱。
"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>"
    }
}

安裝

在 VS Code 的 GitHub Copilot 中安裝

如需快速安裝,請使用上方的一鍵安裝按鈕之一。完成該流程後,切換 Agent 模式(位於 Copilot Chat 文字輸入旁),伺服器便會啟動。

更多關於在 VS Code 的 agent 模式文件 中使用 MCP 伺服器工具的資訊。

在其他 IDE(JetBrains、Visual Studio、Eclipse 等)的 GitHub Copilot 中安裝

將以下其中一個 JSON 區塊新增至您 IDE 的 MCP 設定。

使用 OAuth 登入(無需建立或儲存 token)。 在 github.com 上,官方映像檔已包含應用程式憑證,因此您無需自行提供:它會在首次使用時執行瀏覽器型登入,並將產生的 token 僅保存在記憶體中。在 Docker 中,這需要將固定的回呼連接埠發布到迴路,以便容器的登入回呼可以到達:

{
  "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 登入 以了解原生二進位流程(無需固定連接埠)、無頭/裝置碼後備方案、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 的檔案。這將允許您與接受相同格式的其他主機應用程式共用設定。

不含 MCP 金鑰的範例 JSON 區塊
{
  "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 主機中安裝

對於其他 MCP 主機應用程式,請參閱我們的安裝指南:

如需所有安裝選項的完整概覽,請參閱我們的 安裝指南索引

注意: 任何支援本機 MCP 伺服器的主機應用程式,都應該能夠存取本機的 GitHub MCP 伺服器。然而,具體的設定流程、語法以及整合的穩定性會因主機應用程式而異。雖然許多應用程式可能遵循與上述範例類似的格式,但這並不保證。請參閱您主機應用程式的文件,以取得正確的 MCP 設定語法和設定流程。

從原始碼建置

如果您沒有 Docker,您可以使用 go buildcmd/github-mcp-server 目錄中建置二進位檔,並使用 github-mcp-server stdio 命令,並將 GITHUB_PERSONAL_ACCESS_TOKEN 環境變數設定為您的 token。若要指定建置的輸出位置,請使用 -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 的工具集,您可以透過兩種方式傳遞允許清單:

  1. 使用命令列參數

    github-mcp-server --toolsets repos,issues,pull_requests,actions,code_security
    
  2. 使用環境變數

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

如果同時提供了環境變數 GITHUB_TOOLSETS 和命令列參數,則環境變數優先。

指定個別工具

您也可以使用 --tools 旗標來設定特定工具。工具可以獨立使用,或與工具集結合使用,以進行精細控制。

  1. 使用命令列參數

    github-mcp-server --tools get_file_contents,issue_read,create_pull_request
    
  2. 使用環境變數

    GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" ./github-mcp-server
    
  3. 與工具集結合使用(加法式):

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

    這會註冊來自 reposissues 工具集的所有工具,以及 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 版本,可提早使用新功能和實驗性工具。

  1. 使用命令列參數

    ./github-mcp-server --insiders
    
  2. 使用環境變數

    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

可用的工具集

以下為可用的工具集:

工具集描述
personcontext強烈建議:提供有關目前使用者以及您所操作之 GitHub 環境脈絡的工具
workflowactionsGitHub Actions 工作流程與 CI/CD 操作
code-squarecode_qualityGitHub 程式碼品質相關工具
codescancode_security程式碼安全相關工具,例如 GitHub Code Scanning
copilotcopilotCopilot 相關工具
copilotcopilot_issue_intents選擇加入的 Copilot 問題指派工具,帶有意圖元資料(理由、信心度、建議)
dependabotdependabotDependabot 工具
comment-discussiondiscussionsGitHub Discussions 相關工具
logo-gistgistsGitHub Gist 相關工具
git-branchgit用於低階 Git 操作的 GitHub Git API 相關工具
issue-openedissuesGitHub Issues 相關工具
taglabelsGitHub Labels 相關工具
bellnotificationsGitHub Notifications 相關工具
organizationorgsGitHub Organization 相關工具
projectprojectsGitHub Projects 相關工具
git-pull-requestpull_requestsGitHub Pull Request 相關工具
reporeposGitHub Repository 相關工具
shield-locksecret_protection秘密保護相關工具,例如 GitHub Secret Scanning
shieldsecurity_advisories安全公告相關工具
starstargazersGitHub Stargazers 相關工具
peopleusersGitHub User 相關工具

遠端 GitHub MCP 伺服器中的其他工具集

工具集描述
copilotCopilot 相關工具(例如 Copilot Coding Agent)
copilot_spacesCopilot Spaces 相關工具
github_support_docs_search搜尋文件以回答 GitHub 產品和支援問題

工具

workflow Actions
  • actions_get - 取得 GitHub Actions 資源的詳細資訊(工作流程、工作流程執行、作業和成品)

    • OAuth Challenge Scopesrepo
    • method:要執行的方法(字串,必填)
    • owner:儲存庫擁有者(字串,必填)
    • repo:儲存庫名稱(字串,必填)
    • resource_id:資源的唯一識別碼。這會根據提供的「方法」而有所不同,因此請確保提供正確的 ID:
      • 為「get_workflow」方法提供工作流程 ID 或工作流程檔案名稱(例如 ci.yaml)。
      • 為「get_workflow_run」、「get_workflow_run_usage」和「get_workflow_run_logs_url」方法提供工作流程執行 ID。
      • 為「download_workflow_run_artifact」方法提供成品 ID。
      • 為「get_workflow_job」方法提供作業 ID。 (字串,必填)
  • actions_list - 列出儲存庫中的 GitHub Actions 工作流程

    • OAuth Challenge Scopesrepo
    • method:要執行的動作(字串,必填)
    • owner:儲存庫擁有者(字串,必填)
    • page:分頁的頁碼(預設:1)(數字,選填)
    • per_page:分頁的每頁結果數(預設:30,最大值:100)(數字,選填)
    • repo:儲存庫名稱(字串,必填)
    • resource_id:資源的唯一識別碼。這會根據提供的「方法」而有所不同,因此請確保提供正確的 ID:
      • 請勿為「list_workflows」方法提供任何資源 ID。
      • 為「list_workflow_runs」方法提供工作流程 ID 或工作流程檔案名稱(例如 ci.yaml),或省略以列出儲存庫中的所有工作流程執行。
      • 為「list_workflow_jobs」和「list_workflow_run_artifacts」方法提供工作流程執行 ID。 (字串,選填)
    • workflow_jobs_filter:工作流程作業的篩選器。在方法為「list_workflow_jobs」時使用(物件,選填)
    • workflow_runs_filter:工作流程執行的篩選器。在方法為「list_workflow_runs」時使用(物件,選填)
  • actions_run_trigger - 觸發 GitHub Actions 工作流程動作

    • OAuth Challenge Scopesrepo
    • inputs:工作流程接受的輸入。僅用於「run_workflow」方法。(物件,選填)
    • method:要執行的方法(字串,必填)
    • owner:儲存庫擁有者(字串,必填)
    • ref:工作流程的 git 參考。參考可以是分支或標籤名稱。「run_workflow」方法必填。(字串,選填)
    • repo:儲存庫名稱(字串,必填)
    • run_id:工作流程執行的 ID。除「run_workflow」之外的所有方法皆必填。(數字,選填)
    • workflow_id:工作流程 ID(數字)或工作流程檔案名稱(例如 main.yml、ci.yaml)。「run_workflow」方法必填。(字串,選填)
  • get_job_logs - 取得 GitHub Actions 工作流程作業日誌

    • OAuth Challenge Scopesrepo
    • failed_only:若為 true,則取得 run_id 指定之工作流程執行中所有失敗作業的日誌。需要提供 run_id。(布林值,選填)
    • job_id:工作流程作業的唯一識別碼。取得單一作業日誌時必填。(數字,選填)
    • owner:儲存庫擁有者(字串,必填)
    • repo:儲存庫名稱(字串,必填)
    • return_content:回傳實際日誌內容而非 URL(布林值,選填)
    • run_id:工作流程執行的唯一識別碼。當 failed_only 為 true 時必填,以取得執行中所有失敗作業的日誌。(數字,選填)
    • tail_lines:要從日誌結尾回傳的行數(數字,選填)
code-square 程式碼品質
  • get_code_quality_finding - 取得程式碼品質發現
    • OAuth Challenge Scopes: repo
    • findingNumber: 發現的編號。(number, required)
    • owner: 儲存庫的擁有者。(string, required)
    • repo: 儲存庫的名稱。(string, required)
codescan 程式碼安全
  • get_code_scanning_alert - 取得程式碼掃描警示

    • OAuth Challenge Scopes: security_events
    • alertNumber: 警示的編號。(number, required)
    • owner: 儲存庫的擁有者。(string, required)
    • repo: 儲存庫的名稱。(string, required)
  • list_code_scanning_alerts - 列出程式碼掃描警示

    • OAuth Challenge Scopes: security_events
    • owner: 儲存庫的擁有者。(string, required)
    • page: 分頁的頁碼 (最小值 1) (number, optional)
    • perPage: 分頁的每頁結果數 (最小值 1,最大值 100) (number, optional)
    • ref: 您要列出的結果的 Git 參考。(string, optional)
    • repo: 儲存庫的名稱。(string, required)
    • severity: 依嚴重性篩選程式碼掃描警示 (string, optional)
    • state: 依狀態篩選程式碼掃描警示。預設為 open (string, optional)
    • tool_name: 用於程式碼掃描的工具名稱。(string, optional)
person 內容
  • get_me - 取得我的使用者設定檔

    • 無需參數
  • get_team_members - 取得團隊成員

    • OAuth Challenge Scopes: read:org
    • org: 包含團隊的組織登入名稱 (擁有者)。(string, required)
    • team_slug: 團隊 slug (string, required)
  • get_teams - 取得團隊

    • OAuth Challenge Scopes: read:org
    • user: 要取得團隊的使用者名稱。如果未提供,則使用已驗證的使用者。(string, optional)
copilot Copilot
  • assign_copilot_to_issue - 指派 Copilot 到議題

    • OAuth Challenge Scopes: repo
    • base_ref: 代理程式開始工作的 Git 參考 (例如分支)。如果未指定,預設為儲存庫的預設分支 (string, optional)
    • custom_instructions: 可選的自訂指示,用於引導代理程式超越議題內容。使用此欄位提供議題描述中未捕捉到的額外內容、限制或指導 (string, optional)
    • issue_number: 議題編號 (number, required)
    • owner: 儲存庫擁有者 (string, required)
    • repo: 儲存庫名稱 (string, required)
  • request_copilot_review - 請求 Copilot 審查

    • OAuth Challenge Scopes: repo
    • owner: 儲存庫擁有者 (string, required)
    • pullNumber: 拉取請求編號 (number, required)
    • repo: 儲存庫名稱 (string, required)
copilot Copilot 議題意圖
  • assign_copilot_to_issue_with_intent - 指派 Copilot 到議題並帶有意圖
    • OAuth Challenge Scopes: repo
    • base_ref: 代理程式開始工作的 Git 參考 (例如分支)。如果未指定,預設為儲存庫的預設分支。當 is_suggestion 為 true 時忽略 (string, optional)
    • confidence: 您對這個選擇的信心程度。'HIGH' 表示明確訊號或明確的使用者請求,'MEDIUM' 表示有合理推論但存在一些模糊性,'LOW' 表示在有限訊號下的最佳猜測。(string, required)
    • custom_instructions: 可選的自訂指示,用於引導代理程式超越議題內容。當 is_suggestion 為 true 時忽略 (string, optional)
    • is_suggestion: 如果為 true,則記錄待處理的 Copilot 指派意圖,而不是啟動代理程式。之後的核准會提供啟動內容;在此情況下,base_ref 和 custom_instructions 會被忽略。(boolean, required)
    • issue_number: 議題編號 (number, required)
    • owner: 儲存庫擁有者 (string, required)
    • rationale: 一句簡潔的句子,說明議題中具體是什麼導致選擇 Copilot。陳述具體訊號 (例如「範圍明確且具有清晰驗收標準的任務」)。(string, required)
    • repo: 儲存庫名稱 (string, required)
dependabot Dependabot
  • get_dependabot_alert - 取得 Dependabot 警示

    • OAuth Challenge Scopes: security_events
    • alertNumber: 警示的編號。(number, required)
    • owner: 儲存庫的擁有者。(string, required)
    • repo: 儲存庫的名稱。(string, required)
  • list_dependabot_alerts - 列出 Dependabot 警示

    • OAuth Challenge Scopes: security_events
    • after: 分頁的游標。使用前一個回應中的游標。(string, optional)
    • owner: 儲存庫的擁有者。(string, required)
    • perPage: 分頁的每頁結果數 (最小值 1,最大值 100) (number, optional)
    • repo: 儲存庫的名稱。(string, required)
    • severity: 依嚴重性篩選 Dependabot 警示 (string, optional)
    • state: 依狀態篩選 Dependabot 警示。預設為 open (string, optional)
comment-discussion 討論
  • 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: 儲存庫擁有者 (「add」和「reply」方法需要) (string, optional)
    • repo: 儲存庫名稱 (「add」和「reply」方法需要) (string, optional)
  • get_discussion - 取得討論

    • OAuth Challenge Scopes: repo
    • discussionNumber: 討論編號 (number, required)
    • owner: 儲存庫擁有者 (string, required)
    • repo: 儲存庫名稱 (string, required)
  • get_discussion_comments - 取得討論留言

    • OAuth Challenge Scopes: repo
    • after: 分頁的游標。使用前一個回應中的游標。(string, optional)
    • discussionNumber: 討論編號 (number, required)
    • includeReplies: 當為 true 時,每個頂層留言將包含巢狀在其中的回覆 (每個留言最多 100 個回覆,這是 GitHub API 的上限)。預設為 false。(boolean, optional)
    • owner: 儲存庫擁有者 (string, required)
    • perPage: 分頁的每頁結果數 (最小值 1,最大值 100) (number, optional)
    • repo: 儲存庫名稱 (string, required)
  • list_discussion_categories - 列出討論類別

    • OAuth Challenge Scopes: repo
    • owner: 儲存庫擁有者 (string, required)
    • repo: 儲存庫名稱。如果未提供,將在組織層級查詢討論類別。(string, optional)
  • list_discussions - 列出討論

    • OAuth Challenge Scopes: repo
    • after: 分頁的游標。使用前一個回應中的游標。(string, optional)
    • category: 可選的討論類別 ID 篩選。如果提供,只會列出具有此類別的討論。(string, optional)
    • direction: 排序方向。(string, optional)
    • orderBy: 依欄位排序討論。如果提供,也需要提供「direction」。(string, optional)
    • owner: 儲存庫擁有者 (string, required)
    • perPage: 分頁的每頁結果數 (最小值 1,最大值 100) (number, optional)
    • repo: 儲存庫名稱。如果未提供,將在組織層級查詢討論。(string, optional)
logo-gist Gists
  • create_gist - 建立 Gist

    • OAuth Challenge Scopes: gist
    • content: 簡單單一檔案 gist 建立的內容 (string, required)
    • description: gist 的描述 (string, optional)
    • filename: 簡單單一檔案 gist 建立的檔案名稱 (string, required)
    • public: gist 是否為公開 (boolean, optional)
  • get_gist - 取得 Gist 內容

    • gist_id: gist 的 ID (string, required)
  • list_gists - 列出 Gists

    • page: 分頁的頁碼 (最小值 1) (number, optional)
    • perPage: 分頁的每頁結果數 (最小值 1,最大值 100) (number, optional)
    • since: 僅列出在此時間之後更新的 gists (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: 要更新的 gist 的 ID (string, required)
git-branch Git - **get_repository_tree** - 取得儲存庫樹狀結構 - **OAuth Challenge Scopes**: `repo` - `owner`: 儲存庫擁有者(使用者名稱或組織)(string, required) - `path_filter`: 可選的路径前綴,用於過濾樹狀結構結果(例如,'src/' 僅顯示 src 目錄中的檔案)(string, optional) - `recursive`: 將此參數設為 true 會傳回樹狀結構所引用的物件或子樹。預設為 false (boolean, optional) - `repo`: 儲存庫名稱 (string, required) - `tree_sha`: 樹狀結構的 SHA1 值或 ref(分支或標籤)名稱。預設為儲存庫的預設分支 (string, optional)
issue-opened Issues
  • add_issue_comment - 新增評論至 issue 或 pull request

    • OAuth Challenge Scopes: repo
    • body: 評論內容。除非提供 reaction,否則為必填。(string, optional)
    • comment_id: 要回應的 issue 或 pull request 評論的數值 ID。用於對評論加入反應;若省略則對 issue 或 pull request 本身加入反應。不可與 body 同時使用。(integer, optional)
    • issue_number: 要評論或回應的 issue 或 pull request 編號。(number, required)
    • owner: 儲存庫擁有者 (string, required)
    • reaction: 要加入的表情符號反應。除非提供 body,否則為必填。(string, optional)
    • repo: 儲存庫名稱 (string, required)
  • get_label - 從儲存庫取得特定標籤

    • OAuth Challenge Scopes: repo
    • name: 標籤名稱。(string, required)
    • owner: 儲存庫擁有者(使用者名稱或組織名稱)(string, required)
    • repo: 儲存庫名稱 (string, required)
  • issue_read - 取得 issue 詳細資訊

    • OAuth Challenge Scopes: repo
    • issue_number: issue 的編號 (number, required)
    • method: 對單一 issue 執行的讀取操作。 選項有:
      1. get - 取得 issue 詳細資訊。同時傳回盡力而為的階層旗標(has_parenthas_children);parentsub_issues_summary 是選用的關係摘要,closed_by_pull_requests 摘要說明設定為關閉該 issue 的 pull requests,作為 total_count 加上最多 5 個 references
      2. get_comments - 取得 issue 評論。
      3. get_sub_issues - 取得 issue 的子議題(子項目)。
      4. get_parent - 若此 issue 是另一個 issue 的子議題,取得其父議題。
      5. get_labels - 取得指派給該 issue 的標籤。 (string, required)
    • owner: 儲存庫的擁有者 (string, required)
    • page: 分頁的頁碼(最小值 1)(number, optional)
    • perPage: 分頁的每頁結果數(最小值 1,最大值 100)(number, optional)
    • repo: 儲存庫的名稱 (string, required)
  • issue_write - 建立或更新 issue/pull request

    • OAuth Challenge Scopes: repo
    • assignees: 要指派給此 issue 的使用者名稱 (string[], optional)
    • body: issue 內文內容 (string, optional)
    • duplicate_of: 此 issue 重複的 issue 編號。當 state_reason 為 'duplicate' 時為必填。(number, optional)
    • issue_fields: 要設定或清除的 issue 欄位值。每個項目需要 'field_name' 以及 'value'、'field_option_name' 或 'delete: true' 其中一個。(object[], optional)
    • issue_number: 要更新的 issue 編號 (number, optional)
    • labels: 要套用至此 issue 的標籤 (string[], optional)
    • method: 對單一 issue 執行的寫入操作。 選項有:
      • 'create' - 建立新的 issue。
      • 'update' - 更新現有的 issue。 (string, required)
    • milestone: 里程碑編號 (number, optional)
    • owner: 儲存庫擁有者 (string, required)
    • parent_issue_number: 父議題的 issue 編號。僅在 method 為 'create' 時使用,且不可與 issue_fields 同時使用。新 issue 會在相同操作中建立並附加到此父議題。(number, optional)
    • parent_owner: 父議題的儲存庫擁有者。必須與 parent_repo 一起提供。若兩者皆省略則使用 owner 和 repo。僅在 method 為 'create' 且提供 parent_issue_number 時使用。(string, optional)
    • parent_repo: 父議題的儲存庫名稱。必須與 parent_owner 一起提供。若兩者皆省略則使用 owner 和 repo。僅在 method 為 'create' 且提供 parent_issue_number 時使用。(string, optional)
    • repo: 儲存庫名稱 (string, required)
    • state: 新狀態 (string, optional)
    • state_reason: 狀態變更的原因。除非狀態有變更,否則忽略。(string, optional)
    • title: issue 標題 (string, optional)
    • type: 此 issue 的類型。對於更新,傳入 null 以移除目前的類型。僅在此儲存庫啟用 issue 類型時使用。使用 list_issue_types 取得此儲存庫或其擁有組織的有效類型值。若儲存庫不支援 issue 類型,請省略此參數。(string | null, optional)
  • list_issue_fields - 列出 issue 欄位

    • OAuth Challenge Scopes: repo, read:org
    • owner: 儲存庫或組織的帳戶擁有者。名稱不區分大小寫。(string, required)
    • repo: 儲存庫的名稱。提供時,傳回此特定儲存庫的欄位(繼承自其組織)。省略時,直接傳回組織層級的欄位。(string, optional)
  • list_issue_types - 列出可用的 issue 類型

    • OAuth Challenge Scopes: repo, read:org
    • owner: 儲存庫或組織的帳戶擁有者。(string, required)
    • repo: 儲存庫的名稱。提供時,傳回此特定儲存庫的 issue 類型。省略時,直接傳回組織層級的 issue 類型。(string, optional)
  • list_issues - 列出 issues

    • OAuth Challenge Scopes: repo
    • after: 分頁的游標。使用前一個回應中的游標。(string, optional)
    • direction: 排序方向。若提供,也必須提供 'orderBy'。(string, optional)
    • field_filters: 依自訂 issue 欄位值篩選。每個條目接受 field_name 和 value;伺服器會查詢欄位並將值轉換為其類型(單選選項名稱、文字、數字或 YYYY-MM-DD 日期)。(object[], optional)
    • fields: 每個 issue 要傳回的欄位子集。若省略,則傳回所有欄位。當您只需要特定欄位時,使用此選項可減少回應大小;特別地,省略 'body' 和 'field_values' 會移除每個結果中最大的資料。(string[], optional)
    • labels: 依標籤篩選 (string[], optional)
    • orderBy: 依欄位排序 issues。若提供,也必須提供 'direction'。(string, optional)
    • owner: 儲存庫擁有者 (string, required)
    • perPage: 分頁的每頁結果數(最小值 1,最大值 100)(number, optional)
    • repo: 儲存庫名稱 (string, required)
    • since: 依日期篩選(ISO 8601 時間戳記)(string, optional)
    • state: 依狀態篩選,未提供時預設傳回開啟和關閉的 issues (string, optional)
  • search_issues - 搜尋 issues

    • OAuth Challenge Scopes: repo
    • fields: 每個 issue 結果要傳回的欄位子集。若省略,則傳回所有欄位。當您只需要特定欄位時,使用此選項可減少回應大小;特別地,省略 'body'、'reactions' 和 'labels' 會移除每個結果中最大的資料。(string[], optional)
    • order: 排序順序 (string, optional)
    • owner: 選用的儲存庫擁有者。若與 repo 一起提供,僅列出此儲存庫的 issues。(string, optional)
    • page: 分頁的頁碼(最小值 1)(number, optional)
    • perPage: 分頁的每頁結果數(最小值 1,最大值 100)(number, optional)
    • query: 搜尋查詢,以自然語言表示。當使用者提供替代措辭時,將它們作為純文字詞語包含,而不是用 OR 連接。(string, required)
    • repo: 選用的儲存庫名稱。若與 owner 一起提供,僅列出此儲存庫的 issues。(string, optional)
    • sort: 依類別匹配數量的排序欄位,預設為最佳匹配 (string, optional)
  • 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' - 在 GitHub 儲存庫中將子議題新增至父議題。
      • 'remove' - 在 GitHub 儲存庫中從父議題移除子議題。
      • 'reprioritize' - 變更 GitHub 儲存庫中父議題內子議題的順序。使用 'after_id' 或 'before_id' 指定新位置。 寫入 issue 階層。若要將子議題移至新的父議題,請使用 add 搭配 replace_parent=true;沒有可寫入的父欄位。 (string, required)
    • owner: 儲存庫擁有者 (string, required)
    • replace_parent: 當為 true 時,取代子議題目前的父議題。僅與 'add' 方法一起使用。(boolean, optional)
    • repo: 儲存庫名稱 (string, required)
    • sub_issue_id: 要新增的子議題 ID。ID 與 issue 編號不同 (number, required)
tag Labels
  • get_label - 從儲存庫取得特定標籤

    • OAuth Challenge Scopes: repo
    • name: 標籤名稱。(string, required)
    • owner: 儲存庫擁有者(使用者名稱或組織名稱)(string, required)
    • repo: 儲存庫名稱 (string, required)
  • label_write - 儲存庫標籤的寫入操作

    • OAuth Challenge Scopes: repo
    • color: 標籤顏色,為 6 字元十六進位代碼,不含 '#' 前綴(例如,'f29513')。'create' 為必填,'update' 為選填。(string, optional)
    • description: 標籤描述文字。'create' 和 'update' 皆為選填。(string, optional)
    • method: 要執行的操作:'create'、'update' 或 'delete' (string, required)
    • name: 標籤名稱 - 所有操作皆為必填 (string, required)
    • new_name: 標籤的新名稱(僅在 'update' 方法中用於重新命名)(string, optional)
    • owner: 儲存庫擁有者(使用者名稱或組織名稱)(string, required)
    • repo: 儲存庫名稱 (string, required)
  • list_label - 從儲存庫列出標籤

    • OAuth Challenge Scopes: repo
    • owner: 儲存庫擁有者(使用者名稱或組織名稱)- 所有操作皆為必填 (string, required)
    • repo: 儲存庫名稱 - 所有操作皆為必填 (string, required)
bell Notifications - **dismiss_notification** - 關閉通知 - **OAuth Challenge Scopes**:`notifications` - `state`:通知的新狀態(read/done)(字串,必填) - `threadID`:通知執行緒的 ID(字串,必填)
  • get_notification_details - 取得通知詳細資訊

    • OAuth Challenge Scopesnotifications
    • notificationID:通知的 ID(字串,必填)
  • list_notifications - 列出通知

    • OAuth Challenge Scopesnotifications
    • before:僅顯示在指定時間之前更新的通知(ISO 8601 格式)(字串,選填)
    • filter:篩選通知,除非另有指定,否則使用預設值。已讀通知是指使用者已確認的通知。參與中的通知是指使用者直接參與的通知,例如使用者已評論或建立的議題或拉取請求。(字串,選填)
    • owner:選填的儲存庫擁有者。若與 repo 一起提供,僅列出此儲存庫的通知。(字串,選填)
    • page:分頁的頁碼(最小值 1)(數字,選填)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(數字,選填)
    • repo:選填的儲存庫名稱。若與 owner 一起提供,僅列出此儲存庫的通知。(字串,選填)
    • since:僅顯示在指定時間之後更新的通知(ISO 8601 格式)(字串,選填)
  • manage_notification_subscription - 管理通知訂閱

    • OAuth Challenge Scopesnotifications
    • action:要執行的動作:ignore、watch 或 delete 通知訂閱。(字串,必填)
    • notificationID:通知執行緒的 ID。(字串,必填)
  • manage_repository_notification_subscription - 管理儲存庫通知訂閱

    • OAuth Challenge Scopesnotifications
    • action:要執行的動作:ignore、watch 或 delete 儲存庫通知訂閱。(字串,必填)
    • owner:儲存庫的帳戶擁有者。(字串,必填)
    • repo:儲存庫的名稱。(字串,必填)
  • mark_all_notifications_read - 將所有通知標記為已讀

    • OAuth Challenge Scopesnotifications
    • lastReadAt:描述最後一次檢查通知的時間點(選填)。預設值:現在(字串,選填)
    • owner:選填的儲存庫擁有者。若與 repo 一起提供,僅將此儲存庫的通知標記為已讀。(字串,選填)
    • repo:選填的儲存庫名稱。若與 owner 一起提供,僅將此儲存庫的通知標記為已讀。(字串,選填)
organization 組織
  • search_orgs - 搜尋組織
    • OAuth Challenge Scopesread:org
    • order:排序順序(字串,選填)
    • page:分頁的頁碼(最小值 1)(數字,選填)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(數字,選填)
    • query:組織搜尋查詢。範例:'microsoft'、'location:california'、'created:>=2025-01-01'。搜尋會自動限定為 type:org。(字串,必填)
    • sort:依類別排序的欄位(字串,選填)
project 專案
  • projects_get - 取得 GitHub Projects 資源的詳細資訊

    • OAuth Challenge Scopesread:project
    • field_id:欄位的 ID。'get_project_field' 方法需要。(數字,選填)
    • field_names:取得專案項目時要包含在回應中的特定欄位名稱清單(例如 ["Status", "Priority"])。會在伺服器端解析為欄位 ID——當您只知道人類可讀的名稱時,請傳遞此參數而非 'fields'。與 'fields' 互斥——請僅提供其中一個,不要同時提供。僅用於 'get_project_item' 方法。(string[],選填)
    • fields:取得專案項目時要包含在回應中的特定欄位 ID 清單(例如 ["102589", "985201", "169875"])。若未提供 'fields' 或 'field_names',則僅包含標題欄位。與 'field_names' 互斥——請僅提供其中一個,不要同時提供。僅用於 'get_project_item' 方法。(string[],選填)
    • item_id:項目的 ID。'get_project_item' 方法需要。(數字,選填)
    • method:要執行的方法(字串,必填)
    • owner:擁有者(使用者或組織登入名稱)。名稱不區分大小寫。(字串,選填)
    • owner_type:擁有者類型(user 或 org)。若未提供,將自動偵測。(字串,選填)
    • project_number:專案的編號。(數字,選填)
    • status_update_id:專案狀態更新的節點 ID。'get_project_status_update' 方法需要。(字串,選填)
    • view_id:專案檢視的節點 ID。'get_project_view' 方法需要。(字串,選填)
  • projects_list - 列出 GitHub Projects 資源

    • OAuth Challenge Scopesread:project
    • after:來自先前 pageInfo.nextCursor 的向前分頁游標。(字串,選填)
    • before:來自先前 pageInfo.prevCursor 的向後分頁游標(罕見)。(字串,選填)
    • field_names:列出專案項目時要包含的欄位名稱(例如 ["Status", "Priority"])。會在伺服器端解析為欄位 ID——當您只知道人類可讀的名稱時,請傳遞此參數而非 'fields'。無法解析的名稱會回傳結構化錯誤。與 'fields' 互斥——請僅提供其中一個,不要同時提供。僅用於 'list_project_items' 方法。(string[],選填)
    • fields:列出專案項目時要包含的欄位 ID(例如 ["102589", "985201"])。重要:務必提供以取得欄位值。若未提供此參數(且未提供 'field_names'),僅會回傳標題。與 'field_names' 互斥——請僅提供其中一個,不要同時提供。僅用於 'list_project_items' 方法。(string[],選填)
    • method:要執行的動作(字串,必填)
    • owner:擁有者(使用者或組織登入名稱)。名稱不區分大小寫。(字串,必填)
    • owner_type:擁有者類型(user 或 org)。若未提供,將自動嘗試兩者。(字串,選填)
    • per_page:每頁結果數(最大值 50)(數字,選填)
    • project_number:專案的編號。'list_project_fields'、'list_project_items'、'list_project_views' 和 'list_project_status_updates' 方法需要。(數字,選填)
    • query:篩選/查詢字串。對於 list_projects:依標題文字和狀態篩選(例如 "roadmap is:open")。對於 list_project_items:使用 GitHub 的專案篩選語法進行進階篩選。(字串,選填)
  • projects_write - 管理 GitHub Projects

    • OAuth Challenge Scopesproject
    • body:狀態更新的內容(markdown)。用於 'create_project_status_update' 方法。(字串,選填)
    • field_name:迭代欄位的名稱(例如 'Sprint')。'create_iteration_field' 方法需要。(字串,選填)
    • filter:已儲存檢視的篩選條件;更新時省略以保留,或傳遞 null 以清除。(string | null,選填)
    • issue_number:議題編號。當 item_type 為 'issue' 時,'add_project_item' 需要。'update_project_item' 也接受此參數以依議題編號解析項目(需搭配 item_owner 和 item_repo)。(數字,選填)
    • item_id:專案項目 ID。'delete_project_item' 需要。對於 'update_project_item',請提供 item_id,或提供(item_owner + item_repo + issue_number)以依議題解析項目。(數字,選填)
    • item_owner:包含議題或拉取請求的儲存庫擁有者(使用者或組織)。'add_project_item' 方法需要。當依議題編號解析項目時,'update_project_item' 也接受此參數。(字串,選填)
    • item_repo:包含議題或拉取請求的儲存庫名稱。'add_project_item' 方法需要。當依議題編號解析項目時,'update_project_item' 也接受此參數。(字串,選填)
    • item_type:項目的類型,可為 issue 或 pull_request。'add_project_item' 方法需要。(字串,選填)
    • items:要使用頂層 'updated_field' 更新的項目。'update_project_items' 需要;建議使用此方法而非在迴圈中呼叫 'update_project_item'。每個條目必須完全符合一種參考變體:'node_id'、數字 'item_id',或 'item_owner' + 'item_repo' + 'issue_number'。限制:每次呼叫最多 50 個項目。(object[],選填)
    • iteration_duration:欄位迭代的持續天數(例如每週 7 天,每兩週 14 天)。'create_iteration_field' 方法需要。(數字,選填)
    • iterations:'create_iteration_field' 方法的自訂迭代。僅在需要具有不同持續時間、間隔或特定標題的迭代時設定此參數。否則請省略:GitHub 會自動從 'start_date' 開始建立三個持續 'iteration_duration' 天的迭代,這在大多數情況下是正確的選擇。(object[],選填)
    • layout:檢視版面配置;建立檢視時需要。(字串,選填)
    • method:要執行的方法(字串,必填)
    • name:檢視名稱;建立檢視時需要。(字串,選填)
    • owner:專案擁有者(使用者或組織登入名稱)。名稱不區分大小寫。(字串,必填)
    • owner_type:擁有者類型(user 或 org)。'create_project' 方法需要。若未提供給其他方法,將自動偵測。(字串,選填)
    • project_number:專案的編號。除 'create_project' 外的所有方法都需要。(數字,選填)
    • pull_request_number:拉取請求編號(當 item_type 為 'pull_request' 時用於 'add_project_item' 方法)。請提供 issue_number 或 pull_request_number。(數字,選填)
    • start_date:開始日期,格式為 YYYY-MM-DD。用於 'create_project_status_update' 和 'create_iteration_field' 方法。(字串,選填)
    • status:專案的狀態。用於 'create_project_status_update' 方法。(字串,選填)
    • target_date:狀態更新的目標日期,格式為 YYYY-MM-DD。用於 'create_project_status_update' 方法。(字串,選填)
    • title:專案標題。'create_project' 方法需要。(字串,選填)
    • updated_field:要套用的欄位/值,使用 {"id": 123, "value": ...} 或 {"name": "Status", "value": ...};null 會清除欄位。'update_project_item' 和 'update_project_items' 需要,其中一個頂層欄位/值會套用至批次中的每個項目。對於 'update_project_item' 的 SINGLE_SELECT 欄位,名稱形式接受選項名稱;ID 形式預期選項 ID。(object,選填)
    • view_id:用於更新或刪除的專案檢視節點 ID;必須屬於 owner/project_number。(字串,選填)
    • visible_field_names:建立時顯示或更新時取代的有序專案欄位名稱;更新時省略以保留,或傳遞 [] 以重設。與 visible_fields 互斥。Roadmap 僅接受 []。(string[],選填)
    • visible_fields:建立時顯示或更新時取代的有序專案欄位資料庫 ID;更新時省略以保留,或傳遞 [] 以重設。與 visible_field_names 互斥。Roadmap 僅接受 []。(string[],選填)
git-pull-request Pull Requests
  • add_comment_to_pending_review - 在請求者最新的待處理 Pull Request 審查中新增審查評論

    • OAuth Challenge Scopesrepo
    • body:審查評論的文字內容(字串,必填)
    • line:評論所套用的 Pull Request diff 中 blob 的行號。對於多行評論,為範圍的最後一行(數字,選填)
    • owner:儲存庫擁有者(字串,必填)
    • path:需要評論的檔案的相對路徑(字串,必填)
    • pullNumber:Pull Request 編號(數字,必填)
    • repo:儲存庫名稱(字串,必填)
    • side:要評論的 diff 側邊。LEFT 表示先前的狀態,RIGHT 表示新的狀態(字串,選填)
    • startLine:對於多行評論,為評論所套用的範圍的第一行(數字,選填)
    • startSide:對於多行評論,為評論所套用的 diff 起始側邊。LEFT 表示先前的狀態,RIGHT 表示新的狀態(字串,選填)
    • subjectType:評論目標的層級(字串,必填)
  • add_reply_to_pull_request_comment - 回覆 Pull Request 評論

    • OAuth Challenge Scopesrepo
    • body:回覆的文字內容。除非提供了 reaction,否則為必填。(字串,選填)
    • commentId:要回覆或回應的 Pull Request 審查評論的數字 ID。請使用 #discussion_r... 錨點中的數字,而非 GraphQL thread node ID(PRRT_...)。(數字,必填)
    • owner:儲存庫擁有者(字串,必填)
    • pullNumber:Pull Request 編號。當提供了 body 時為必填。(數字,選填)
    • reaction:要新增的表情符號反應。除非提供了 body,否則為必填。(字串,選填)
    • repo:儲存庫名稱(字串,必填)
  • create_pull_request - 開啟新的 Pull Request

    • OAuth Challenge Scopesrepo
    • base:要合併進去的分支(字串,必填)
    • body:PR 描述(字串,選填)
    • draft:建立為草稿 PR(布林值,選填)
    • head:包含變更的分支(字串,必填)
    • maintainer_can_modify:允許維護者編輯(布林值,選填)
    • owner:儲存庫擁有者(字串,必填)
    • repo:儲存庫名稱(字串,必填)
    • reviewers:要請求審查的 GitHub 使用者名稱或 ORG/team-slug 團隊審查者(字串陣列,選填)
    • title:PR 標題(字串,必填)
  • list_pull_requests - 列出 Pull Requests

    • OAuth Challenge Scopesrepo
    • base:依基礎分支篩選(字串,選填)
    • direction:排序方向(字串,選填)
    • fields:每個 Pull Request 要回傳的欄位子集。如果省略,則回傳所有欄位。當您只需要特定欄位時,使用此選項可減少回應大小;特別是在省略 'body' 時,可移除每個結果中最大的資料。(字串陣列,選填)
    • head:依 head 使用者/組織和分支篩選(字串,選填)
    • owner:儲存庫擁有者(字串,必填)
    • page:分頁的頁碼(最小值 1)(數字,選填)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(數字,選填)
    • repo:儲存庫名稱(字串,必填)
    • sort:排序依據(字串,選填)
    • state:依狀態篩選(字串,選填)
  • merge_pull_request - 合併 Pull Request

    • OAuth Challenge Scopesrepo
    • commit_message:合併提交的額外詳細資訊(字串,選填)
    • commit_title:合併提交的標題(字串,選填)
    • merge_method:合併方法(字串,選填)
    • owner:儲存庫擁有者(字串,必填)
    • pullNumber:Pull Request 編號(數字,必填)
    • repo:儲存庫名稱(字串,必填)
  • pull_request_read - 取得單一 Pull Request 的詳細資訊

    • OAuth Challenge Scopesrepo
    • after:分頁游標,僅由 get_review_comments 方法使用。傳入上一頁 PageInfo 的 endCursor 以取得下一頁。(字串,選填)
    • method:指定要從 GitHub 取得哪些 Pull Request 資料的動作。 可能的選項:
      1. get - 取得特定 Pull Request 的詳細資訊。
      2. get_diff - 取得 Pull Request 的 diff。
      3. get_status - 取得 Pull Request 中 head 提交的合併提交狀態。
      4. get_files - 取得 Pull Request 中變更的檔案清單。搭配分頁參數使用以控制回傳的結果數量。
      5. get_commits - 取得 Pull Request 上的提交清單。搭配分頁參數使用以控制回傳的結果數量。
      6. get_review_comments - 取得 Pull Request 上的審查討論串。每個討論串包含在 Pull Request 審查期間於相同程式碼位置所做的邏輯分組審查評論。回傳討論串及其相關評論的中繼資料(isResolved、isOutdated、isCollapsed)。使用基於游標的分頁(perPage、after)來控制結果。
      7. get_reviews - 取得 Pull Request 上的審查。當被要求審查評論時,請使用 get_review_comments 方法。搭配分頁參數使用以控制回傳的結果數量。
      8. get_comments - 取得 Pull Request 上的評論。如果使用者沒有特別要求審查評論,請使用此選項。搭配分頁參數使用以控制回傳的結果數量。
      9. get_check_runs - 取得 Pull Request head 提交的檢查執行。檢查執行是在 PR 上執行的個別 CI/CD 作業和檢查。 (字串,必填)
    • owner:儲存庫擁有者(字串,必填)
    • page:分頁的頁碼(最小值 1)(數字,選填)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(數字,選填)
    • pullNumber:Pull Request 編號(數字,必填)
    • repo:儲存庫名稱(字串,必填)
  • pull_request_review_write - 對 Pull Request 審查的寫入操作(建立、提交、刪除)

    • OAuth Challenge Scopesrepo
    • body:審查評論文字(字串,選填)
    • commitID:要審查的提交 SHA(字串,選填)
    • event:要執行的審查動作。(字串,選填)
    • method:要對 Pull Request 審查執行的寫入操作。(字串,必填)
    • owner:儲存庫擁有者(字串,必填)
    • pullNumber:Pull Request 編號(數字,必填)
    • repo:儲存庫名稱(字串,必填)
    • threadId:審查討論串的節點 ID(例如 PRRT_kwDOxxx)。resolve_thread 和 unresolve_thread 方法為必填。從 pull_request_read 使用 get_review_comments 方法取得討論串 ID。(字串,選填)
  • search_pull_requests - 搜尋 Pull Requests

    • OAuth Challenge Scopesrepo
    • fields:每個 Pull Request 搜尋結果要回傳的欄位子集。如果省略,則回傳所有欄位。當您只需要特定欄位時,使用此選項可減少回應大小;特別是在省略 'body'、'reactions' 和 'labels' 時,可移除每個結果中最大的資料。(字串陣列,選填)
    • order:排序順序(字串,選填)
    • owner:選填的儲存庫擁有者。如果與 repo 一起提供,則只列出此儲存庫的 Pull Requests。(字串,選填)
    • page:分頁的頁碼(最小值 1)(數字,選填)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(數字,選填)
    • query:使用 GitHub Pull Request 搜尋語法的搜尋查詢(字串,必填)
    • repo:選填的儲存庫名稱。如果與 owner 一起提供,則只列出此儲存庫的 Pull Requests。(字串,選填)
    • sort:依類別相符數量的排序欄位,預設為最佳相符(字串,選填)
  • update_pull_request - 編輯 Pull Request

    • OAuth Challenge Scopesrepo
    • base:新的基礎分支名稱(字串,選填)
    • body:新的描述(字串,選填)
    • draft:將 Pull Request 標記為草稿(true)或準備好審查(false)(布林值,選填)
    • maintainer_can_modify:允許維護者編輯(布林值,選填)
    • owner:儲存庫擁有者(字串,必填)
    • pullNumber:要更新的 Pull Request 編號(數字,必填)
    • repo:儲存庫名稱(字串,必填)
    • reviewers:要請求審查的 GitHub 使用者名稱或 ORG/team-slug 團隊審查者(字串陣列,選填)
    • state:新的狀態(字串,選填)
    • title:新的標題(字串,選填)
  • update_pull_request_branch - 更新 Pull Request 分支

    • OAuth Challenge Scopesrepo
    • expectedHeadSha:Pull Request HEAD 參照的預期 SHA(字串,選填)
    • owner:儲存庫擁有者(字串,必填)
    • pullNumber:Pull Request 編號(數字,必填)
    • repo:儲存庫名稱(字串,必填)
repo Repositories
  • create_branch - 建立分支

    • OAuth Challenge Scopesrepo
    • branch:新分支的名稱(字串,必填)
    • from_branch:來源分支(預設為儲存庫預設分支)(字串,選填)
    • owner:儲存庫擁有者(字串,必填)
    • repo:儲存庫名稱(字串,必填)
  • create_or_update_file - 建立或更新檔案

    • OAuth Challenge Scopesrepoworkflow
    • allow_symlink_write:設為 true 以更新符號連結本身;內容必須是其新的目標路徑。(布林值,選填)
    • branch:要建立/更新檔案的分支(字串,必填)
    • content:檔案的內容,必須與寫入後的內容完全一致。請勿對其進行 base64 編碼;此伺服器會在呼叫 REST API 之前進行編碼。(字串,必填)
    • message:提交訊息(字串,必填)
    • owner:儲存庫擁有者(使用者名稱或組織)(字串,必填)
    • path:要建立/更新檔案的路徑(字串,必填)
    • repo:儲存庫名稱(字串,必填)
    • sha:要取代的檔案的 blob SHA。如果檔案已存在,則為必填。(字串,選填)
  • create_repository - 建立儲存庫

    • OAuth Challenge Scopesrepo
    • autoInit:以 README 初始化(布林值,選填)
    • description:儲存庫描述(字串,選填)
    • name:儲存庫名稱(字串,必填)
    • organization:要在其中建立儲存庫的組織(省略則在您的個人帳戶中建立)(字串,選填)
    • private:儲存庫是否應為私人。省略時預設為 true(私人)。(布林值,選填)
  • delete_file - 刪除檔案

    • OAuth Challenge Scopesrepoworkflow
    • branch:要從中刪除檔案的分支(字串,必填)
    • message:提交訊息(字串,必填)
    • owner:儲存庫擁有者(使用者名稱或組織)(字串,必填)
    • path:要刪除的檔案路徑(字串,必填)
    • repo:儲存庫名稱(字串,必填)
  • delete_repository - 刪除儲存庫

    • OAuth Challenge Scopesdelete_reporepo
    • owner:儲存庫擁有者(使用者名稱或組織)(string, required)
    • repo:儲存庫名稱 (string, required)
  • fork_repository - 複製儲存庫

    • OAuth Challenge Scopesrepo
    • organization:要複製到的組織 (string, optional)
    • owner:儲存庫擁有者 (string, required)
    • repo:儲存庫名稱 (string, required)
  • get_commit - 取得提交詳細資訊

    • OAuth Challenge Scopesrepo
    • detail:要為變更檔案包含的詳細程度。"none" 完全省略統計資料和檔案。"stats"(預設)包含每個檔案的元資料:檔案名稱、狀態和程式碼行數(新增、刪除、變更),不包含修補程式內容。"full_patch" 另外包含每個檔案的統一差異內容,且可能非常龐大。(string, optional)
    • owner:儲存庫擁有者 (string, required)
    • page:分頁的頁碼(最小值 1)(number, optional)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(number, optional)
    • repo:儲存庫名稱 (string, required)
    • sha:提交 SHA、分支名稱或標籤名稱 (string, required)
  • get_file_contents - 取得檔案或目錄內容

    • OAuth Challenge Scopesrepo
    • fields:當路徑為目錄時,每個條目要傳回的欄位子集。如果省略,則傳回所有欄位。當路徑為單一檔案時忽略此參數。在列出目錄且只需要特定欄位(例如僅 'name' 和 'type')時,使用此參數可減少回應大小。(string[], optional)
    • owner:儲存庫擁有者(使用者名稱或組織)(string, required)
    • path:檔案/目錄的路徑 (string, optional)
    • ref:接受可選的 git refs,例如 refs/tags/{tag}refs/heads/{branch}refs/pull/{pr_number}/head (string, optional)
    • repo:儲存庫名稱 (string, required)
    • sha:接受可選的提交 SHA。如果指定,將使用它而不是 ref (string, optional)
  • get_latest_release - 取得最新版本

    • OAuth Challenge Scopesrepo
    • owner:儲存庫擁有者 (string, required)
    • repo:儲存庫名稱 (string, required)
  • get_release_by_tag - 依標籤名稱取得版本

    • OAuth Challenge Scopesrepo
    • owner:儲存庫擁有者 (string, required)
    • repo:儲存庫名稱 (string, required)
    • tag:標籤名稱(例如 'v1.0.0')(string, required)
  • get_tag - 取得標籤詳細資訊

    • OAuth Challenge Scopesrepo
    • owner:儲存庫擁有者 (string, required)
    • repo:儲存庫名稱 (string, required)
    • tag:標籤名稱 (string, required)
  • list_branches - 列出分支

    • OAuth Challenge Scopesrepo
    • owner:儲存庫擁有者 (string, required)
    • page:分頁的頁碼(最小值 1)(number, optional)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(number, optional)
    • repo:儲存庫名稱 (string, required)
  • list_commits - 列出提交

    • OAuth Challenge Scopesrepo
    • author:用於篩選提交的作者使用者名稱或電子郵件地址 (string, optional)
    • fields:每個提交要傳回的欄位子集。如果省略,則傳回所有欄位。在只需要特定欄位(例如僅 'sha' 和 'html_url')時,使用此參數可減少回應大小。(string[], optional)
    • owner:儲存庫擁有者 (string, required)
    • page:分頁的頁碼(最小值 1)(number, optional)
    • path:僅傳回包含此檔案路徑的提交 (string, optional)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(number, optional)
    • repo:儲存庫名稱 (string, required)
    • sha:要列出提交的提交 SHA、分支或標籤名稱。如果未提供,則使用儲存庫的預設分支。如果提供提交 SHA,則會列出直到該 SHA 的提交。(string, optional)
    • since:僅傳回此日期之後的提交(ISO 8601 格式:YYYY-MM-DDTHH:MM:SSZ 或 YYYY-MM-DD)(string, optional)
    • until:僅傳回此日期之前的提交(ISO 8601 格式:YYYY-MM-DDTHH:MM:SSZ 或 YYYY-MM-DD)(string, optional)
  • list_releases - 列出版本

    • OAuth Challenge Scopesrepo
    • fields:每個版本要傳回的欄位子集。如果省略,則傳回所有欄位。在只需要特定欄位時,使用此參數可減少回應大小;特別是省略 'body' 可刪除每個版本最大的資料。(string[], optional)
    • owner:儲存庫擁有者 (string, required)
    • page:分頁的頁碼(最小值 1)(number, optional)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(number, optional)
    • repo:儲存庫名稱 (string, required)
  • list_repository_collaborators - 列出儲存庫協作者

    • OAuth Challenge Scopesrepo
    • affiliation:依關係篩選。可以是以下之一:'outside'(外部協作者)、'direct'(所有具有權限者,無論組織成員資格)、'all'(所有協作者)。預設值:'all' (string, optional)
    • owner:儲存庫擁有者 (string, required)
    • page:分頁的頁碼(預設 1,最小值 1)(number, optional)
    • perPage:分頁的每頁結果數(預設 30,最小值 1,最大值 100)(number, optional)
    • repo:儲存庫名稱 (string, required)
  • list_tags - 列出標籤

    • OAuth Challenge Scopesrepo
    • owner:儲存庫擁有者 (string, required)
    • page:分頁的頁碼(最小值 1)(number, optional)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(number, optional)
    • repo:儲存庫名稱 (string, required)
  • push_files - 推送檔案到儲存庫

    • OAuth Challenge Scopesrepoworkflow
    • branch:要推送到的分支 (string, required)
    • files:要推送的檔案物件陣列,每個物件包含 path (string) 和 content (string) (object[], required)
    • message:提交訊息 (string, required)
    • owner:儲存庫擁有者 (string, required)
    • repo:儲存庫名稱 (string, required)
  • search_code - 搜尋程式碼

    • OAuth Challenge Scopesrepo
    • fields:每個程式碼搜尋結果要傳回的欄位子集。如果省略,則傳回所有欄位。在只需要特定欄位時,使用此參數可減少回應大小;特別是省略 'repository' 和 'text_matches' 可刪除每個結果最大的資料。(string[], optional)
    • order:結果的排序順序 (string, optional)
    • page:分頁的頁碼(最小值 1)(number, optional)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(number, optional)
    • query:搜尋查詢(GitHub 程式碼搜尋 REST)。詞彙之間為隱含 AND;支援 ORNOT"quoted phrase" 以進行精確比對。限定詞:repo:owner/repoorg:user:language:path:dir(前綴比對)、filename:exact.extextension:in:filein:pathsize:is:archivedis:fork。最多 256 個字元。範例:WithContext language:go org:github"package main" repo:o/rfunc extension:go path:cmd repo:o/rNOT TODO language:go repo:o/r。(string, required)
    • sort:排序欄位(僅 'indexed')(string, optional)
  • search_commits - 搜尋提交

    • OAuth Challenge Scopesrepo
    • order:排序順序 (string, optional)
    • page:分頁的頁碼(最小值 1)(number, optional)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(number, optional)
    • query:提交搜尋查詢(GitHub 提交搜尋 REST)。僅在預設分支上搜尋提交訊息。使用 repo:owner/repoorg:user: 限定搜尋範圍(沒有範圍限定詞的查詢會比對整個 GitHub,通常不是您想要的)。其他限定詞:author:committer:author-name:committer-name:author-email:committer-email:author-date:committer-date:(支援 ><>=<=YYYY-MM-DD..YYYY-MM-DD 範圍)、merge:true|falsehash:tree:parent:is:public。範例:repo:owner/repo fix panicorg:github author:defunkt committer-date:>=2024-01-01"refactor cache" repo:o/rhash:abc1234 repo:o/r。(string, required)
    • sort:依作者或提交者日期排序(預設為最佳比對)(string, optional)
  • search_repositories - 搜尋儲存庫

    • OAuth Challenge Scopesrepo
    • minimal_output:傳回精簡的儲存庫資訊(預設:true)。當為 false 時,傳回完整的 GitHub API 儲存庫物件。(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)
shield-lock 密碼保護
  • get_secret_scanning_alert - 取得密碼掃描警示

    • OAuth Challenge Scopessecurity_events
    • alertNumber:警示的編號。(number, required)
    • owner:儲存庫的擁有者。(string, required)
    • repo:儲存庫的名稱。(string, required)
  • list_secret_scanning_alerts - 列出密碼掃描警示

    • OAuth Challenge Scopessecurity_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)
shield 安全性公告
  • get_global_security_advisory - 取得全域安全性公告

    • OAuth Challenge Scopessecurity_events
    • ghsaId:GitHub 安全性公告 ID(格式:GHSA-xxxx-xxxx-xxxx)。(string, required)
  • list_global_security_advisories - 列出全球安全公告

    • OAuth 挑戰範圍security_events
    • affects:依受影響的套件或版本篩選公告(例如「package1,package2@1.0.0」)。(字串,選用)
    • cveId:依 CVE ID 篩選。(字串,選用)
    • cwes:依 Common Weakness Enumeration ID 篩選(例如 ["79", "284", "22"])。(字串陣列,選用)
    • ecosystem:依套件生態系統篩選。(字串,選用)
    • ghsaId:依 GitHub 安全公告 ID 篩選(格式:GHSA-xxxx-xxxx-xxxx)。(字串,選用)
    • isWithdrawn:是否僅回傳已撤回的公告。(布林值,選用)
    • modified:依發布或更新日期或日期範圍篩選(ISO 8601 日期或範圍)。(字串,選用)
    • published:依發布日期或日期範圍篩選(ISO 8601 日期或範圍)。(字串,選用)
    • severity:依嚴重性篩選。(字串,選用)
    • type:公告類型。(字串,選用)
    • updated:依更新日期或日期範圍篩選(ISO 8601 日期或範圍)。(字串,選用)
  • list_org_repository_security_advisories - 列出組織儲存庫安全公告

    • OAuth 挑戰範圍security_events
    • direction:排序方向。(字串,選用)
    • org:組織登入名稱。(字串,必填)
    • sort:排序欄位。(字串,選用)
    • state:依公告狀態篩選。(字串,選用)
  • list_repository_security_advisories - 列出儲存庫安全公告

    • OAuth 挑戰範圍security_events
    • direction:排序方向。(字串,選用)
    • owner:儲存庫的擁有者。(字串,必填)
    • repo:儲存庫的名稱。(字串,必填)
    • sort:排序欄位。(字串,選用)
    • state:依公告狀態篩選。(字串,選用)
star Stargazers
  • list_starred_repositories - 列出已加星號的儲存庫

    • OAuth 挑戰範圍repo
    • direction:結果的排序方向。(字串,選用)
    • page:分頁的頁碼(最小值 1)(數字,選用)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • sort:結果的排序方式。可以是「created」(儲存庫被加星號的時間)或「updated」(儲存庫最後被推送的時間)。(字串,選用)
    • username:要列出已加星號儲存庫的使用者名稱。預設為已驗證的使用者。(字串,選用)
  • star_repository - 為儲存庫加星號

    • OAuth 挑戰範圍repo
    • owner:儲存庫擁有者(字串,必填)
    • repo:儲存庫名稱(字串,必填)
  • unstar_repository - 取消儲存庫星號

    • OAuth 挑戰範圍repo
    • owner:儲存庫擁有者(字串,必填)
    • repo:儲存庫名稱(字串,必填)
people Users
  • search_users - 搜尋使用者
    • OAuth 挑戰範圍repo
    • order:排序順序(字串,選用)
    • page:分頁的頁碼(最小值 1)(數字,選用)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • query:使用者搜尋查詢。範例:「john smith」、「location:seattle」、「followers:>100」。搜尋會自動限定為 type:user。(字串,必填)
    • sort:依追蹤者人數、儲存庫數量或加入 GitHub 的時間排序使用者。(字串,選用)

遠端 GitHub MCP 伺服器中的其他工具

Copilot
  • create_pull_request_with_copilot - 使用 GitHub Copilot 編碼代理執行任務
    • owner:儲存庫擁有者。您可以猜測擁有者,但在繼續前請先與使用者確認。(字串,必填)
    • repo:儲存庫名稱。您可以猜測儲存庫名稱,但在繼續前請先與使用者確認。(字串,必填)
    • problem_statement:要執行任務的詳細描述(例如「實作一個執行 X 的功能」、「修正錯誤 Y」等)(字串,必填)
    • title:將建立的拉取請求標題(字串,必填)
    • base_ref:代理開始工作的 Git 參考(例如分支)。若未指定,預設為儲存庫的預設分支(字串,選用)
Copilot Spaces
  • 驗證注意事項

    • 細粒度 PAT 不會被傳統 PAT 範圍篩選隱藏,因此即使權杖無法使用這些工具,它們仍可能出現。
    • 對於組織擁有的空間,細粒度 PAT 必須安裝在擁有組織上,並包含 organization_copilot_spaces: read
    • 如果組織擁有的空間包含以儲存庫為基礎的資源,權杖也必須能存取每個引用的儲存庫,否則該空間可能被視為不存在。
  • get_copilot_space - 取得 Copilot 空間

    • owner:空間的擁有者。(字串,必填)
    • name:空間的名稱。(字串,必填)
  • list_copilot_spaces - 列出 Copilot 空間

GitHub 支援文件搜尋
  • github_support_docs_search - 擷取與回答 GitHub 產品和支援問題相關的文件。支援主題包括:GitHub Actions 工作流程、驗證、GitHub 支援查詢、拉取請求實務、儲存庫維護、GitHub Pages、GitHub Packages、GitHub Discussions、Copilot Spaces
    • query:使用者關於需要回答問題的輸入。這是最新的未編輯原始使用者訊息。您應始終保持使用者訊息原樣,絕不修改它。(字串,必填)

唯讀模式

若要唯讀模式執行伺服器,您可以使用 --read-only 旗標。這將僅提供唯讀工具,防止對儲存庫、議題、拉取請求等進行任何修改。

./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

鎖定模式

鎖定模式限制伺服器從公開儲存庫顯示的內容。啟用時,伺服器會檢查每個項目的作者是否具有儲存庫的推送權限。私人儲存庫不受影響,協作者仍可完整存取自己的內容。

鎖定模式是一種盡力而為的內容篩選器,旨在降低來自不受信任儲存庫內容(議題、拉取請求、評論、提交等)的提示注入風險。它不是授權邊界:它不會改變底層 GitHub 憑證可以讀取或寫入的內容,且從篩選工具回應中隱藏的內容仍可能透過其他工具或使用相同憑證直接存取 GitHub API 來取得。

作為一項刻意例外,由一小組受信任的機器人帳戶(目前為 github-actions[bot]copilot)撰寫的內容一律視為安全,無論推送權限為何。這可避免篩選常規自動化輸出(例如 CI 產生的提交或評論),否則這些輸出在鎖定模式下會被隱藏。

./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 請求標頭可以在操作員未啟用時啟用鎖定模式,但無法停用操作員已啟用的鎖定模式。詳情請參閱伺服器設定指南

鎖定模式的行為取決於所呼叫的工具。

當作者缺乏推送權限時,以下工具將回傳錯誤:

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

以下工具將篩選掉缺乏推送權限的使用者內容:

  • 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 / 覆寫描述

工具的描述可以透過在二進位檔相同目錄中建立 github-mcp-server-config.json 檔案來覆寫。

檔案應包含一個 JSON 物件,以工具名稱作為鍵,新的 描述作為值。例如:

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

您可以透過使用 --export-translations 旗標執行二進位檔來建立目前翻譯的匯出。

此旗標將保留您所做的任何翻譯/覆寫,同時新增 自上次匯出以來已新增至二進位檔的任何新翻譯。

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

您也可以使用環境變數來覆寫描述。環境 變數名稱與 JSON 檔案中的鍵相同,並加上 GITHUB_MCP_ 前置詞且全部大寫。

例如,若要覆寫 TOOL_ADD_ISSUE_COMMENT_DESCRIPTION 工具,您可以 設定以下環境變數:

export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description"

覆寫伺服器名稱和標題

相同的覆寫機制可用於自訂 MCP 伺服器在初始化回應中的 nametitle 欄位。這在執行多個 GitHub MCP 伺服器實例時很有用(例如一個用於 github.com,一個用於 GitHub Enterprise Server),以便代理可以區分它們。

環境變數預設值
SERVER_NAMEGITHUB_MCP_SERVER_NAMEgithub-mcp-server
SERVER_TITLEGITHUB_MCP_SERVER_TITLEGitHub 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 目前應視為不穩定,且可能發生破壞性變更。未來,我們可能提供穩定性;如果有此價值的用例,請提出 issue。

貢獻

歡迎貢獻。在開啟拉取請求之前,請閱讀貢獻指南以了解設定、測試、linting 和文件產生說明。

支援

如需使用 GitHub MCP 伺服器的協助,請參閱支援指南。如果您發現錯誤或想要求功能,請在開啟新 issue 前先搜尋現有 issue。

安全性

請勿透過公開 issue 回報安全漏洞。請依照安全性政策中的說明負責任地回報漏洞。

授權

此專案根據 MIT 開放原始碼授權條款授權。請參閱 MIT 以了解完整條款。