GitHub Enterprise MCP Server

MIT License
2
  • Apple
  • Linux

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 기능을 사용할 수 있도록 해줍니다.

필수 조건

  1. 시스템에 Node.js가 설치되어 있습니다
  2. 적절한 권한이 있는 GitHub 개인 액세스 토큰
  3. 시스템에 Cline이 설치되었습니다

설치 단계

1. 저장소 복제

지엑스피1

2. 종속성 설치 및 빌드

npm install npm run build

이렇게 하면 컴파일된 JavaScript 파일이 포함된 dist 디렉토리가 생성됩니다.

3. GitHub 개인 액세스 토큰 생성

  1. GitHub 개인 액세스 토큰 으로 이동하세요(GitHub 설정 > 개발자 설정)
  2. "새 토큰 생성"을 클릭하세요
  3. 이 토큰이 액세스할 수 있는 저장소를 선택하세요(공개, 모두 또는 선택)
  4. repo 범위("개인 저장소의 전체 제어")로 토큰을 생성합니다.
    • 또는 공개 저장소에서만 작업하는 경우 public_repo 범위만 선택하세요.
  5. 생성된 토큰을 복사하세요

4. Cline MCP 설정 구성

Cline VS Code 확장 프로그램용
  1. VS 코드 열기
  2. 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
  3. mcpServers 개체에 GitHub Enterprise MCP 서버 구성을 추가합니다.
{ "mcpServers": { "github-enterprise": { "command": "node", "args": [ "/absolute/path/to/github-enterprise-mcp/dist/index.js" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "your-personal-access-token", "GITHUB_API_URL": "https://api.github.com" // For GitHub.com // For GitHub Enterprise, use your instance URL, e.g., "https://github.yourdomain.com/api/v3" }, "disabled": false, "autoApprove": [] } } }

/absolute/path/to/github-enterprise-mcp/dist/index.js 를 빌드된 index.js 파일의 절대 경로로 바꿉니다.

Claude 데스크톱 앱용
  1. Claude Desktop 구성 파일은 다음 위치에서 찾을 수 있습니다.
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 리눅스: ~/.config/Claude/claude_desktop_config.json
  2. mcpServers 개체에 GitHub Enterprise MCP 서버 구성을 추가합니다.
{ "mcpServers": { "github-enterprise": { "command": "node", "args": [ "/absolute/path/to/github-enterprise-mcp/dist/index.js" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "your-personal-access-token", "GITHUB_API_URL": "https://api.github.com" // For GitHub.com // For GitHub Enterprise, use your instance URL, e.g., "https://github.yourdomain.com/api/v3" }, "disabled": false, "autoApprove": [] } } }

5. 클라인을 다시 시작하세요

MCP 설정을 구성한 후 Cline(VS Code 또는 Claude Desktop)을 다시 시작하여 변경 사항을 적용합니다.

확인

GitHub Enterprise MCP 서버가 올바르게 설치 및 구성되었는지 확인하려면 Cline에게 GitHub 도구 중 하나를 사용하도록 요청하세요.

Can you search for repositories with the keyword "react" using the GitHub Enterprise MCP server?

클라인은 search_repositories 도구를 사용하여 "react"라는 키워드로 저장소를 검색할 수 있어야 합니다.

클라인과의 대화형 설치

대화형 설치를 위해 다음 텍스트를 복사하여 Cline에 붙여넣으면 설치 과정을 안내해 줍니다.

I want you to help me install the GitHub Enterprise MCP server. Here's what I need you to do: 1. First, explain what the GitHub Enterprise MCP server is and what capabilities it will give you. 2. Guide me through the installation process: - Help me clone the repository (if I haven't already) - Help me install dependencies and build the project - Guide me through creating a GitHub Personal Access Token if I don't have one - Help me configure the MCP settings in either VS Code or Claude Desktop - Verify the installation is working 3. Show me some examples of how I can use the GitHub Enterprise MCP server once it's installed. Please start by explaining what the GitHub Enterprise MCP server is and what it will allow you to do for me.

사용 예

설치 후 Cline에게 다음과 같은 GitHub 작업을 직접 수행하도록 요청할 수 있습니다.

  • "'my-project'라는 이름의 새 저장소를 만듭니다."
  • "머신러닝 관련 저장소 검색"
  • "내 기능 브랜치에서 메인으로 풀 리퀘스트를 생성합니다"
  • "저장소 X에 있는 README.md 파일의 내용을 가져옵니다"
  • "내 저장소에 열려 있는 이슈를 나열하세요"

문제 해결

GitHub Enterprise MCP 서버에서 문제가 발생하는 경우:

  1. MCP 설정에서 index.js 파일의 경로가 올바른지 확인하세요.
  2. GitHub 개인 액세스 토큰에 필요한 권한이 있는지 확인하세요.
  3. GitHub 인스턴스에 대한 GitHub API URL이 올바른지 확인하세요.
  4. 오류 메시지가 있는지 로그를 확인하세요.

추가 구성 옵션

GitHub API 버전

GITHUB_API_VERSION 환경 변수를 추가하여 GitHub API 버전을 지정할 수 있습니다.

"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "your-personal-access-token", "GITHUB_API_URL": "https://api.github.com", "GITHUB_API_VERSION": "2022-11-28" }

엔터프라이즈 인증

다른 인증 방법을 사용하는 GitHub Enterprise 인스턴스의 경우 추가 구성을 제공해야 할 수 있습니다. 자세한 내용은 Octokit 문서를 참조하세요.

도구

  1. create_or_update_file
    • 저장소에서 단일 파일을 생성하거나 업데이트합니다.
    • 입력:
      • owner (문자열): 저장소 소유자(사용자 이름 또는 조직)
      • repo (문자열): 저장소 이름
      • path (문자열): 파일을 생성/업데이트할 경로
      • content (문자열): 파일의 내용
      • message (문자열): 커밋 메시지
      • branch (문자열): 파일을 생성/업데이트할 브랜치
      • sha (선택적 문자열): 교체되는 파일의 SHA(업데이트용)
    • 반환: 파일 내용 및 커밋 세부 정보
  2. push_files
    • 단일 커밋에 여러 파일 푸시
    • 입력:
      • owner (문자열): 저장소 소유자
      • repo (문자열): 저장소 이름
      • branch (문자열): 푸시할 브랜치
      • files (배열): 푸시할 파일, 각각 pathcontent
      • message (문자열): 커밋 메시지
    • 반환: 업데이트된 지점 참조
  3. search_repositories
    • GitHub 저장소 검색
    • 입력:
      • query (문자열): 검색 쿼리
      • page (선택적 숫자): 페이지 번호
      • perPage (선택적 숫자): 페이지당 결과(최대 100개)
    • 반환: 저장소 검색 결과
  4. create_repository
    • 새로운 GitHub 저장소를 만듭니다
    • 입력:
      • name (문자열): 저장소 이름
      • description (선택적 문자열): 저장소 설명
      • private (선택적 부울): 저장소를 비공개로 설정해야 하는지 여부
      • autoInit (선택적 부울): README로 초기화
    • 반환: 생성된 저장소 세부 정보
  5. get_file_contents
    • 파일이나 디렉토리의 내용을 가져옵니다
    • 입력:
      • owner (문자열): 저장소 소유자
      • repo (문자열): 저장소 이름
      • path (문자열): 파일/디렉토리 경로
      • branch (선택적 문자열): 콘텐츠를 가져올 지점
    • 반환: 파일/디렉토리 내용
  6. create_issue
    • 새로운 이슈를 생성하세요
    • 입력:
      • owner (문자열): 저장소 소유자
      • repo (문자열): 저장소 이름
      • title (문자열): 이슈 제목
      • body (선택적 문자열): 문제 설명
      • assignees (선택적 문자열[]): 할당할 사용자 이름
      • labels (선택적 문자열[]): 추가할 레이블
      • milestone (선택적 숫자): 마일스톤 번호
    • 반환: 문제 세부 정보 생성됨
  7. create_pull_request
    • 새로운 풀 리퀘스트를 만듭니다
    • 입력:
      • owner (문자열): 저장소 소유자
      • repo (문자열): 저장소 이름
      • title (문자열): PR 제목
      • body (선택적 문자열): PR 설명
      • head (문자열): 변경 사항을 포함하는 브랜치
      • base (문자열): 병합할 브랜치
      • draft (선택적 부울): PR 초안으로 생성
      • maintainer_can_modify (선택적 부울): 유지 관리자 편집 허용
    • 반환: 풀 리퀘스트 세부정보 생성됨
  8. fork_repository
    • 저장소 포크하기
    • 입력:
      • owner (문자열): 저장소 소유자
      • repo (문자열): 저장소 이름
      • organization (선택적 문자열): 포크할 조직
    • 반환: 포크된 저장소 세부 정보
  9. create_branch
    • 새로운 지점을 만드세요
    • 입력:
      • owner (문자열): 저장소 소유자
      • repo (문자열): 저장소 이름
      • branch (문자열): 새 브랜치의 이름
      • from_branch (선택적 문자열): 소스 브랜치(기본값은 repo 기본값)
    • 반환: 생성된 브랜치 참조
  10. list_issues
  • 저장소 문제 나열 및 필터링
  • 입력:
    • owner (문자열): 저장소 소유자
    • repo (문자열): 저장소 이름
    • state (선택적 문자열): 상태('open', 'closed', 'all')로 필터링
    • labels (선택적 문자열[]): 레이블로 필터링
    • sort (선택적 문자열): ('생성됨', '업데이트됨', '댓글')로 정렬
    • direction (선택적 문자열): 정렬 방향 ('asc', 'desc')
    • since (선택적 문자열): 날짜(ISO 8601 타임스탬프)로 필터링
    • page (선택 번호): 페이지 번호
    • per_page (선택적 숫자): 페이지당 결과
  • 반환: 문제 세부 정보 배열
  1. update_issue
  • 기존 문제 업데이트
  • 입력:
    • owner (문자열): 저장소 소유자
    • repo (문자열): 저장소 이름
    • issue_number (숫자): 업데이트할 이슈 번호
    • title (선택 문자열): 새 제목
    • body (선택적 문자열): 새로운 설명
    • state (선택적 문자열): 새로운 상태('열림' 또는 '닫힘')
    • labels (선택적 문자열[]): 새 레이블
    • assignees (선택적 문자열[]): 새로운 담당자
    • milestone (선택적 숫자): 새로운 마일스톤 숫자
  • 반품: 업데이트된 문제 세부 정보
  1. add_issue_comment
  • 문제에 대한 의견을 추가하세요
  • 입력:
    • owner (문자열): 저장소 소유자
    • repo (문자열): 저장소 이름
    • issue_number (숫자): 의견을 제시할 호 번호
    • body (문자열): 댓글 텍스트
  • 반환: 생성된 댓글 세부 정보
  1. search_code
  • GitHub 저장소에서 코드 검색
  • 입력:
    • q (문자열): GitHub 코드 검색 구문을 사용한 검색 쿼리
    • sort (선택적 문자열): 정렬 필드('인덱스'만 해당)
    • order (선택적 문자열): 정렬 순서('asc' 또는 'desc')
    • per_page (선택적 숫자): 페이지당 결과(최대 100개)
    • page (선택 번호): 페이지 번호
  • 반환: 저장소 컨텍스트가 포함된 코드 검색 결과
  1. search_issues
  • 이슈 검색 및 풀 리퀘스트
  • 입력:
    • q (문자열): GitHub 이슈 검색 구문을 사용한 검색 쿼리
    • sort (선택적 문자열): 정렬 필드(댓글, 반응, 생성 등)
    • order (선택적 문자열): 정렬 순서('asc' 또는 'desc')
    • per_page (선택적 숫자): 페이지당 결과(최대 100개)
    • page (선택 번호): 페이지 번호
  • 반환: 이슈 및 풀 리퀘스트 검색 결과
  1. search_users
  • GitHub 사용자 검색
  • 입력:
    • q (문자열): GitHub 사용자 검색 구문을 사용한 검색 쿼리
    • sort (선택적 문자열): 정렬 필드(팔로워, 저장소, 가입)
    • order (선택적 문자열): 정렬 순서('asc' 또는 'desc')
    • per_page (선택적 숫자): 페이지당 결과(최대 100개)
    • page (선택 번호): 페이지 번호
  • 반환: 사용자 검색 결과
  1. list_commits
  • 저장소의 브랜치 커밋을 가져옵니다.
  • 입력:
    • owner (문자열): 저장소 소유자
    • repo (문자열): 저장소 이름
    • page (선택적 문자열): 페이지 번호
    • per_page (선택적 문자열): 페이지당 레코드 수
    • sha (선택적 문자열): 지점 이름
  • 반환: 커밋 목록
  1. get_issue
  • 저장소 내의 이슈 내용을 가져옵니다.
  • 입력:
    • owner (문자열): 저장소 소유자
    • repo (문자열): 저장소 이름
    • issue_number (숫자): 검색할 이슈 번호
  • 반환: Github 이슈 객체 및 세부 정보
  1. get_pull_request
  • 특정 풀 리퀘스트의 세부 정보 가져오기
  • 입력:
    • owner (문자열): 저장소 소유자
    • repo (문자열): 저장소 이름
    • pull_number (숫자): 풀 리퀘스트 번호
  • 반환: diff 및 검토 상태를 포함한 풀 요청 세부 정보
  1. list_pull_requests
  • 저장소 풀 리퀘스트 나열 및 필터링
  • 입력:
    • owner (문자열): 저장소 소유자
    • repo (문자열): 저장소 이름
    • state (선택적 문자열): 상태('open', 'closed', 'all')로 필터링
    • head (선택적 문자열): head 사용자/조직 및 branch로 필터링
    • base (선택적 문자열): 기본 브랜치로 필터링
    • sort (선택적 문자열): ('생성됨', '업데이트됨', '인기', '장기 실행됨')으로 정렬
    • direction (선택적 문자열): 정렬 방향 ('asc', 'desc')
    • per_page (선택적 숫자): 페이지당 결과(최대 100개)
    • page (선택 번호): 페이지 번호
  • 반환: 풀 리퀘스트 세부 정보 배열
  1. create_pull_request_review
  • 풀 리퀘스트에 대한 리뷰 작성
  • 입력:
    • owner (문자열): 저장소 소유자
    • repo (문자열): 저장소 이름
    • pull_number (숫자): 풀 리퀘스트 번호
    • body (문자열): 리뷰 코멘트 텍스트
    • event (문자열): 검토 작업('APPROVE', 'REQUEST_CHANGES', 'COMMENT')
    • commit_id (선택적 문자열): 검토할 커밋의 SHA
    • comments (선택적 배열): 다음이 포함된 줄별 주석:
      • path (문자열): 파일 경로
      • position (숫자): diff에서의 줄 위치
      • body (문자열): 댓글 텍스트
  • 반품: 리뷰 세부 정보 생성됨
  1. merge_pull_request
  • 풀 리퀘스트 병합
  • 입력:
    • owner (문자열): 저장소 소유자
    • repo (문자열): 저장소 이름
    • pull_number (숫자): 풀 리퀘스트 번호
    • commit_title (선택적 문자열): 병합 커밋의 제목
    • commit_message (선택적 문자열): 병합 커밋에 대한 추가 세부 정보
    • merge_method (선택적 문자열): 병합 방법('merge', 'squash', 'rebase')
  • 반환: 병합 결과 세부 정보
  1. get_pull_request_files
  • 풀 리퀘스트에서 변경된 파일 목록 가져오기
  • 입력:
    • owner (문자열): 저장소 소유자
    • repo (문자열): 저장소 이름
    • pull_number (숫자): 풀 리퀘스트 번호
  • 반환: 패치 및 상태 세부 정보가 포함된 변경된 파일 배열
  1. get_pull_request_status
  • 풀 리퀘스트에 대한 모든 상태 확인의 결합된 상태를 가져옵니다.
  • 입력:
    • owner (문자열): 저장소 소유자
    • repo (문자열): 저장소 이름
    • pull_number (숫자): 풀 리퀘스트 번호
  • 반환: 결합된 상태 확인 결과 및 개별 확인 세부 정보
  1. update_pull_request_branch
  • 기본 브랜치의 최신 변경 사항으로 풀 리퀘스트 브랜치 업데이트(GitHub의 "브랜치 업데이트" 버튼과 동일)
  • 입력:
    • owner (문자열): 저장소 소유자
    • repo (문자열): 저장소 이름
    • pull_number (숫자): 풀 리퀘스트 번호
    • expected_head_sha (선택적 문자열): 풀 요청의 HEAD 참조의 예상 SHA
  • 반환: 브랜치가 업데이트되면 성공 메시지가 표시됩니다.
  1. get_pull_request_comments
  • 풀 리퀘스트에 대한 리뷰 코멘트 받기
  • 입력:
    • owner (문자열): 저장소 소유자
    • repo (문자열): 저장소 이름
    • pull_number (숫자): 풀 리퀘스트 번호
  • 반환: 주석 텍스트, 작성자, diff의 위치와 같은 세부 정보가 포함된 풀 리퀘스트 검토 주석 배열
  1. 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 에 다음을 추가하세요.

{ "mcpServers": { "github": { "command": "node", "args": [ "/path/to/github-enterprise-mcp/dist/index.js" ], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>" } } } }

짓다

# Install dependencies npm install # Build the project npm run build # Start the server npm start

특허

이 MCP 서버는 MIT 라이선스에 따라 라이선스가 부여됩니다. 즉, MIT 라이선스의 조건에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있습니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.

-
security - not tested
A
license - permissive license
-
quality - not tested

GitHub API를 통해 GitHub 저장소와 상호 작용할 수 있으므로 파일 작업, 저장소 관리, 문제 추적, 자연어 명령을 통한 코드 검색이 가능합니다.

  1. Features
    1. Cline Installation Guide
      1. Prerequisites
      2. Installation Steps
      3. Verification
      4. Interactive Installation with Cline
      5. Example Usage
      6. Troubleshooting
      7. Additional Configuration Options
    2. Tools
      1. Search Query Syntax
        1. Code Search
        2. Issues Search
        3. Users Search
      2. Setup
        1. Personal Access Token
        2. Usage with Claude Desktop
      3. Build
        1. License
          ID: jnoaw00dv3