목록으로
GitHub - github/github-mcp-server: GitHub's official MCP Server
Service2025.04.14

GitHub - github/github-mcp-server: GitHub's official MCP Server

요약

GitHub MCP Server는 AI 도구가 GitHub 플랫폼과 직접 상호작용하여 저장소 관리, 이슈 및 PR 자동화, CI/CD 모니터링, 코드 분석 등을 자연어 기반으로 수행할 수 있도록 지원합니다.
️ 이 서버는 GitHub에서 호스팅하는 원격 버전 또는 Docker를 사용한 로컬 버전으로 배포할 수 있으며, GitHub PAT(Personal Access Token) 또는 OAuth를 통해 인증하고 toolsetstools를 사용하여 기능을 세밀하게 제어할 수 있습니다.
개발자는 이 도구를 VS Code, JetBrains, Claude 등 다양한 MCP 호스트 환경에 통합하여 AI 에이전트가 코드 및 워크플로우에 대한 심층적인 컨텍스트 및 기능을 활용하도록 할 수 있습니다.

상세 내용

GitHub MCP Server는 AI 도구를 GitHub 플랫폼에 직접 연결하여, AI 에이전트, 어시스턴트, 챗봇이 자연어 상호작용을 통해 리포지토리 읽기, 코드 파일 관리, 이슈 및 Pull Request 관리, 코드 분석, 워크플로우 자동화 등을 수행할 수 있도록 지원하는 공식 서버입니다.

주요 사용 사례:
이 서버는 다양한 개발 시나리오에 활용됩니다.
* Repository Management: 코드 탐색, 파일 검색, 커밋 분석, 프로젝트 구조 이해.
* Issue & PR Automation: 이슈 및 Pull Request 생성, 업데이트, 관리, 버그 분류 및 코드 변경 검토 자동화.
* CI/CD & Workflow Intelligence: GitHub Actions 워크플로우 실행 모니터링, 빌드 실패 분석, 릴리스 관리.
* Code Analysis: 보안 취약점 분석, Dependabot 알림 검토, 코드 패턴 이해.
* Team Collaboration: 토론 접근, 알림 관리, 팀 활동 분석.

설치 및 구성:
GitHub MCP Server는 원격(Remote) 또는 로컬(Local) 방식으로 설치 및 구성할 수 있습니다.
* Remote Server: GitHub에서 직접 호스팅하며, VS Code, Claude Desktop, Cursor 등 호환 가능한 MCP host와 OAuth 또는 GitHub Personal Access Token (PAT)을 사용하여 연결합니다. GitHub Enterprise Cloud (ghe.com) 환경에서도 사용할 수 있습니다.
* Local Server: Docker를 사용하여 컨테이너 방식으로 실행하거나, Go 소스 코드로부터 직접 빌드할 수 있습니다. 로컬 서버 실행을 위해서는 GitHub PAT가 필수적입니다.

PAT 보안:
PAT는 보안을 위해 환경 변수에 저장하는 것이 권장되며, .env 파일을 통해 관리할 수도 있습니다. 보안 강화를 위해 최소한의 scope를 부여하고, 각 프로젝트/환경별로 다른 PAT를 사용하며, 주기적으로 갱신하고, 버전 관리 시스템에 커밋하지 않는 등의 best practice가 강조됩니다. GitHub Enterprise Server 환경의 경우, GITHUB_HOST 환경 변수 또는 --gh-host 플래그를 통해 호스트를 지정해야 합니다.

도구 구성 (Tool Configuration) - 핵심 방법론:
GitHub MCP Server의 핵심적인 기능은 toolset 또는 개별 tool을 명시적으로 활성화하거나 비활성화하여 AI 도구가 접근할 수 있는 GitHub API 기능을 세밀하게 제어하는 것입니다. 이는 Large Language Model (LLM)의 도구 선택 능력을 향상시키고 context size를 줄이는 데 도움을 줍니다.

* toolset 지정: --toolsets 플래그 또는 GITHUB_TOOLSETS 환경 변수를 사용하여 특정 기능 그룹을 활성화할 수 있습니다. 예를 들어, repos, issues, pull_requests, actions, code_security와 같은 toolset을 지정할 수 있습니다. 환경 변수가 명령줄 인수보다 우선합니다.
* 예시 (Docker):

bashdocker run -i --rm \ -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \ -e GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" \ ghcr.io/github/github-mcp-server

* 개별 tool 지정: --tools 플래그 또는 GITHUB_TOOLS 환경 변수를 사용하여 get_file_contents, issue_read, create_pull_request와 같은 개별 tool을 활성화할 수 있습니다.
* 예시 (Docker):
bashdocker run -i --rm \ -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \ -e GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" \ ghcr.io/github/github-mcp-server

* toolsettool의 조합 (Additive): toolsettool은 함께 사용될 수 있으며, 이 경우 지정된 toolset의 모든 tool에 개별 tool이 추가됩니다.
* 예시 (Docker):
bashdocker run -i --rm \ -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \ -e GITHUB_TOOLSETS="repos,issues" \ -e GITHUB_TOOLS="get_gist" \ ghcr.io/github/github-mcp-server

* all toolset: 특별한 all toolset을 사용하면 모든 사용 가능한 toolset을 활성화할 수 있습니다.
* default toolset: 아무 toolset도 지정되지 않은 경우, context, repos, issues, pull_requests, users toolset이 기본값으로 활성화됩니다. 기존 default에 추가 toolset을 결합할 수도 있습니다 (예: default,stargazers).
* 우선순위 및 제약: tool, toolset, dynamic toolset은 모두 함께 사용될 수 있습니다. read-only mode가 활성화된 경우 (--read-only), 명시적으로 요청되었더라도 쓰기(write) tool은 건너뛰어집니다. tool 이름은 정확히 일치해야 하며, 유효하지 않은 이름은 서버 시작 실패로 이어집니다. 이전 tool 이름은 backward compatibility를 위해 alias로 유지됩니다.

사용 가능한 toolsettool:
서버는 actions, code_security, context, dependabot, discussions, gists, git, issues, labels, notifications, orgs, projects, pull_requests, repos, secret_protection, security_advisories, stargazers, users와 같은 다양한 toolset을 제공합니다. 각 toolset은 GitHub의 특정 영역에 대한 API 기능을 캡슐화한 여러 tool을 포함합니다. 예를 들어, actions toolset에는 cancel_workflow_run, delete_workflow_run_logs, download_workflow_run_artifact, get_job_logs, list_workflow_runs 등과 같은 tool이 포함되어 있습니다. 각 tool은 특정 OAuth scope를 요구하며, 필요한 파라미터가 명시됩니다. 예를 들어, cancel_workflow_run toolrepo OAuth scope를 요구하며 owner, repo, run_id 파라미터가 필요합니다.

원본 보기
GitHub
Shared by Anonymous