Integrations
Enables Git operations like creating branches, pushing changes, managing commits, and preserving Git history when performing file operations through the GitHub API.
Provides comprehensive GitHub API access, enabling file and repository management, code/issues/PRs/users search, branch creation, issue tracking, pull request workflows, and commit history retrieval through the GitHub platform.
GitHub Enterprise MCP 서버
GitHub API를 위한 MCP 서버로, 파일 작업, 저장소 관리, 검색 기능 등을 제공합니다.
특징
- 자동 브랜치 생성 : 파일을 생성/업데이트하거나 변경 사항을 푸시할 때 브랜치가 없으면 자동으로 생성됩니다.
- 포괄적인 오류 처리 : 일반적인 문제에 대한 명확한 오류 메시지
- Git 기록 보존 : 운영자는 강제 푸시 없이 적절한 Git 기록을 유지합니다.
- 일괄 작업 : 단일 파일 및 다중 파일 작업 모두 지원
- 고급 검색 : 코드, 이슈/PR 및 사용자 검색 지원
클라인 설치 가이드
이 가이드는 Cline에 GitHub Enterprise MCP 서버를 설치하고 구성하는 데 도움이 되며, Cline을 통해 직접 GitHub API 기능을 사용할 수 있도록 해줍니다.
필수 조건
- 시스템에 Node.js가 설치되어 있습니다
- 적절한 권한이 있는 GitHub 개인 액세스 토큰
- 시스템에 Cline이 설치되었습니다
설치 단계
1. 저장소 복제
지엑스피1
2. 종속성 설치 및 빌드
이렇게 하면 컴파일된 JavaScript 파일이 포함된 dist
디렉토리가 생성됩니다.
3. GitHub 개인 액세스 토큰 생성
- GitHub 개인 액세스 토큰 으로 이동하세요(GitHub 설정 > 개발자 설정)
- "새 토큰 생성"을 클릭하세요
- 이 토큰이 액세스할 수 있는 저장소를 선택하세요(공개, 모두 또는 선택)
repo
범위("개인 저장소의 전체 제어")로 토큰을 생성합니다.- 또는 공개 저장소에서만 작업하는 경우
public_repo
범위만 선택하세요.
- 또는 공개 저장소에서만 작업하는 경우
- 생성된 토큰을 복사하세요
4. Cline MCP 설정 구성
Cline VS Code 확장 프로그램용
- VS 코드 열기
- Cline MCP 설정 파일은 다음 위치에서 찾을 수 있습니다.
- Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
- macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- 리눅스:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- Windows:
mcpServers
개체에 GitHub Enterprise MCP 서버 구성을 추가합니다.
/absolute/path/to/github-enterprise-mcp/dist/index.js
를 빌드된 index.js 파일의 절대 경로로 바꿉니다.
Claude 데스크톱 앱용
- Claude Desktop 구성 파일은 다음 위치에서 찾을 수 있습니다.
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- 리눅스:
~/.config/Claude/claude_desktop_config.json
- Windows:
mcpServers
개체에 GitHub Enterprise MCP 서버 구성을 추가합니다.
5. 클라인을 다시 시작하세요
MCP 설정을 구성한 후 Cline(VS Code 또는 Claude Desktop)을 다시 시작하여 변경 사항을 적용합니다.
확인
GitHub Enterprise MCP 서버가 올바르게 설치 및 구성되었는지 확인하려면 Cline에게 GitHub 도구 중 하나를 사용하도록 요청하세요.
클라인은 search_repositories
도구를 사용하여 "react"라는 키워드로 저장소를 검색할 수 있어야 합니다.
클라인과의 대화형 설치
대화형 설치를 위해 다음 텍스트를 복사하여 Cline에 붙여넣으면 설치 과정을 안내해 줍니다.
사용 예
설치 후 Cline에게 다음과 같은 GitHub 작업을 직접 수행하도록 요청할 수 있습니다.
- "'my-project'라는 이름의 새 저장소를 만듭니다."
- "머신러닝 관련 저장소 검색"
- "내 기능 브랜치에서 메인으로 풀 리퀘스트를 생성합니다"
- "저장소 X에 있는 README.md 파일의 내용을 가져옵니다"
- "내 저장소에 열려 있는 이슈를 나열하세요"
문제 해결
GitHub Enterprise MCP 서버에서 문제가 발생하는 경우:
- MCP 설정에서 index.js 파일의 경로가 올바른지 확인하세요.
- GitHub 개인 액세스 토큰에 필요한 권한이 있는지 확인하세요.
- GitHub 인스턴스에 대한 GitHub API URL이 올바른지 확인하세요.
- 오류 메시지가 있는지 로그를 확인하세요.
추가 구성 옵션
GitHub API 버전
GITHUB_API_VERSION
환경 변수를 추가하여 GitHub API 버전을 지정할 수 있습니다.
엔터프라이즈 인증
다른 인증 방법을 사용하는 GitHub Enterprise 인스턴스의 경우 추가 구성을 제공해야 할 수 있습니다. 자세한 내용은 Octokit 문서를 참조하세요.
도구
create_or_update_file
- 저장소에서 단일 파일을 생성하거나 업데이트합니다.
- 입력:
owner
(문자열): 저장소 소유자(사용자 이름 또는 조직)repo
(문자열): 저장소 이름path
(문자열): 파일을 생성/업데이트할 경로content
(문자열): 파일의 내용message
(문자열): 커밋 메시지branch
(문자열): 파일을 생성/업데이트할 브랜치sha
(선택적 문자열): 교체되는 파일의 SHA(업데이트용)
- 반환: 파일 내용 및 커밋 세부 정보
push_files
- 단일 커밋에 여러 파일 푸시
- 입력:
owner
(문자열): 저장소 소유자repo
(문자열): 저장소 이름branch
(문자열): 푸시할 브랜치files
(배열): 푸시할 파일, 각각path
와content
message
(문자열): 커밋 메시지
- 반환: 업데이트된 지점 참조
search_repositories
- GitHub 저장소 검색
- 입력:
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 이슈 객체 및 세부 정보
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
(숫자): 풀 리퀘스트 번호
- 반환: 검토 상태(승인됨, 변경 요청됨 등), 검토자 및 검토 본문과 같은 세부 정보가 포함된 풀 요청 검토 배열
검색 쿼리 구문
코드 검색
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
범위만 선택하세요.
- 또는 공개 저장소에서만 작업하는 경우
- 생성된 토큰을 복사하세요
Claude Desktop과 함께 사용
Claude Desktop과 함께 사용하려면 claude_desktop_config.json
에 다음을 추가하세요.
짓다
특허
이 MCP 서버는 MIT 라이선스에 따라 라이선스가 부여됩니다. 즉, MIT 라이선스의 조건에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있습니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.
This server cannot be installed
GitHub API를 통해 GitHub 저장소와 상호 작용할 수 있으므로 파일 작업, 저장소 관리, 문제 추적, 자연어 명령을 통한 코드 검색이 가능합니다.