GitHub MCP

官方

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

你可以用 Git Hub MCP 做什麼?

  • 瀏覽與搜尋儲存庫 — 請您的助手使用 repos 工具集中的工具來尋找檔案、閱讀程式碼或分析提交歷史。
  • 管理議題與拉取請求 — 使用 issuespull_requests 工具集中的工具來建立、更新及分類議題或 PR。
  • 監控 CI/CD 工作流程 — 透過 actions 工具集檢查 GitHub Actions 執行狀態、調查建置失敗,並管理發行版本。
  • 審查程式碼安全警示 — 使用 code_securitydependabotsecret_protection 工具集來檢查程式碼掃描結果、Dependabot 警示及密碼掃描結果。
  • 在討論與專案中協作 — 透過 discussionsprojectsnotifications 工具集存取團隊討論、管理專案看板及處理通知。

文件

Go Report Card

GitHub MCP 伺服器

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

使用案例

  • 儲存庫管理:瀏覽和查詢程式碼、搜尋檔案、分析提交記錄,並了解您有權限存取之任何儲存庫的專案結構。
  • 議題與 PR 自動化:建立、更新和管理議題與拉取請求。讓 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 中安裝

如需快速安裝,請使用上方的一鍵安裝按鈕。完成流程後,切換到代理模式(位於 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 也可以使用遠端伺服器。

針對 https://octocorp.ghe.com 使用 GitHub PAT 權杖的範例:

{
    ...
    "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 取得。該映像檔是公開的;如果您在拉取時遇到錯誤,可能是權杖已過期,需要 docker logout ghcr.io

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

    偏好使用權杖嗎?您仍然可以透過設定 GITHUB_PERSONAL_ACCESS_TOKEN 來使用 GitHub 個人存取權杖進行驗證(其優先權高於 OAuth)。MCP 伺服器可以使用許多 GitHub API,因此請啟用您願意授予 AI 工具的權限(若要深入了解存取權杖,請查閱文件)。

安全處理 PAT

環境變數(建議)

為了確保您的 GitHub PAT 安全且可在不同的 MCP 主機間重複使用:

  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. 在設定中引用權杖

    # 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)需要在設定檔中硬編碼權杖。

權杖安全最佳實務

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

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

  • 定期輪換:定期更新權杖

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

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

    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 方案,因為它預設為 http://,而 GitHub Enterprise Server 不支援此方案。
  • 對於具備資料駐留功能的 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 中安裝

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

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

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

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

使用 OAuth 登入(無需建立或儲存權杖)。 在 github.com 上,官方映像檔已包含應用程式憑證,因此您無需自行提供:它會在首次使用時執行基於瀏覽器的登入,並將產生的權杖僅保存在記憶體中。在 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。

或使用個人存取權杖進行驗證。 改為設定 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 環境變數設定為您的權杖。若要指定建置的輸出位置,請使用 -o 旗標。您應將伺服器設定為使用建置好的執行檔作為其 command。例如:

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

CLI 工具

github-mcp-server 二進位檔包含幾個 CLI 子命令,有助於偵錯和探索伺服器。

  • github-mcp-server tool-search "<query>" 會依名稱、說明和輸入參數名稱來搜尋工具。使用 --max-results 可傳回更多相符項目。 範例(彩色輸出需要 TTY;在 Docker 中執行時請使用 docker run -t(或 -it)):
docker run -it --rm ghcr.io/github/github-mcp-server tool-search "issue" --max-results 5
github-mcp-server tool-search "issue" --max-results 5

工具設定

GitHub MCP 伺服器支援透過 --toolsets 旗標來啟用或停用特定功能群組。這可讓您控制 AI 工具可以使用哪些 GitHub API 功能。僅啟用您需要的工具集,有助於 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 程式碼掃描
copilotcopilotCopilot 相關工具
dependabotdependabotDependabot 工具
comment-discussiondiscussionsGitHub Discussions 相關工具
logo-gistgistsGitHub Gist 相關工具
git-branchgitGitHub Git API 相關工具,用於低階 Git 操作
issue-openedissuesGitHub Issues 相關工具
taglabelsGitHub 標籤相關工具
bellnotificationsGitHub 通知相關工具
organizationorgsGitHub 組織相關工具
projectprojectsGitHub Projects 相關工具
git-pull-requestpull_requestsGitHub Pull Request 相關工具
reporeposGitHub 儲存庫相關工具
shield-locksecret_protection密碼保護相關工具,例如 GitHub 密碼掃描
shieldsecurity_advisories安全通報相關工具
starstargazersGitHub Stargazers 相關工具
peopleusersGitHub 使用者相關工具

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

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

工具

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

    • 必要的 OAuth 範圍repo
    • 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 範圍repo
    • 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 範圍repo
    • 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 範圍repo
    • 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 範圍**:`repo` - `findingNumber`:發現項目的編號。(數字,必要) - `owner`:儲存庫的擁有者。(字串,必要) - `repo`:儲存庫的名稱。(字串,必要)
codescan 程式碼安全性
  • get_code_scanning_alert - 取得程式碼掃描警示

    • 必要的 OAuth 範圍security_events
    • 接受的 OAuth 範圍reposecurity_events
    • alertNumber:警示的編號。(數字,必要)
    • owner:儲存庫的擁有者。(字串,必要)
    • repo:儲存庫的名稱。(字串,必要)
  • list_code_scanning_alerts - 列出程式碼掃描警示

    • 必要的 OAuth 範圍security_events
    • 接受的 OAuth 範圍reposecurity_events
    • owner:儲存庫的擁有者。(字串,必要)
    • page:用於分頁的頁碼(最小值 1)(數字,選用)
    • perPage:用於分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • ref:您想要列出結果的 Git 參考。(字串,選用)
    • repo:儲存庫的名稱。(字串,必要)
    • severity:依嚴重性篩選程式碼掃描警示(字串,選用)
    • state:依狀態篩選程式碼掃描警示。預設為 open(字串,選用)
    • tool_name:用於程式碼掃描的工具名稱。(字串,選用)
person 上下文
  • get_me - 取得我的使用者個人資料

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

    • 必要的 OAuth 範圍read:org
    • 接受的 OAuth 範圍admin:orgread:orgwrite:org
    • org:包含該團隊的組織登入名稱(擁有者)。(字串,必要)
    • team_slug:團隊代稱(字串,必要)
  • get_teams - 取得團隊

    • 必要的 OAuth 範圍read:org
    • 接受的 OAuth 範圍admin:orgread:orgwrite:org
    • user:要為其取得團隊的使用者名稱。若未提供,則使用已驗證的使用者。(字串,選用)
copilot Copilot
  • assign_copilot_to_issue - 將 Copilot 指派給議題

    • 必要的 OAuth 範圍repo
    • base_ref:代理程式將開始工作的 Git 參考(例如分支)。若未指定,則預設為儲存庫的預設分支(字串,選用)
    • custom_instructions:選用的自訂指示,用於在議題內文之外引導代理程式。使用此項來提供未包含在議題描述中的額外上下文、限制或指引(字串,選用)
    • issue_number:議題編號(數字,必要)
    • owner:儲存庫擁有者(字串,必要)
    • repo:儲存庫名稱(字串,必要)
  • request_copilot_review - 請求 Copilot 審查

    • 必要的 OAuth 範圍repo
    • owner:儲存庫擁有者(字串,必要)
    • pullNumber:提取請求編號(數字,必要)
    • repo:儲存庫名稱(字串,必要)
dependabot Dependabot
  • get_dependabot_alert - 取得 Dependabot 警示

    • 必要的 OAuth 範圍security_events
    • 接受的 OAuth 範圍reposecurity_events
    • alertNumber:警示的編號。(數字,必要)
    • owner:儲存庫的擁有者。(字串,必要)
    • repo:儲存庫的名稱。(字串,必要)
  • list_dependabot_alerts - 列出 Dependabot 警示

    • 必要的 OAuth 範圍security_events
    • 接受的 OAuth 範圍reposecurity_events
    • after:用於分頁的游標。使用前一個回應中的游標。(字串,選用)
    • owner:儲存庫的擁有者。(字串,必要)
    • perPage:用於分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • repo:儲存庫的名稱。(字串,必要)
    • severity:依嚴重性篩選 Dependabot 警示(字串,選用)
    • state:依狀態篩選 Dependabot 警示。預設為 open(字串,選用)
comment-discussion 討論
  • discussion_comment_write - 管理討論留言

    • 必要的 OAuth 範圍repo
    • body:留言內容(對於 'add'、'reply' 和 'update' 方法為必要)(字串,選用)
    • commentNodeID:討論留言的節點 ID(對於 'reply'、'update'、'delete'、'mark_answer' 和 'unmark_answer' 方法為必要)。對於 'reply',這是要回覆的頂層留言;GitHub Discussions 僅支援一層巢狀結構。(字串,選用)
    • discussionNumber:討論編號(對於 'add' 和 'reply' 方法為必要)(數字,選用)
    • method:要在討論留言上執行的寫入操作。 選項包括:
      • 'add' - 新增一個頂層留言到討論中。
      • 'reply' - 回覆一個頂層討論留言(GitHub Discussions 僅支援一層巢狀結構)。
      • 'update' - 更新一個現有的討論留言。
      • 'delete' - 刪除一個討論留言。
      • 'mark_answer' - 將討論留言標記為答案(僅限問答)。
      • 'unmark_answer' - 取消將討論留言標記為答案(僅限問答)。 (字串,必要)
    • owner:儲存庫擁有者(對於 'add' 和 'reply' 方法為必要)(字串,選用)
    • repo:儲存庫名稱(對於 'add' 和 'reply' 方法為必要)(字串,選用)
  • get_discussion - 取得討論

    • 必要的 OAuth 範圍repo
    • discussionNumber:討論編號(數字,必要)
    • owner:儲存庫擁有者(字串,必要)
    • repo:儲存庫名稱(字串,必要)
  • get_discussion_comments - 取得討論留言

    • 必要的 OAuth 範圍repo
    • after:用於分頁的游標。使用前一個回應中的游標。(字串,選用)
    • discussionNumber:討論編號(數字,必要)
    • includeReplies:當為 true 時,每個頂層留言將包含巢狀於其中的回覆(每個留言最多 100 則回覆,此為 GitHub API 的最大值)。預設為 false。(布林值,選用)
    • owner:儲存庫擁有者(字串,必要)
    • perPage:用於分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • repo:儲存庫名稱(字串,必要)
  • list_discussion_categories - 列出討論類別

    • 必要的 OAuth 範圍repo
    • owner:儲存庫擁有者(字串,必要)
    • repo:儲存庫名稱。若未提供,將在組織層級查詢討論類別。(字串,選用)
  • list_discussions - 列出討論

    • 必要的 OAuth 範圍repo
    • after:用於分頁的游標。使用前一個回應中的游標。(字串,選用)
    • category:選用的依討論類別 ID 篩選。若提供,則僅列出具有此類別的討論。(字串,選用)
    • direction:排序方向。(字串,選用)
    • orderBy:依欄位排序討論。若提供,則也需要提供 'direction'。(字串,選用)
    • owner:儲存庫擁有者(字串,必要)
    • perPage:用於分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • repo:儲存庫名稱。若未提供,將在組織層級查詢討論。(字串,選用)
logo-gist Gists
  • create_gist - 建立 Gist

    • 必要的 OAuth 範圍gist
    • content:用於簡單單檔 Gist 建立的內容(字串,必要)
    • description:Gist 的描述(字串,選用)
    • filename:用於簡單單檔 Gist 建立的檔案名稱(字串,必要)
    • public:Gist 是否為公開(布林值,選用)
  • get_gist - 取得 Gist 內容

    • gist_id:Gist 的 ID(字串,必要)
  • list_gists - 列出 Gists

    • page:用於分頁的頁碼(最小值 1)(數字,選用)
    • perPage:用於分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • since:僅限在此時間之後更新的 Gists(ISO 8601 時間戳記)(字串,選用)
    • username:GitHub 使用者名稱(省略則為已驗證使用者的 Gists)(字串,選用)
  • update_gist - 更新 Gist

    • 必要的 OAuth 範圍gist
    • content:檔案的內容(字串,必要)
    • description:Gist 的更新描述(字串,選用)
    • filename:要更新或建立的檔案名稱(字串,必要)
    • gist_id:要更新的 Gist ID(字串,必要)
git-branch Git
  • get_repository_tree - 取得儲存庫樹狀結構
    • 必要的 OAuth 範圍repo
    • owner:儲存庫擁有者(使用者名稱或組織)(字串,必要)
    • path_filter:選用的路徑前綴,用於篩選樹狀結構結果(例如 'src/' 僅顯示 src 目錄中的檔案)(字串,選用)
    • recursive:將此參數設為 true 會回傳樹狀結構所參考的物件或子樹。預設為 false(布林值,選用)
    • repo:儲存庫名稱(字串,必要)
    • tree_sha:樹狀結構的 SHA1 值或參考(分支或標籤)名稱。預設為儲存庫的預設分支(字串,選用)
issue-opened 議題
  • add_issue_comment - 新增留言到議題或提取請求

    • 必要的 OAuth 範圍repo
    • body:留言內容。除非提供了反應,否則為必要。(字串,選用)
    • comment_id:要對其做出反應的議題或提取請求留言的數字 ID。使用此項來對留言做出反應;省略它則對議題或提取請求本身做出反應。不能與 body 結合使用。(數字,選用)
    • issue_number:要留言或做出反應的議題或提取請求編號。(數字,必要)
    • owner:儲存庫擁有者(字串,必要)
    • reaction:要新增的 Emoji 反應。除非提供了 body,否則為必要。(字串,選用)
    • repo:儲存庫名稱(字串,必要)
  • get_label - 從儲存庫取得特定標籤

    • 必要的 OAuth 範圍repo
    • name:標籤名稱。(字串,必要)
    • owner:儲存庫擁有者(使用者名稱或組織名稱)(字串,必要)
    • repo:儲存庫名稱(字串,必要)
  • issue_read - 取得議題詳細資訊

    • 必要的 OAuth 範圍repo
    • issue_number:議題編號(數字,必要)
    • method:對單一議題執行的讀取操作。 選項如下:
      1. get - 取得議題詳細資訊。同時也會回傳盡力而為的階層旗標(has_parenthas_children);parentsub_issues_summary 是選用的關係摘要。
      2. get_comments - 取得議題留言。
      3. get_sub_issues - 取得議題的子議題(下層項目)。
      4. get_parent - 如果此議題是另一個議題的子議題,則取得其父議題。
      5. get_labels - 取得指派給此議題的標籤。 (字串,必要)
    • owner:儲存庫擁有者(字串,必要)
    • page:用於分頁的頁碼(最小值 1)(數字,選用)
    • perPage:用於分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • repo:儲存庫名稱(字串,必要)
  • issue_write - 建立或更新議題/拉取請求

    • 必要的 OAuth 範圍repo
    • assignees:要指派給此議題的使用者名稱(字串陣列,選用)
    • body:議題內文內容(字串,選用)
    • duplicate_of:此議題為其重複項目的議題編號。僅在 state_reason 為 'duplicate' 時使用。(數字,選用)
    • issue_fields:要設定或清除的議題欄位值。每個項目都需要 'field_name',以及 'value'、'field_option_name' 或 'delete: true' 三者之一。(物件陣列,選用)
    • issue_number:要更新的議題編號(數字,選用)
    • labels:要套用至此議題的標籤(字串陣列,選用)
    • method:對單一議題執行的寫入操作。 選項如下:
      • 'create' - 建立一個新議題。
      • 'update' - 更新一個現有議題。 (字串,必要)
    • milestone:里程碑編號(數字,選用)
    • owner:儲存庫擁有者(字串,必要)
    • repo:儲存庫名稱(字串,必要)
    • state:新狀態(字串,選用)
    • state_reason:狀態變更的原因。除非狀態已變更,否則忽略。(字串,選用)
    • title:議題標題(字串,選用)
    • type:此議題的類型。僅在此儲存庫已啟用議題類型時使用。使用 list_issue_types 工具來取得此儲存庫或其擁有者組織的有效類型值。如果儲存庫不支援議題類型,請省略此參數。(字串,選用)
  • list_issue_fields - 列出議題欄位

    • 必要的 OAuth 範圍(任一)reporead:org
    • 接受的 OAuth 範圍admin:orgread:orgrepowrite:org
    • owner:儲存庫或組織的帳戶擁有者。名稱不區分大小寫。(字串,必要)
    • repo:儲存庫名稱。提供時,會回傳此特定儲存庫的欄位(繼承自其組織)。省略時,會直接回傳組織層級的欄位。(字串,選用)
  • list_issue_types - 列出可用的議題類型

    • 必要的 OAuth 範圍(任一)reporead:org
    • 接受的 OAuth 範圍admin:orgread:orgrepowrite:org
    • owner:儲存庫或組織的帳戶擁有者。(字串,必要)
    • repo:儲存庫名稱。提供時,會回傳此特定儲存庫的議題類型。省略時,會直接回傳組織層級的議題類型。(字串,選用)
  • list_issues - 列出議題

    • 必要的 OAuth 範圍repo
    • after:用於分頁的游標。使用前一個回應中的游標。(字串,選用)
    • direction:排序方向。如有提供,則也必須提供 'orderBy'。(字串,選用)
    • field_filters:依自訂議題欄位值篩選。每個項目需要一個 field_name 和一個 value;伺服器會查詢該欄位並將值強制轉換為其類型(單選選項名稱、文字、數字或 YYYY-MM-DD 日期)。(物件陣列,選用)
    • labels:依標籤篩選(字串陣列,選用)
    • orderBy:依欄位排序議題。如有提供,則也必須提供 'direction'。(字串,選用)
    • owner:儲存庫擁有者(字串,必要)
    • perPage:用於分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • repo:儲存庫名稱(字串,必要)
    • since:依日期篩選(ISO 8601 時間戳記)(字串,選用)
    • state:依狀態篩選,預設情況下,未提供時會同時回傳開放和已關閉的議題(字串,選用)
  • search_issues - 搜尋議題

    • 必要的 OAuth 範圍repo
    • order:排序順序(字串,選用)
    • owner:選用的儲存庫擁有者。如果與 repo 一起提供,則只會列出此儲存庫的議題。(字串,選用)
    • page:用於分頁的頁碼(最小值 1)(數字,選用)
    • perPage:用於分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • query:使用 GitHub 議題搜尋語法的搜尋查詢(字串,必要)
    • repo:選用的儲存庫名稱。如果與 owner 一起提供,則只會列出此儲存庫的議題。(字串,選用)
    • sort:依類別比對數量排序的欄位,預設為最佳比對(字串,選用)
  • sub_issue_write - 變更子議題

    • 必要的 OAuth 範圍repo
    • after_id:要排在其後的子議題 ID(應指定 after_id 或 before_id 其中之一)(數字,選用)
    • before_id:要排在其前的子議題 ID(應指定 after_id 或 before_id 其中之一)(數字,選用)
    • issue_number:父議題的編號(數字,必要)
    • method:對單一子議題執行的操作 選項如下:
      • 'add' - 在 GitHub 儲存庫中將子議題新增至父議題。
      • 'remove' - 在 GitHub 儲存庫中從父議題移除子議題。
      • 'reprioritize' - 在 GitHub 儲存庫中變更父議題內子議題的順序。使用 'after_id' 或 'before_id' 來指定新位置。 寫入議題階層。若要將子議題移至新的父議題,請使用 add 搭配 replace_parent=true;沒有可寫入的父欄位。 (字串,必要)
    • owner:儲存庫擁有者(字串,必要)
    • replace_parent:設為 true 時,會取代子議題目前的父議題。僅與 'add' 方法搭配使用。(布林值,選用)
    • repo:儲存庫名稱(字串,必要)
    • sub_issue_id:要新增的子議題 ID。ID 與議題編號不同(數字,必要)
tag 標籤
  • get_label - 從儲存庫取得特定標籤

    • 必要的 OAuth 範圍repo
    • name:標籤名稱。(字串,必要)
    • owner:儲存庫擁有者(使用者名稱或組織名稱)(字串,必要)
    • repo:儲存庫名稱(字串,必要)
  • label_write - 對儲存庫標籤的寫入操作

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

    • 必要的 OAuth 範圍repo
    • owner:儲存庫擁有者(使用者名稱或組織名稱)- 所有操作皆為必要(字串,必要)
    • repo:儲存庫名稱 - 所有操作皆為必要(字串,必要)
bell 通知
  • dismiss_notification - 關閉通知

    • 必要的 OAuth 範圍notifications
    • state:通知的新狀態(read/done)(字串,必要)
    • threadID:通知討論串的 ID(字串,必要)
  • get_notification_details - 取得通知詳細資訊

    • 必要的 OAuth 範圍notifications
    • notificationID:通知的 ID(字串,必要)
  • list_notifications - 列出通知

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

    • 必要的 OAuth 範圍notifications
    • action:要執行的操作:ignore、watch 或 delete 通知訂閱。(字串,必要)
    • notificationID:通知討論串的 ID。(字串,必要)
  • manage_repository_notification_subscription - 管理儲存庫通知訂閱

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

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

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

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

    • 必要的 OAuth 範圍project
    • body:狀態更新的內文(markdown)。用於 'create_project_status_update' 方法。(字串,選用)
    • field_name:迭代欄位的名稱(例如 'Sprint')。'create_iteration_field' 方法需要此項。(字串,選用)
    • 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' 方法需要此項。(字串,選用)
    • iteration_duration:欄位迭代的持續天數(例如 7 代表每週,14 代表雙週)。'create_iteration_field' 方法需要此項。(數字,選用)
    • iterations:用於 'create_iteration_field' 方法的自訂迭代。僅在您需要不同持續時間、其間有中斷或特定標題的迭代時才設定此項。否則請省略:GitHub 會自動從 'start_date' 開始,建立三個持續 'iteration_duration' 天的迭代,這對大多數情況而言是正確的選擇。(物件陣列,選用)
    • method:要執行的操作方法(字串,必要)
    • owner:專案擁有者(使用者或組織登入名稱)。名稱不區分大小寫。(字串,必要)
    • owner_type:擁有者類型(user 或 org)。'create_project' 方法需要此項。對於其他方法,如果未提供,將會自動偵測。(字串,選用)
    • project_number:專案的編號。除了 'create_project' 之外的所有方法都需要此項。(數字,選用)
    • pull_request_number:拉取請求編號(當 'add_project_item' 方法的 item_type 為 'pull_request' 時使用)。請提供 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:描述要更新的欄位及其新值的物件。'update_project_item' 需要此項。接受兩種格式:(1) 依 ID — {"id": 123456, "value": "..."};(2) 依名稱 — {"name": "Status", "value": "In Progress"}。對於單選欄位,選項名稱解析需要依名稱的格式;在依 ID 的格式中,請傳遞選項 ID。將 value 設為 null 可清除該欄位。(物件,選用)
git-pull-request 拉取請求
  • add_comment_to_pending_review - 將審查評論新增至請求者最新的待處理拉取請求審查

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

    • 必要的 OAuth 範圍repo
    • body:回覆的文字。除非提供了 reaction,否則為必要。(字串,選用)
    • commentId:要回覆或回應的拉取請求審查評論的數字 ID。請使用來自 #discussion_r... 錨點的編號,而非 GraphQL 執行緒節點 ID (PRRT_...)。(數字,必要)
    • owner:儲存庫擁有者(字串,必要)
    • pullNumber:拉取請求編號。當提供 body 時為必要。(數字,選用)
    • reaction:要新增的 emoji 反應。除非提供了 body,否則為必要。(字串,選用)
    • repo:儲存庫名稱(字串,必要)
  • create_pull_request - 開啟新的拉取請求

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

    • 必要的 OAuth 範圍repo
    • base:依基礎分支篩選(字串,選用)
    • direction:排序方向(字串,選用)
    • head:依來源使用者/組織和分支篩選(字串,選用)
    • owner:儲存庫擁有者(字串,必要)
    • page:分頁的頁碼(最小值 1)(數字,選用)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • repo:儲存庫名稱(字串,必要)
    • sort:排序依據(字串,選用)
    • state:依狀態篩選(字串,選用)
  • merge_pull_request - 合併拉取請求

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

    • 必要的 OAuth 權限範圍repo
    • after:用於分頁的游標,僅供 get_review_comments 方法使用。傳遞上一頁 PageInfo 中的 endCursor 以取得下一頁。(字串,選用)
    • method:指定要從 GitHub 擷取哪些 Pull Request 資料的動作。 可能的選項:
      1. get - 取得特定 Pull Request 的詳細資訊。
      2. get_diff - 取得 Pull Request 的差異內容。
      3. get_status - 取得 Pull Request 中 head commit 的合併提交狀態。
      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 commit 的檢查執行結果。檢查執行結果是指在 PR 上執行的個別 CI/CD 作業與檢查。 (字串,必要)
    • owner:儲存庫擁有者(字串,必要)
    • page:用於分頁的頁碼(最小值 1)(數字,選用)
    • perPage:用於分頁的每頁結果數量(最小值 1,最大值 100)(數字,選用)
    • pullNumber:Pull Request 編號(數字,必要)
    • repo:儲存庫名稱(字串,必要)
  • pull_request_review_write - 對 Pull Request 審查進行寫入操作(建立、提交、刪除)

    • 必要的 OAuth 權限範圍repo
    • 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 Request

    • 必要的 OAuth 權限範圍repo
    • order:排序順序(字串,選用)
    • owner:選用的儲存庫擁有者。若與 repo 一起提供,則只會列出此儲存庫的 Pull Request。(字串,選用)
    • page:用於分頁的頁碼(最小值 1)(數字,選用)
    • perPage:用於分頁的每頁結果數量(最小值 1,最大值 100)(數字,選用)
    • query:使用 GitHub Pull Request 搜尋語法的搜尋查詢(字串,必要)
    • repo:選用的儲存庫名稱。若與 owner 一起提供,則只會列出此儲存庫的 Pull Request。(字串,選用)
    • sort:依類別匹配數量排序的欄位,預設為最佳匹配(字串,選用)
  • update_pull_request - 編輯 Pull Request

    • 必要的 OAuth 權限範圍repo
    • 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 權限範圍repo
    • expectedHeadSha:Pull Request 的 HEAD 參照的預期 SHA(字串,選用)
    • owner:儲存庫擁有者(字串,必要)
    • pullNumber:Pull Request 編號(數字,必要)
    • repo:儲存庫名稱(字串,必要)
repo 儲存庫
  • create_branch - 建立分支

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

    • 必要的 OAuth 權限範圍repo
    • branch:要在其中建立/更新檔案的分支(字串,必要)
    • content:檔案內容(字串,必要)
    • message:提交訊息(字串,必要)
    • owner:儲存庫擁有者(使用者名稱或組織)(字串,必要)
    • path:要建立/更新檔案的路徑(字串,必要)
    • repo:儲存庫名稱(字串,必要)
    • sha:要替換的檔案的 blob SHA。如果檔案已存在,則為必要參數。(字串,選用)
  • create_repository - 建立儲存庫

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

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

    • 必要的 OAuth 權限範圍repo
    • organization:要複刻到的組織(字串,選用)
    • owner:儲存庫擁有者(字串,必要)
    • repo:儲存庫名稱(字串,必要)
  • get_commit - 取得提交詳細資訊

    • 必要的 OAuth 權限範圍repo
    • detail:針對已變更檔案要包含的詳細資訊層級。"none" 會完全省略統計資料和檔案。"stats"(預設)包含每個檔案的中繼資料:檔名、狀態和程式碼行數統計(新增、刪除、變更),不含修補內容。"full_patch" 則會額外包含每個檔案的統一差異內容,且可能非常龐大。(字串,選用)
    • owner:儲存庫擁有者(字串,必要)
    • page:用於分頁的頁碼(最小值 1)(數字,選用)
    • perPage:用於分頁的每頁結果數量(最小值 1,最大值 100)(數字,選用)
    • repo:儲存庫名稱(字串,必要)
    • sha:提交 SHA、分支名稱或標籤名稱(字串,必要)
  • get_file_contents - 取得檔案或目錄內容

    • 必要的 OAuth 權限範圍repo
    • owner:儲存庫擁有者(使用者名稱或組織)(字串,必要)
    • path:檔案/目錄的路徑(字串,選用)
    • ref:接受選用的 git 參照,例如 refs/tags/{tag}refs/heads/{branch}refs/pull/{pr_number}/head(字串,選用)
    • repo:儲存庫名稱(字串,必要)
    • sha:接受選用的提交 SHA。若指定,將使用此 SHA 而非 ref(字串,選用)
  • get_latest_release - 取得最新版本

    • 必要的 OAuth 權限範圍repo
    • owner:儲存庫擁有者(字串,必要)
    • repo:儲存庫名稱(字串,必要)
  • get_release_by_tag - 依標籤名稱取得版本

    • 必要的 OAuth 權限範圍repo
    • owner:儲存庫擁有者(字串,必要)
    • repo:儲存庫名稱(字串,必要)
    • tag:標籤名稱(例如 'v1.0.0')(字串,必要)
  • get_tag - 取得標籤詳細資訊

    • 必要的 OAuth 權限範圍repo
    • owner:儲存庫擁有者(字串,必要)
    • repo:儲存庫名稱(字串,必要)
    • tag:標籤名稱(字串,必要)
  • list_branches - 列出分支

    • 必要的 OAuth 權限範圍repo
    • owner:儲存庫擁有者(字串,必要)
    • page:用於分頁的頁碼(最小值 1)(數字,選用)
    • perPage:用於分頁的每頁結果數量(最小值 1,最大值 100)(數字,選用)
    • repo:儲存庫名稱(字串,必要)
  • list_commits - 列出提交

    • 必要的 OAuth 權限範圍repo
    • author:用於篩選提交的作者使用者名稱或電子郵件地址(字串,選用)
    • owner:儲存庫擁有者(字串,必要)
    • page:用於分頁的頁碼(最小值 1)(數字,選用)
    • path:只會回傳包含此檔案路徑的提交(字串,選用)
    • perPage:用於分頁的每頁結果數量(最小值 1,最大值 100)(數字,選用)
    • repo:儲存庫名稱(字串,必要)
    • sha:要列出其提交的提交 SHA、分支或標籤名稱。若未提供,則使用儲存庫的預設分支。若提供提交 SHA,將列出直到該 SHA 為止的提交。(字串,選用)
    • since:只會回傳此日期之後的提交(ISO 8601 格式:YYYY-MM-DDTHH:MM:SSZ 或 YYYY-MM-DD)(字串,選用)
    • until:只會回傳此日期之前的提交(ISO 8601 格式:YYYY-MM-DDTHH:MM:SSZ 或 YYYY-MM-DD)(字串,選用)
  • list_releases - 列出版本

    • 必要的 OAuth 權限範圍repo
    • owner:儲存庫擁有者(字串,必要)
    • page:用於分頁的頁碼(最小值 1)(數字,選用)
    • perPage:用於分頁的每頁結果數量(最小值 1,最大值 100)(數字,選用)
    • repo:儲存庫名稱(字串,必要)
  • list_repository_collaborators - 列出儲存庫協作者

    • 必要的 OAuth 權限範圍repo
    • affiliation:依關聯性篩選。可為以下之一:'outside'(外部協作者)、'direct'(所有具有權限者,無論組織成員資格為何)、'all'(所有協作者)。預設值:'all'(字串,選用)
    • owner:儲存庫擁有者(字串,必要)
    • page:用於分頁的頁碼(預設 1,最小值 1)(數字,選用)
    • perPage:用於分頁的每頁結果數量(預設 30,最小值 1,最大值 100)(數字,選用)
    • repo:儲存庫名稱(字串,必要)
  • list_tags - 列出標籤

    • 必要的 OAuth 範圍repo
    • owner:儲存庫擁有者(字串,必要)
    • page:分頁的頁碼(最小值 1)(數字,選用)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • repo:儲存庫名稱(字串,必要)
  • push_files - 推送檔案至儲存庫

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

    • 必要的 OAuth 範圍repo
    • order:結果的排序順序(字串,選用)
    • page:分頁的頁碼(最小值 1)(數字,選用)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • 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。(字串,必要)
    • sort:排序欄位(僅限 'indexed')(字串,選用)
  • search_commits - 搜尋提交

    • 必要的 OAuth 範圍repo
    • order:排序順序(字串,選用)
    • page:分頁的頁碼(最小值 1)(數字,選用)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • 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。(字串,必要)
    • sort:按作者或提交日期排序(預設為最佳比對)(字串,選用)
  • search_repositories - 搜尋儲存庫

    • 必要的 OAuth 範圍repo
    • minimal_output:傳回最少的儲存庫資訊(預設:true)。設為 false 時,傳回完整的 GitHub API 儲存庫物件。(布林值,選用)
    • order:排序順序(字串,選用)
    • page:分頁的頁碼(最小值 1)(數字,選用)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • query:儲存庫搜尋查詢。範例:'machine learning in:name stars:>1000 language:python'、'topic:react'、'user:facebook'。支援進階搜尋語法以進行精確篩選。(字串,必要)
    • sort:按欄位排序儲存庫,預設為最佳比對(字串,選用)
shield-lock 密碼保護
  • get_secret_scanning_alert - 取得密碼掃描警示

    • 必要的 OAuth 範圍security_events
    • 接受的 OAuth 範圍reposecurity_events
    • alertNumber:警示編號。(數字,必要)
    • owner:儲存庫擁有者。(字串,必要)
    • repo:儲存庫名稱。(字串,必要)
  • list_secret_scanning_alerts - 列出密碼掃描警示

    • 必要的 OAuth 範圍security_events
    • 接受的 OAuth 範圍reposecurity_events
    • owner:儲存庫擁有者。(字串,必要)
    • page:分頁的頁碼(最小值 1)(數字,選用)
    • perPage:分頁的每頁結果數(最小值 1,最大值 100)(數字,選用)
    • repo:儲存庫名稱。(字串,必要)
    • resolution:按解決狀態篩選(字串,選用)
    • secret_type:要傳回的密碼類型清單,以逗號分隔。預設會傳回所有預設密碼模式。若要傳回通用模式,請在參數中傳遞權杖名稱。(字串,選用)
    • state:按狀態篩選(字串,選用)
shield 安全公告
  • get_global_security_advisory - 取得全域安全公告

    • 必要的 OAuth 範圍security_events
    • 接受的 OAuth 範圍reposecurity_events
    • ghsaId:GitHub 安全公告 ID(格式:GHSA-xxxx-xxxx-xxxx)。(字串,必要)
  • list_global_security_advisories - 列出全域安全公告

    • 必要的 OAuth 範圍security_events
    • 接受的 OAuth 範圍reposecurity_events
    • affects:按受影響的套件或版本篩選公告(例如 "package1,package2@1.0.0")。(字串,選用)
    • cveId:按 CVE ID 篩選。(字串,選用)
    • cwes:按常見弱點列舉 ID 篩選(例如 ["79", "284", "22"])。(string[],選用)
    • 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
    • 接受的 OAuth 範圍reposecurity_events
    • direction:排序方向。(字串,選用)
    • org:組織登入名稱。(字串,必要)
    • sort:排序欄位。(字串,選用)
    • state:按公告狀態篩選。(字串,選用)
  • list_repository_security_advisories - 列出儲存庫安全公告

    • 必要的 OAuth 範圍security_events
    • 接受的 OAuth 範圍reposecurity_events
    • direction:排序方向。(字串,選用)
    • owner:儲存庫擁有者。(字串,必要)
    • repo:儲存庫名稱。(字串,必要)
    • sort:排序欄位。(字串,選用)
    • state:按公告狀態篩選。(字串,選用)
star 星標者
  • 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 使用者
  • 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 Space

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

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

唯讀模式

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

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

鎖定模式的行為取決於所調用的工具。

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

  • issue_read:get
  • pull_request_read:get

以下工具將過濾掉缺少推送權限的使用者所產生的內容:

  • 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

國際化 / 覆寫描述

您可以透過在與執行檔相同的目錄中建立一個 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 目前應被視為不穩定,且可能會有破壞性變更。未來我們可能會提供穩定性保證;若您有認為這會很有價值的使用案例,請提交議題。

貢獻

歡迎貢獻。在開啟 Pull Request 之前,請閱讀貢獻指南以取得設定、測試、程式碼檢查和文件產生的說明。

支援

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

安全性

請勿透過公開議題回報安全性漏洞。請遵循安全性政策中的指示,負責任地回報漏洞。

授權

本專案依據 MIT 開放原始碼授權條款授權。請參閱 MIT 以取得完整條款。