Skip to main content
Glama

GitHub MCP 서버

타입스크립트 모델 컨텍스트 프로토콜버전 특허상태 깃허브

GitHub API와 상호 작용하기 위한 도구를 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버를 통해 LLM 에이전트는 표준화된 인터페이스를 통해 GitHub 저장소, 이슈, 풀 리퀘스트, 브랜치, 파일 및 릴리스를 관리할 수 있습니다.

목차

Related MCP server: GitHub MCP Server

개요

github-mcp-server는 MCP(모델 컨텍스트 프로토콜)를 구현하여 다음을 통해 LLM과 외부 시스템 간의 표준화된 통신을 지원합니다.

  • 클라이언트 : Claude Desktop, IDE 및 기타 MCP 호환 클라이언트

  • 서버 : 프로젝트 관리 및 협업을 위한 도구 및 리소스

  • LLM 에이전트 : GitHub 작업을 프로그래밍 방식으로 수행하는 기능을 활용하는 AI 모델입니다.

이는 AI 모델과 GitHub API 사이의 다리 역할을 하며, 일관된 패턴을 따르고 인증, 유효성 검사, 오류 처리 및 속도 제한을 처리하는 잘 정의된 도구 세트를 제공합니다.

주요 기능:

  • GitHub API 통합 : GitHub의 REST API와의 안전하고 원활한 통합

  • 포괄적인 GitHub 기능 : 저장소, 브랜치, 이슈, PR 등을 완벽하게 관리

  • 원자적 기능 아키텍처 : 유지 관리를 위한 잘 구성된 모듈식 코드 구조

  • 입력 검증 : 모든 작업에 대해 Zod 스키마를 사용한 강력한 검증

  • 오류 처리 : 일관된 오류 분류 및 보고

  • 속도 제한 : 내장된 GitHub API 속도 제한 처리

  • 성능 중심 : 최적화된 운영 및 응답 형식

아키텍처 및 구성 요소

핵심 시스템 아키텍처:

지엑스피1

핵심 구성 요소:

  • MCP 프로토콜 계층 : AI 어시스턴트와의 통신을 처리합니다.

  • 검증 계층 : 스키마 검증을 통해 데이터 무결성을 보장합니다.

  • GitHub 서비스 : GitHub REST API와의 핵심 통합

  • 속도 제한기 : API 속도 제한 소진을 방지합니다.

  • 기능 모듈 : 도메인별 GitHub 작업

  • 오류 처리 : 포괄적인 오류 처리 및 로깅 시스템

특징

저장소 관리

  • 생성, 나열, 가져오기 : 새 저장소를 생성하고, 사용자 저장소를 나열하고, 자세한 저장소 정보를 가져옵니다.

  • 검증 및 구성 : 저장소 설정을 검증하고 구성 옵션을 관리합니다.

지점 관리

  • 생성, 삭제, 목록 : 보안 검증을 통한 완벽한 브랜치 라이프사이클 관리

  • 보호된 브랜치 지원 : 보호된 브랜치에 대한 필터링 및 작업

이슈 관리

  • 생성 및 목록 : 레이블을 사용하여 자세한 문제를 생성하고 필터링 옵션을 사용하여 문제를 나열합니다.

  • 상태 추적 : 문제 상태(열림, 닫힘, 모두)로 필터링

풀 리퀘스트 관리

  • 생성, 업데이트, 병합, 목록 : 전체 풀 리퀘스트 라이프사이클 관리

  • 리뷰 및 댓글 통합 : 풀 리퀘스트에 리뷰 및 댓글 추가

  • 병합 옵션 : 다양한 병합 전략 지원(병합, 스쿼시, 리베이스)

파일 관리

  • 파일 생성 및 업데이트 : 커밋 메시지를 사용하여 저장소 콘텐츠를 추가하고 수정합니다.

  • Base64 인코딩 지원 : 텍스트와 바이너리 파일 콘텐츠 모두 처리

릴리스 관리

  • 릴리스 만들기 : 사용자 정의 가능한 옵션으로 태그가 지정된 릴리스 만들기

  • 초안 및 사전 릴리스 지원 : 초안 및 사전 릴리스 워크플로 지원

설치

필수 조건

  • Node.js(v16 이상)

  • 적절한 권한이 있는 GitHub 개인 액세스 토큰

설정

  1. 저장소를 복제합니다.

    git clone https://github.com/cyanheads/github-mcp-server.git cd github-mcp-server
  2. 종속성 설치:

    npm install
  3. GitHub 토큰을 사용하여 프로젝트 루트에 .env 파일을 만듭니다.

    GITHUB_TOKEN=your_github_personal_access_token LOG_LEVEL=info SERVER_NAME=github-mcp-server
  4. 프로젝트를 빌드하세요:

    npm run build
  5. 서버를 시작합니다:

    node build/index.js

구성

서버는 환경 변수를 통해 구성할 수 있습니다.

환경 변수

설명

기본

GITHUB_TOKEN

GitHub 개인 액세스 토큰(필수)

-

LOG_LEVEL

로깅 수준(디버그, 정보, 경고, 오류, 치명적)

정보

SERVER_NAME

MCP 서버 이름

github-mcp-서버

SERVER_VERSION

MCP 서버 버전

0.1.0

API_TIMEOUT_MS

API 호출에 대한 시간 초과(밀리초)

10000

RATE_LIMITING_ENABLED

속도 제한이 활성화되어 있는지 여부

진실

RATE_LIMITING_MIN_REMAINING

제한 전 최소 남은 요청 수

100

RATE_LIMITING_RESET_BUFFER_MS

요금 제한 재설정 시간에 추가할 시간 버퍼

5000

MCP 클라이언트 설정

MCP 클라이언트 설정에 추가:

{ "mcpServers": { "github": { "command": "node", "args": ["/path/to/github-mcp-server/build/index.js"], "env": { "GITHUB_TOKEN": "your_github_personal_access_token", "LOG_LEVEL": "info", "SERVER_NAME": "github-mcp-server" } } } }

프로젝트 구조

이 프로젝트는 원자적 기능 지향 아키텍처 패턴을 따릅니다.

/src /configuration // Application configuration /dependencyInjection // Tool registry and DI container /features // Feature modules organized by domain /repositoryManagement /resources // Read operations /modifications // Write operations /branchManagement /issueManagement /pullRequestManagement /fileManagement /releaseManagement /services // External service integrations /githubAccess // GitHub API client and utilities /types // Core type definitions /utilities // Helper functions and utilities

각 기능 도메인은 다음과 같이 나뉩니다.

  • 리소스 : 데이터를 수정하지 않는 읽기 작업

  • 수정 사항 : 데이터를 생성, 업데이트 또는 삭제하는 작업 작성

각 작업은 다음과 같은 자체 디렉토리에 포함되어 있습니다.

  • 작업 구현 파일

  • 유형 정의 파일

  • 인덱스 파일 내보내기

도구

GitHub MCP 서버는 GitHub과 상호 작용하기 위한 포괄적인 도구 모음을 제공합니다.

저장소 관리 도구

도구

설명

get_repository

특정 저장소에 대한 자세한 정보 가져오기 매개변수: owner , repo

list_repositories

인증된 사용자에 대한 저장소 나열 매개변수: type (선택 사항), sort (선택 사항)

create_repository

새로운 GitHub 저장소 만들기 매개변수: name , description (선택 사항), private (선택 사항)

지점 관리 도구

도구

설명

list_branches

저장소의 브랜치 나열 매개변수: owner , repo , protected (선택 사항), per_page (선택 사항)

create_branch

새로운 branchParameters를 생성합니다: owner , repo , branch , sha

delete_branch

지점 삭제매개변수: owner , repo , branch

이슈 관리 도구

도구

설명

create_issue

저장소에서 새 이슈 생성 매개변수: owner , repo , title , body (선택 사항), labels (선택 사항)

list_issues

저장소의 문제 나열 매개변수: owner , repo , state (선택 사항), labels (선택 사항)

풀 리퀘스트 관리 도구

도구

설명

create_pull_request

새로운 풀 리퀘스트 생성 매개변수: owner , repo , title , head , base , body (선택 사항)

merge_pull_request

풀 리퀘스트 병합 매개변수: owner , repo , pull_number , commit_title (선택 사항), commit_message (선택 사항), merge_method (선택 사항)

update_pull_request

기존 풀 요청 업데이트 매개변수: owner , repo , pull_number , title (선택 사항), body (선택 사항), state (선택 사항), base (선택 사항), maintainer_can_modify (선택 사항)

list_pull_requests

저장소에 풀 리퀘스트 나열 매개변수: owner , repo , state (선택 사항), head (선택 사항), base (선택 사항), sort (선택 사항), direction (선택 사항)

파일 관리 도구

도구

설명

update_file

저장소에 파일을 생성하거나 업데이트합니다. 매개변수: owner , repo , path , message , content , sha (선택 사항), branch (선택 사항)

릴리스 관리 도구

도구

설명

create_release

새로운 릴리스 생성 매개변수: owner , repo , tag_name , name (선택 사항), body (선택 사항), draft (선택 사항), prerelease (선택 사항)

개발

프로젝트 구조

이 프로젝트는 엄격한 명명 규칙과 디렉토리 구조를 따릅니다.

  • 파일 이름: action.entity.type.ts (예: create.repository.operation.ts )

  • 각 모듈에는 명확하게 정의된 목적이 있습니다.

  • 유형은 구현과 함께 배치됩니다.

  • 모든 내보내기는 인덱스 파일을 통해 중앙화됩니다.

스크립트

  • npm run build - 프로젝트 빌드

  • npm run watch - 변경 사항을 확인하고 다시 빌드합니다.

  • npm run inspector - MCP 검사기 도구 실행

  • npm run clean - 빌드 아티팩트 정리

  • npm run rebuild - 프로젝트를 정리하고 다시 빌드합니다.

  • npm run tree - 디렉토리 트리 표현 생성

오류 처리

서버는 포괄적인 오류 처리 전략을 구현합니다.

  • 표준화된 오류 객체 : 분류를 통한 일관된 오류 형식

  • 입력 검증 : Zod 스키마를 사용한 사전 검증

  • 속도 제한 보호 : GitHub API 속도 제한 자동 처리

  • 오류 카테고리 :

    • 네트워크 오류(연결 문제)

    • 인증 오류(토큰 문제)

    • 검증 오류(잘못된 입력)

    • GitHub API 오류(API 관련 문제)

    • 시스템 오류(예상치 못한 실패)

  • 상세 로깅 : 모든 작업 및 오류에 대한 구조화된 로깅

기여하다

기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.

  1. 저장소를 포크하세요

  2. 기능 브랜치를 생성합니다( git checkout -b feature/amazing-feature )

  3. 변경 사항을 커밋하세요( git commit -m 'Add some amazing feature' )

  4. 브랜치에 푸시( git push origin feature/amazing-feature )

  5. 풀 리퀘스트 열기

특허

아파치 라이선스 2.0


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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyanheads/github-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server