๐ MCP๋ ๋ฌด์์ธ๊ฐ? AI ๋๊ตฌ ์ฐ๊ฒฐ ํ์ค Model Context Protocol ์์ ์ ๋ฆฌ
- ๊ณต์ ๋งํฌ ๋ง๋ค๊ธฐ
- X
- ์ด๋ฉ์ผ
- ๊ธฐํ ์ฑ
๋ณต์กํ AI ๋๊ตฌ ์ฐ๊ฒฐ์ ํ๋์ ํ์ค์ผ๋ก
์ค๋๋ ๊ฐ๋ฐ์๋ค์ ์๋ง์ ์ธ๋ถ ์๋น์ค์ ๋ฐ์ดํฐ ์์ค๋ฅผ ๋ค๋ฃจ๋ฉฐ ์ผํฉ๋๋ค. ์ฝ๋ ์ ์ฅ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์ฌ๋ ๋ฉ์์ง, ์ด์ ํธ๋ํน… ์ด ๋ชจ๋ ๊ฒ์ AI๊ฐ ํ์ฉํ๋ ค๋ฉด ๊ฐ๊ฐ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐํด์ผ ํ์ต๋๋ค. AI๊ฐ ๋ฐ์ ํ ์๋ก GPT๋ Claude๋, ํ๋ฉด์ ์ผ๋ก๋ ๊ฐ๋ ฅํ์ง๋ง ์ค์ ๋ก๋ AI๊ฐ "๋ง๋ง ํ ์ ์๋" ์กด์ฌ์์ต๋๋ค. ์ด๊ฒ์ด ๋ฌธ์ ์๊ณ , ํด๊ฒฐ์ฑ ์ด ๋ฑ์ฅํ์ต๋๋ค.
๊ทธ ํด๊ฒฐ์ฑ ์ด ๋ฐ๋ก MCP(Model Context Protocol)์ ๋๋ค.
MCP์ ํต์ฌ ๊ฐ๋ : AI๋ฅผ ์ํ USB ํ๋ธ
MCP๋ Anthropic์ด 2024๋ ๊ณต๊ฐํ ์คํ ํ๋กํ ์ฝ์ ๋๋ค. ํต์ฌ ๋ชฉํ๋ "AI ๋ชจ๋ธ์ด ์ธ๋ถ ์ธ๊ณ์ ํต์ ํ๋ ๋ฐฉ์์ ํ์คํํ๋ ๊ฒ"์ ๋๋ค.
USB๋ฅผ ์๊ฐํด ๋ณด๋ฉด ์ดํดํ๊ธฐ ์ฝ์ต๋๋ค. ์์ ์๋ ๋ง์ฐ์ค๋ PS/2, ํค๋ณด๋๋ DIN, ํ๋ฆฐํฐ๋ ๋ณ๋ ฌ ํฌํธ๋ฅผ ์ผ์ต๋๋ค. ์ฅ์น๋ง๋ค ๋ค๋ฅธ ๊ท๊ฒฉ์ด ํ์ํ์ฃ . USB๊ฐ ๋์ค๋ฉด์ ๋ชจ๋ ์ฅ์น๋ฅผ ํ๋์ ํ์ค ํฌํธ์ ๊ฝ์ ์ ์๊ฒ ๋์ต๋๋ค.
MCP๊ฐ ๋ฐ๋ก ๊ทธ ์ญํ ์ ๋๋ค. ์์ ์๋ AI๊ฐ GitHub ์ ์ฅ์์ ์ ๊ทผํ๋ ค๋ฉด Claude ์ ์ฉ ํ๋ฌ๊ทธ์ธ, GPT ์ ์ฉ Function Calling์ ๋ฐ๋ก๋ฐ๋ก ๋ง๋ค์ด์ผ ํ์ต๋๋ค. MCP๋ ์ด๋ฅผ ํ ๋ฒ๋ง ๋ง๋ค์ด๋ ์ด๋ค AI ์ด์์คํดํธ์์๋ ๋์ํ๋๋ก ๋ฐ๊ฟ๋๋ค.
๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด: - MCP ์๋ฒ: ํน์ ๋ฐ์ดํฐ ์์ค๋ ๋๊ตฌ์ ๋ํ ์ ๊ทผ ๊ธฐ๋ฅ์ ์ ๊ณต (์: ํ์ผ ์์คํ , DB, Slack ๋ฑ) - MCP ํด๋ผ์ด์ธํธ: AI ๋ชจ๋ธ์ด MCP ์๋ฒ์ ํต์ ํ๋ ์ชฝ (Claude Desktop, Cursor ๋ฑ) - ํ๋กํ ์ฝ: ๋ ๊ตฌ์ฑ์์ ๊ฐ JSON-RPC ๊ธฐ๋ฐ ํต์ ๊ท๊ฒฉ
์ค์ ๋ก ์ด๋ป๊ฒ ๋์ํ๋๊ฐ: ์์ฒญ๋ถํฐ ๋ต๋ณ๊น์ง
์๋ฅผ ๋ค์ด Claude Desktop์ ํ์ผ ์์คํ MCP ์๋ฒ๋ฅผ ์ฐ๊ฒฐํ ์ํฉ์ ์์ํด ๋ณด์ธ์. ์ฌ์ฉ์๊ฐ "ํ๋ก์ ํธ ๋ฃจํธ์ README ํ์ผ ๋ด์ฉ ์์ฝํด ์ค"๋ผ๊ณ ์ ๋ ฅํ๋ฉด:
1. Claude๊ฐ ์๋ ํ์ → ํ์ผ์ ์ฝ์ด์ผ ํ๋ค๊ณ ํ๋จ 2. MCP ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ → `read_file("/project/README.md")` ํธ์ถ 3. MCP ์๋ฒ๊ฐ ์ค์ ํ์ผ ์ฝ๊ธฐ ์ํ → ๋ด์ฉ ๋ฐํ 4. Claude๊ฐ ๋ฐํ๋ ๋ด์ฉ ๊ธฐ๋ฐ์ผ๋ก ๋ต๋ณ → ์์ฝ ์ ๊ณต
AI ์ด์์คํดํธ๊ฐ "๋ง๋ก๋ง ํ๋ ์กด์ฌ"๊ฐ ์๋๋ผ, ์ค์ ๋ก ํ๋ํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ค๋ ์์ด์ ํธ๋ก ์งํํ๋ ๊ฒ์ ๋๋ค.
Before MCP: AI์๊ฒ ํ์ผ ๋ด์ฉ์ ์๋ ค์ฃผ๋ ค๋ฉด ์ง์ ๋ณต์ฌํด์ ์ฑํ ์ฐฝ์ ๋ถ์ฌ๋ฃ๊ธฐ ํด์ผ ํ์ต๋๋ค. After MCP: "์ด ํด๋์์ PR #42 ๊ด๋ จ ์ฝ๋ ์ฐพ์์ค" ํ ๋ง๋๋ฉด ๋ฉ๋๋ค. GitHub MCP ์๋ฒ๊ฐ PR ๋ด์ฉ์ ์ง์ ๊ฐ์ ธ์ต๋๋ค.
MCP ์๋ฒ ์ง์ ๋ง๋ค ์๋ ์๋ค
MCP ์๋ฒ๋ ๋๊ตฌ๋ ๋ง๋ค์ด ๊ณต์ ํ ์ ์์ต๋๋ค. Node.js ๋๋ Python SDK๋ฅผ ์ง์ํ๋ฉฐ, ์ธ ๊ฐ์ง ํต์ฌ ๊ตฌ์ฑ ์์๊ฐ ์์ต๋๋ค:
- Tools: AI๊ฐ ์คํํ ์ ์๋ ์ก์ . `create_issue`, `send_slack_message` ๊ฐ์ ๊ฒ๋ค์ ๋๋ค. - Resources: AI๊ฐ ์ฝ์ ์ ์๋ ๋ฐ์ดํฐ ์์ค. ํ์ผ, DB ๋ ์ฝ๋, API ์๋ต ๋ฑ์ ๋๋ค. - Prompts: ์์ฃผ ์ฐ๋ ์์ ์ ์ํด ๋ฏธ๋ฆฌ ์ ์๋ ํ๋กฌํํธ ํ ํ๋ฆฟ์ ๋๋ค.
ํ ๋ด์์ ์ฌ์ฉํ๋ ๋ด๋ถ ์์คํ ์ MCP ์๋ฒ๋ก ๋ง๋ค๋ฉด, ์ดํ์๋ "์ด๋ฒ ๋ฌ ๋ฏธ์๋ฃ ์ด์ ๋ชฉ๋ก ์ ๋ฆฌํด ์ค"๋ผ๊ณ ๋ง ํด๋ Claude๊ฐ Jira์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ ๋ฆฌํด ์ค๋๋ค. ํ ๋ฒ ๋ง๋ค๋ฉด ํ ์ ์ฒด์ AI ์ํฌํ๋ก๊ฐ ํต์งธ๋ก ์ ๊ทธ๋ ์ด๋๋ฉ๋๋ค.
์ง๊ธ ๋น์ฅ ์ธ ์ ์๋ ๊ณต์ MCP ์๋ฒ๋ค
์ด๋ฏธ ๊ณต๊ฐ๋ MCP ์๋ฒ๋ค์ด ๋ง์ต๋๋ค. ์์ฃผ ์ฐ์ด๋ ๊ฒ๋ค์ ์ ๋ฆฌํ๋ฉด:
| ์๋ฒ ์ด๋ฆ | ๊ธฐ๋ฅ | |---|---| | `filesystem` | ๋ก์ปฌ ํ์ผ ์ฝ๊ธฐ/์ฐ๊ธฐ | | `github` | PR, ์ด์, ์ฝ๋ ๊ด๋ฆฌ | | `postgres` | SQL ์ฟผ๋ฆฌ ์คํ | | `brave-search` | ์น ๊ฒ์ ๋ฐ ์์ฝ | | `slack` | ๋ฉ์์ง ์ฝ๊ธฐ/๋ณด๋ด๊ธฐ |
Claude Desktop์ `claude_desktop_config.json`์ ๋ช ์ค๋ง ์ถ๊ฐํ๋ฉด ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
MCP๊ฐ AI ์ํ๊ณ์ ์๋ฏธํ๋ ๊ฒ
MCP๋ ๋จ์ํ "AI๊ฐ ๋ ๋ง์ ๊ฒ์ ํ ์ ์๊ฒ ๋๋ค"๋ ์ด์ผ๊ธฐ๊ฐ ์๋๋๋ค. AI๊ฐ ์ค์ ์ ๋ฌด ํ๊ฒฝ์ ํตํฉ๋ ์ ์๋ ํ์ค ์ธํฐํ์ด์ค๊ฐ ์๊ฒผ๋ค๋ ์๋ฏธ์ ๋๋ค. ๋ ๋ง์ ์๋น์ค๊ฐ MCP ์๋ฒ๋ฅผ ๊ณต๊ฐํ ์๋ก, AI ์ด์์คํดํธ๋ ์๋์ผ๋ก ๋ ๊ฐ๋ ฅํด์ง๋๋ค. MCP๋ ๊ทธ ์ฑ์ฅ ๊ฒฝ๋ก๋ฅผ ํตํฉํด ์ฃผ๋ ๊ท๊ฒฉ์ ๋๋ค.
๊ด๋ จ ๊ธ: MCP ๊ด๋ จ ๊ธ ๋ ๋ณด๊ธฐ
- ๊ณต์ ๋งํฌ ๋ง๋ค๊ธฐ
- X
- ์ด๋ฉ์ผ
- ๊ธฐํ ์ฑ
๋๊ธ
๋๊ธ ์ฐ๊ธฐ