GitHub - github/github-mcp-server: GitHub's official MCP Server
요약
toolsets 및 tools를 사용하여 기능을 세밀하게 제어할 수 있습니다.상세 내용
주요 사용 사례:
이 서버는 다양한 개발 시나리오에 활용됩니다.
* 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):
docker 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):
docker 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*
toolset과 tool의 조합 (Additive): toolset과 tool은 함께 사용될 수 있으며, 이 경우 지정된 toolset의 모든 tool에 개별 tool이 추가됩니다.* 예시 (Docker):
docker 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로 유지됩니다.사용 가능한 toolset 및 tool:
서버는 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 tool은 repo OAuth scope를 요구하며 owner, repo, run_id 파라미터가 필요합니다.