GitHub MCP 서버
GitHub API를 위한 MCP 서버로, 파일 작업, 저장소 관리, 검색 기능 등을 제공합니다.
특징
자동 브랜치 생성 : 파일을 생성/업데이트하거나 변경 사항을 푸시할 때 브랜치가 없으면 자동으로 생성됩니다.
포괄적인 오류 처리 : 일반적인 문제에 대한 명확한 오류 메시지
Git 기록 보존 : 운영자는 강제 푸시 없이 적절한 Git 기록을 유지합니다.
일괄 작업 : 단일 파일 및 다중 파일 작업 모두 지원
고급 검색 : 코드, 이슈/PR 및 사용자 검색 지원
프로젝트 관리 : 프로젝트 생성, 열 관리, 카드 작업 등을 포함한 GitHub 프로젝트(클래식) 관리를 위한 완벽한 툴셋
도구
create_or_update_file저장소에서 단일 파일을 생성하거나 업데이트합니다.
입력:
owner(문자열): 저장소 소유자(사용자 이름 또는 조직)repo(문자열): 저장소 이름path(문자열): 파일을 생성/업데이트할 경로content(문자열): 파일의 내용message(문자열): 커밋 메시지branch(문자열): 파일을 생성/업데이트할 브랜치sha(선택적 문자열): 교체되는 파일의 SHA(업데이트용)
반환: 파일 내용 및 커밋 세부 정보
push_files단일 커밋에 여러 파일 푸시
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름branch(문자열): 푸시할 브랜치files(배열): 푸시할 파일, 각각path와contentmessage(문자열): 커밋 메시지
반환: 업데이트된 지점 참조
search_repositoriesGitHub 저장소 검색
입력:
query(문자열): 검색 쿼리page(선택적 숫자): 페이지 번호perPage(선택적 숫자): 페이지당 결과(최대 100개)
반환: 저장소 검색 결과
create_repository새로운 GitHub 저장소를 만듭니다
입력:
name(문자열): 저장소 이름description(선택적 문자열): 저장소 설명private(선택적 부울): 저장소를 비공개로 설정해야 하는지 여부autoInit(선택적 부울): README로 초기화
반환: 생성된 저장소 세부 정보
get_file_contents파일이나 디렉토리의 내용을 가져옵니다
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름path(문자열): 파일/디렉토리 경로branch(선택적 문자열): 콘텐츠를 가져올 지점
반환: 파일/디렉토리 내용
create_issue새로운 이슈를 생성하세요
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름title(문자열): 이슈 제목body(선택적 문자열): 문제 설명assignees(선택적 문자열[]): 할당할 사용자 이름labels(선택적 문자열[]): 추가할 레이블milestone(선택적 숫자): 마일스톤 번호
반환: 문제 세부 정보 생성됨
create_pull_request새로운 풀 리퀘스트를 만듭니다
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름title(문자열): PR 제목body(선택적 문자열): PR 설명head(문자열): 변경 사항을 포함하는 브랜치base(문자열): 병합할 브랜치draft(선택적 부울): PR 초안으로 생성maintainer_can_modify(선택적 부울): 유지 관리자 편집 허용
반환: 풀 리퀘스트 세부정보 생성됨
fork_repository저장소 포크하기
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름organization(선택적 문자열): 포크할 조직
반환: 포크된 저장소 세부 정보
create_branch새로운 지점을 만드세요
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름branch(문자열): 새 브랜치의 이름from_branch(선택적 문자열): 소스 브랜치(기본값은 repo 기본값)
반환: 생성된 브랜치 참조
list_issues
저장소 문제 나열 및 필터링
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름state(선택적 문자열): 상태('open', 'closed', 'all')로 필터링labels(선택적 문자열[]): 레이블로 필터링sort(선택적 문자열): ('생성됨', '업데이트됨', '댓글')로 정렬direction(선택적 문자열): 정렬 방향 ('asc', 'desc')since(선택적 문자열): 날짜(ISO 8601 타임스탬프)로 필터링page(선택 번호): 페이지 번호per_page(선택적 숫자): 페이지당 결과
반환: 문제 세부 정보 배열
update_issue
기존 문제 업데이트
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름issue_number(숫자): 업데이트할 이슈 번호title(선택 문자열): 새 제목body(선택적 문자열): 새로운 설명state(선택적 문자열): 새로운 상태('열림' 또는 '닫힘')labels(선택적 문자열[]): 새 레이블assignees(선택적 문자열[]): 새로운 담당자milestone(선택적 숫자): 새로운 마일스톤 숫자
반품: 업데이트된 문제 세부 정보
add_issue_comment
문제에 대한 의견을 추가하세요
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름issue_number(숫자): 의견을 제시할 호 번호body(문자열): 댓글 텍스트
반환: 생성된 댓글 세부 정보
search_code
GitHub 저장소에서 코드 검색
입력:
q(문자열): GitHub 코드 검색 구문을 사용한 검색 쿼리sort(선택적 문자열): 정렬 필드('인덱스'만 해당)order(선택적 문자열): 정렬 순서('asc' 또는 'desc')per_page(선택적 숫자): 페이지당 결과(최대 100개)page(선택 번호): 페이지 번호
반환: 저장소 컨텍스트가 포함된 코드 검색 결과
search_issues
이슈 검색 및 풀 리퀘스트
입력:
q(문자열): GitHub 이슈 검색 구문을 사용한 검색 쿼리sort(선택적 문자열): 정렬 필드(댓글, 반응, 생성 등)order(선택적 문자열): 정렬 순서('asc' 또는 'desc')per_page(선택적 숫자): 페이지당 결과(최대 100개)page(선택 번호): 페이지 번호
반환: 이슈 및 풀 리퀘스트 검색 결과
search_users
GitHub 사용자 검색
입력:
q(문자열): GitHub 사용자 검색 구문을 사용한 검색 쿼리sort(선택적 문자열): 정렬 필드(팔로워, 저장소, 가입)order(선택적 문자열): 정렬 순서('asc' 또는 'desc')per_page(선택적 숫자): 페이지당 결과(최대 100개)page(선택 번호): 페이지 번호
반환: 사용자 검색 결과
list_commits
저장소의 브랜치 커밋을 가져옵니다.
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름page(선택적 문자열): 페이지 번호per_page(선택적 문자열): 페이지당 레코드 수sha(선택적 문자열): 지점 이름
반환: 커밋 목록
get_issue
저장소 내의 이슈 내용을 가져옵니다.
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름issue_number(숫자): 검색할 이슈 번호
반환: Github 이슈 객체 및 세부 정보
delete_issue
GraphQL API를 사용하여 GitHub 저장소에서 이슈를 삭제합니다.
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름issue_number(숫자): 삭제할 이슈 번호
반환: 저장소 정보를 포함한 삭제 확인
get_pull_request
특정 풀 리퀘스트의 세부 정보 가져오기
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름pull_number(숫자): 풀 리퀘스트 번호
반환: diff 및 검토 상태를 포함한 풀 요청 세부 정보
list_pull_requests
저장소 풀 리퀘스트 나열 및 필터링
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름state(선택적 문자열): 상태('open', 'closed', 'all')로 필터링head(선택적 문자열): head 사용자/조직 및 branch로 필터링base(선택적 문자열): 기본 브랜치로 필터링sort(선택적 문자열): ('생성됨', '업데이트됨', '인기', '장기 실행됨')으로 정렬direction(선택적 문자열): 정렬 방향 ('asc', 'desc')per_page(선택적 숫자): 페이지당 결과(최대 100개)page(선택 번호): 페이지 번호
반환: 풀 리퀘스트 세부 정보 배열
create_pull_request_review
풀 리퀘스트에 대한 리뷰 작성
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름pull_number(숫자): 풀 리퀘스트 번호body(문자열): 리뷰 코멘트 텍스트event(문자열): 검토 작업('APPROVE', 'REQUEST_CHANGES', 'COMMENT')commit_id(선택적 문자열): 검토할 커밋의 SHAcomments(선택적 배열): 다음이 포함된 줄별 주석:path(문자열): 파일 경로position(숫자): diff에서의 줄 위치body(문자열): 댓글 텍스트
반품: 리뷰 세부 정보 생성됨
merge_pull_request
풀 리퀘스트 병합
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름pull_number(숫자): 풀 리퀘스트 번호commit_title(선택적 문자열): 병합 커밋의 제목commit_message(선택적 문자열): 병합 커밋에 대한 추가 세부 정보merge_method(선택적 문자열): 병합 방법('merge', 'squash', 'rebase')
반환: 병합 결과 세부 정보
get_pull_request_files
풀 리퀘스트에서 변경된 파일 목록 가져오기
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름pull_number(숫자): 풀 리퀘스트 번호
반환: 패치 및 상태 세부 정보가 포함된 변경된 파일 배열
get_pull_request_status
풀 리퀘스트에 대한 모든 상태 확인의 결합된 상태를 가져옵니다.
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름pull_number(숫자): 풀 리퀘스트 번호
반환: 결합된 상태 확인 결과 및 개별 확인 세부 정보
update_pull_request_branch
기본 브랜치의 최신 변경 사항으로 풀 리퀘스트 브랜치 업데이트(GitHub의 "브랜치 업데이트" 버튼과 동일)
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름pull_number(숫자): 풀 리퀘스트 번호expected_head_sha(선택적 문자열): 풀 요청의 HEAD 참조의 예상 SHA
반환: 브랜치가 업데이트되면 성공 메시지가 표시됩니다.
get_pull_request_comments
풀 리퀘스트에 대한 리뷰 코멘트 받기
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름pull_number(숫자): 풀 리퀘스트 번호
반환: 주석 텍스트, 작성자, diff의 위치와 같은 세부 정보가 포함된 풀 리퀘스트 검토 주석 배열
get_pull_request_reviews
풀 리퀘스트에 대한 리뷰 받기
입력:
owner(문자열): 저장소 소유자repo(문자열): 저장소 이름pull_number(숫자): 풀 리퀘스트 번호
반환: 검토 상태(승인됨, 변경 요청됨 등), 검토자 및 검토 본문과 같은 세부 정보가 포함된 풀 요청 검토 배열
create_project
GitHub 저장소에 새 프로젝트 만들기
입력:
owner(문자열): 저장소 소유자(사용자 이름 또는 조직)repo(문자열): 저장소 이름name(문자열): 프로젝트 이름body(선택적 문자열): 프로젝트 설명
반환: 생성된 프로젝트 세부 정보
get_project
특정 프로젝트에 대한 세부 정보를 얻으세요
입력:
owner(문자열): 저장소 소유자(사용자 이름 또는 조직)repo(문자열): 저장소 이름project_number(숫자): 프로젝트 번호
반환: 프로젝트 세부 정보
update_project
기존 프로젝트의 세부 정보 업데이트
입력:
project_id(숫자): 프로젝트의 고유 식별자name(선택적 문자열): 프로젝트의 새 이름body(선택적 문자열): 프로젝트에 대한 새로운 설명state(선택적 문자열): 프로젝트 상태('열림' 또는 '닫힘')
반환: 업데이트된 프로젝트 세부 정보
list_projects
GitHub 저장소의 모든 프로젝트 나열
입력:
owner(문자열): 저장소 소유자(사용자 이름 또는 조직)repo(문자열): 저장소 이름state(선택적 문자열): 프로젝트를 상태('열림', '닫힘', '모두')로 필터링합니다.page(선택적 숫자): 페이지 번호를 지정합니다(1부터 시작)per_page(선택적 숫자): 페이지당 결과 수(최대 100개)
반환: 프로젝트 세부 정보 배열
create_project_column
프로젝트에 새 열 만들기
입력:
owner(문자열): 저장소 소유자(사용자 이름 또는 조직)repo(문자열): 저장소 이름project_number(숫자): 프로젝트 번호name(문자열): 열의 이름
반환: 생성된 열 세부 정보
list_project_columns
프로젝트의 모든 열 나열
입력:
project_id(숫자): 프로젝트의 고유 식별자page(선택적 숫자): 페이지 번호를 지정합니다(1부터 시작)per_page(선택적 숫자): 페이지당 결과 수(최대 100개)
반환: 프로젝트 열 세부 정보 배열
update_project_column
기존 프로젝트 열 업데이트
입력:
column_id(숫자): 열의 고유 식별자name(문자열): 열의 새 이름
반환: 업데이트된 열 세부 정보
delete_project_column
프로젝트 열 삭제
입력:
column_id(숫자): 열의 고유 식별자
반환: 성공 메시지
add_card_to_column
프로젝트 열에 새 카드 추가
입력:
owner(문자열): 저장소 소유자(사용자 이름 또는 조직)repo(문자열): 저장소 이름column_id(문자열): 카드를 추가할 열의 IDcontent_type(문자열): 카드의 콘텐츠 유형('Issue', 'PullRequest', 'Note')content_id(선택적 숫자): 이슈 또는 풀 리퀘스트의 ID(content_type이 Issue 또는 PullRequest인 경우 필수)note(선택적 문자열): 카드의 메모 내용(content_type이 Note인 경우 필수)
반품: 카드 세부 정보 생성됨
list_column_cards
프로젝트 열에 있는 모든 카드 나열
입력:
column_id(숫자): 열의 고유 식별자archived_state(선택적 문자열): 카드 보관 상태('all', 'archived', 'not_archived')로 필터링page(선택적 숫자): 페이지 번호를 지정합니다(1부터 시작)per_page(선택적 숫자): 페이지당 결과 수(최대 100개)
반환: 카드 세부 정보 배열
move_card
카드를 다른 위치나 열로 이동
입력:
card_id(숫자): 카드의 고유 식별자position(문자열): 카드의 위치('top', 'bottom' 또는 'after:<card_id>')column_id(선택적 숫자): 카드를 이동할 열 ID
반환: 성공 메시지
delete_card
프로젝트에서 카드 삭제
입력:
card_id(숫자): 카드의 고유 식별자
반환: 성공 메시지
list_organization_projects
GitHub 조직의 모든 프로젝트를 나열합니다(저장소 수준이 아닌 조직 수준).
입력:
org(문자열): 조직 이름state(선택적 문자열): 프로젝트를 상태('열림', '닫힘', '모두')별로 필터링합니다.page(선택적 숫자): 페이지 번호per_page(선택적 숫자): 페이지당 결과 수(최대 100개)
반환: 조직 프로젝트 세부 정보 배열
Related MCP server: OSSInsight MCP Server
프로젝트 V2 도구(GitHub의 새로운 프로젝트 경험)
list_organization_projects_v2
GraphQL API를 사용하여 GitHub 조직의 프로젝트 V2 나열
입력:
org(문자열): 조직 이름first(선택적 숫자): 가져올 프로젝트 수 (최대 100개)after(선택적 문자열): 페이지 매김을 위한 커서orderBy(선택적 객체): 프로젝트를 정렬하는 방법
반환: 페이지 정보가 포함된 프로젝트 배열
get_project_v2
GraphQL API를 사용하여 GitHub 프로젝트 V2의 세부 정보 가져오기
입력:
id(문자열): 프로젝트의 노드 ID
반환: 필드 및 뷰를 포함한 자세한 프로젝트 정보
create_project_v2
GraphQL API를 사용하여 새로운 GitHub 프로젝트 V2를 만듭니다.
입력:
ownerId(문자열): 조직 또는 사용자의 노드 IDtitle(문자열): 프로젝트 제목description(선택 문자열): 프로젝트에 대한 설명
반환: 프로젝트 세부 정보 생성됨
update_project_v2
GraphQL API를 사용하여 GitHub 프로젝트 V2 업데이트
입력:
projectId(문자열): 프로젝트의 노드 IDtitle(선택 문자열): 프로젝트의 새 제목description(선택 문자열): 프로젝트에 대한 새로운 설명closed(선택적 부울): 프로젝트를 닫을지 여부
반환: 업데이트된 프로젝트 세부 정보
add_item_to_project_v2
GraphQL API를 사용하여 GitHub 프로젝트 V2에 이슈 또는 풀 리퀘스트 추가
입력:
projectId(문자열): 프로젝트의 노드 IDcontentId(문자열): 추가할 이슈 또는 풀 리퀘스트의 노드 ID
반품: 상품 상세정보 추가
list_project_v2_items
GraphQL API를 사용하여 GitHub 프로젝트 V2의 항목 나열
입력:
projectId(문자열): 프로젝트의 노드 IDfirst(선택적 숫자): 가져올 항목 수(최대 100개)after(선택적 문자열): 페이지 매김을 위한 커서filterBy(선택적 객체): 항목에 대한 필터
반환: 필드 값이 포함된 프로젝트 항목 배열
update_project_v2_item_field
GraphQL API를 사용하여 GitHub 프로젝트 V2의 항목에 대한 필드 값 업데이트
입력:
projectId(문자열): 프로젝트의 노드 IDitemId(문자열): 항목의 노드 IDfieldId(문자열): 필드의 노드 IDvalue(임의): 필드의 새 값
반품: 업데이트된 품목 세부 정보
프로젝트 관리 노트
지원 중단 경고 : GitHub에서 Projects(클래식)가 새로운 Projects 환경으로 대체되어 지원 중단된다고 발표했습니다. 도구 2739는 클래식 버전의 Projects에서 사용 가능하며, 향후 제거될 수 있습니다. 새로운 GitHub Projects 환경을 사용하려면 도구 4046을 대신 사용하세요.
검색 쿼리 구문
코드 검색
language:javascript: 프로그래밍 언어로 검색repo:owner/name: 특정 저장소에서 검색path:app/src: 특정 경로에서 검색extension:js: 파일 확장자로 검색예:
q: "import express" language:typescript path:src/
문제 검색
is:issue또는is:pr: 유형별 필터링is:open또는is:closed: 상태별 필터링label:bug: 라벨로 검색author:username: 작성자로 검색예:
q: "memory leak" is:issue is:open label:bug
사용자 검색
type:user또는type:org: 계정 유형별 필터링followers:>1000: 팔로워로 필터링location:London: 위치로 검색예:
q: "fullstack developer" location:London followers:>100
자세한 검색 구문은 GitHub의 검색 문서를 참조하세요.
설정
개인 액세스 토큰
적절한 권한이 있는 GitHub 개인 액세스 토큰을 만듭니다 .
개인 액세스 토큰 으로 이동하세요(GitHub 설정 > 개발자 설정)
이 토큰이 액세스할 수 있는 저장소를 선택하세요(공개, 모두 또는 선택)
repo범위("개인 저장소의 전체 제어")로 토큰을 생성합니다.또는 공개 저장소에서만 작업하는 경우
public_repo범위만 선택하세요.Projects V2 도구를 사용하려면
project범위도 포함해야 합니다.
생성된 토큰을 복사하세요
Claude Desktop과 함께 사용
Claude Desktop과 함께 사용하려면 claude_desktop_config.json 에 다음을 추가하세요.
도커
지엑스피1
엔피엑스
짓다
Docker 빌드:
특허
이 MCP 서버는 MIT 라이선스에 따라 라이선스가 부여됩니다. 즉, MIT 라이선스의 약관에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있습니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.