Github MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides integration with Github, allowing LLMs to search repositories, issues, commits, code, users, topics, and labels. It also supports listing and retrieving specific repository issues and pull requests.

Github MCP 서버

Github용 모델 컨텍스트 프로토콜 서버.

MCP를 통해 Github와 통합을 제공하여 LLM이 Github와 상호 작용할 수 있도록 합니다.

Github REST API 문서

설치

수동 설치

  1. Github 계정에 대한 액세스 토큰을 생성하거나 가져오는 방법: 가이드
  2. Claude Desktop에 서버 구성을 추가합니다.

지엑스피1

구성 요소

도구

  1. search_repositories : GitHub에서 저장소를 검색합니다.
    • 필수 입력 사항:
      • query (문자열): 저장소를 검색할 쿼리입니다.
      • page (숫자, 기본값: 30, 최대: 100): 페이지 번호를 매깁니다.
      • per_page (숫자, 기본값: 30, 최대: 100): 페이지당 결과 수.
  2. search_issues : 저장소에서 이슈를 검색합니다.
    • 필수 입력 사항:
      • query (문자열): 저장소를 검색할 쿼리입니다.
      • page (번호, 기본값: 1): 페이지 번호를 매깁니다.
      • per_page (숫자, 기본값: 30, 최대: 100): 페이지당 결과 수.
      • order (선택적 문자열, 기본값: desc ): 순서의 종류 ( asc 또는 desc ).
      • sort (선택적 문자열, 기본값: best match ): 정렬 필드(다음 중 하나일 수 있음: comments , reactions , reactions-+1 , reactions--1 , reactions-smile , reactions-thinking_face , reactions-heart , reactions-tada , interactions , created 또는 updated ).
  3. search_commits : 저장소에서 커밋을 검색합니다.
    • 필수 입력 사항:
      • query (문자열): 저장소를 검색할 쿼리입니다.
      • page (번호, 기본값: 1): 페이지 번호를 매깁니다.
      • per_page (숫자, 기본값: 30, 최대: 100): 페이지당 결과 수.
      • order (선택적 문자열, 기본값: desc ): 순서의 종류 ( asc 또는 desc ).
      • sort (선택적 문자열, 기본값: best match ): 정렬 필드( committer-date 또는 author-date 중 하나일 수 있음).
  4. search_code : 저장소에서 코드를 검색합니다.
    • 필수 입력 사항:
      • query (문자열): 저장소를 검색할 쿼리입니다.
      • page (번호, 기본값: 1): 페이지 번호를 매깁니다.
      • per_page (숫자, 기본값: 30, 최대: 100): 페이지당 결과 수.
  5. search_users : 저장소에서 사용자를 검색합니다.
    • 필수 입력 사항:
      • query (문자열): 저장소를 검색할 쿼리입니다.
      • page (번호, 기본값: 1): 페이지 번호를 매깁니다.
      • per_page (숫자, 기본값: 30, 최대: 100): 페이지당 결과 수.
      • order (선택적 문자열, 기본값: desc ): 순서의 종류 ( asc 또는 desc ).
      • sort (선택적 문자열, 기본값: best match ): 정렬 필드( followers , repositories 또는 joined 중 하나일 수 있음).
  6. search_topics : 주제를 검색합니다.
    • 필수 입력 사항:
      • query (문자열): 저장소를 검색할 쿼리입니다.
      • page (번호, 기본값: 1): 페이지 번호를 매깁니다.
      • per_page (숫자, 기본값: 30, 최대: 100): 페이지당 결과 수.
  7. search_labels : 저장소에서 라벨을 검색합니다.
    • 필수 입력 사항:
      • query (문자열): 저장소를 검색할 쿼리입니다.
      • page (번호, 기본값: 1): 페이지 번호를 매깁니다.
      • per_page (숫자, 기본값: 30, 최대: 100): 페이지당 결과 수.
      • order (선택적 문자열, 기본값: desc ): 순서의 종류 ( asc 또는 desc ).
      • sort (선택적 문자열, 기본값: best match ): 정렬 필드( created 또는 updated 중 하나일 수 있음).
  8. list_repositories_issues : 저장소의 이슈를 나열합니다.
    • 필수 입력 사항:
      • owner (문자열): 저장소의 소유자입니다.
      • repo (문자열): 저장소 이름입니다.
      • page (선택적 숫자, 기본값: 1): 페이지 번호를 매기는 데 사용합니다.
      • per_page (선택적 숫자, 기본값: 30, 최대: 100): 페이지당 결과 수.
      • direction (선택적 문자열, 기본값: desc ): 정렬 방향( asc 또는 desc ).
      • sort (선택적 문자열, 기본값: created ): 정렬 필드( created , comments 또는 updated 중 하나일 수 있음).
      • since (선택적 문자열): 지정된 시간 이후에 결과가 마지막으로 업데이트됨(ISO 8601 형식: YYYY-MM-DDTHH:MM:SSZ).
      • labels (선택적 문자열): 쉼표로 구분된 레이블 이름. 예: bug, ui, @high.
      • milestone (선택적 문자열): 이정표 번호.
      • assignee (선택적 문자열): 담당자 사용자의 이름(모두의 경우 * ).
      • creator (선택적 문자열): 문제를 생성한 사용자입니다. (모두의 경우 * ).
      • mentioned (선택적 문자열): 문제에서 언급된 사용자입니다.
  9. get_issue : 저장소에서 이슈를 가져옵니다.
    • 필수 입력 사항:
      • owner (문자열): 저장소의 소유자입니다.
      • repo (문자열): 저장소 이름입니다.
      • issue_number (숫자): 호 번호.
  10. list_repositories_pull_requests : 저장소에서 풀 리퀘스트를 나열합니다.
  • 필수 입력 사항:
    • owner (문자열): 저장소의 소유자입니다.
    • repo (문자열): 저장소 이름입니다.
    • page (선택적 숫자, 기본값: 1): 페이지 번호를 매기는 데 사용합니다.
    • per_page (선택적 숫자, 기본값: 30, 최대: 100): 페이지당 결과 수.
    • direction (선택적 문자열, 기본값: desc ): 정렬 방향( asc 또는 desc ).
    • sort (선택적 문자열, 기본값: created ): 정렬 필드( created , popularity , long-running 또는 updated 중 하나일 수 있음).
    • head (선택적 문자열): 사용자:참조 이름 또는 조직:참조 이름 형식으로 헤드 사용자 또는 헤드 조직 및 브랜치 이름으로 필터링합니다(예: github:new-script-format 또는 octocat:test-branch).
    • base (선택적 문자열): 기본 브랜치 이름으로 풀을 필터링합니다. (예: gh-pages)
  1. get_pull_request : 저장소에서 풀 리퀘스트를 가져옵니다.
  • 필수 입력 사항:
    • owner (문자열): 저장소의 소유자입니다.
    • repo (문자열): 저장소 이름입니다.
    • pull_request_number (숫자): 풀 리퀘스트 번호.

사용 예

Github과 상호작용하는 데 사용할 수 있는 몇 가지 프롬프트 예:

  1. "modelcontextprotocol" → search_repositories 도구를 실행하여 modelcontextprotocol이 언급된 저장소를 찾습니다.
  2. "modelcontextprotocol 서버 저장소의 739 이슈는 무엇인가요?" → get_issue 도구를 실행하여 modelcontextprotocol 서버 저장소에서 739 이슈를 찾으세요.
  3. "modelcontextprotocol 서버 저장소의 717 PR은 무엇입니까?" → get_pull_request 도구를 실행하여 modelcontextprotocol 서버 저장소에서 717 PR을 찾습니다.

개발

  1. 종속성 설치:
pnpm install
  1. .env 에서 Github 액세스 토큰을 구성합니다.
GITHUB_PERSONAL_ACCESS_TOKEN=<your_personal_github_access_token>
  1. 시계를 사용하여 로컬로 실행:
pnpm dev
  1. 서버를 빌드하세요:
pnpm build
  1. 검사기를 사용한 로컬 디버깅:
pnpm inspector
-
security - not tested
F
license - not found
-
quality - not tested

MCP(Model Context Protocol)를 통해 Github와 통합을 제공하여 대규모 언어 모델이 Github의 저장소, 이슈, 풀 리퀘스트 및 검색 기능과 상호 작용할 수 있도록 합니다.

  1. Installation
    1. Manual Installation
  2. Components
    1. Tools
  3. Usage examples
    1. Development
      ID: mltxtigc9r