빠른 설치를 위해 위의 원클릭 설치 버튼 중 하나를 사용하세요. 해당 흐름을 완료한 후 에이전트 모드(Copilot Chat 텍스트 입력 옆에 위치)를 전환하면 서버가 시작됩니다. 원격 MCP 및 OAuth 지원을 위해 VS Code 1.101 이상(최신 버전)을 사용 중인지 확인하세요.
또는 VS Code를 수동으로 구성하려면 아래 예시에서 적절한 JSON 블록을 선택하여 호스트 구성에 추가하세요:
참고: 각 MCP 호스트 애플리케이션은 OAuth를 통한 원격 접근을 지원하기 위해 GitHub App 또는 OAuth App을 구성해야 합니다. 원격 MCP 서버를 지원하는 모든 호스트 애플리케이션은 PAT 인증으로 원격 GitHub 서버를 지원해야 합니다. 구성 세부 사항과 지원 수준은 호스트마다 다릅니다. 자세한 내용은 호스트 애플리케이션의 문서를 참조하세요.
구성
도구 세트 구성
원격 서버 구성, 도구 세트, 헤더 및 고급 사용에 대한 전체 세부 사항은 원격 서버 문서를 참조하세요. 이 파일은 VS Code 및 기타 MCP 호스트에서 원격 GitHub MCP 서버를 연결, 사용자 지정 및 설치하기 위한 포괄적인 지침과 예시를 제공합니다.
Docker가 설치된 후 Docker가 실행 중인지 확인해야 합니다. Docker 이미지는 ghcr.io/github/github-mcp-server에서 사용할 수 있습니다. 이미지는 공개되어 있습니다. 풀 중 오류가 발생하면 토큰이 만료되었을 수 있으므로 docker logout ghcr.io해야 합니다.
인증. 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 호스트에서 재사용하려면:
PAT를 환경 변수에 저장
export GITHUB_PAT=your_token_here
또는 .env 파일을 생성:
GITHUB_PAT=your_token_here
.env 파일 보호
# Add to .gitignore to prevent accidental commits
echo ".env" >> .gitignore
구성에서 토큰 참조
# 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을 호스트 이름으로 사용합니다.
다른 IDE(JetBrains, Visual Studio, Eclipse 등)의 GitHub Copilot에 설치
다음 JSON 블록 중 하나를 IDE의 MCP 설정에 추가하세요.
OAuth로 로그인(생성하거나 저장할 토큰 없음). github.com에서 공식 이미지에는 앱 자격 증명이 이미 포함되어 있으므로 직접 제공할 필요가 없습니다. 첫 사용 시 브라우저 기반 로그인을 실행하고 결과 토큰을 메모리에만 보관합니다. Docker에서는 컨테이너의 로그인 콜백에 도달할 수 있도록 루프백에 고정 콜백 포트를 게시해야 합니다:
참고: 로컬 MCP 서버를 지원하는 모든 호스트 애플리케이션은 로컬 GitHub MCP 서버에 접근할 수 있어야 합니다. 그러나 구체적인 구성 프로세스, 구문 및 통합의 안정성은 호스트 애플리케이션에 따라 다릅니다. 많은 경우 위의 예시와 유사한 형식을 따를 수 있지만, 이는 보장되지 않습니다. 올바른 MCP 구성 구문 및 설정 프로세스는 호스트 애플리케이션의 문서를 참조하십시오.
소스에서 빌드
Docker가 없는 경우, go build을 사용하여 cmd/github-mcp-server 디렉토리에서 바이너리를 빌드하고, GITHUB_PERSONAL_ACCESS_TOKEN 환경 변수에 토큰을 설정한 상태에서 github-mcp-server stdio 명령을 사용할 수 있습니다. 빌드 출력 위치를 지정하려면 -o 플래그를 사용하십시오. 서버가 빌드된 실행 파일을 command로 사용하도록 구성해야 합니다. 예:
GitHub MCP 서버는 --toolsets 플래그를 통해 특정 기능 그룹을 활성화하거나 비활성화하는 것을 지원합니다. 이를 통해 AI 도구에 사용 가능한 GitHub API 기능을 제어할 수 있습니다. 필요한 도구 세트만 활성화하면 LLM의 도구 선택에 도움이 되고 컨텍스트 크기를 줄일 수 있습니다.
도구 세트는 도구에 국한되지 않습니다. 해당되는 경우 관련 MCP 리소스 및 프롬프트도 포함됩니다.
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: 로그 끝에서 반환할 줄 수 (숫자, 선택)
코드 품질
get_code_quality_finding - 코드 품질 결과 가져오기
OAuth 챌린지 범위: repo
findingNumber: 결과의 번호. (number, 필수)
owner: 저장소의 소유자. (string, 필수)
repo: 저장소의 이름. (string, 필수)
코드 보안
get_code_scanning_alert - 코드 스캐닝 경고 가져오기
OAuth 챌린지 범위: security_events
alertNumber: 경고의 번호. (number, 필수)
owner: 저장소의 소유자. (string, 필수)
repo: 저장소의 이름. (string, 필수)
list_code_scanning_alerts - 코드 스캐닝 경고 목록
OAuth 챌린지 범위: security_events
owner: 저장소의 소유자. (string, 필수)
page: 페이지네이션용 페이지 번호 (최소 1) (number, 선택)
perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (number, 선택)
ref: 나열하려는 결과에 대한 Git 참조. (string, 선택)
repo: 저장소의 이름. (string, 필수)
severity: 심각도별 코드 스캐닝 경고 필터링 (string, 선택)
state: 상태별 코드 스캐닝 경고 필터링. 기본값은 open (string, 선택)
tool_name: 코드 스캐닝에 사용된 도구의 이름. (string, 선택)
컨텍스트
get_me - 내 사용자 프로필 가져오기
필수 매개변수 없음
get_team_members - 팀 구성원 가져오기
OAuth 챌린지 범위: read:org
org: 팀이 포함된 조직 로그인(소유자). (string, 필수)
team_slug: 팀 슬러그 (string, 필수)
get_teams - 팀 가져오기
OAuth 챌린지 범위: read:org
user: 팀을 가져올 사용자 이름. 제공하지 않으면 인증된 사용자를 사용합니다. (string, 선택)
Copilot
assign_copilot_to_issue - 이슈에 Copilot 할당
OAuth 챌린지 범위: repo
base_ref: 에이전트가 작업을 시작할 Git 참조(예: 브랜치). 지정하지 않으면 저장소의 기본 브랜치로 기본 설정됨 (string, 선택)
custom_instructions: 이슈 본문 외에 에이전트를 안내하는 선택적 사용자 지정 지침. 이슈 설명에 포함되지 않은 추가 컨텍스트, 제약 조건 또는 지침을 제공하려면 사용 (string, 선택)
issue_number: 이슈 번호 (number, 필수)
owner: 저장소 소유자 (string, 필수)
repo: 저장소 이름 (string, 필수)
request_copilot_review - Copilot 리뷰 요청
OAuth 챌린지 범위: repo
owner: 저장소 소유자 (string, 필수)
pullNumber: 풀 리퀘스트 번호 (number, 필수)
repo: 저장소 이름 (string, 필수)
Copilot 이슈 의도
assign_copilot_to_issue_with_intent - 의도를 지정하여 이슈에 Copilot 할당
OAuth 챌린지 범위: repo
base_ref: 에이전트가 작업을 시작할 Git 참조(예: 브랜치). 지정하지 않으면 저장소의 기본 브랜치로 기본 설정됨. is_suggestion이 true이면 무시됨 (string, 선택)
confidence: 이 선택에 대한 확신 정도. 명확한 신호 또는 명시적 사용자 요청이면 'HIGH', 일부 모호함이 있는 합리적 추론이면 'MEDIUM', 제한된 신호로 최선의 추측이면 'LOW'. (string, 필수)
custom_instructions: 이슈 본문 외에 에이전트를 안내하는 선택적 사용자 지정 지침. is_suggestion이 true이면 무시됨 (string, 선택)
is_suggestion: true이면 에이전트를 실행하지 않고 보류 중인 Copilot 할당 의도를 기록합니다. 이후 승인 시 실행 컨텍스트가 제공되며, 이 경우 base_ref와 custom_instructions는 무시됩니다. (boolean, 필수)
issue_number: 이슈 번호 (number, 필수)
owner: 저장소 소유자 (string, 필수)
rationale: 이슈에서 Copilot을 선택하게 된 구체적인 이유를 한 문장으로 설명. 구체적인 신호를 명시하세요(예: '명확한 수락 기준이 있는 잘 정의된 작업'). (string, 필수)
repo: 저장소 이름 (string, 필수)
Dependabot
get_dependabot_alert - Dependabot 경고 가져오기
OAuth 챌린지 범위: security_events
alertNumber: 경고의 번호. (number, 필수)
owner: 저장소의 소유자. (string, 필수)
repo: 저장소의 이름. (string, 필수)
list_dependabot_alerts - Dependabot 경고 목록
OAuth 챌린지 범위: security_events
after: 페이지네이션용 커서. 이전 응답의 커서를 사용하세요. (string, 선택)
owner: 저장소의 소유자. (string, 필수)
perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (number, 선택)
repo: 저장소의 이름. (string, 필수)
severity: 심각도별 Dependabot 경고 필터링 (string, 선택)
state: 상태별 Dependabot 경고 필터링. 기본값은 open (string, 선택)
토론
discussion_comment_write - 토론 댓글 관리
OAuth 챌린지 범위: repo
body: 댓글 내용 ('add', 'reply', 'update' 메서드에 필수) (string, 선택)
commentNodeID: 토론 댓글의 Node ID ('reply', 'update', 'delete', 'mark_answer', 'unmark_answer' 메서드에 필수). 'reply'의 경우 답글을 달 최상위 댓글입니다. GitHub Discussions는 한 단계 중첩만 지원합니다. (string, 선택)
discussionNumber: 토론 번호 ('add' 및 'reply' 메서드에 필수) (number, 선택)
method: 토론 댓글에 수행할 쓰기 작업.
옵션:
'add' - 토론에 새 최상위 댓글을 추가합니다.
'reply' - 최상위 토론 댓글에 답글을 답니다 (GitHub Discussions는 한 단계 중첩만 지원).
perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (number, 선택)
repo: 저장소 이름. 제공하지 않으면 조직 수준에서 토론을 조회합니다. (string, 선택)
Gists
create_gist - Gist 생성
OAuth 챌린지 범위: gist
content: 단일 파일 Gist 생성을 위한 콘텐츠 (string, 필수)
description: Gist 설명 (string, 선택)
filename: 단일 파일 Gist 생성을 위한 파일 이름 (string, 필수)
public: Gist 공개 여부 (boolean, 선택)
get_gist - Gist 콘텐츠 가져오기
gist_id: Gist의 ID (string, 필수)
list_gists - Gist 목록
page: 페이지네이션용 페이지 번호 (최소 1) (number, 선택)
perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (number, 선택)
since: 이 시간 이후 업데이트된 Gist만 (ISO 8601 타임스탬프) (string, 선택)
username: GitHub 사용자 이름 (인증된 사용자의 Gist는 생략) (string, 선택)
update_gist - Gist 업데이트
OAuth 챌린지 범위: gist
content: 파일 콘텐츠 (string, 필수)
description: 업데이트된 Gist 설명 (string, 선택)
filename: 업데이트하거나 생성할 파일 이름 (string, 필수)
gist_id: 업데이트할 Gist의 ID (string, 필수)
Git
- **get_repository_tree** - 저장소 트리 가져오기
- **OAuth Challenge Scopes**: `repo`
- `owner`: 저장소 소유자 (사용자 이름 또는 조직) (문자열, 필수)
- `path_filter`: 트리 결과를 필터링할 선택적 경로 접두사 (예: 'src/'는 src 디렉토리의 파일만 표시) (문자열, 선택)
- `recursive`: 이 매개변수를 true로 설정하면 트리가 참조하는 객체 또는 하위 트리를 반환합니다. 기본값은 false입니다 (부울, 선택)
- `repo`: 저장소 이름 (문자열, 필수)
- `tree_sha`: 트리의 SHA1 값 또는 ref(브랜치 또는 태그) 이름. 기본값은 저장소의 기본 브랜치입니다 (문자열, 선택)
이슈
add_issue_comment - 이슈 또는 풀 리퀘스트에 댓글 추가
OAuth Challenge Scopes: repo
body: 댓글 내용. 반응이 제공되지 않는 한 필수입니다. (문자열, 선택)
comment_id: 반응할 이슈 또는 풀 리퀘스트 댓글의 숫자 ID. 댓글에 반응할 때 사용하며, 이슈 또는 풀 리퀘스트 자체에 반응할 때는 생략합니다. body와 함께 사용할 수 없습니다. (정수, 선택)
issue_number: 댓글을 달거나 반응할 이슈 또는 풀 리퀘스트 번호. (숫자, 필수)
owner: 저장소 소유자 (문자열, 필수)
reaction: 추가할 이모지 반응. body가 제공되지 않는 한 필수입니다. (문자열, 선택)
repo: 저장소 이름 (문자열, 필수)
get_label - 저장소에서 특정 라벨 가져오기
OAuth Challenge Scopes: repo
name: 라벨 이름. (문자열, 필수)
owner: 저장소 소유자 (사용자 이름 또는 조직 이름) (문자열, 필수)
repo: 저장소 이름 (문자열, 필수)
issue_read - 이슈 세부 정보 가져오기
OAuth Challenge Scopes: repo
issue_number: 이슈 번호 (숫자, 필수)
method: 단일 이슈에 대해 수행할 읽기 작업.
옵션:
get - 이슈 세부 정보 가져오기. 최선 노력 계층 구조 플래그도 반환합니다 (has_parent, has_children); parent 및 sub_issues_summary는 선택적 관계 요약이며, closed_by_pull_requests는 이슈를 total_count로 닫도록 구성된 풀 리퀘스트와 최대 5개의 references를 요약합니다.
get_comments - 이슈 댓글 가져오기.
get_sub_issues - 이슈의 하위 이슈(자식) 가져오기.
get_parent - 이 이슈가 다른 이슈의 하위 이슈인 경우 상위 이슈 가져오기.
get_labels - 이슈에 할당된 라벨 가져오기.
(문자열, 필수)
owner: 저장소 소유자 (문자열, 필수)
page: 페이지네이션용 페이지 번호 (최소 1) (숫자, 선택)
perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택)
repo: 저장소 이름 (문자열, 필수)
issue_write - 이슈/풀 리퀘스트 생성 또는 업데이트
OAuth Challenge Scopes: 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: 저장소 소유자 (문자열, 필수)
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 Challenge Scopes: repo, read:org
owner: 저장소 또는 조직의 계정 소유자. 이름은 대소문자를 구분하지 않습니다. (문자열, 필수)
repo: 저장소 이름. 제공되면 이 특정 저장소(조직에서 상속)의 필드를 반환합니다. 생략하면 조직 수준 필드를 직접 반환합니다. (문자열, 선택)
list_issue_types - 사용 가능한 이슈 유형 나열
OAuth Challenge Scopes: repo, read:org
owner: 저장소 또는 조직의 계정 소유자. (문자열, 필수)
repo: 저장소 이름. 제공되면 이 특정 저장소의 이슈 유형을 반환합니다. 생략하면 조직 수준 이슈 유형을 직접 반환합니다. (문자열, 선택)
field_filters: 사용자 정의 이슈 필드 값으로 필터링. 각 항목은 field_name과 value를 가지며, 서버는 필드를 조회하고 값을 해당 유형(단일 선택 옵션 이름, 텍스트, 숫자 또는 YYYY-MM-DD 날짜)으로 변환합니다. (객체[], 선택)
fields: 각 이슈에 대해 반환할 필드의 하위 집합. 생략하면 모든 필드가 반환됩니다. 특정 필드만 필요할 때 응답 크기를 줄이려면 이 옵션을 사용하세요. 특히 'body'와 'field_values'를 생략하면 결과당 가장 큰 데이터가 제거됩니다. (문자열[], 선택)
perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택)
repo: 저장소 이름 (문자열, 필수)
since: 날짜로 필터링 (ISO 8601 타임스탬프) (문자열, 선택)
state: 상태로 필터링, 제공되지 않으면 기본적으로 열린 이슈와 닫힌 이슈가 모두 반환됩니다 (문자열, 선택)
search_issues - 이슈 검색
OAuth Challenge Scopes: repo
fields: 각 이슈 결과에 대해 반환할 필드의 하위 집합. 생략하면 모든 필드가 반환됩니다. 특정 필드만 필요할 때 응답 크기를 줄이려면 이 옵션을 사용하세요. 특히 'body', 'reactions' 및 'labels'를 생략하면 결과당 가장 큰 데이터가 제거됩니다. (문자열[], 선택)
order: 정렬 순서 (문자열, 선택)
owner: 선택적 저장소 소유자. repo와 함께 제공되면 이 저장소의 이슈만 나열됩니다. (문자열, 선택)
page: 페이지네이션용 페이지 번호 (최소 1) (숫자, 선택)
perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택)
query: 자연어로 된 검색 쿼리. 사용자가 대체 표현을 제공하면 OR로 연결하지 말고 일반 단어로 포함하세요. (문자열, 필수)
repo: 선택적 저장소 이름. owner와 함께 제공되면 이 저장소의 이슈만 나열됩니다. (문자열, 선택)
sort: 카테고리 일치 수 기준 정렬 필드, 기본값은 최적 일치 (문자열, 선택)
sub_issue_write - 하위 이슈 변경
OAuth Challenge Scopes: 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' 메서드에서만 사용하세요. (부울, 선택)
field_names: 프로젝트 항목을 가져올 때 응답에 포함할 특정 필드 이름 목록 (예: ["Status", "Priority"]). 서버 측에서 필드 ID로 확인됩니다. 사람이 읽을 수 있는 이름만 알 때 'fields' 대신 이 값을 전달하세요. 'fields'와 상호 배타적입니다. 둘 중 하나만 제공하세요. 'get_project_item' 메서드에만 사용됩니다. (문자열[], 선택)
fields: 프로젝트 항목을 가져올 때 응답에 포함할 특정 필드 ID 목록 (예: ["102589", "985201", "169875"]). 'fields'나 'field_names'가 모두 제공되지 않으면 제목 필드만 포함됩니다. 'field_names'와 상호 배타적입니다. 둘 중 하나만 제공하세요. 'get_project_item' 메서드에만 사용됩니다. (문자열[], 선택)
owner: 소유자 (사용자 또는 조직 로그인). 이름은 대소문자를 구분하지 않습니다. (문자열, 선택)
owner_type: 소유자 유형 (사용자 또는 조직). 제공되지 않으면 자동으로 감지됩니다. (문자열, 선택)
project_number: 프로젝트 번호. (숫자, 선택)
status_update_id: 프로젝트 상태 업데이트의 노드 ID. 'get_project_status_update' 메서드에 필요. (문자열, 선택)
view_id: 프로젝트 보기의 노드 ID. 'get_project_view' 메서드에 필요. (문자열, 선택)
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: 소유자 유형 (사용자 또는 조직). 제공되지 않으면 자동으로 둘 다 시도합니다. (문자열, 선택)
per_page: 페이지당 결과 수 (최대 50) (숫자, 선택)
project_number: 프로젝트 번호. 'list_project_fields', 'list_project_items', 'list_project_views' 및 'list_project_status_updates' 메서드에 필요. (숫자, 선택)
query: 필터/쿼리 문자열. list_projects의 경우: 제목 텍스트와 상태로 필터링 (예: "roadmap is:open"). list_project_items의 경우: GitHub의 프로젝트 필터링 구문을 사용한 고급 필터링. (문자열, 선택)
projects_write - GitHub Projects 관리
OAuth Challenge Scopes: project
body: 상태 업데이트의 본문 (마크다운). 'create_project_status_update' 메서드에 사용됩니다. (문자열, 선택)
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'에서 이슈 번호로 항목을 확인할 때도 허용됩니다. (문자열, 선택)
items: 최상위 'updated_field'로 업데이트할 항목. 'update_project_items'에 필요. 'update_project_item'을 루프로 호출하는 것보다 이 방법을 선호합니다. 각 항목은 정확히 하나의 참조 변형과 일치해야 합니다: 'node_id', 숫자 'item_id' 또는 'item_owner' + 'item_repo' + 'issue_number'. 호출당 최대 50개 항목. (객체[], 선택)
iterations: 'create_iteration_field' 메서드용 사용자 지정 반복. 기간이 다른 반복, 반복 사이의 휴식 또는 특정 제목이 필요한 경우에만 설정하세요. 그렇지 않으면 생략하세요: GitHub는 'start_date'부터 'iteration_duration'일의 세 가지 반복을 자동으로 생성하며, 대부분의 경우 이 방법이 올바른 선택입니다. (객체[], 선택)
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와 상호 배타적입니다. 로드맵은 []만 허용합니다. (문자열[], 선택)
visible_fields: 생성 시 표시하거나 업데이트 시 교체할 순서가 있는 프로젝트 필드 데이터베이스 ID; 업데이트 시 생략하면 유지되고, []를 전달하면 재설정됩니다. visible_field_names와 상호 배타적입니다. 로드맵은 []만 허용합니다. (문자열[], 선택)
Pull Requests
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
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: 병합 커밋의 제목 (문자열, 선택)
merge_method: 병합 방법 (문자열, 선택)
owner: 리포지토리 소유자 (문자열, 필수)
pullNumber: 풀 리퀘스트 번호 (숫자, 필수)
repo: 리포지토리 이름 (문자열, 필수)
pull_request_read - 단일 풀 리퀘스트의 세부 정보 가져오기
OAuth Challenge Scopes: repo
after: 페이지네이션용 커서, get_review_comments 메서드에서만 사용됩니다. 이전 페이지의 PageInfo에서 endCursor를 전달하여 다음 페이지를 가져옵니다. (문자열, 선택)
method: GitHub에서 검색할 풀 리퀘스트 데이터를 지정하는 작업.
가능한 옵션:
get - 특정 풀 리퀘스트의 세부 정보 가져오기.
get_diff - 풀 리퀘스트의 diff 가져오기.
get_status - 풀 리퀘스트의 헤드 커밋에 대한 결합된 커밋 상태 가져오기.
get_files - 풀 리퀘스트에서 변경된 파일 목록 가져오기. 페이지네이션 매개변수와 함께 사용하여 반환되는 결과 수를 제어하세요.
get_commits - 풀 리퀘스트의 커밋 목록 가져오기. 페이지네이션 매개변수와 함께 사용하여 반환되는 결과 수를 제어하세요.
get_review_comments - 풀 리퀘스트의 리뷰 스레드 가져오기. 각 스레드에는 풀 리퀘스트 리뷰 중 동일한 코드 위치에 대해 논리적으로 그룹화된 리뷰 코멘트가 포함됩니다. 메타데이터(isResolved, isOutdated, isCollapsed)와 관련 코멘트가 포함된 스레드를 반환합니다. 커서 기반 페이지네이션(perPage, after)을 사용하여 결과를 제어하세요.
get_reviews - 풀 리퀘스트의 리뷰 가져오기. 리뷰 코멘트를 요청할 때는 get_review_comments 메서드를 사용하세요. 페이지네이션 매개변수와 함께 사용하여 반환되는 결과 수를 제어하세요.
get_comments - 풀 리퀘스트의 코멘트 가져오기. 사용자가 특별히 리뷰 코멘트를 원하지 않는 경우 사용하세요. 페이지네이션 매개변수와 함께 사용하여 반환되는 결과 수를 제어하세요.
get_check_runs - 풀 리퀘스트의 헤드 커밋에 대한 체크 실행 가져오기. 체크 실행은 PR에서 실행되는 개별 CI/CD 작업 및 검사입니다.
(문자열, 필수)
owner: 리포지토리 소유자 (문자열, 필수)
page: 페이지네이션용 페이지 번호 (최소 1) (숫자, 선택)
perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택)
pullNumber: 풀 리퀘스트 번호 (숫자, 필수)
repo: 리포지토리 이름 (문자열, 필수)
pull_request_review_write - 풀 리퀘스트 리뷰에 대한 쓰기 작업 (생성, 제출, 삭제)
OAuth Challenge Scopes: 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 Challenge Scopes: repo
fields: 각 풀 리퀘스트 결과에 대해 반환할 필드의 하위 집합. 생략하면 모든 필드가 반환됩니다. 특정 필드만 필요할 때 응답 크기를 줄이려면 이를 사용하세요. 특히 'body', 'reactions', 'labels'를 생략하면 결과당 가장 큰 데이터가 제거됩니다. (문자열[], 선택)
order: 정렬 순서 (문자열, 선택)
owner: 선택적 리포지토리 소유자. repo와 함께 제공되면 이 리포지토리의 풀 리퀘스트만 나열됩니다. (문자열, 선택)
page: 페이지네이션용 페이지 번호 (최소 1) (숫자, 선택)
perPage: 페이지네이션용 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택)
query: GitHub 풀 리퀘스트 검색 구문을 사용한 검색 쿼리 (문자열, 필수)
repo: 선택적 리포지토리 이름. owner와 함께 제공되면 이 리포지토리의 풀 리퀘스트만 나열됩니다. (문자열, 선택)
sort: 카테고리 일치 수에 따른 정렬 필드, 기본값은 최적 일치 (문자열, 선택)
update_pull_request - 풀 리퀘스트 편집
OAuth Challenge Scopes: repo
base: 새 기본 브랜치 이름 (문자열, 선택)
body: 새 설명 (문자열, 선택)
draft: 풀 리퀘스트를 초안(true) 또는 리뷰 준비 완료(false)로 표시 (불리언, 선택)
maintainer_can_modify: 유지 관리자 편집 허용 (불리언, 선택)
owner: 리포지토리 소유자 (문자열, 필수)
pullNumber: 업데이트할 풀 리퀘스트 번호 (숫자, 필수)
repo: 리포지토리 이름 (문자열, 필수)
reviewers: 리뷰를 요청할 GitHub 사용자 이름 또는 ORG/team-slug 팀 리뷰어 (문자열[], 선택)
state: 새 상태 (문자열, 선택)
title: 새 제목 (문자열, 선택)
update_pull_request_branch - 풀 리퀘스트 브랜치 업데이트
OAuth Challenge Scopes: repo
expectedHeadSha: 풀 리퀘스트의 HEAD ref의 예상 SHA (문자열, 선택)
owner: 리포지토리 소유자 (문자열, 필수)
pullNumber: 풀 리퀘스트 번호 (숫자, 필수)
repo: 리포지토리 이름 (문자열, 필수)
Repositories
create_branch - 브랜치 생성
OAuth Challenge Scopes: repo
branch: 새 브랜치 이름 (문자열, 필수)
from_branch: 소스 브랜치 (기본값은 리포지토리 기본값) (문자열, 선택)
owner: 리포지토리 소유자 (문자열, 필수)
repo: 리포지토리 이름 (문자열, 필수)
create_or_update_file - 파일 생성 또는 업데이트
OAuth Challenge Scopes: repo, workflow
allow_symlink_write: 심볼릭 링크 자체를 업데이트하려면 true로 설정. 콘텐츠는 새 대상 경로여야 합니다. (불리언, 선택)
branch: 파일을 생성/업데이트할 브랜치 (문자열, 필수)
content: 파일의 콘텐츠, 작성된 후 표시되어야 하는 그대로. base64로 인코딩하지 마세요. 이 서버는 REST API를 호출하기 전에 인코딩합니다. (문자열, 필수)
message: 커밋 메시지 (문자열, 필수)
owner: 리포지토리 소유자 (사용자 이름 또는 조직) (문자열, 필수)
path: 파일을 생성/업데이트할 경로 (문자열, 필수)
repo: 리포지토리 이름 (문자열, 필수)
sha: 교체되는 파일의 blob SHA. 파일이 이미 존재하는 경우 필수. (문자열, 선택)
create_repository - 리포지토리 생성
OAuth Challenge Scopes: repo
autoInit: README로 초기화 (불리언, 선택)
description: 리포지토리 설명 (문자열, 선택)
name: 리포지토리 이름 (문자열, 필수)
organization: 리포지토리를 생성할 조직 (개인 계정에 생성하려면 생략) (문자열, 선택)
detail: 변경된 파일에 포함할 세부 정보 수준. "none"은 통계와 파일을 완전히 생략합니다. "stats" (기본값)는 파일별 메타데이터(파일 이름, 상태, 코드 줄 수(추가, 삭제, 변경))를 포함하며 패치 내용은 포함하지 않습니다. "full_patch"는 각 파일의 통합 diff 내용을 추가로 포함하며 매우 클 수 있습니다. (문자열, 선택)
owner: 저장소 소유자 (문자열, 필수)
page: 페이지네이션 페이지 번호 (최소 1) (숫자, 선택)
perPage: 페이지네이션 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택)
repo: 저장소 이름 (문자열, 필수)
sha: 커밋 SHA, 브랜치 이름 또는 태그 이름 (문자열, 필수)
get_file_contents - 파일 또는 디렉토리 내용 가져오기
OAuth Challenge Scopes: repo
fields: 경로가 디렉토리일 때 각 항목에 대해 반환할 필드의 하위 집합. 생략하면 모든 필드가 반환됩니다. 경로가 단일 파일일 때는 무시됩니다. 디렉토리를 나열할 때 특정 필드만 필요한 경우(예: 'name' 및 'type'만) 응답 크기를 줄이기 위해 사용합니다. (문자열[], 선택)
owner: 저장소 소유자 (사용자 이름 또는 조직) (문자열, 필수)
path: 파일/디렉토리 경로 (문자열, 선택)
ref: refs/tags/{tag}, refs/heads/{branch} 또는 refs/pull/{pr_number}/head와 같은 선택적 git ref 허용 (문자열, 선택)
repo: 저장소 이름 (문자열, 필수)
sha: 선택적 커밋 SHA 허용. 지정하면 ref 대신 사용됩니다 (문자열, 선택)
get_latest_release - 최신 릴리스 가져오기
OAuth Challenge Scopes: repo
owner: 저장소 소유자 (문자열, 필수)
repo: 저장소 이름 (문자열, 필수)
get_release_by_tag - 태그 이름으로 릴리스 가져오기
OAuth Challenge Scopes: repo
owner: 저장소 소유자 (문자열, 필수)
repo: 저장소 이름 (문자열, 필수)
tag: 태그 이름 (예: 'v1.0.0') (문자열, 필수)
get_tag - 태그 세부 정보 가져오기
OAuth Challenge Scopes: repo
owner: 저장소 소유자 (문자열, 필수)
repo: 저장소 이름 (문자열, 필수)
tag: 태그 이름 (문자열, 필수)
list_branches - 브랜치 목록
OAuth Challenge Scopes: 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 저장소 객체를 반환합니다. (불리언, 선택)
order: 정렬 순서 (문자열, 선택)
page: 페이지네이션 페이지 번호 (최소 1) (숫자, 선택)
perPage: 페이지네이션 페이지당 결과 수 (최소 1, 최대 100) (숫자, 선택)
query: 저장소 검색 쿼리. 예: 'machine learning in:name stars:>1000 language:python', 'topic:react', 'user:facebook'. 정밀한 필터링을 위한 고급 검색 구문을 지원합니다. (문자열, 필수)
sort: 필드별 저장소 정렬, 기본값은 최적 일치 (문자열, 선택)
비밀 보호
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: 상태별 필터링 (문자열, 선택)
보안 권고
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"). (문자열, 선택)
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: 권고 상태로 필터링합니다. (문자열, 선택)
Stargazers
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: 저장소 이름 (문자열, 필수)
Users
search_users - 사용자 검색
OAuth Challenge Scopes: 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 지원 문의, 풀 리퀘스트 관행, 저장소 유지 관리, GitHub Pages, GitHub Packages, GitHub Discussions, Copilot Spaces
query: 답변이 필요한 질문에 대한 사용자 입력. 이것은 최신 원본 편집되지 않은 사용자 메시지입니다. 사용자 메시지를 항상 그대로 두어야 하며, 절대 수정해서는 안 됩니다. (문자열, 필수)
읽기 전용 모드
서버를 읽기 전용 모드로 실행하려면 --read-only 플래그를 사용할 수 있습니다. 이렇게 하면 읽기 전용 도구만 제공되어 저장소, 이슈, 풀 리퀘스트 등에 대한 수정을 방지합니다.
잠금 모드는 서버가 공개 저장소에서 표시하는 콘텐츠를 제한합니다. 활성화되면 서버는 각 항목의 작성자가 저장소에 대한 푸시 액세스 권한이 있는지 확인합니다. 비공개 저장소는 영향을 받지 않으며, 협력자는 자신의 콘텐츠에 대한 전체 액세스 권한을 유지합니다.
잠금 모드는 신뢰할 수 없는 저장소 콘텐츠(이슈, 풀 리퀘스트, 댓글, 커밋 등)의 프롬프트 주입 위험을 줄이기 위한 최선의 노력 콘텐츠 필터입니다. 이는 인증 경계가 아닙니다: 기본 GitHub 자격 증명이 읽거나 쓸 수 있는 내용을 변경하지 않으며, 필터링된 도구 응답에서 제외된 콘텐츠는 동일한 자격 증명으로 다른 도구나 직접 GitHub API 액세스를 통해 여전히 접근할 수 있습니다.
의도적인 예외로, 소수의 신뢰할 수 있는 봇 계정(현재 github-actions[bot] 및 copilot)이 작성한 콘텐츠는 푸시 액세스 권한과 관계없이 항상 안전한 것으로 처리됩니다. 이는 잠금 모드에서 제외되었을 일상적인 자동화 출력(예: CI 생성 커밋 또는 댓글)을 필터링하지 않기 위함입니다.
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 플래그로 실행하여 현재 번역의 내보내기를 생성할 수 있습니다.
이 플래그는 사용자가 만든 번역/재정의를 보존하면서, 마지막 내보내기 이후 바이너리에 추가된 새 번역을 추가합니다.
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 Server 인스턴스를 실행할 때(예: github.com용 하나와 GitHub Enterprise Server용 하나) 에이전트가 서로 구분할 수 있도록 하는 데 유용합니다.