Skip to main content

GitHub MCP ์„œ๋ฒ„ ์‚ฌ์šฉ

GitHub MCP(๋ชจ๋ธ ์ปจํ…์ŠคํŠธ ํ”„๋กœํ† ์ฝœ) ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Copilot Chat์„ ํ™•์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

์ฐธ๊ณ  ํ•ญ๋ชฉ

์›๊ฒฉ GitHub MCP ์„œ๋ฒ„๋Š” ํ˜„์žฌ ๊ณต๊ฐœ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ์ƒํƒœ๋กœ ์ œ๊ณต๋˜๋ฉฐ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub MCP ์„œ๋ฒ„์˜ ๋กœ์ปฌ ์‚ฌ์šฉ์€ GA(์ผ๋ฐ˜ ๊ณต๊ธ‰)์ž…๋‹ˆ๋‹ค.

๊ณต๊ฐœ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๊ธฐ๊ฐ„ ์ค‘์—๋Š” Copilot์˜ OAuth๋ฅผ ํ†ตํ•œ ์›๊ฒฉ GitHub MCP ์•ก์„ธ์Šค๋Š” ํ•ด๋‹น ์กฐ์ง์ด๋‚˜ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์ˆ˜์ค€์˜ Copilot ํŽธ์ง‘๊ธฐ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๊ธฐ๋Šฅ ์ •์ฑ…์„ ํ†ตํ•ด ์ œ์–ด๋ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„์— ๋Œ€ํ•œ PAT ์•ก์„ธ์Šค๋Š” PAT ์ •์ฑ…์— ์˜ํ•ด ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

GitHub MCP ์„œ๋ฒ„ ์ •๋ณด

GitHub MCP ์„œ๋ฒ„๋Š” GitHub์—์„œ ์ œ๊ณต ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” MCP(๋ชจ๋ธ ์ปจํ…์ŠคํŠธ ํ”„๋กœํ† ์ฝœ) ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. MCP๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด AI ๊ธฐ๋Šฅ์„ ๋‹ค๋ฅธ ๋„๊ตฌ ๋ฐ ์„œ๋น„์Šค์™€ ํ†ตํ•ฉํ•˜์—ฌ ์ปจํ…์ŠคํŠธ์— ๋งž๋Š” AI ์ง€์›์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub MCP ์„œ๋ฒ„์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์†Œ๊ฐœ ๋ฐ MCP ๊ฐœ์š”๋Š” About Model Context Protocol (MCP)์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

ํ•„์ˆ˜ ์กฐ๊ฑด

  • GitHub ๊ณ„์ •
  • Visual Studio Code ๋˜๋Š” ๋‹ค๋ฅธ MCP ํ˜ธํ™˜ ํŽธ์ง‘๊ธฐ

Visual Studio Code์—์„œ GitHub MCP ์„œ๋ฒ„ ์„ค์ •

์•„๋ž˜ ์ง€์นจ์€ Visual Studio Code์—์„œ GitHub MCP ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ MCP ํ˜ธํ™˜ ํŽธ์ง‘๊ธฐ๋„ ๋น„์Šทํ•œ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜์ง€๋งŒ ์ •ํ™•ํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž์˜ ํ•„์š” ์‚ฌํ•ญ ๋ฐ ๊ธฐ๋ณธ ์„ค์ •์— ๋”ฐ๋ผ GitHub MCP ์„œ๋ฒ„๋ฅผ ์›๊ฒฉ ๋˜๋Š” ๋กœ์ปฌ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub MCP ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํŠน์ • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Visual Studio Code์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์—ฌ๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž์™€ MCP ์„œ๋ฒ„๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋ฃจํŠธ์— .vscode/mcp.json ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • Visual Studio Code์˜ ๊ฐœ์ธ ์ธ์Šคํ„ด์Šค์ž…๋‹ˆ๋‹ค. ๊ตฌ์„ฑ๋œ MCP ์„œ๋ฒ„์— ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ์œ ์ผํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด Visual Studio Code์—์„œ settings.json ํŒŒ์ผ์— ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑ๋œ MCP ์„œ๋ฒ„๋Š” ๋ชจ๋“  ์ž‘์—… ์˜์—ญ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›๊ฒฉ GitHub MCP ์„œ๋ฒ„๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์›ํด๋ฆญ OAuth ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ์ธ์ฆ์„ ์œ„ํ•ด PAT(personal access token)๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜๋™์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. OAuth๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด MCP ์„œ๋ฒ„๋Š” ๊ฐœ์ธ ๊ณ„์ •๊ณผ ๋™์ผํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. PAT๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด MCP ์„œ๋ฒ„๋Š” PAT์—์„œ ๋ถ€์—ฌํ•œ ๋ฒ”์œ„์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  ํ•ญ๋ชฉ

PAT ์ œํ•œ์ด ์žˆ๋Š” Enterprise Managed User์ธ ๊ฒฝ์šฐ PAT ์ธ์ฆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. OAuth ์•ก์„ธ์Šค ์ •์ฑ… ์ œํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๊ฐ ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ OAuth ์•ฑ์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(Visual Studio Code ๋ฐ Visual Studio ์ œ์™ธ).

OAuth๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์›๊ฒฉ MCP ์„œ๋ฒ„ ๊ตฌ์„ฑ

์ฐธ๊ณ  ํ•ญ๋ชฉ

์›๊ฒฉ GitHub MCP ์„œ๋ฒ„๋Š” GitHub Enterprise Server ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. GitHub Enterprise Server๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด GitHub MCP ์„œ๋ฒ„๋ฅผ ๋กœ์ปฌ๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ MCP ์„œ๋ฒ„ ์„ค์ •์„ ์ฐธ์กฐํ•˜์„ธ์š”.

OAuth๋ฅผ ์ด์šฉํ•˜์—ฌ ์›๊ฒฉ GitHub MCP ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด PAT๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์ถ”๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. Visual Studio Code์—์„œ ์ง์ ‘ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ๊ธฐ ์ „์šฉ ๋ชจ๋“œ ๋˜๋Š” ์ „์ฒด ์ฝ๊ธฐ/์“ฐ๊ธฐ ์•ก์„ธ์Šค ๊ถŒํ•œ์œผ๋กœ ๊ฐœ๋ณ„ ๋„๊ตฌ ์ง‘ํ•ฉ์„ ์„ค์น˜ํ•˜์—ฌ ์„œ๋ฒ„์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ์ž์˜ ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋„๊ตฌ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  1. Visual Studio Code์—์„œ Ctrl+Shift+P(Windows/Linux) / Command+Shift+P(Mac)๋ฅผ ๋ˆŒ๋Ÿฌ ๋ช…๋ น ํŒ”๋ ˆํŠธ๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

  2. mcp: add server๋ฅผ ์ž…๋ ฅํ•œ ๋‹ค์Œ, Enter ํ‚ค๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

  3. ๋ชฉ๋ก์—์„œ HTTP (HTTP or Server-Sent Events) ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  4. Server URL ํ•„๋“œ์— https://api.githubcopilot.com/mcp/๋ฅผ ์ž…๋ ฅํ•˜๊ณ  Enter ํ‚ค๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

  5. Enter Server ID์—์„œ Enter ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ๊ธฐ๋ณธ ์„œ๋ฒ„ ID ๋˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ์„œ๋ฒ„ ID๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  6. Choose where to save the configuration์—์„œ MCP ์„œ๋ฒ„ ๊ตฌ์„ฑ์„ ์ €์žฅํ•  ์œ„์น˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    • Visual Studio Code๋Š” ํŽธ์ง‘๊ธฐ์—์„œ ์„ ํƒ๋œ ํŒŒ์ผ์— ๊ตฌ์„ฑ์„ ์—ด์–ด ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ํ•ด๋‹น ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ ์ƒˆ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  7. Visual Studio Code ํŒ์—…์—์„œ OAuth๋กœ MCP ์„œ๋ฒ„์— ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ ค๋ฉด Allow๋ฅผ ํด๋ฆญํ•˜๊ณ  ๋ชฉ๋ก์—์„œ ๊ฐœ์ธ ๊ณ„์ •์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

PAT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์›๊ฒฉ MCP ์„œ๋ฒ„ ๊ตฌ์„ฑ

PAT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ GitHub MCP ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด MCP ์„œ๋ฒ„์— ๋ถ€์—ฌํ•˜๋ ค๋Š” ์•ก์„ธ์Šค์— ํ•„์š”ํ•œ ๋ฒ”์œ„๊ฐ€ ํฌํ•จ๋œ PAT๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐœ์ธ์šฉ ์•ก์„ธ์Šค ํ† ํฐ ๊ด€๋ฆฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

PAT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ์„ ๋ฐ›์œผ๋ ค๋ฉด Visual Studio Code์—์„œ MCP ์„œ๋ฒ„๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. Visual Studio Code์—์„œ Ctrl+Shift+P(Windows/Linux) / Command+Shift+P(Mac)๋ฅผ ๋ˆŒ๋Ÿฌ ๋ช…๋ น ํŒ”๋ ˆํŠธ๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

  2. mcp: add server๋ฅผ ์ž…๋ ฅํ•œ ๋‹ค์Œ, Enter ํ‚ค๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

  3. ๋ชฉ๋ก์—์„œ HTTP (HTTP or Server-Sent Events) ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  4. Server URL ํ•„๋“œ์— https://api.githubcopilot.com/mcp/๋ฅผ ์ž…๋ ฅํ•˜๊ณ  Enter ํ‚ค๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

  5. Enter Server ID์—์„œ Enter ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ๊ธฐ๋ณธ ์„œ๋ฒ„ ID ๋˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ์„œ๋ฒ„ ID๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  6. Choose where to save the configuration์—์„œ MCP ์„œ๋ฒ„ ๊ตฌ์„ฑ์„ ์ €์žฅํ•  ์œ„์น˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    • Visual Studio Code๋Š” ํŽธ์ง‘๊ธฐ์—์„œ ์„ ํƒ๋œ ํŒŒ์ผ์— ๊ตฌ์„ฑ์„ ์—ด์–ด ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ํ•ด๋‹น ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ ์ƒˆ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  7. Visual Studio Code ํŒ์—…์—์„œ OAuth ์ธ์ฆ์„ ๊ฑฐ๋ถ€ํ•˜๋ ค๋ฉด Cancel์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  8. PAT๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ url ์ค„์˜ ๋์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    JSON
        ,
          "headers": {
            "Authorization": "Bearer ${input:github_token}"
          }
        },
      },
      "inputs": [
        {
          "id": "github_token",
          "type": "promptString",
          "description": "GitHub Personal Access Token",
          "password": true
        }
      ]
    }
    
  9. ํŒŒ์ผ์— "Restart" ๋‹จ์ถ”๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. "Restart"๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ƒˆ ๊ตฌ์„ฑ์œผ๋กœ MCP ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

    ๊ตฌ์„ฑ ํŒŒ์ผ์˜ MCP ์„œ๋ฒ„ ๋‹ค์‹œ ์‹œ์ž‘ ๋‹จ์ถ” ์Šคํฌ๋ฆฐ์ƒท "Restart" ๋‹จ์ถ”๊ฐ€ ์ง„ํ•œ ์ฃผํ™ฉ์ƒ‰ ์œค๊ณฝ์„ ์œผ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  10. ๋ช…๋ น ํŒ”๋ ˆํŠธ์— GitHub ํ† ํฐ์„ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด์ „์— ๋งŒ๋“  PAT๋ฅผ ์ž…๋ ฅํ•˜๊ณ  Enter๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

    • ์ด์ œ MCP ์„œ๋ฒ„๋Š” PAT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋กœ์ปฌ MCP ์„œ๋ฒ„ ์„ค์ •

์ฐธ๊ณ  ํ•ญ๋ชฉ

GitHub Enterprise Server ์‚ฌ์šฉ์ž์ด๊ณ  ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ์—์„œ PAT ์ œํ•œ์„ ํ™œ์„ฑํ™”ํ•œ ๊ฒฝ์šฐ, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ์˜ PAT ์ •์ฑ…์—์„œ ํ—ˆ์šฉํ•˜๋Š” ๋ฒ”์œ„์— ๋Œ€ํ•ด์„œ๋งŒ API ์—”๋“œํฌ์ธํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  API ์—”๋“œํฌ์ธํŠธ๊ฐ€ ์ œํ•œ๋˜๋ฉด MCP ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ์˜ PAT ์ •์ฑ…์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅด๊ณ  ์žˆ๋‹ค๋ฉด, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ๋ฌธ์˜ํ•˜์„ธ์š”.

GitHub MCP ์„œ๋ฒ„๋ฅผ ๋กœ์ปฌ๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•ด๋‹น ์ปดํ“จํ„ฐ์— Docker๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋กœ์ปฌ MCP ์„œ๋ฒ„์—์„œ๋Š” OAuth๊ฐ€ ์ง€์›๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ PAT๋กœ๋งŒ ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์ปดํ“จํ„ฐ์— Docker๊ฐ€ ์„ค์น˜๋˜์–ด ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. Docker ์„ค์น˜ ์ง€์นจ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  2. (์ตœ์†Œํ•œ) read:packages ๋ฐ repo ๋ฒ”์œ„๊ฐ€ ํฌํ•จ๋œ PAT๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐœ์ธ์šฉ ์•ก์„ธ์Šค ํ† ํฐ ๊ด€๋ฆฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

  3. Visual Studio Code์˜ ํŠน์ • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋˜๋Š” ๊ฐœ์ธ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•ด MCP ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

    • ํŠน์ • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, Visual Studio Code์—์„œ .vscode/mcp.json ํŒŒ์ผ์„ ์—ด๊ณ  ๋‹ค์Œ ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    JSON
       {
        "inputs": [
          {
            "type": "promptString",
            "id": "github_token",
            "description": "GitHub Personal Access Token",
            "password": true
          }
        ],
        "servers": {
          "github": {
            "command": "docker",
            "args": [
              "run",
              "-i",
              "--rm",
              "-e",
              "GITHUB_PERSONAL_ACCESS_TOKEN",
              "ghcr.io/github/github-mcp-server"
            ],
            "env": {
              "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
            }
          }
        }
      }
    
    • Visual Studio Code์˜ ๊ฐœ์ธ ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, Visual Studio Code์—์„œ settings.json ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค.
      • Ctrl+Shift+P(Windows/Linux) ๋˜๋Š” Cmd+Shift+P(macOS)๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.
      • Preferences: Open Settings (JSON) ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
      • ๋‹ค์Œ ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    JSON
    {
      "mcp": {
        "inputs": [
          {
            "type": "promptString",
            "id": "github_token",
            "description": "GitHub Personal Access Token",
            "password": true
          }
        ],
        "servers": {
          "github": {
            "command": "docker",
            "args": [
              "run",
              "-i",
              "--rm",
              "-e",
              "GITHUB_PERSONAL_ACCESS_TOKEN",
              "ghcr.io/github/github-mcp-server"
            ],
            "env": {
              "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
            }
          }
        }
      }
    }
    
  4. ํŒŒ์ผ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

  5. ๋ช…๋ น ํŒ”๋ ˆํŠธ์— GitHub ํ† ํฐ์„ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด์ „์— ๋งŒ๋“  PAT๋ฅผ ์ž…๋ ฅํ•˜๊ณ  Enter๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

    • ์ด์ œ MCP ์„œ๋ฒ„๋Š” PAT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด ๋กœ์ปฌ๋กœ ์‹คํ–‰๋˜๋„๋ก ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋„๊ตฌ ๊ตฌ์„ฑ

GitHub MCP ์„œ๋ฒ„๋Š” ์ฝ๊ธฐ ์ „์šฉ ๋ชจ๋“œ ๋˜๋Š” ์ „์ฒด ์ฝ๊ธฐ/์“ฐ๊ธฐ ์•ก์„ธ์Šค ๊ถŒํ•œ์œผ๋กœ ๊ฐœ๋ณ„ ๋„๊ตฌ ์ง‘ํ•ฉ์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์„ ์ง€์›ํ•˜๋ฏ€๋กœ ์„œ๋ฒ„์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ์ž์˜ ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋„๊ตฌ ์ง‘ํ•ฉ์˜ ์›ํด๋ฆญ ์„ค์น˜ ์˜ต์…˜์€ GitHub MCP ์„œ๋ฒ„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Visual Studio Code์—์„œ GitHub MCP ์„œ๋ฒ„ ์‚ฌ์šฉ

GitHub MCP ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Visual Studio Code์˜ Copilot Chat์„ ํ†ตํ•ด GitHub์—์„œ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. Visual Studio Code์˜ ์ œ๋ชฉ ํ‘œ์‹œ์ค„์— ์žˆ๋Š” ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜์—ฌ Copilot Chat์„ ์—ฝ๋‹ˆ๋‹ค.
  2. Copilot Chat ์ƒ์ž์˜ ํŒ์—… ๋ฉ”๋‰ด์—์„œ Agent๋ฅผ ์„ ํƒํ•˜์„ธ์š”.
  3. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ž‘์—…์„ ๋ณด๋ ค๋ฉด Copilot Chat ์ƒ์ž์—์„œ Select tools ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜์„ธ์š”.
    • Tools ๋“œ๋กญ๋‹ค์šด์˜ MCP Server: GitHub ์•„๋ž˜์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ž‘์—… ๋ชฉ๋ก์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  4. Copilot Chat ์ƒ์ž์— ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ๋ช…๋ น์ด๋‚˜ ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•˜๊ณ  Enter ํ‚ค๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, GitHub MCP ์„œ๋ฒ„์— ์ƒˆ ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์„ ๋‚˜์—ดํ•˜๊ฑฐ๋‚˜, ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋„๋ก ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  5. GitHub MCP ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ฑ„ํŒ… ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์‘๋‹ต์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • Copilot Chat ์ƒ์ž์—์„œ ์ž‘์—…์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  6. ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋”ฐ๋ผ ์ž‘์—…์„ ์™„๋ฃŒํ•˜์„ธ์š”.

GitHub MCP ์„œ๋ฒ„ ์ •๋ณด

GitHub MCP ์„œ๋ฒ„๋Š” GitHub์—์„œ ์ œ๊ณต ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” MCP(๋ชจ๋ธ ์ปจํ…์ŠคํŠธ ํ”„๋กœํ† ์ฝœ) ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. MCP๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด AI ๊ธฐ๋Šฅ์„ ๋‹ค๋ฅธ ๋„๊ตฌ ๋ฐ ์„œ๋น„์Šค์™€ ํ†ตํ•ฉํ•˜์—ฌ ์ปจํ…์ŠคํŠธ์— ๋งž๋Š” AI ์ง€์›์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub MCP ์„œ๋ฒ„์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์†Œ๊ฐœ ๋ฐ MCP ๊ฐœ์š”๋Š” About Model Context Protocol (MCP)์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

ํ•„์ˆ˜ ์กฐ๊ฑด

  • Copilot์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. GitHub Copilot์ด๋ž€?์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

  • ํ˜ธํ™˜๋˜๋Š” JetBrains IDE์ž…๋‹ˆ๋‹ค. GitHub Copilot์€ ๋‹ค์Œ IDE์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค:

    • IntelliJ IDEA(Ultimate, Community, Educational)
    • Android Studio
    • AppCode
    • CLion
    • Code With Me Guest
    • DataGrip
    • DataSpell
    • GoLand
    • JetBrains Client
    • MPS
    • PhpStorm
    • PyCharm(Professional, Community, Educational)
    • Rider
    • RubyMine
    • RustRover
    • WebStorm
    • Writerside

    ๋‹ค์šด๋กœ๋“œํ•  JetBrains IDE ๋„๊ตฌ ์ฐพ๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  • GitHub Copilot ํ™•์žฅ์˜ ์ตœ์‹  ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. JetBrains Marketplace์—์„œ GitHub Copilot ํ”Œ๋Ÿฌ๊ทธ ์ธ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ์„ค์น˜ ์ง€์นจ์€ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์— GitHub Copilot ํ™•์žฅ ์„ค์น˜์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

  • JetBrains IDE์—์„œ GitHub์— ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ ์ง€์นจ์€ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์— GitHub Copilot ํ™•์žฅ ์„ค์น˜์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

JetBrains IDE์—์„œ GitHub MCP ์„œ๋ฒ„ ์„ค์ •

์•„๋ž˜ ์ง€์นจ์—์„œ๋Š” JetBrains IDE์—์„œ GitHub MCP ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ•˜๋Š” ์ ˆ์ฐจ๋ฅผ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ MCP ํ˜ธํ™˜ ํŽธ์ง‘๊ธฐ๋„ ๋น„์Šทํ•œ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜์ง€๋งŒ ์ •ํ™•ํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub MCP ์„œ๋ฒ„๋ฅผ ์›๊ฒฉ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. JetBrains IDE๋Š” GitHub MCP ์„œ๋ฒ„๋ฅผ ํ†ตํ•œ ์ธ์ฆ์šฉ personal access token(PAT) ์‚ฌ์šฉ๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  ํ•ญ๋ชฉ

PAT ์ œํ•œ์ด ์žˆ๋Š” Enterprise Managed User์ธ ๊ฒฝ์šฐ PAT ์ธ์ฆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

GitHub MCP ์„œ๋ฒ„์˜ ๋กœ์ปฌ ์„ค์ •์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ GitHub MCP ์„œ๋ฒ„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

PAT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์›๊ฒฉ MCP ์„œ๋ฒ„ ๊ตฌ์„ฑ

PAT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ GitHub MCP ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด MCP ์„œ๋ฒ„์— ๋ถ€์—ฌํ•˜๋ ค๋Š” ์•ก์„ธ์Šค์— ํ•„์š”ํ•œ ๋ฒ”์œ„๊ฐ€ ํฌํ•จ๋œ PAT๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐœ์ธ์šฉ ์•ก์„ธ์Šค ํ† ํฐ ๊ด€๋ฆฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

  1. ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ๋ชจ์„œ๋ฆฌ์—์„œ ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฉ”๋‰ด์—์„œ "Edit settings"๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. MCP ์„น์…˜์—์„œ "Edit in mcp.json"์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  4. ๋‹ค์Œ ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ YOUR_GITHUB_PAT์„ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  PAT์œผ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
JSON
  {
    "servers": {
        "github": {
            "url": "https://api.githubcopilot.com/mcp/",
            "requestInit": {
                "headers": {
                    "Authorization": "Bearer YOUR_GITHUB_PAT"
                }
            }
        }
    }
  }

JetBrains IDE์—์„œ GitHub MCP ์„œ๋ฒ„ ์‚ฌ์šฉ

GitHub MCP ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด JetBrains IDE์˜ Copilot Chat์„ ํ†ตํ•ด GitHub์—์„œ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. JetBrains IDE ์ฐฝ์˜ ์˜ค๋ฅธ์ชฝ์—์„œ GitHub Copilot ์ฑ„ํŒ… ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜์—ฌ Copilot Chat ์ฐฝ์„ ์—ฝ๋‹ˆ๋‹ค.

    ํ™œ๋™ ํ‘œ์‹œ์ค„์˜ GitHub Copilot ์ฑ„ํŒ… ์•„์ด์ฝ˜ ์Šคํฌ๋ฆฐ์ƒท

  2. ์ฑ„ํŒ… ํŒจ๋„ ๋งจ ์œ„์—์„œ Agent ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์„ ํ™•์ธํ•˜๋ ค๋ฉด Copilot Chat ์ƒ์ž์—์„œ ๋„๊ตฌ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜์„ธ์š”.

    • MCP Server: GitHub ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์ด ๋ชฉ๋ก์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  4. Copilot Chat ์ƒ์ž์— ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ๋ช…๋ น์ด๋‚˜ ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•˜๊ณ  Enter ํ‚ค๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

    • ์˜ˆ๋ฅผ ๋“ค์–ด, GitHub MCP ์„œ๋ฒ„์— ์ƒˆ ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์„ ๋‚˜์—ดํ•˜๊ฑฐ๋‚˜, ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋„๋ก ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  5. GitHub MCP ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ฑ„ํŒ… ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์‘๋‹ต์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    • Copilot Chat ์ƒ์ž์—์„œ ์ž‘์—…์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  6. ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋”ฐ๋ผ ์ž‘์—…์„ ์™„๋ฃŒํ•˜์„ธ์š”.

GitHub MCP ์„œ๋ฒ„ ์ •๋ณด

GitHub MCP ์„œ๋ฒ„๋Š” GitHub์—์„œ ์ œ๊ณต ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” MCP(๋ชจ๋ธ ์ปจํ…์ŠคํŠธ ํ”„๋กœํ† ์ฝœ) ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. MCP๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด AI ๊ธฐ๋Šฅ์„ ๋‹ค๋ฅธ ๋„๊ตฌ ๋ฐ ์„œ๋น„์Šค์™€ ํ†ตํ•ฉํ•˜์—ฌ ์ปจํ…์ŠคํŠธ์— ๋งž๋Š” AI ์ง€์›์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub MCP ์„œ๋ฒ„์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์†Œ๊ฐœ ๋ฐ MCP ๊ฐœ์š”๋Š” About Model Context Protocol (MCP)์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

ํ•„์ˆ˜ ์กฐ๊ฑด

Xcode์—์„œ GitHub MCP ์„œ๋ฒ„ ์„ค์ •

์•„๋ž˜ ์ง€์นจ์—์„œ๋Š” Xcode์—์„œ GitHub MCP ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ•˜๋Š” ์ ˆ์ฐจ๋ฅผ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ MCP ํ˜ธํ™˜ ํŽธ์ง‘๊ธฐ๋„ ๋น„์Šทํ•œ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜์ง€๋งŒ ์ •ํ™•ํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub MCP ์„œ๋ฒ„๋ฅผ ์›๊ฒฉ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. Xcode๋Š” GitHub MCP ์„œ๋ฒ„๋ฅผ ํ†ตํ•œ ์ธ์ฆ์šฉ PAT(personal access token) ์‚ฌ์šฉ๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  ํ•ญ๋ชฉ

PAT ์ œํ•œ์ด ์žˆ๋Š” Enterprise Managed User์ธ ๊ฒฝ์šฐ PAT ์ธ์ฆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

GitHub MCP ์„œ๋ฒ„์˜ ๋กœ์ปฌ ์„ค์ •์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ GitHub MCP ์„œ๋ฒ„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

PAT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์›๊ฒฉ MCP ์„œ๋ฒ„ ๊ตฌ์„ฑ

PAT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ GitHub MCP ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด MCP ์„œ๋ฒ„์— ๋ถ€์—ฌํ•˜๋ ค๋Š” ์•ก์„ธ์Šค์— ํ•„์š”ํ•œ ๋ฒ”์œ„๊ฐ€ ํฌํ•จ๋œ PAT๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐœ์ธ์šฉ ์•ก์„ธ์Šค ํ† ํฐ ๊ด€๋ฆฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

  1. Xcode์šฉ GitHub Copilot ํ™•์žฅ์„ ์—ฝ๋‹ˆ๋‹ค.
  2. ์—์ด์ „ํŠธ ๋ชจ๋“œ์—์„œ ๋„๊ตฌ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. "Edit config"๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  4. ๋‹ค์Œ ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ YOUR_GITHUB_PAT์„ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  PAT์œผ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
JSON
  {
    "servers": {
        "github": {
            "url": "https://api.githubcopilot.com/mcp/",
            "requestInit": {
                "headers": {
                    "Authorization": "Bearer YOUR_GITHUB_PAT"
                }
            }
        }
    }
  }

Xcode์—์„œ GitHub MCP ์„œ๋ฒ„ ์‚ฌ์šฉ

GitHub MCP ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Xcode์˜ Copilot Chat์„ ํ†ตํ•ด GitHub์—์„œ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์ฑ„ํŒ… ๋ณด๊ธฐ๋ฅผ ์—ด๋ ค๋ฉด ๋ฉ”๋‰ด์—์„œ Editor๋ฅผ ํด๋ฆญํ•œ ๋‹ค์Œ, Copilot, Open Chat์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. Copilot Chat๊ฐ€ ์ƒˆ ์ฐฝ์—์„œ ์—ด๋ฆฝ๋‹ˆ๋‹ค.
  2. ์ฑ„ํŒ… ํŒจ๋„ ์•„๋ž˜์ชฝ์—์„œ Agent๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์„ ํ™•์ธํ•˜๋ ค๋ฉด Copilot Chat ์ƒ์ž์—์„œ ๋„๊ตฌ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜์„ธ์š”.
    • MCP Server: GitHub ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์ด ๋ชฉ๋ก์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  4. Copilot Chat ์ƒ์ž์— ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ๋ช…๋ น์ด๋‚˜ ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•˜๊ณ  Enter ํ‚ค๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, GitHub MCP ์„œ๋ฒ„์— ์ƒˆ ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์„ ๋‚˜์—ดํ•˜๊ฑฐ๋‚˜, ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋„๋ก ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  5. GitHub MCP ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ฑ„ํŒ… ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์‘๋‹ต์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • Copilot Chat ์ƒ์ž์—์„œ ์ž‘์—…์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  6. ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋”ฐ๋ผ ์ž‘์—…์„ ์™„๋ฃŒํ•˜์„ธ์š”.

GitHub MCP ์„œ๋ฒ„ ์ •๋ณด

GitHub MCP ์„œ๋ฒ„๋Š” GitHub์—์„œ ์ œ๊ณต ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” MCP(๋ชจ๋ธ ์ปจํ…์ŠคํŠธ ํ”„๋กœํ† ์ฝœ) ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. MCP๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด AI ๊ธฐ๋Šฅ์„ ๋‹ค๋ฅธ ๋„๊ตฌ ๋ฐ ์„œ๋น„์Šค์™€ ํ†ตํ•ฉํ•˜์—ฌ ์ปจํ…์ŠคํŠธ์— ๋งž๋Š” AI ์ง€์›์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub MCP ์„œ๋ฒ„์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์†Œ๊ฐœ ๋ฐ MCP ๊ฐœ์š”๋Š” About Model Context Protocol (MCP)์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

ํ•„์ˆ˜ ์กฐ๊ฑด

Eclipse์—์„œ GitHub MCP ์„œ๋ฒ„ ์„ค์ •

์•„๋ž˜ ์ง€์นจ์—์„œ๋Š” Eclipse์—์„œ GitHub MCP ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ•˜๋Š” ์ ˆ์ฐจ๋ฅผ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ MCP ํ˜ธํ™˜ ํŽธ์ง‘๊ธฐ๋„ ๋น„์Šทํ•œ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜์ง€๋งŒ ์ •ํ™•ํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub MCP ์„œ๋ฒ„๋ฅผ ์›๊ฒฉ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. Eclipse๋Š” GitHub MCP ์„œ๋ฒ„๋ฅผ ํ†ตํ•œ ์ธ์ฆ์šฉ PAT(personal access token) ์‚ฌ์šฉ๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  ํ•ญ๋ชฉ

PAT ์ œํ•œ์ด ์žˆ๋Š” Enterprise Managed User์ธ ๊ฒฝ์šฐ PAT ์ธ์ฆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

GitHub MCP ์„œ๋ฒ„์˜ ๋กœ์ปฌ ์„ค์ •์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ GitHub MCP ์„œ๋ฒ„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

PAT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์›๊ฒฉ MCP ์„œ๋ฒ„ ๊ตฌ์„ฑ

PAT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ GitHub MCP ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด MCP ์„œ๋ฒ„์— ๋ถ€์—ฌํ•˜๋ ค๋Š” ์•ก์„ธ์Šค์— ํ•„์š”ํ•œ ๋ฒ”์œ„๊ฐ€ ํฌํ•จ๋œ PAT๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐœ์ธ์šฉ ์•ก์„ธ์Šค ํ† ํฐ ๊ด€๋ฆฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

  1. Copilot Chat ํŒจ๋„์„ ์—ด๋ ค๋ฉด Eclipse ํ•˜๋‹จ์˜ ์ƒํƒœ ํ‘œ์‹œ์ค„์— ์žˆ๋Š” Copilot ์•„์ด์ฝ˜()์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฉ”๋‰ด์—์„œ "Edit preferences"๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. ์™ผ์ชฝ ์ฐฝ์—์„œ GitHub Copilot์„ ํ™•์žฅํ•˜๊ณ  MCP๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  4. ๋‹ค์Œ ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ YOUR_GITHUB_PAT์„ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“  PAT์œผ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
JSON
  {
    "servers": {
        "github": {
            "url": "https://api.githubcopilot.com/mcp/",
            "requestInit": {
                "headers": {
                    "Authorization": "Bearer YOUR_GITHUB_PAT"
                }
            }
        }
    }
  }

Eclipse์—์„œ GitHub MCP ์„œ๋ฒ„ ์‚ฌ์šฉ

GitHub MCP ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Eclipse์˜ Copilot Chat์„ ํ†ตํ•ด GitHub์—์„œ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. Copilot Chat ํŒจ๋„์„ ์—ด๋ ค๋ฉด Eclipse ํ•˜๋‹จ์˜ ์ƒํƒœ ํ‘œ์‹œ์ค„์— ์žˆ๋Š” Copilot ์•„์ด์ฝ˜()์„ ํด๋ฆญํ•œ ๋‹ค์Œ, Open Chat์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. ์ฑ„ํŒ… ํŒจ๋„ ์•„๋ž˜์ชฝ์˜ ๋ชจ๋“œ ๋“œ๋กญ๋‹ค์šด์—์„œ Agent๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์„ ํ™•์ธํ•˜๋ ค๋ฉด Copilot Chat ์ƒ์ž์—์„œ ๋„๊ตฌ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜์„ธ์š”.
    • ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์ด github์— ๋ชฉ๋ก์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  4. Copilot Chat ์ƒ์ž์— ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ๋ช…๋ น์ด๋‚˜ ์งˆ๋ฌธ์„ ์ž…๋ ฅํ•˜๊ณ  Enter ํ‚ค๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, GitHub MCP ์„œ๋ฒ„์— ์ƒˆ ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์„ ๋‚˜์—ดํ•˜๊ฑฐ๋‚˜, ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋„๋ก ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  5. GitHub MCP ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ฑ„ํŒ… ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์‘๋‹ต์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • Copilot Chat ์ƒ์ž์—์„œ ์ž‘์—…์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  6. ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋”ฐ๋ผ ์ž‘์—…์„ ์™„๋ฃŒํ•˜์„ธ์š”.

๋ฌธ์ œ ํ•ด๊ฒฐ

GitHub MCP ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜์„ธ์š”.

๊ถŒํ•œ ๋ถ€์—ฌ ๋ฌธ์ œ

MCP ์„œ๋ฒ„ ์ธ์ฆ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ๋‹ค์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  • ์„ ํƒํ•œ IDE์—์„œ GitHub์— ๋กœ๊ทธ์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

PAT(personal access token)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆํ•˜๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ๋‹ค์Œ ์‚ฌํ•ญ์„ ํ™•์ธํ•˜์„ธ์š”.

  • GitHub PAT๋Š” ์œ ํšจํ•˜๋ฉฐ ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ์ž‘์—…์— ํ•„์š”ํ•œ ๋ฒ”์œ„๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ฌ๋ฐ”๋ฅธ PAT๋ฅผ ์ž…๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค.

Copilot ์—์ด์ „ํŠธ ๋ชจ๋“œ ๋ฌธ์ œ

Copilot Chat ์—์ด์ „ํŠธ ๋ชจ๋“œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ํ™•์ธํ•˜์„ธ์š”.

  • Copilot Chat ์ƒ์ž์—์„œ ์˜ฌ๋ฐ”๋ฅธ ์—์ด์ „ํŠธ๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.
  • IDE์—์„œ MCP ์„œ๋ฒ„๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์‹คํ–‰ํ•˜๋ ค๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ถŒํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜ ํŒ

GitHub MCP ์„œ๋ฒ„์—์„œ ์ด์™€ ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ, ๋ฌธ์ œ ํ•ด๊ฒฐ์— ๋„์›€์ด ๋˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ํŒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • MCP ์„œ๋ฒ„์˜ ์ถœ๋ ฅ ๋กœ๊ทธ์—์„œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
  • ๋กœ์ปฌ์—์„œ MCP ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋กœ์ปฌ ํ™˜๊ฒฝ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.
  • MCP ์„œ๋ฒ„ ๋˜๋Š” IDE๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด ๋ณด์„ธ์š”.

์ถ”๊ฐ€ ์ฐธ๊ณ  ์ž๋ฃŒ