GitHub MCP

공식

공식 GitHub MCP 서버로, MCP 호환 AI 클라이언트에서 저장소 검색, 이슈, 풀 리퀘스트, 코드 컨텍스트 및 GitHub 워크플로우를 지원합니다.

GitHub MCP(으)로 무엇을 할 수 있나요?

  • 저장소 탐색 — 접근 가능한 모든 저장소에서 코드를 탐색하고, 파일을 검색하며, 커밋을 분석하도록 어시스턴트에게 요청하세요.
  • 이슈 및 PR 관리 — AI가 코드 변경 사항 검토를 포함해 이슈와 풀 리퀘스트를 생성, 업데이트, 분류하도록 하세요.
  • CI/CD 모니터링 — GitHub Actions 워크플로 실행에 대한 인사이트를 얻고, 빌드 실패를 분석하며, 릴리스를 관리하세요.
  • 보안 분석 — 코드 스캐닝 결과를 검토하고 취약점에 대한 Dependabot 알림을 확인하세요.
  • 팀 협업 — 프로젝트 전반의 토론에 접근하고, 알림을 관리하며, 팀 활동을 분석하세요.

호스팅형 MCP 서버

npx add-mcp 'https://api.githubcopilot.com/mcp/'

Claude Code, Codex, Cursor 등에 설치됩니다

문서

Go Report Card

GitHub MCP 서버

GitHub MCP 서버는 AI 도구를 GitHub 플랫폼에 직접 연결합니다. 이를 통해 AI 에이전트, 어시스턴트, 챗봇이 자연어 상호작용만으로 저장소와 코드 파일을 읽고, 이슈와 PR을 관리하고, 코드를 분석하고, 워크플로우를 자동화할 수 있습니다.

사용 사례

  • 저장소 관리: 접근 권한이 있는 모든 저장소에서 코드를 탐색하고 쿼리하며, 파일을 검색하고, 커밋을 분석하고, 프로젝트 구조를 이해합니다.
  • 이슈 및 PR 자동화: 이슈와 풀 리퀘스트를 생성, 업데이트, 관리합니다. AI가 버그 분류, 코드 변경 검토, 프로젝트 보드 유지 관리를 도와줍니다.
  • CI/CD 및 워크플로우 인텔리전스: GitHub Actions 워크플로우 실행을 모니터링하고, 빌드 실패를 분석하고, 릴리스를 관리하고, 개발 파이프라인에 대한 인사이트를 얻습니다.
  • 코드 분석: 보안 결과를 검토하고, Dependabot 알림을 확인하고, 코드 패턴을 이해하고, 코드베이스에 대한 종합적인 인사이트를 얻습니다.
  • 팀 협업: 토론에 접근하고, 알림을 관리하고, 팀 활동을 분석하고, 팀 프로세스를 간소화합니다.

AI 도구를 GitHub 컨텍스트와 기능에 연결하려는 개발자를 위해 설계되었으며, 간단한 자연어 쿼리부터 복잡한 다단계 에이전트 워크플로우까지 지원합니다.

Go 모듈 사용

Go 모듈 경로는 github.com/github/github-mcp-server/v2입니다. 라이브러리 사용자는 import에서 이 접두사를 사용해야 합니다. 예를 들어 github.com/github/github-mcp-server/v2/pkg/github 및 go get 명령에서 사용해야 합니다. 저장소 체크아웃에서 빌드할 때 /v2 하위 디렉터리는 필요하지 않습니다.

기존 v2.0.0 태그는 이 모듈 경로 수정 이전에 생성된 것으로 Go 모듈로 사용할 수 없습니다. 이 변경 사항이 병합된 후에는 v2.0.1와 같은 새 릴리스가 수정된 모듈 경로가 포함된 커밋에서 태그되어야 합니다. 그때까지 사용자는 이 변경 사항이 포함된 커밋의 의사 버전을 사용할 수 있습니다.


원격 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 텍스트 입력 옆에 있는 에이전트 모드를 전환하면 서버가 시작됩니다. 원격 MCP 및 OAuth 지원을 위해 VS Code 1.101 이상 버전을 사용 중인지 확인하세요.

또는 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 호스트 애플리케이션은 OAuth를 통한 원격 액세스를 지원하기 위해 GitHub App 또는 OAuth App을 구성해야 합니다. 원격 MCP 서버를 지원하는 모든 호스트 애플리케이션은 PAT 인증으로 원격 GitHub 서버를 지원해야 합니다. 구성 세부 사항과 지원 수준은 호스트마다 다릅니다. 자세한 내용은 호스트 애플리케이션의 문서를 참조하세요.

구성

도구 세트 구성

원격 서버 구성, 도구 세트, 헤더 및 고급 사용에 대한 전체 세부 사항은 원격 서버 문서를 참조하세요. 이 파일은 VS Code 및 기타 MCP 호스트에서 원격 GitHub MCP 서버를 연결, 사용자 지정 및 설치하기 위한 포괄적인 지침과 예제를 제공합니다.

도구 세트가 지정되지 않은 경우 기본 도구 세트가 사용됩니다.

인사이더 모드

새 기능을 미리 사용해 보세요! 원격 서버는 새로운 기능과 실험적 도구에 대한 조기 액세스를 제공하는 인사이더 버전을 제공합니다.

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

자세한 내용과 예제는 원격 서버 문서를, 사용 가능한 전체 목록은 인사이더 기능을 참조하세요.

GitHub Enterprise

데이터 상주 기능이 있는 GitHub Enterprise Cloud(ghe.com)

GitHub Enterprise Cloud도 원격 서버를 사용할 수 있습니다.

GitHub PAT 토큰을 사용한 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에서 사용할 수 있습니다. 이미지는 공개입니다. 풀 중 오류가 발생하면 토큰이 만료되었을 수 있으므로 docker logout ghcr.io해야 합니다.

  3. 인증. github.com에서는 사전에 생성할 것이 없습니다. 위의 원클릭 버튼은 첫 사용 시 OAuth로 로그인합니다(브라우저 기반 흐름, 토큰은 메모리에만 보관). Docker 버튼은 고정 콜백 포트(127.0.0.1:8085)를 게시하여 컨테이너의 로그인 콜백에 도달할 수 있게 합니다. 작동 방식, 헤드리스/디바이스 코드 대체, 자체 OAuth 또는 GitHub App 사용(GitHub Enterprise Server 및 ghe.com에 필요)은 **로컬 서버 OAuth 로그인**을 참조하세요.

    토큰을 선호하시나요? GITHUB_PERSONAL_ACCESS_TOKEN을 설정하여 GitHub Personal Access Token으로 계속 인증할 수 있습니다(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 체계를 붙입니다. 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에 설치

빠른 설치를 위해 위의 원클릭 설치 버튼 중 하나를 사용하세요. 해당 흐름을 완료하면 Copilot Chat 텍스트 입력 옆에 있는 에이전트 모드를 전환하면 서버가 시작됩니다.

VS Code의 에이전트 모드 문서에서 MCP 서버 도구 사용에 대해 자세히 알아보세요.

다른 IDE(JetBrains, Visual Studio, Eclipse 등)의 GitHub Copilot에 설치

IDE의 MCP 설정에 다음 JSON 블록 중 하나를 추가하세요.

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

네이티브 바이너리 흐름(고정 포트 불필요), 헤드리스/디바이스 코드 대체, GitHub Enterprise Server / ghe.com, 자체 OAuth 또는 GitHub App 사용에 대해서는 **로컬 서버 OAuth 로그인**을 참조하세요.

비대화형 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}"
        }
      }
    }
  }
}

선택적으로 작업 공간의 .vscode/mcp.json 파일에 유사한 예제(mcp 키 제외)를 추가할 수 있습니다. 이렇게 하면 동일한 형식을 허용하는 다른 호스트 애플리케이션과 구성을 공유할 수 있습니다.

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 build를 사용하여 cmd/github-mcp-server 디렉토리에서 바이너리를 빌드하고, github-mcp-server stdio 명령을 GITHUB_PERSONAL_ACCESS_TOKEN 환경 변수를 토큰으로 설정하여 사용할 수 있습니다. 빌드 출력 위치를 지정하려면 -o 플래그를 사용하세요. 서버가 빌드된 실행 파일을 command로 사용하도록 구성해야 합니다.

STDIO API 요청은 서버를 github-mcp-server/<version>로 식별하며, 사용 가능한 경우 업스트림 MCP 클라이언트의 이름/버전을 괄호 안에 유지합니다. 클라이언트 메타데이터의 제어 문자, 따옴표, 백슬래시 및 괄호는 이스케이프 처리되어 HTTP 헤더가 유효하게 유지됩니다. 일반 이름, 버전, 공백 및 인쇄 가능한 유니코드는 보존됩니다. 릴리스 빌드는 릴리스 버전을 유지합니다. 리비전 메타데이터가 있는 소스 및 기본 Docker 빌드는 vcs-<full-commit-sha>를 사용합니다. Docker 게시 워크플로는 사전 릴리스를 포함한 태그 버전을 보존하며, 브랜치, 풀 리퀘스트 및 야간 빌드가 연결된 소스 리비전을 사용할 수 있게 합니다. -dirty 마커는 리비전과 수정 상태가 모두 포함된 VCS 메타데이터에서 오는 경우에만 적용되며, 유효하고 명시적으로 제공된 main.commit에는 절대 적용되지 않습니다. 이는 VCS 빌드 식별자이며 릴리스 번호가 아닙니다.

Git 체크아웃에서 go build -o github-mcp-server ./cmd/github-mcp-server로 전체 패키지를 빌드하여 VCS 리비전을 포함하세요. VCS 메타데이터가 없는 빌드의 경우, -ldflags '-X main.version=<release>'로 실제 릴리스를 제공하거나 -ldflags '-X main.commit=<sha>'로 전체 소스 리비전을 제공하세요. 유효한 메타데이터는 다음 순서로 선택됩니다: 명시적 릴리스, 명시적 소스 리비전, 포함된 VCS 리비전, 그 다음 설치된 메인 모듈 버전. 유효한 명시적 리비전은 빌드 컨텍스트 필터링이 포함된 VCS 메타데이터를 변경하더라도 권위를 유지합니다. 누락되거나 잘못된 후보는 다음 사용 가능한 소스로 넘어갑니다. 사용 가능한 것이 없으면 STDIO는 개발 레이블 dev로 시작하고 stderr에 경고를 출력하며, stdout은 MCP 프로토콜에 사용할 수 있게 남겨둡니다. 버전별 속성이 필요할 때 실제 릴리스 또는 리비전 메타데이터를 제공하세요.

예를 들어:

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

도구 구성

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
    

    이는 repos 및 issues 도구 세트의 모든 도구와 get_gist를 등록합니다.

중요 참고 사항:

  • 도구와 도구 세트는 함께 사용할 수 있습니다
  • 읽기 전용 모드가 우선합니다: --read-only가 설정된 경우 --tools를 통해 명시적으로 요청된 경우에도 쓰기 도구는 건너뜁니다
  • 도구 이름은 정확히 일치해야 합니다 (예: get_file_contents, getFileContents 아님). 잘못된 도구 이름은 서버가 시작 시 오류 메시지와 함께 실패하게 합니다
  • 도구 이름이 변경되면 이전 이름은 이전 버전과의 호환성을 위해 별칭으로 보존됩니다. 자세한 내용은 도구 이름 변경을 참조하세요.

Docker에서 도구 세트 사용

Docker를 사용할 때 환경 변수로 도구 세트를 전달할 수 있습니다:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" \
  ghcr.io/github/github-mcp-server

Docker에서 도구 사용

Docker를 사용할 때 환경 변수로 특정 도구를 전달할 수 있습니다. 도구를 도구 세트와 결합할 수도 있습니다:

# Tools only
docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" \
  ghcr.io/github/github-mcp-server

# Tools combined with toolsets (additive)
docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_TOOLSETS="repos,issues" \
  -e GITHUB_TOOLS="get_gist" \
  ghcr.io/github/github-mcp-server

특수 도구 세트

"all" 도구 세트

특수 도구 세트 all는 다른 구성에 관계없이 모든 사용 가능한 도구 세트를 활성화하기 위해 제공될 수 있습니다:

./github-mcp-server --toolsets all

또는 환경 변수 사용:

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

"default" 도구 세트

기본 도구 세트 default는 도구 세트가 지정되지 않은 경우 서버에 전달되는 구성입니다.

기본 구성은 다음과 같습니다:

  • context
  • repos
  • issues
  • pull_requests
  • users

기본 구성을 유지하고 추가 도구 세트를 추가하려면:

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

인사이더 모드

로컬 GitHub MCP 서버는 새로운 기능과 실험적 도구에 대한 조기 액세스를 제공하는 인사이더 버전을 제공합니다.

  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_securityGitHub 코드 스캐닝과 같은 코드 보안 관련 도구
copilotcopilotCopilot 관련 도구
copilotcopilot_issue_intents의도 메타데이터(근거, 신뢰도, 제안)를 전달하는 옵트인 Copilot 이슈 할당 도구
dependabotdependabotDependabot 도구
comment-discussiondiscussionsGitHub Discussions 관련 도구
logo-gistgistsGitHub Gist 관련 도구
git-branchgit저수준 Git 작업을 위한 GitHub Git API 관련 도구
lawgovernance저장소, 조직 및 엔터프라이즈 수준에서 규칙 세트 및 사용자 지정 속성 관리를 위한 저장소 거버넌스 도구
issue-openedissuesGitHub Issues 관련 도구
taglabelsGitHub Labels 관련 도구
bellnotificationsGitHub Notifications 관련 도구
organizationorgsGitHub Organization 관련 도구
projectprojectsGitHub Projects 관련 도구
git-pull-requestpull_requestsGitHub Pull Request 관련 도구
reporeposGitHub Repository 관련 도구
shield-locksecret_protectionGitHub Secret Scanning과 같은 비밀 보호 관련 도구
shieldsecurity_advisories보안 권고 관련 도구
starstargazersGitHub Stargazers 관련 도구
peopleusersGitHub User 관련 도구

원격 GitHub MCP 서버의 추가 도구 세트

도구 세트설명
copilotCopilot 관련 도구 (예: Copilot Coding Agent)
copilot_spacesCopilot Spaces 관련 도구
github_support_docs_searchGitHub 제품 및 지원 질문에 답변하기 위한 문서 검색

도구

저장소 도구는 협상된 MCP 프로토콜 버전이 지원되는 버전 2026-07-28 이상인 경우 출력 스키마와 유형화된 structuredContent를 노출합니다. 이전 클라이언트, 알 수 없는 프로토콜 버전의 클라이언트 및 버전을 생략하는 클라이언트는 출력 스키마나 구조화된 출력 없이 기존 콘텐츠를 받습니다. 알 수 없는 버전은 2026-07-28 이후에 정렬된다는 이유만으로 지원되는 것으로 취급되지 않습니다.

get_file_contents의 경우 디렉터리 결과(필드 프로젝션 포함)는 구조화된 배열입니다. 파일 다운로드 및 메타데이터 전용 응답은 상태 메시지, 텍스트, base64 블롭, 빈 파일 및 다운로드 링크를 보존하는 유형화된 텍스트, 포함된 리소스 또는 리소스 링크 블록의 content 배열을 사용합니다. 별표 표시 및 삭제와 같은 텍스트 전용 저장소 변형도 구조화된 message를 반환합니다. 포크 응답은 저장소 참조와 진행 중 메시지를 구분합니다. 저장소 삭제는 완료된 결과를 반환하기 전에 기존 확인 흐름을 계속 요구합니다. 구조화된 저장소 결과는 원시 REST 객체 대신 간결한 DTO를 사용합니다. 릴리스 조회는 릴리스 목록과 동일한 간결한 릴리스 형태를 공유합니다. Git 참조는 ref, 객체 유형, SHA를 유지합니다. 주석이 달린 태그는 태그/메시지/tagger/대상 정보를 유지합니다. 삭제 커밋은 SHA, 메시지, 작성자, 트리 SHA, 부모 SHA 및 사용 가능한 경우 사람이 읽을 수 있는 html_url을 유지합니다. 디렉터리 항목은 파일 메타데이터와 유용한 HTML/다운로드 링크를 유지하지만, 프로젝션에서 해당 필드가 요청된 경우에도 API 및 하이퍼미디어 라우팅 URL은 생략합니다. 레거시 및 알 수 없는 프로토콜 버전은 원본 텍스트를 바이트 단위로 유지합니다. 최신 텍스트 전용 JSON 응답은 structuredContent과 동일한 간결한 DTO를 직렬화합니다. 비텍스트 리소스 블록 및 도구 오류는 기존 콘텐츠 동작을 유지합니다. 구조화된 프로젝션은 레거시 포맷터와 동일한 정리 및 필터링된 소스를 사용합니다.

get_repository_tree, list_gists, get_gist, create_gist 및 update_gist의 경우, gist 결과는 파일 이름, 내용, 크기, 언어/유형 정보, 타임스탬프, 공개 여부 및 간결한 소유자 프로필을 유지하면서 API/노드 및 Git 전송 URL은 생략합니다. 트리 항목은 파생 가능한 API URL을 생략합니다. 생성/업데이트 gist 결과에는 gist ID와 HTML URL이 포함됩니다. 최신 JSON 텍스트 및 구조화된 콘텐츠는 동일한 간결한 결과를 직렬화합니다. 이전 또는 알 수 없는 프로토콜 버전은 출력 스키마나 구조화된 콘텐츠 없이 바이트 단위 레거시 텍스트를 유지합니다.

이슈 메타데이터(list_issue_types, list_issue_fields), 댓글(add_issue_comment, update_issue_comment), 종속성(issue_dependency_read, issue_dependency_write) 및 중복 감지(find_duplicate) 도구는 협상된 지원 프로토콜 버전 2026-07-28 이상에 대해 유형화된 outputSchema 및 structuredContent을 제공합니다. 이전 또는 알 수 없는 프로토콜 버전은 이러한 필드 없이 동일한 텍스트 응답을 유지합니다. 도구 오류는 구조화된 콘텐츠를 반환하지 않습니다. 종속성 및 중복 감지 도구는 기존 기능 게이트를 유지합니다.

협상된 지원 프로토콜 버전 2026-07-28 이상의 경우, 통합 Actions 도구(actions_list, actions_get, actions_run_trigger)는 method 판별자와 메서드별 유형화된 필드가 있는 구조화된 객체를 반환합니다. JSON 텍스트에는 동일한 간결한 프로젝션이 포함됩니다. 워크플로, 작업 및 아티팩트 프로젝션은 브라우저 링크와 유용한 식별자, 상태, 타임스탬프 및 사용 기간을 유지하면서 API/하이퍼미디어 URL을 생략합니다. 실행 사용량 목록은 결정적 이름 순서로 청구 가능한 러너 환경을 나열합니다. 이전 및 알 수 없는 프로토콜 텍스트 응답은 변경되지 않습니다. get_job_logs은 유형화된 콘텐츠, URL 또는 실패한 작업 컬렉션 변형을 유지합니다.

workflow Actions
  • actions_get - GitHub Actions 리소스(워크플로, 워크플로 실행, 작업 및 아티팩트)의 세부 정보 가져오기

    • OAuth 챌린지 범위: repo
    • method: 실행할 메서드(문자열, 필수)
    • owner: 저장소 소유자(문자열, 필수)
    • repo: 저장소 이름(문자열, 필수)
    • resource_id: 리소스의 고유 식별자. 제공된 "method"에 따라 달라지므로 올바른 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)(숫자, 선택)
    • perPage: 페이지네이션용 페이지당 결과 수(기본값: 30, 최대: 100)(숫자, 선택)
    • repo: 저장소 이름(문자열, 필수)
    • resource_id: 리소스의 고유 식별자. 제공된 "method"에 따라 달라지므로 올바른 ID를 제공해야 합니다:
      • 'list_workflows' 메서드에는 리소스 ID를 제공하지 마세요.
      • 'list_workflow_runs' 메서드에는 워크플로 ID 또는 워크플로 파일 이름(예: ci.yaml)을 제공하거나, 저장소의 모든 워크플로 실행을 나열하려면 생략하세요.
      • 'list_workflow_jobs' 및 'list_workflow_run_artifacts' 메서드에는 워크플로 실행 ID를 제공하세요. (문자열, 선택)
    • workflow_jobs_filter: 워크플로 작업 필터. 오직 method가 'list_workflow_jobs'일 때만 사용됩니다(객체, 선택)
    • workflow_runs_filter: 워크플로 실행 필터. 오직 method가 '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
    • alertNumber: 경고의 번호.(숫자, 필수)
    • owner: 저장소의 소유자.(문자열, 필수)
    • repo: 저장소의 이름.(문자열, 필수)
  • list_code_scanning_alerts - 코드 스캐닝 경고 나열

    • OAuth 챌린지 범위: security_events
    • owner: 저장소의 소유자.(문자열, 필수)
    • page: 페이지네이션용 페이지 번호(최소 1)(숫자, 선택)
    • perPage: 페이지네이션용 페이지당 결과 수(최소 1, 최대 100)(숫자, 선택)
    • ref: 나열하려는 결과의 Git 참조.(문자열, 선택)
    • repo: 저장소의 이름.(문자열, 필수)
    • severity: 심각도별로 코드 스캐닝 경고 필터링(문자열, 선택)
    • state: 상태별로 코드 스캐닝 경고 필터링. 기본값은 open입니다(문자열, 선택)
    • tool_name: 코드 스캐닝에 사용된 도구의 이름.(문자열, 선택)
person 컨텍스트
  • get_me - 내 사용자 프로필 가져오기

    • MCP 앱 UI: ui://github-mcp-server/get-me
    • 매개변수 필요 없음
  • get_team_members - 팀 구성원 가져오기

    • OAuth 챌린지 범위: read:org
    • org: 팀이 포함된 조직 로그인(소유자).(문자열, 필수)
    • team_slug: 팀 슬러그(문자열, 필수)
  • get_teams - 팀 가져오기

    • OAuth 챌린지 범위: read:org
    • user: 팀을 가져올 사용자 이름. 제공되지 않으면 인증된 사용자를 사용합니다.(문자열, 선택)
  • ui_get - UI 데이터 가져오기

    • OAuth 챌린지 범위: repo, read:org
    • method: 가져올 데이터 유형(문자열, 필수)
    • owner: 저장소 소유자(모든 메서드에 필요)(문자열, 필수)
    • repo: 저장소 이름(labels, assignees, milestones, branches, issue fields, reviewers에 필요)(문자열, 선택)
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: 저장소 이름(문자열, 필수)
copilot Copilot 이슈 의도 - **assign_copilot_to_issue_with_intent** - 의도(intent)를 지정하여 Copilot을 이슈에 할당합니다. - **OAuth Challenge Scopes**: `repo` - `base_ref`: 에이전트가 작업을 시작할 Git 참조(예: 브랜치). 지정하지 않으면 저장소의 기본 브랜치로 기본 설정됩니다. is_suggestion이 true이면 무시됩니다. (문자열, 선택 사항) - `confidence`: 이 선택에 대한 확신의 정도. 명확한 신호 또는 명시적 사용자 요청이면 'HIGH', 약간의 모호함이 있는 합리적 추론이면 'MEDIUM', 제한된 신호로 최선의 추측이면 'LOW'. (문자열, 필수) - `custom_instructions`: 이슈 본문 외에 에이전트를 안내하기 위한 선택적 사용자 지정 지침. is_suggestion이 true이면 무시됩니다. (문자열, 선택 사항) - `is_suggestion`: true이면 에이전트를 실행하는 대신 보류 중인 Copilot 할당 의도를 기록합니다. 이후 승인 시 실행 컨텍스트를 제공하며, 이 경우 base_ref와 custom_instructions는 무시됩니다. (부울, 필수) - `issue_number`: 이슈 번호 (숫자, 필수) - `owner`: 저장소 소유자 (문자열, 필수) - `rationale`: 이슈의 어떤 점이 Copilot 선택으로 이어졌는지 설명하는 간결한 문장 하나. 구체적인 신호를 명시하세요 (예: '명확한 수락 기준이 있는 범위가 잘 정의된 작업'). (문자열, 필수) - `repo`: 저장소 이름 (문자열, 필수)
dependabot Dependabot
  • get_dependabot_alert - Dependabot 경고 가져오기

    • OAuth Challenge Scopes: security_events
    • alertNumber: 경고 번호. (숫자, 필수)
    • owner: 저장소 소유자. (문자열, 필수)
    • repo: 저장소 이름. (문자열, 필수)
  • list_dependabot_alerts - Dependabot 경고 목록

    • OAuth Challenge Scopes: security_events
    • after: 페이지네이션 커서. 이전 응답의 커서를 사용하세요. (문자열, 선택 사항)
    • owner: 저장소 소유자. (문자열, 필수)
    • perPage: 페이지네이션당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • repo: 저장소 이름. (문자열, 필수)
    • severity: 심각도별 Dependabot 경고 필터링 (문자열, 선택 사항)
    • state: 상태별 Dependabot 경고 필터링. 기본값은 open (문자열, 선택 사항)
comment-discussion Discussions
  • discussion_comment_write - 토론 댓글 관리

    • OAuth Challenge Scopes: repo
    • body: 댓글 내용 ('add', 'reply', 'update' 메서드에 필수) (문자열, 선택 사항)
    • commentNodeID: 토론 댓글의 Node ID ('reply', 'update', 'delete', 'mark_answer', 'unmark_answer' 메서드에 필수). 'reply'의 경우 답글을 달 최상위 댓글입니다. GitHub Discussions는 한 단계의 중첩만 지원합니다. (문자열, 선택 사항)
    • discussionNumber: 토론 번호 ('add' 및 'reply' 메서드에 필수) (숫자, 선택 사항)
    • method: 토론 댓글에 대해 수행할 쓰기 작업. 옵션:
      • 'add' - 토론에 새 최상위 댓글을 추가합니다.
      • 'reply' - 최상위 토론 댓글에 답글을 답니다 (GitHub Discussions는 한 단계의 중첩만 지원).
      • 'update' - 기존 토론 댓글을 업데이트합니다.
      • 'delete' - 토론 댓글을 삭제합니다.
      • 'mark_answer' - 토론 댓글을 답변으로 표시합니다 (Q&A 전용).
      • 'unmark_answer' - 토론 댓글을 답변으로 표시한 것을 해제합니다 (Q&A 전용). (문자열, 필수)
    • owner: 저장소 소유자 ('add' 및 'reply' 메서드에 필수) (문자열, 선택 사항)
    • repo: 저장소 이름 ('add' 및 'reply' 메서드에 필수) (문자열, 선택 사항)
  • get_discussion - 토론 가져오기

    • OAuth Challenge Scopes: repo
    • discussionNumber: 토론 번호 (숫자, 필수)
    • owner: 저장소 소유자 (문자열, 필수)
    • repo: 저장소 이름 (문자열, 필수)
  • get_discussion_comments - 토론 댓글 가져오기

    • OAuth Challenge Scopes: repo
    • after: 페이지네이션 커서. 이전 응답의 커서를 사용하세요. (문자열, 선택 사항)
    • discussionNumber: 토론 번호 (숫자, 필수)
    • includeReplies: true이면 각 최상위 댓글에 답글이 중첩되어 포함됩니다 (댓글당 최대 100개 답글, GitHub API 최대치). 기본값은 false. (부울, 선택 사항)
    • owner: 저장소 소유자 (문자열, 필수)
    • perPage: 페이지네이션당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • repo: 저장소 이름 (문자열, 필수)
  • list_discussion_categories - 토론 카테고리 목록

    • OAuth Challenge Scopes: repo
    • owner: 저장소 소유자 (문자열, 필수)
    • repo: 저장소 이름. 제공하지 않으면 조직 수준에서 토론 카테고리를 조회합니다. (문자열, 선택 사항)
  • list_discussions - 토론 목록

    • OAuth Challenge Scopes: repo
    • after: 페이지네이션 커서. 이전 응답의 커서를 사용하세요. (문자열, 선택 사항)
    • category: 토론 카테고리 ID별 선택적 필터. 제공하면 이 카테고리의 토론만 나열됩니다. (문자열, 선택 사항)
    • direction: 정렬 방향. (문자열, 선택 사항)
    • orderBy: 필드별 토론 정렬. 제공하면 'direction'도 제공해야 합니다. (문자열, 선택 사항)
    • owner: 저장소 소유자 (문자열, 필수)
    • perPage: 페이지네이션당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • repo: 저장소 이름. 제공하지 않으면 조직 수준에서 토론을 조회합니다. (문자열, 선택 사항)
logo-gist Gists
  • create_gist - Gist 생성

    • OAuth Challenge Scopes: gist
    • content: 단일 파일 Gist 생성을 위한 내용 (문자열, 필수)
    • description: Gist 설명 (문자열, 선택 사항)
    • filename: 단일 파일 Gist 생성을 위한 파일 이름 (문자열, 필수)
    • public: Gist 공개 여부 (부울, 선택 사항)
  • get_gist - Gist 내용 가져오기

    • gist_id: Gist ID (문자열, 필수)
  • list_gists - Gist 목록

    • page: 페이지네이션 페이지 번호 (최소 1) (숫자, 선택 사항)
    • perPage: 페이지네이션당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • since: 이 시간 이후 업데이트된 Gist만 (ISO 8601 타임스탬프) (문자열, 선택 사항)
    • username: GitHub 사용자 이름 (인증된 사용자의 Gist는 생략) (문자열, 선택 사항)
  • update_gist - Gist 업데이트

    • OAuth Challenge Scopes: gist
    • content: 파일 내용 (문자열, 필수)
    • description: 업데이트된 Gist 설명 (문자열, 선택 사항)
    • filename: 업데이트하거나 생성할 파일 이름 (문자열, 필수)
    • gist_id: 업데이트할 Gist ID (문자열, 필수)
git-branch Git
  • get_repository_tree - 저장소 트리 가져오기
    • OAuth Challenge Scopes: repo
    • owner: 저장소 소유자 (사용자 이름 또는 조직) (문자열, 필수)
    • path_filter: 트리 결과를 필터링할 선택적 경로 접두사 (예: 'src/'는 src 디렉토리의 파일만 표시) (문자열, 선택 사항)
    • recursive: 이 매개변수를 true로 설정하면 트리가 참조하는 객체 또는 하위 트리를 반환합니다. 기본값은 false (부울, 선택 사항)
    • repo: 저장소 이름 (문자열, 필수)
    • tree_sha: 트리의 SHA1 값 또는 ref(브랜치 또는 태그) 이름. 기본값은 저장소의 기본 브랜치 (문자열, 선택 사항)
law Governance
  • create_repository_ruleset - 저장소 규칙 세트 생성

    • OAuth Challenge Scopes: repo, admin:org, admin:enterprise
    • bypass_actors: 이 규칙 세트의 규칙을 우회할 수 있는 액터 (객체 배열, 선택 사항)
    • conditions: 이 규칙 세트가 적용되는 조건, 예: {"ref_name": {"include": ["refs/heads/main"], "exclude": []}} (객체, 선택 사항)
    • enforcement: 규칙 세트의 적용 수준. 'evaluate'는 관리자가 규칙을 적용하기 전에 테스트할 수 있게 합니다 (문자열, 필수)
    • enterprise: 엔터프라이즈 슬러그. level이 'enterprise'일 때 필수. (문자열, 선택 사항)
    • level: 규칙 세트가 구성되는 수준:
      • 'repository': 단일 저장소의 규칙 세트 ('owner' 및 'repo' 필요).
      • 'organization': 조직의 저장소를 포함하는 규칙 세트 ('org' 필요).
      • 'enterprise': 엔터프라이즈 전체의 저장소를 포함하는 규칙 세트 ('enterprise' 필요). (문자열, 필수)
    • name: 규칙 세트 이름 (문자열, 필수)
    • org: 조직 이름. level이 'organization'일 때 필수. (문자열, 선택 사항)
    • owner: 저장소 소유자. level이 'repository'일 때 필수. (문자열, 선택 사항)
    • repo: 저장소 이름. level이 'repository'일 때 필수. (문자열, 선택 사항)
    • rules: 규칙 세트 내 규칙 배열. 각 규칙은 'type'(예: 'creation', 'deletion', 'non_fast_forward', 'required_signatures', 'pull_request', 'required_status_checks')과, 구성이 필요한 규칙의 경우 'parameters' 객체를 가진 객체입니다 (객체 배열, 필수)
    • target: 규칙 세트의 대상. 기본값은 'branch'. 'repository'는 'organization' 및 'enterprise' 수준 규칙 세트에만 유효합니다. (문자열, 선택 사항)
  • custom_properties_read - 사용자 지정 속성 읽기

    • OAuth Challenge Scopes: repo, read:org, read:enterprise
    • enterprise: 엔터프라이즈 슬러그. level이 'enterprise'일 때 필수. (문자열, 선택 사항)
    • level: 사용자 지정 속성이 관리되는 수준:
      • 'repository': 저장소에 할당된 사용자 지정 속성 값 ('owner' 및 'repo' 필요).
      • 'organization': 조직의 사용자 지정 속성 정의(스키마) ('org' 필요).
      • 'enterprise': 엔터프라이즈의 사용자 지정 속성 정의(스키마) ('enterprise' 필요). (문자열, 필수)
    • org: 조직 이름. level이 'organization'일 때 필수. (문자열, 선택 사항)
    • owner: 저장소 소유자. level이 'repository'일 때 필수. (문자열, 선택 사항)
    • repo: 저장소 이름. level이 'repository'일 때 필수. (문자열, 선택 사항)
  • custom_properties_write - 사용자 지정 속성 설정

    • OAuth 챌린지 범위: repo, admin:org, admin:enterprise
    • enterprise: 엔터프라이즈 슬러그. level이 'enterprise'인 경우 필수입니다. (문자열, 선택 사항)
    • level: 사용자 지정 속성이 관리되는 수준:
      • 'repository': 저장소에 할당된 사용자 지정 속성 값 ('owner' 및 'repo' 필요).
      • 'organization': 조직의 사용자 지정 속성 정의 (스키마) ('org' 필요).
      • 'enterprise': 엔터프라이즈의 사용자 지정 속성 정의 (스키마) ('enterprise' 필요). (문자열, 필수)
    • org: 조직 이름. level이 'organization'인 경우 필수입니다. (문자열, 선택 사항)
    • owner: 저장소 소유자. level이 'repository'인 경우 필수입니다. (문자열, 선택 사항)
    • properties: 생성하거나 업데이트할 사용자 지정 속성. 저장소 수준에서 각 항목은 값을 할당합니다 ('property_name' 및 'value'); 조직 및 엔터프라이즈 수준에서 각 항목은 스키마를 정의합니다 ('property_name' 및 'value_type', 선택적 정의 필드 포함). (객체[], 필수)
    • repo: 저장소 이름. level이 'repository'인 경우 필수입니다. (문자열, 선택 사항)
  • repository_ruleset_read - 저장소 규칙 세트 읽기

    • OAuth 챌린지 범위: repo, read:org, read:enterprise
    • actor_name: 규칙 스위트를 필터링할 GitHub 사용자 계정의 핸들. 'list_rule_suites' 메서드에서 사용됩니다. (문자열, 선택 사항)
    • branch: 브랜치 이름. 'get_rules_for_branch' 메서드에 필수입니다. (문자열, 선택 사항)
    • enterprise: 엔터프라이즈 슬러그. level이 'enterprise'인 경우 필수입니다. (문자열, 선택 사항)
    • evaluate_status: 규칙 세트 평가 모드로 규칙 스위트를 필터링합니다. 'list_rule_suites' 메서드에서 사용됩니다. (문자열, 선택 사항)
    • includes_parents: 더 높은 수준에서 구성된 규칙 세트도 적용되도록 포함합니다. 기본값은 true입니다. 저장소 수준의 'get' 및 'list' 메서드에서 사용됩니다. (부울, 선택 사항)
    • level: 규칙 세트가 구성된 수준:
      • 'repository': 단일 저장소의 규칙 세트 ('owner' 및 'repo' 필요).
      • 'organization': 조직의 저장소를 포함하는 규칙 세트 ('org' 필요).
      • 'enterprise': 엔터프라이즈 전체의 저장소를 포함하는 규칙 세트 ('enterprise' 필요). (문자열, 필수)
    • method: 수행할 작업:
      • 'get': ID로 특정 규칙 세트 가져오기 ('ruleset_id' 필요). 모든 수준에서 지원됩니다.
      • 'list': 모든 규칙 세트 나열. 모든 수준에서 지원됩니다.
      • 'get_rules_for_branch': 브랜치에 적용되는 모든 규칙 가져오기 ('branch' 필요). 저장소 수준 전용.
      • 'list_rule_suites': 규칙 스위트 나열, 푸시에 대한 규칙 평가. 저장소 및 조직 수준 전용.
      • 'get_rule_suite': ID로 특정 규칙 스위트 가져오기 ('rule_suite_id' 필요). 저장소 및 조직 수준 전용. (문자열, 필수)
    • org: 조직 이름. level이 'organization'인 경우 필수입니다. (문자열, 선택 사항)
    • owner: 저장소 소유자. level이 'repository'인 경우 필수입니다. (문자열, 선택 사항)
    • page: 페이지네이션용 페이지 번호 (최소 1) (숫자, 선택 사항)
    • perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • ref: 규칙 스위트를 필터링할 ref(브랜치, 태그 등)의 이름. 'list_rule_suites' 메서드에서 사용됩니다. (문자열, 선택 사항)
    • repo: 저장소 이름. level이 'repository'인 경우 필수입니다. (문자열, 선택 사항)
    • repository_name: 규칙 스위트를 필터링할 저장소 이름. 조직 수준의 'list_rule_suites' 메서드에서 사용됩니다. (문자열, 선택 사항)
    • rule_suite_id: 규칙 스위트 ID. 'get_rule_suite' 메서드에 필수입니다. (숫자, 선택 사항)
    • rule_suite_result: 필터링할 규칙 스위트 결과. 'list_rule_suites' 메서드에서 사용됩니다. (문자열, 선택 사항)
    • ruleset_id: 규칙 세트 ID. 'get' 메서드에 필수입니다. (숫자, 선택 사항)
    • time_period: 규칙 스위트를 필터링할 기간. 'list_rule_suites' 메서드에서 사용됩니다. (문자열, 선택 사항)
issue-opened 이슈
  • add_issue_comment - 이슈 또는 풀 리퀘스트에 댓글 추가

    • OAuth 챌린지 범위: repo
    • body: 댓글 내용. reaction이 제공되지 않는 한 필수입니다. (문자열, 선택 사항)
    • comment_id: 반응할 이슈 또는 풀 리퀘스트 댓글의 숫자 ID. 댓글에 대한 반응에 사용합니다. 이슈 또는 풀 리퀘스트 자체에 반응하려면 생략합니다. body와 함께 사용할 수 없습니다. (정수, 선택 사항)
    • issue_number: 댓글을 달거나 반응할 이슈 또는 풀 리퀘스트 번호. (숫자, 필수)
    • owner: 저장소 소유자 (문자열, 필수)
    • reaction: 추가할 이모지 반응. body가 제공되지 않는 한 필수입니다. (문자열, 선택 사항)
    • repo: 저장소 이름 (문자열, 필수)
  • get_label - 저장소에서 특정 라벨 가져오기

    • OAuth 챌린지 범위: repo
    • name: 라벨 이름. (문자열, 필수)
    • owner: 저장소 소유자 (사용자 이름 또는 조직 이름) (문자열, 필수)
    • repo: 저장소 이름 (문자열, 필수)
  • issue_read - 이슈 세부 정보 가져오기

    • OAuth 챌린지 범위: repo
    • issue_number: 이슈 번호 (숫자, 필수)
    • method: 단일 이슈에 대해 수행할 읽기 작업. 옵션:
      1. get - 이슈 세부 정보 가져오기. 최선 노력 계층 구조 플래그도 반환합니다 (has_parent, has_children); parent 및 sub_issues_summary는 선택적 관계 요약이고, closed_by_pull_requests은 이슈를 total_count로 닫도록 구성된 풀 리퀘스트와 최대 5개의 references를 요약합니다.
      2. get_comments - 이슈 댓글 가져오기.
      3. get_sub_issues - 이슈의 하위 이슈(자식) 가져오기.
      4. get_parent - 이 이슈가 다른 이슈의 하위 이슈인 경우 상위 이슈 가져오기.
      5. get_labels - 이슈에 할당된 라벨 가져오기. (문자열, 필수)
    • owner: 저장소 소유자 (문자열, 필수)
    • page: 페이지네이션용 페이지 번호 (최소 1) (숫자, 선택 사항)
    • perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • repo: 저장소 이름 (문자열, 필수)
  • issue_write - 이슈/풀 리퀘스트 생성 또는 업데이트

    • OAuth 챌린지 범위: repo
    • MCP 앱 UI: ui://github-mcp-server/issue-write
    • 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: 저장소 소유자 (문자열, 필수)
    • parent_issue_number: 상위 이슈의 이슈 번호. method가 'create'일 때만 사용되며 issue_fields와 함께 사용할 수 없습니다. 새 이슈가 생성되어 동일한 작업에서 이 상위 이슈에 연결됩니다. (숫자, 선택 사항)
    • parent_owner: 상위 이슈의 저장소 소유자. parent_repo와 함께 제공해야 합니다. 둘 다 생략하면 owner 및 repo를 사용합니다. method가 'create'이고 parent_issue_number가 제공된 경우에만 사용됩니다. (문자열, 선택 사항)
    • parent_repo: 상위 이슈의 저장소 이름. parent_owner와 함께 제공해야 합니다. 둘 다 생략하면 owner 및 repo를 사용합니다. method가 'create'이고 parent_issue_number가 제공된 경우에만 사용됩니다. (문자열, 선택 사항)
    • repo: 저장소 이름 (문자열, 필수)
    • state: 새 상태 (문자열, 선택 사항)
    • state_reason: 상태 변경 이유. 상태가 변경되지 않는 한 무시됩니다. (문자열, 선택 사항)
    • title: 이슈 제목 (문자열, 선택 사항)
    • type: 이 이슈의 유형. 업데이트의 경우 현재 유형을 제거하려면 null을 전달합니다. 이 저장소에 이슈 유형이 활성화된 경우에만 사용합니다. 이 저장소 또는 소유 조직의 유효한 유형 값을 얻으려면 list_issue_types를 사용하세요. 저장소가 이슈 유형을 지원하지 않으면 이 매개변수를 생략하세요. (문자열 | null, 선택 사항)
  • list_issue_fields - 이슈 필드 나열

    • OAuth 챌린지 범위: repo, read:org
    • owner: 저장소 또는 조직의 계정 소유자. 이름은 대소문자를 구분하지 않습니다. (문자열, 필수)
    • repo: 저장소 이름. 제공되면 이 특정 저장소(조직에서 상속)의 필드를 반환합니다. 생략하면 조직 수준 필드를 직접 반환합니다. (문자열, 선택 사항)
  • list_issue_types - 사용 가능한 이슈 유형 나열

    • OAuth 챌린지 범위: repo, read:org
    • owner: 저장소 또는 조직의 계정 소유자. (문자열, 필수)
    • repo: 저장소 이름. 제공되면 이 특정 저장소의 이슈 유형을 반환합니다. 생략하면 조직 수준 이슈 유형을 직접 반환합니다. (문자열, 선택 사항)
  • list_issues - 이슈 나열

    • OAuth 챌린지 범위: repo
    • after: 페이지네이션용 커서. 이전 응답의 커서를 사용하세요. (문자열, 선택 사항)
    • direction: 정렬 방향. 제공되면 'orderBy'도 제공해야 합니다. (문자열, 선택 사항)
    • field_filters: 사용자 지정 이슈 필드 값으로 필터링. 각 항목은 field_name과 value를 사용합니다. 서버는 필드를 조회하고 값을 해당 유형(단일 선택 옵션 이름, 텍스트, 숫자 또는 YYYY-MM-DD 날짜)으로 변환합니다. (객체[], 선택 사항)
    • fields: 각 이슈에 대해 반환할 필드의 하위 집합. 생략하면 모든 필드가 반환됩니다. 특정 필드만 필요한 경우 응답 크기를 줄이는 데 사용하세요. 특히 'body' 및 'field_values'를 생략하면 결과당 가장 큰 데이터가 제거됩니다. (문자열[], 선택 사항)
    • labels: 라벨로 필터링 (문자열[], 선택 사항)
    • orderBy: 필드별로 이슈 정렬. 제공되면 'direction'도 제공해야 합니다. (문자열, 선택 사항)
    • owner: 저장소 소유자 (문자열, 필수)
    • perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • repo: 저장소 이름 (문자열, 필수)
    • since: 날짜로 필터링 (ISO 8601 타임스탬프) (문자열, 선택 사항)
    • state: 상태로 필터링, 제공되지 않으면 기본적으로 열린 이슈와 닫힌 이슈가 모두 반환됩니다 (문자열, 선택 사항)
  • search_issues - 이슈 검색

    • OAuth Challenge Scopes: repo
    • fields: 각 이슈 결과에 대해 반환할 필드의 하위 집합입니다. 생략하면 모든 필드가 반환됩니다. 특정 필드만 필요한 경우 응답 크기를 줄이는 데 사용하세요. 특히 'body', 'reactions', 'labels'를 생략하면 결과당 가장 큰 데이터가 제외됩니다. (string[], optional)
    • order: 정렬 순서 (string, optional)
    • owner: 선택적 저장소 소유자입니다. repo와 함께 제공되면 이 저장소의 이슈만 나열됩니다. (string, optional)
    • page: 페이지네이션용 페이지 번호 (최소 1) (number, optional)
    • perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (number, optional)
    • query: 자연어로 작성된 검색 쿼리입니다. 사용자가 대체 표현을 제공한 경우 OR로 연결하지 말고 일반 단어로 포함하세요. (string, required)
    • repo: 선택적 저장소 이름입니다. owner와 함께 제공되면 이 저장소의 이슈만 나열됩니다. (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'를 사용하세요. 이슈 계층 구조를 작성합니다. 하위 이슈를 새 상위 이슈로 이동하려면 add와 replace_parent=true를 사용하세요. 쓰기 가능한 상위 필드는 없습니다. (string, required)
    • owner: 저장소 소유자 (string, required)
    • replace_parent: true인 경우 하위 이슈의 현재 상위 이슈를 대체합니다. 'add' 메서드에서만 사용하세요. (boolean, optional)
    • repo: 저장소 이름 (string, required)
    • sub_issue_id: 추가할 하위 이슈의 ID입니다. ID는 이슈 번호와 다릅니다 (number, required)
  • update_issue_comment - 이슈 댓글 업데이트

    • OAuth Challenge Scopes: repo
    • body: 새 댓글 내용 (string, required)
    • comment_id: 업데이트할 이슈 또는 풀 리퀘스트 대화 댓글의 숫자 ID입니다. 풀 리퀘스트 리뷰 댓글 ID를 사용하지 마세요. (integer, required)
    • owner: 저장소 소유자 (string, required)
    • repo: 저장소 이름 (string, required)
tag 레이블
  • get_label - 저장소에서 특정 레이블 가져오기

    • OAuth Challenge Scopes: repo
    • name: 레이블 이름. (string, required)
    • owner: 저장소 소유자 (사용자 이름 또는 조직 이름) (string, required)
    • repo: 저장소 이름 (string, required)
  • label_write - 저장소 레이블에 대한 쓰기 작업

    • OAuth Challenge Scopes: repo
    • color: '#' 접두사가 없는 6자리 16진수 코드의 레이블 색상 (예: '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
    • after: 페이지네이션용 커서입니다. 이전 응답의 커서를 사용하세요. (string, optional)
    • owner: 저장소 소유자 (사용자 이름 또는 조직 이름) - 모든 작업에 필수입니다 (string, required)
    • perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (number, optional)
    • repo: 저장소 이름 - 모든 작업에 필수입니다 (string, required)
bell 알림
  • dismiss_notification - 알림 해제

    • OAuth Challenge Scopes: notifications
    • state: 알림의 새 상태 (read/done) (string, required)
    • threadID: 알림 스레드의 ID (string, required)
  • get_notification_details - 알림 세부 정보 가져오기

    • OAuth Challenge Scopes: notifications
    • notificationID: 알림의 ID (string, required)
  • list_notifications - 알림 나열

    • OAuth Challenge Scopes: notifications
    • before: 지정된 시간(ISO 8601 형식) 이전에 업데이트된 알림만 표시 (string, optional)
    • filter: 알림 필터링, 지정하지 않으면 기본값을 사용합니다. 읽은 알림은 사용자가 이미 확인한 알림입니다. 참여 중인 알림은 사용자가 댓글을 달았거나 생성한 이슈 또는 풀 리퀘스트와 같이 사용자가 직접 관련된 알림입니다. (string, optional)
    • owner: 선택적 저장소 소유자입니다. repo와 함께 제공되면 이 저장소의 알림만 나열됩니다. (string, optional)
    • page: 페이지네이션용 페이지 번호 (최소 1) (number, optional)
    • perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (number, optional)
    • repo: 선택적 저장소 이름입니다. owner와 함께 제공되면 이 저장소의 알림만 나열됩니다. (string, optional)
    • since: 지정된 시간(ISO 8601 형식) 이후에 업데이트된 알림만 표시 (string, optional)
  • manage_notification_subscription - 알림 구독 관리

    • OAuth Challenge Scopes: notifications
    • action: 수행할 작업: 알림 구독 무시, 시청 또는 삭제. (string, required)
    • notificationID: 알림 스레드의 ID. (string, required)
  • manage_repository_notification_subscription - 저장소 알림 구독 관리

    • OAuth Challenge Scopes: notifications
    • action: 수행할 작업: 저장소 알림 구독 무시, 시청 또는 삭제. (string, required)
    • owner: 저장소의 계정 소유자. (string, required)
    • repo: 저장소의 이름. (string, required)
  • mark_all_notifications_read - 모든 알림을 읽음으로 표시

    • OAuth Challenge Scopes: notifications
    • lastReadAt: 알림이 마지막으로 확인된 시점을 설명합니다 (선택 사항). 기본값: 현재 (string, optional)
    • owner: 선택적 저장소 소유자입니다. repo와 함께 제공되면 이 저장소의 알림만 읽음으로 표시됩니다. (string, optional)
    • repo: 선택적 저장소 이름입니다. owner와 함께 제공되면 이 저장소의 알림만 읽음으로 표시됩니다. (string, optional)
organization 조직
  • search_orgs - 조직 검색
    • OAuth Challenge Scopes: read:org
    • order: 정렬 순서 (string, optional)
    • page: 페이지네이션용 페이지 번호 (최소 1) (number, optional)
    • perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (number, optional)
    • query: 조직 검색 쿼리. 예: 'microsoft', 'location:california', 'created:>=2025-01-01'. 검색은 자동으로 type:org로 범위가 지정됩니다. (string, required)
    • sort: 카테고리별 정렬 필드 (string, optional)
project 프로젝트
  • projects_get - GitHub Projects 리소스 세부 정보 가져오기

    • OAuth Challenge Scopes: read:project
    • field_id: 필드의 ID입니다. 'get_project_field' 메서드에 필요합니다. (number, optional)
    • field_names: 프로젝트 항목을 가져올 때 응답에 포함할 필드 이름의 특정 목록 (예: ["Status", "Priority"]). 서버 측에서 필드 ID로 확인됩니다. 사람이 읽을 수 있는 이름만 알 때 'fields' 대신 이 값을 전달하세요. 'fields'와 상호 배타적입니다. 둘 중 하나만 제공하세요. 'get_project_item' 메서드에만 사용됩니다. (string[], optional)
    • fields: 프로젝트 항목을 가져올 때 응답에 포함할 필드 ID의 특정 목록 (예: ["102589", "985201", "169875"]). 'fields' 또는 'field_names'가 모두 제공되지 않으면 제목 필드만 포함됩니다. 'field_names'와 상호 배타적입니다. 둘 중 하나만 제공하세요. 'get_project_item' 메서드에만 사용됩니다. (string[], optional)
    • item_id: 항목의 ID입니다. 'get_project_item' 메서드에 필요합니다. (number, optional)
    • method: 실행할 메서드 (string, required)
    • owner: 소유자 (사용자 또는 조직 로그인). 이름은 대소문자를 구분하지 않습니다. (string, optional)
    • owner_type: 소유자 유형 (user 또는 org). 제공되지 않으면 자동으로 감지됩니다. (string, optional)
    • project_number: 프로젝트의 번호. (number, optional)
    • status_update_id: 프로젝트 상태 업데이트의 노드 ID입니다. 'get_project_status_update' 메서드에 필요합니다. (string, optional)
    • view_id: 프로젝트 보기의 노드 ID입니다. 'get_project_view' 메서드에 필요합니다. (string, optional)
  • projects_list - GitHub Projects 리소스 나열

    • OAuth Challenge Scopes: read: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: 소유자 유형(사용자 또는 조직). 제공하지 않으면 자동으로 둘 다 시도. (문자열, 선택)
    • perPage: 페이지당 결과 수(최대 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 Scopes: project
    • body: 상태 업데이트 본문(마크다운). 'create_project_status_update' 메서드에 사용. (문자열, 선택)
    • field_name: 반복 필드 이름(예: 'Sprint'). 'create_iteration_field' 메서드에 필수. (문자열, 선택)
    • filter: 저장된 보기 필터; 업데이트 시 생략하면 유지되고, null을 전달하면 지움. (문자열 | 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개 항목. (객체 배열, 선택)
    • iteration_duration: 필드 반복 기간(일)(예: 주간 7, 격주 14). 'create_iteration_field' 메서드에 필수. (숫자, 선택)
    • iterations: 'create_iteration_field' 메서드의 사용자 지정 반복. 기간이 다른 반복, 사이에 휴식, 또는 특정 제목이 필요한 경우에만 설정. 그렇지 않으면 생략: GitHub가 'start_date'부터 'iteration_duration'일의 반복 3개를 자동 생성하며, 대부분의 경우 이 방법이 적합. (객체 배열, 선택)
    • layout: 보기 레이아웃; 보기 생성 시 필수. (문자열, 선택)
    • method: 실행할 메서드 (문자열, 필수)
    • name: 보기 이름; 보기 생성 시 필수. (문자열, 선택)
    • owner: 프로젝트 소유자(사용자 또는 조직 로그인). 이름은 대소문자를 구분하지 않음. (문자열, 필수)
    • owner_type: 소유자 유형(사용자 또는 조직). '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: 적용할 필드/값, {"id": 123, "value": ...} 또는 {"name": "Status", "value": ...} 형식; null은 필드를 지움. 'update_project_item' 및 'update_project_items'에 필수이며, 하나의 최상위 필드/값이 배치의 모든 항목에 적용. 'update_project_item'의 SINGLE_SELECT 필드의 경우 이름 형식은 옵션 이름을 허용하고, ID 형식은 옵션 ID를 기대. (객체, 선택)
    • view_id: 업데이트 또는 삭제할 프로젝트 보기 노드 ID; owner/project_number에 속해야 함. (문자열, 선택)
    • visible_field_names: 생성 시 표시하거나 업데이트 시 교체할 순서가 있는 프로젝트 필드 이름; 업데이트 시 생략하면 유지되고, []를 전달하면 초기화. visible_fields와 상호 배타적. Roadmap은 []만 허용. (문자열 배열, 선택)
    • visible_fields: 생성 시 표시하거나 업데이트 시 교체할 순서가 있는 프로젝트 필드 데이터베이스 ID; 업데이트 시 생략하면 유지되고, []를 전달하면 초기화. visible_field_names와 상호 배타적. Roadmap은 []만 허용. (문자열 배열, 선택)
git-pull-request 풀 리퀘스트
  • add_comment_to_pending_review - 요청자의 최신 보류 중인 풀 리퀘스트 리뷰에 리뷰 댓글 추가

    • OAuth Challenge Scopes: repo
    • body: 리뷰 댓글 텍스트 (문자열, 필수)
    • line: 댓글이 적용되는 풀 리퀘스트 diff의 blob 줄. 여러 줄 댓글의 경우 범위의 마지막 줄 (숫자, 선택)
    • owner: 리포지토리 소유자 (문자열, 필수)
    • path: 댓글이 필요한 파일의 상대 경로 (문자열, 필수)
    • pullNumber: 풀 리퀘스트 번호 (숫자, 필수)
    • repo: 리포지토리 이름 (문자열, 필수)
    • side: 댓글을 달 diff 쪽. LEFT는 이전 상태, RIGHT는 새 상태를 나타냄 (문자열, 선택)
    • startLine: 여러 줄 댓글의 경우 댓글이 적용되는 범위의 첫 번째 줄 (숫자, 선택)
    • startSide: 여러 줄 댓글의 경우 댓글이 적용되는 diff의 시작 쪽. LEFT는 이전 상태, RIGHT는 새 상태를 나타냄 (문자열, 선택)
    • subjectType: 댓글이 대상으로 하는 수준 (문자열, 필수)
  • add_reply_to_pull_request_comment - 풀 리퀘스트 댓글에 답글 추가

    • OAuth Challenge Scopes: repo
    • body: 답글 텍스트. reaction이 제공되지 않으면 필수. (문자열, 선택)
    • commentId: 답글을 달거나 반응할 풀 리퀘스트 리뷰 댓글의 숫자 ID. #discussion_r... 앵커의 번호를 사용하고 GraphQL 스레드 노드 ID(PRRT_...)는 사용하지 않음. (숫자, 필수)
    • owner: 리포지토리 소유자 (문자열, 필수)
    • pullNumber: 풀 리퀘스트 번호. body가 제공될 때 필수. (숫자, 선택)
    • reaction: 추가할 이모지 반응. body가 제공되지 않으면 필수. (문자열, 선택)
    • repo: 리포지토리 이름 (문자열, 필수)
  • create_pull_request - 새 풀 리퀘스트 열기

    • OAuth Challenge Scopes: repo
    • MCP App UI: ui://github-mcp-server/pr-write
    • base: 병합할 브랜치 (문자열, 필수)
    • body: PR 설명 (문자열, 선택)
    • draft: 초안 PR로 생성 (부울, 선택)
    • head: 변경 사항이 포함된 브랜치 (문자열, 필수)
    • maintainer_can_modify: 유지 관리자 편집 허용 (부울, 선택)
    • owner: 리포지토리 소유자 (문자열, 필수)
    • repo: 리포지토리 이름 (문자열, 필수)
    • reviewers: 리뷰를 요청할 GitHub 사용자 이름 또는 ORG/team-slug 팀 리뷰어 (문자열 배열, 선택)
    • title: PR 제목 (문자열, 필수)
  • list_pull_requests - 풀 리퀘스트 나열

    • OAuth Challenge Scopes: repo
    • base: 기본 브랜치로 필터링 (문자열, 선택)
    • direction: 정렬 방향 (문자열, 선택)
    • fields: 각 풀 리퀘스트에 대해 반환할 필드 하위 집합. 생략하면 모든 필드가 반환. 특정 필드만 필요할 때 응답 크기를 줄이려면 사용; 특히 'body'를 생략하면 결과당 가장 큰 데이터가 제거. (문자열 배열, 선택)
    • head: 헤드 사용자/조직 및 브랜치로 필터링 (문자열, 선택)
    • owner: 리포지토리 소유자 (문자열, 필수)
    • page: 페이지네이션 페이지 번호(최소 1) (숫자, 선택)
    • perPage: 페이지네이션 페이지당 결과 수(최소 1, 최대 100) (숫자, 선택)
    • repo: 리포지토리 이름 (문자열, 필수)
    • sort: 정렬 기준 (문자열, 선택)
    • state: 상태로 필터링 (문자열, 선택)
  • merge_pull_request - 풀 리퀘스트 병합

    • OAuth Challenge Scopes: repo
    • commit_message: 병합 커밋의 추가 세부 정보 (문자열, 선택)
    • commit_title: 병합 커밋 제목 (문자열, 선택)
    • expectedHeadSha: 풀 리퀘스트 HEAD ref의 예상 SHA (문자열, 선택)
    • merge_method: 병합 방법 (문자열, 선택)
    • owner: 리포지토리 소유자 (문자열, 필수)
    • pullNumber: 풀 리퀘스트 번호 (숫자, 필수)
    • repo: 리포지토리 이름 (문자열, 필수)
  • pull_request_read - 단일 풀 리퀘스트의 세부 정보 가져오기

    • OAuth 챌린지 범위: repo
    • after: 페이지네이션 커서, get_review_comments 메서드에서만 사용됩니다. 이전 페이지의 PageInfo에서 endCursor를 전달하여 다음 페이지를 가져옵니다. (문자열, 선택 사항)
    • method: GitHub에서 가져올 풀 리퀘스트 데이터를 지정하는 작업. 가능한 옵션:
      1. get - 특정 풀 리퀘스트의 세부 정보 가져오기.
      2. get_diff - 풀 리퀘스트의 diff 가져오기.
      3. get_status - 풀 리퀘스트의 헤드 커밋에 대한 결합된 커밋 상태 가져오기.
      4. get_files - 풀 리퀘스트에서 변경된 파일 목록 가져오기. 페이지네이션 매개변수와 함께 사용하여 반환되는 결과 수를 제어합니다.
      5. get_commits - 풀 리퀘스트의 커밋 목록 가져오기. 페이지네이션 매개변수와 함께 사용하여 반환되는 결과 수를 제어합니다.
      6. get_review_comments - 풀 리퀘스트의 리뷰 스레드 가져오기. 각 스레드에는 풀 리퀘스트 리뷰 중 동일한 코드 위치에 대해 논리적으로 그룹화된 리뷰 코멘트가 포함됩니다. 스레드 메타데이터와 nullable한 현재 및 원본 줄 범위 좌표(line, start_line, original_line, original_start_line)가 포함된 코멘트를 반환합니다. 현재 좌표는 오래된 코멘트와 같이 사용할 수 없을 때 생략됩니다. 커서 기반 페이지네이션(perPage, after)을 사용하여 결과를 제어합니다.
      7. get_reviews - 풀 리퀘스트의 리뷰 가져오기. 리뷰 코멘트를 요청할 때는 get_review_comments 메서드를 사용하세요. 페이지네이션 매개변수와 함께 사용하여 반환되는 결과 수를 제어합니다.
      8. get_comments - 풀 리퀘스트의 코멘트 가져오기. 사용자가 특별히 리뷰 코멘트를 원하지 않는 경우 이 옵션을 사용하세요. 페이지네이션 매개변수와 함께 사용하여 반환되는 결과 수를 제어합니다.
      9. get_check_runs - 풀 리퀘스트의 헤드 커밋에 대한 체크 실행 가져오기. 체크 실행은 PR에서 실행되는 개별 CI/CD 작업 및 검사입니다. (문자열, 필수)
    • owner: 리포지토리 소유자 (문자열, 필수)
    • page: 페이지네이션 페이지 번호 (최소 1) (숫자, 선택 사항)
    • perPage: 페이지네이션 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • pullNumber: 풀 리퀘스트 번호 (숫자, 필수)
    • repo: 리포지토리 이름 (문자열, 필수)
  • pull_request_review_write - 풀 리퀘스트 리뷰에 대한 쓰기 작업 (생성, 제출, 삭제)

    • OAuth 챌린지 범위: repo
    • body: 리뷰 코멘트 텍스트 (문자열, 선택 사항)
    • commitID: 리뷰할 커밋의 SHA (문자열, 선택 사항)
    • event: 수행할 리뷰 작업. (문자열, 선택 사항)
    • method: 풀 리퀘스트 리뷰에 수행할 쓰기 작업. (문자열, 필수)
    • owner: 리포지토리 소유자 (문자열, 필수)
    • pullNumber: 풀 리퀘스트 번호 (숫자, 필수)
    • repo: 리포지토리 이름 (문자열, 필수)
    • threadId: 리뷰 스레드의 노드 ID (예: PRRT_kwDOxxx). resolve_thread 및 unresolve_thread 메서드에 필요합니다. 스레드 ID는 pull_request_read에서 get_review_comments 메서드로 가져옵니다. (문자열, 선택 사항)
  • search_pull_requests - 풀 리퀘스트 검색

    • OAuth 챌린지 범위: repo
    • fields: 각 풀 리퀘스트 결과에 대해 반환할 필드의 하위 집합. 생략하면 모든 필드가 반환됩니다. 특정 필드만 필요한 경우 응답 크기를 줄이기 위해 사용합니다. 특히 'body', 'reactions', 'labels'를 생략하면 결과당 가장 큰 데이터가 줄어듭니다. (문자열[], 선택 사항)
    • order: 정렬 순서 (문자열, 선택 사항)
    • owner: 선택적 리포지토리 소유자. repo와 함께 제공되면 이 리포지토리의 풀 리퀘스트만 나열됩니다. (문자열, 선택 사항)
    • page: 페이지네이션 페이지 번호 (최소 1) (숫자, 선택 사항)
    • perPage: 페이지네이션 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • query: GitHub 풀 리퀘스트 검색 구문을 사용한 검색 쿼리 (문자열, 필수)
    • repo: 선택적 리포지토리 이름. owner와 함께 제공되면 이 리포지토리의 풀 리퀘스트만 나열됩니다. (문자열, 선택 사항)
    • sort: 카테고리 일치 수에 따른 정렬 필드, 기본값은 최적 일치 (문자열, 선택 사항)
  • update_pull_request - 풀 리퀘스트 편집

    • OAuth 챌린지 범위: repo
    • MCP 앱 UI: ui://github-mcp-server/pr-edit
    • base: 새 기본 브랜치 이름 (문자열, 선택 사항)
    • body: 새 설명 (문자열, 선택 사항)
    • draft: 풀 리퀘스트를 초안(true) 또는 리뷰 준비 완료(false)로 표시 (불리언, 선택 사항)
    • maintainer_can_modify: 유지보수자 편집 허용 (불리언, 선택 사항)
    • owner: 리포지토리 소유자 (문자열, 필수)
    • pullNumber: 업데이트할 풀 리퀘스트 번호 (숫자, 필수)
    • repo: 리포지토리 이름 (문자열, 필수)
    • reviewers: 리뷰를 요청할 GitHub 사용자 이름 또는 ORG/팀-슬러그 팀 리뷰어 (문자열[], 선택 사항)
    • state: 새 상태 (문자열, 선택 사항)
    • title: 새 제목 (문자열, 선택 사항)
  • update_pull_request_branch - 풀 리퀘스트 브랜치 업데이트

    • OAuth 챌린지 범위: repo
    • expectedHeadSha: 풀 리퀘스트의 HEAD ref의 예상 SHA (문자열, 선택 사항)
    • owner: 리포지토리 소유자 (문자열, 필수)
    • pullNumber: 풀 리퀘스트 번호 (숫자, 필수)
    • repo: 리포지토리 이름 (문자열, 필수)
repo 리포지토리
  • create_branch - 브랜치 생성

    • OAuth 챌린지 범위: repo
    • branch: 새 브랜치 이름 (문자열, 필수)
    • from_branch: 소스 브랜치 (기본값은 리포지토리 기본값) (문자열, 선택 사항)
    • owner: 리포지토리 소유자 (문자열, 필수)
    • repo: 리포지토리 이름 (문자열, 필수)
  • create_or_update_file - 파일 생성 또는 업데이트

    • OAuth 챌린지 범위: repo, workflow
    • allow_symlink_write: 심볼릭 링크 자체를 업데이트하려면 true로 설정합니다. 콘텐츠는 새 대상 경로여야 합니다. (불리언, 선택 사항)
    • branch: 파일을 생성/업데이트할 브랜치 (문자열, 필수)
    • content: 파일 콘텐츠, 작성된 후 표시되어야 하는 그대로의 정확한 내용. base64로 인코딩하지 마세요. 이 서버가 REST API를 호출하기 전에 인코딩합니다. (문자열, 필수)
    • message: 커밋 메시지 (문자열, 필수)
    • owner: 리포지토리 소유자 (사용자 이름 또는 조직) (문자열, 필수)
    • path: 파일을 생성/업데이트할 경로 (문자열, 필수)
    • repo: 리포지토리 이름 (문자열, 필수)
    • sha: 교체되는 파일의 blob SHA. 파일이 이미 존재하는 경우 필수입니다. 동일한 소유자, 리포지토리 및 경로로 get_file_contents를 사용하고 ref를 이 도구의 브랜치 값으로 설정하여 가져옵니다. (문자열, 선택 사항)
  • create_repository - 리포지토리 생성

    • OAuth 챌린지 범위: repo
    • autoInit: README로 초기화 (불리언, 선택 사항)
    • description: 리포지토리 설명 (문자열, 선택 사항)
    • name: 리포지토리 이름 (문자열, 필수)
    • organization: 리포지토리를 생성할 조직 (개인 계정에 생성하려면 생략) (문자열, 선택 사항)
    • private: 리포지토리가 비공개여야 하는지 여부. 생략하면 기본값은 true(비공개)입니다. (불리언, 선택 사항)
  • delete_file - 파일 삭제

    • OAuth 챌린지 범위: repo, workflow
    • branch: 파일을 삭제할 브랜치 (문자열, 필수)
    • message: 커밋 메시지 (문자열, 필수)
    • owner: 리포지토리 소유자 (사용자 이름 또는 조직) (문자열, 필수)
    • path: 삭제할 파일의 경로 (문자열, 필수)
    • repo: 리포지토리 이름 (문자열, 필수)
  • delete_repository - 리포지토리 삭제

    • OAuth 챌린지 범위: delete_repo, repo
    • owner: 리포지토리 소유자 (사용자 이름 또는 조직) (문자열, 필수)
    • repo: 리포지토리 이름 (문자열, 필수)
  • fork_repository - 리포지토리 포크

    • OAuth 챌린지 범위: repo
    • organization: 포크할 조직 (문자열, 선택 사항)
    • owner: 리포지토리 소유자 (문자열, 필수)
    • repo: 리포지토리 이름 (문자열, 필수)
  • get_commit - 커밋 세부 정보 가져오기

    • OAuth 챌린지 범위: repo
    • detail: 변경된 파일에 포함할 세부 정보 수준. "none"은 통계와 파일을 완전히 생략합니다. "stats"(기본값)는 파일별 메타데이터(파일 이름, 상태, 코드 줄 수(추가, 삭제, 변경))를 포함하며 패치 콘텐츠는 없습니다. "full_patch"는 각 파일의 통합 diff 콘텐츠를 추가로 포함하며 매우 클 수 있습니다. (문자열, 선택 사항)
    • owner: 리포지토리 소유자 (문자열, 필수)
    • page: 페이지네이션 페이지 번호 (최소 1) (숫자, 선택 사항)
    • perPage: 페이지네이션 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • repo: 리포지토리 이름 (문자열, 필수)
    • sha: 커밋 SHA, 브랜치 이름 또는 태그 이름 (문자열, 필수)
  • get_file_contents - 파일 또는 디렉토리 콘텐츠 가져오기

    • OAuth 챌린지 범위: repo
    • fields: 경로가 디렉토리일 때 각 항목에 대해 반환할 필드의 하위 집합. 생략하면 모든 필드가 반환됩니다. 경로가 단일 파일이면 무시됩니다. 디렉토리를 나열할 때 특정 필드만 필요한 경우 응답 크기를 줄이기 위해 사용합니다(예: 'name' 및 'type'만). (문자열[], 선택 사항)
    • owner: 리포지토리 소유자 (사용자 이름 또는 조직) (문자열, 필수)
    • path: 파일/디렉토리 경로 (문자열, 선택 사항)
    • ref: refs/tags/{tag}, refs/heads/{branch} 또는 refs/pull/{pr_number}/head와 같은 선택적 git refs 허용 (문자열, 선택 사항)
    • repo: 리포지토리 이름 (문자열, 필수)
    • 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 Challenge Scopes: repo
    • author: 커밋을 필터링할 작성자 사용자 이름 또는 이메일 주소 (문자열, 선택 사항)
    • fields: 각 커밋에 대해 반환할 필드의 하위 집합. 생략하면 모든 필드가 반환됩니다. 특정 필드만 필요한 경우 응답 크기를 줄이기 위해 사용합니다(예: 'sha' 및 'html_url'만). (문자열 배열, 선택 사항)
    • 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 Challenge Scopes: repo
    • fields: 각 릴리스에 대해 반환할 필드의 하위 집합. 생략하면 모든 필드가 반환됩니다. 특정 필드만 필요한 경우 응답 크기를 줄이기 위해 사용합니다. 특히 'body'를 생략하면 릴리스별 가장 큰 데이터가 제외됩니다. (문자열 배열, 선택 사항)
    • owner: 저장소 소유자 (문자열, 필수)
    • page: 페이지네이션용 페이지 번호 (최소 1) (숫자, 선택 사항)
    • perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • repo: 저장소 이름 (문자열, 필수)
  • list_repository_collaborators - 저장소 협업자 목록 조회

    • OAuth Challenge Scopes: repo
    • affiliation: 소속별 필터링. 다음 중 하나일 수 있습니다: 'outside' (외부 협업자), 'direct' (조직 구성원 여부와 관계없이 권한이 있는 모든 사용자), 'all' (모든 협업자). 기본값: 'all' (문자열, 선택 사항)
    • owner: 저장소 소유자 (문자열, 필수)
    • page: 페이지네이션용 페이지 번호 (기본값 1, 최소 1) (숫자, 선택 사항)
    • perPage: 페이지네이션용 페이지당 결과 수 (기본값 30, 최소 1, 최대 100) (숫자, 선택 사항)
    • repo: 저장소 이름 (문자열, 필수)
  • list_tags - 태그 목록 조회

    • OAuth Challenge Scopes: repo
    • owner: 저장소 소유자 (문자열, 필수)
    • page: 페이지네이션용 페이지 번호 (최소 1) (숫자, 선택 사항)
    • perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • repo: 저장소 이름 (문자열, 필수)
  • push_files - 저장소에 파일 푸시

    • OAuth Challenge Scopes: repo, workflow
    • branch: 푸시할 브랜치 (문자열, 필수)
    • files: 푸시할 파일 객체 배열. 각 객체는 path (문자열) 및 content (문자열)를 포함합니다 (객체 배열, 필수)
    • message: 커밋 메시지 (문자열, 필수)
    • owner: 저장소 소유자 (문자열, 필수)
    • repo: 저장소 이름 (문자열, 필수)
  • search_code - 코드 검색

    • OAuth Challenge Scopes: repo
    • fields: 각 코드 검색 결과에 대해 반환할 필드의 하위 집합. 생략하면 모든 필드가 반환됩니다. 특정 필드만 필요한 경우 응답 크기를 줄이기 위해 사용합니다. 특히 'repository' 및 'text_matches'를 생략하면 결과별 가장 큰 데이터가 제외됩니다. (문자열 배열, 선택 사항)
    • order: 결과 정렬 순서 (문자열, 선택 사항)
    • page: 페이지네이션용 페이지 번호 (최소 1) (숫자, 선택 사항)
    • perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • query: 검색 쿼리 (GitHub 코드 검색 REST). 용어 간 암시적 AND; 정확히 일치하려면 OR, NOT, "quoted phrase"을 지원합니다. 한정자: repo:owner/repo, org:, user:, language:, path:dir (접두사 일치), filename:exact.ext, extension:, in:file, in:path, size:, is:archived, is:fork. 최대 256자. 예: WithContext language:go org:github; "package main" repo:o/r; func extension:go path:cmd repo:o/r; NOT TODO language:go repo:o/r. (문자열, 필수)
    • sort: 정렬 필드 ('indexed'만 가능) (문자열, 선택 사항)
  • search_commits - 커밋 검색

    • OAuth Challenge Scopes: repo
    • order: 정렬 순서 (문자열, 선택 사항)
    • page: 페이지네이션용 페이지 번호 (최소 1) (숫자, 선택 사항)
    • perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • query: 커밋 검색 쿼리 (GitHub 커밋 검색 REST). 기본 브랜치의 커밋 메시지만 검색합니다. repo:owner/repo, org: 또는 user:로 검색 범위를 지정하세요 (범위 한정자 없이 쿼리하면 GitHub 전체에서 일치하며 일반적으로 원하는 결과가 아닙니다). 기타 한정자: author:, committer:, author-name:, committer-name:, author-email:, committer-email:, author-date:, committer-date: (>, <, >=, <=, YYYY-MM-DD..YYYY-MM-DD 범위 지원), merge:true|false, hash:, tree:, parent:, is:public. 예: repo:owner/repo fix panic; org:github author:defunkt committer-date:>=2024-01-01; "refactor cache" repo:o/r; hash:abc1234 repo:o/r. (문자열, 필수)
    • sort: 작성자 또는 커미터 날짜 기준 정렬 (기본값은 최적 일치) (문자열, 선택 사항)
  • search_repositories - 저장소 검색

    • OAuth Challenge Scopes: repo
    • minimal_output: 최소 저장소 정보 반환 (기본값: true). false인 경우 최신 클라이언트는 추가로 선별된 저장소 세부 정보를 받으며, 완전한 GitHub API 객체는 아닙니다. 레거시 클라이언트는 전체 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 Challenge Scopes: security_events
    • alertNumber: 경고 번호. (숫자, 필수)
    • owner: 저장소 소유자. (문자열, 필수)
    • repo: 저장소 이름. (문자열, 필수)
  • list_secret_scanning_alerts - 비밀 스캐닝 경고 목록 조회

    • OAuth Challenge Scopes: security_events
    • owner: 저장소 소유자. (문자열, 필수)
    • page: 페이지네이션용 페이지 번호 (최소 1) (숫자, 선택 사항)
    • perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • repo: 저장소 이름. (문자열, 필수)
    • resolution: 해결 상태별 필터링 (문자열, 선택 사항)
    • secret_type: 반환할 비밀 유형의 쉼표로 구분된 목록. 모든 기본 비밀 패턴이 반환됩니다. 일반 패턴을 반환하려면 매개변수에 토큰 이름을 전달하세요. (문자열, 선택 사항)
    • state: 상태별 필터링 (문자열, 선택 사항)
shield 보안 권고
  • get_global_security_advisory - 글로벌 보안 권고 조회

    • OAuth Challenge Scopes: security_events
    • ghsaId: GitHub 보안 권고 ID (형식: GHSA-xxxx-xxxx-xxxx). (문자열, 필수)
  • list_global_security_advisories - 글로벌 보안 권고 목록 조회

    • OAuth Challenge Scopes: 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 Challenge Scopes: security_events
    • direction: 정렬 방향. (문자열, 선택 사항)
    • org: 조직 로그인. (문자열, 필수)
    • sort: 정렬 필드. (문자열, 선택 사항)
    • state: 권고 상태별 필터링. (문자열, 선택 사항)
  • list_repository_security_advisories - 저장소 보안 권고 목록 조회

    • OAuth Challenge Scopes: security_events
    • direction: 정렬 방향. (문자열, 선택 사항)
    • owner: 저장소 소유자. (문자열, 필수)
    • repo: 저장소 이름. (문자열, 필수)
    • sort: 정렬 필드. (문자열, 선택 사항)
    • state: 권고 상태별 필터링. (문자열, 선택 사항)
star 스타게이저
  • list_starred_repositories - 별표 표시된 저장소 목록 조회

    • OAuth Challenge Scopes: repo
    • direction: 결과를 정렬할 방향. (문자열, 선택 사항)
    • page: 페이지네이션용 페이지 번호 (최소 1) (숫자, 선택 사항)
    • perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택 사항)
    • sort: 결과를 정렬하는 방법. 'created' (저장소에 별표가 표시된 시점) 또는 'updated' (저장소에 마지막으로 푸시된 시점) 중 하나일 수 있습니다. (문자열, 선택 사항)
    • username: 별표 표시된 저장소를 나열할 사용자 이름. 기본값은 인증된 사용자입니다. (문자열, 선택 사항)
  • star_repository - 저장소에 별표 표시

    • OAuth Challenge Scopes: repo
    • owner: 저장소 소유자 (문자열, 필수)
    • repo: 저장소 이름 (문자열, 필수)
  • unstar_repository - 저장소 별표 해제

    • OAuth Challenge Scopes: 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 범위 필터링에 의해 숨겨지지 않으므로, 토큰이 해당 도구를 사용할 수 없는 경우에도 이러한 도구가 계속 표시될 수 있습니다.
    • 조직 소유 Spaces의 경우, 세분화된 PAT는 소유 조직에 설치되어야 하며 organization_copilot_spaces: read을 포함해야 합니다.
    • 조직 소유 Space에 저장소 기반 리소스가 포함된 경우, 토큰은 모든 참조된 저장소에 대한 액세스 권한도 있어야 하며, 그렇지 않으면 Space가 존재하지 않는 것으로 처리될 수 있습니다.
  • get_copilot_space - Copilot Space 가져오기

    • owner: Space의 소유자. (문자열, 필수)
    • name: Space의 이름. (문자열, 필수)
  • list_copilot_spaces - Copilot Spaces 나열

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

ENV 변수를 사용하여 설명을 재정의할 수도 있습니다. 환경 변수 이름은 JSON 파일의 키와 동일하며, GITHUB_MCP_ 접두사가 붙고 모두 대문자로 표기됩니다.

예를 들어, TOOL_ADD_ISSUE_COMMENT_DESCRIPTION 도구를 재정의하려면 다음 환경 변수를 설정할 수 있습니다:

export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description"

서버 이름 및 제목 재정의

동일한 재정의 메커니즘을 사용하여 초기화 응답에서 MCP 서버의 name 및 title 필드를 사용자 지정할 수 있습니다. 이는 여러 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는 현재 불안정한 것으로 간주되며, 주요 변경 사항이 적용될 수 있습니다. 향후 안정성을 제공할 수 있습니다; 이점이 있는 사용 사례가 있으면 이슈를 제출해 주세요.

기여

기여를 환영합니다. 풀 리퀘스트를 열기 전에 기여 가이드를 읽고 설정, 테스트, 린팅 및 문서 생성 지침을 확인하세요.

지원

GitHub MCP 서버 사용에 대한 도움이 필요하면 지원 가이드를 참조하세요. 버그를 발견했거나 기능을 요청하려면 새 이슈를 열기 전에 기존 이슈를 검색하세요.

보안

공개 이슈를 통해 보안 취약점을 보고하지 마세요. 보안 정책의 지침에 따라 책임감 있게 취약점을 보고하세요.

라이선스

이 프로젝트는 MIT 오픈 소스 라이선스 조건에 따라 라이선스가 부여됩니다. 전체 약관은 MIT를 참조하세요.