MCP๊ฐ ๋ญ๊ธธ๋๐ค
์ต๊ทผ AI ๊ฐ๋ฐ ์ปค๋ฎค๋ํฐ์์ **MCP(Model Context Protocol)**๊ฐ ํฐ ์ฃผ๋ชฉ์ ๋ฐ๊ณ ์์ต๋๋ค. 2024๋ 11์ Anthropic์ด ์คํ์์ค๋ก ๊ณต๊ฐํ ์ด ํ๋กํ ์ฝ์ ์ฒ์์๋ ํฐ ๋ฐ์์ ์ป์ง ๋ชปํ์ง๋ง, 2025๋ ์ด๋ถํฐ ๊ด์ฌ์ด ๊ธ๊ฒฉํ ์ฆ๊ฐํ๊ณ ์์ต๋๋ค. MCP๋ LLM์๊ฒ ๋ถ์กฑํ ํ์ผ ์์คํ , ๋ฐ์ดํฐ๋ฒ ์ด์ค, API ๋ฑ ๊ธฐ์กด ๋ฐ์ดํฐ ์์ค๋ฅผ ์ปจํ ์คํธ๋ก์จ ํต์ ํ ์ ์๋ ํ์ค์ ์ ๊ณตํฉ๋๋ค. HTTP ํต์ ์ด ์ฒ์ ์ธ์์ ๋์์ ๋์ฒ๋ผ, LLM ์์ง์ ๋ถ์ผ ์ ์๋ ๋๊ตฌ๋ฅผ ์ ์ํ๋ ๊ท๊ฒฉ์ ์ ๊ณตํจ์ผ๋ก์จ, LLM์ด ๊ฐ์ง ๊ฐ๋ฅ์ฑ์ ๋ฌดํ๋๋ก ํ์ฅ์์ผ์ค๋๋ค.
MCP๋ ๋ฌด์์ธ๊ฐ?โ
MCP๋ ๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ(LLM)์ด ์ธ๋ถ ๋ฐ์ดํฐ์ ์์คํ ์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ ์ ์๋๋ก ์ค๊ณ๋ ๊ฐ๋ฐฉํ ํ์ค ํ๋กํ ์ฝ์ ๋๋ค. Anthropic์ MCP๋ฅผ USB-C ํฌํธ์ ๋น์ ํ๋๋ฐ, USB-C๊ฐ ๋ค์ํ ๊ธฐ๊ธฐ์ ์ฃผ๋ณ ์ฅ์น๋ฅผ ํ์คํ๋ ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐํ๋ฏ์ด, MCP๋ AI ๋ชจ๋ธ์ด ๋ค์ํ ๋ฐ์ดํฐ ์์ค์ ๋๊ตฌ์ ํ์คํ๋ ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐ๋ ์ ์๋๋ก ํฉ๋๋ค.
MCP์ ์ฃผ์ ํน์งโ
- ๊ฐ๋ฐฉํ ํ์ค: ๋๊ตฌ๋ ์์ ๋กญ๊ฒ ์ฌ์ฉํ๊ณ ๊ฐ์ ํ ์ ์์ต๋๋ค.
- ์๋ฐฉํฅ ์ฐ๊ฒฐ: AI ๋ชจ๋ธ๊ณผ ๋ฐ์ดํฐ ์์ค ๊ฐ์ ์ง์์ ์ธ ํต์ ์ ์ง์ํฉ๋๋ค.
- ๋ฒ์ฉ์ฑ๊ณผ ํ์คํ: ๋ค์ํ ๋ฐ์ดํฐ ์์ค์ ๋๊ตฌ๋ฅผ ํ๋์ ํ๋กํ ์ฝ๋ก ์ฐ๊ฒฐํฉ๋๋ค.
- ๋ณด์ ๋ฐ ์ ๋ขฐ์ฑ: ์์ ํ๊ณ ์ ๋ขฐํ ์ ์๋ ์ฐ๊ฒฐ์ ์ ๊ณตํฉ๋๋ค.
MCP์ ๋์ ๋ฐฉ์โ
MCP๋ ๋ค์๊ณผ ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๊ฑฐ์นฉ๋๋ค.
1. ์ฐ๊ฒฐ ์ค์ โ
- ํธ์คํธ ์ ํ๋ฆฌ์ผ์ด์ (์: Claude Desktop, Cursor)์ด ํ์ํ ๊ธฐ๋ฅ์ ๊ฐ์ง MCP ์๋ฒ์ ๋ํ ํด๋ผ์ด์ธํธ๋ฅผ ์์ฑํฉ๋๋ค.
2. ์ด๊ธฐํ ํ๋ก์ธ์คโ
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ฐ๊ฒฐ๋๋ฉด JSON-RPC ๊ธฐ๋ฐ ๋ฉ์์ง๋ฅผ ํตํด ํ๋กํ ์ฝ ๋ฒ์ ๊ณผ ์ง์ ๊ฐ๋ฅํ ๊ธฐ๋ฅ์ ํ์ธํฉ๋๋ค.
- ์ด ๊ณผ์ ์์ ์๋ฒ์ ๋ฅ๋ ฅ๊ณผ ์ ์ฝ ์ฌํญ์ด ๊ฒฐ์ ๋ฉ๋๋ค.
3. ๊ธฐ๋ฅ ํ์โ
- ํด๋ผ์ด์ธํธ๋ ์๋ฒ์
tools/list
๋ฑ์ ์์ฒญ์ ๋ณด๋ด ์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ, ๋ฆฌ์ ์ค, ํ๋กฌํํธ ๋ชฉ๋ก์ ์์งํฉ๋๋ค. - ์ด ์ ๋ณด๋ ํธ์คํธ๋ฅผ ํตํด LLM์๊ฒ ์ ๋ฌ๋ฉ๋๋ค.
4. ์์ฒญ ์ฒ๋ฆฌ ๊ณผ์ โ
- ์ฌ์ฉ์๊ฐ ํธ์คํธ์ ์ง๋ฌธ์ ์ ๋ ฅํ๋ฉด LLM์ด ์ด๋ฅผ ๋ถ์ํฉ๋๋ค.
- LLM์ ์ ์ ํ ์๋ฒ์ ๋๊ตฌ๋ฅผ ์ ํํด ๊ตฌ์กฐํ๋ ์์ฒญ์ ์์ฑํฉ๋๋ค.
- ํธ์คํธ๋ ํด๋น ์์ฒญ์ ๊ด๋ จ ํด๋ผ์ด์ธํธ์ ์ ๋ฌํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ๋ ์์ฒญ์ ์๋ฒ๊ฐ ์ดํดํ ์ ์๋ ํ์์ผ๋ก ๋ณํํ์ฌ ์ ์กํฉ๋๋ค.
- ์๋ฒ๋ ์์ฒญ๋ ์์ ์ ์ํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
- ๊ฒฐ๊ณผ๋ ํด๋ผ์ด์ธํธ๋ฅผ ํตํด ํธ์คํธ๋ก ์ ๋ฌ๋๋ฉฐ, ์ต์ข ์ ์ผ๋ก LLM์๊ฒ ์ ๊ณต๋ฉ๋๋ค.
5. ํต์ ํ์โ
- JSON-RPC 2.0 ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ ๊ตํ์ด ์ด๋ฃจ์ด์ง๋๋ค.
- ํ ์คํธ ๋ฐ์ดํฐ๋ UTF-8 ์ธ์ฝ๋ฉ, ์ด๋ฏธ์ง ๋ฐ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ Base64 ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ์ฌ ์ ์ก๋ฉ๋๋ค.
MCP ๊ตฌ์กฐโ
MCP๋ ํธ์คํธ(Host), ํด๋ผ์ด์ธ ํธ(Client), ์๋ฒ(Server) ์ธ ๊ฐ์ ์ปดํฌ๋ํธ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
1. ํธ์คํธ(Host)โ
ํธ์คํธ๋ AI ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋์ด์ ์กฐ์ ์ ์ญํ ์ ํฉ๋๋ค.
ํธ์คํธ์ ์ฃผ์ ์ญํ โ
- ์ฌ๋ฌ ํด๋ผ์ด์ธํธ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌ
- ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ ๊ถํ๊ณผ ์๋ช ์ฃผ๊ธฐ ์ ์ด
- ๋ณด์ ์ ์ฑ ๊ณผ ๋์ ์๊ตฌ์ฌํญ ์ํ
- AI/LLM ํตํฉ ๋ฐ ์ํ๋ง ์กฐ์
- ๋ํ ์ปจํ ์คํธ ๊ด๋ฆฌ ๋ฐ ํด๋ผ์ด์ธํธ ๊ฐ ์ปจํ ์คํธ ์ง๊ณ
2. ํด๋ผ์ด์ธํธ(Client)โ
ํด๋ผ์ด์ธํธ๋ ํธ์คํธ์ ์ํด ์์ฑ๋๋ฉฐ ์๋ฒ์์ ๋ ๋ฆฝ์ ์ธ 1:1 ์ฐ๊ฒฐ์ ์ ์งํฉ๋๋ค.
ํด๋ผ์ด์ธํธ์ ์ฃผ์ ์ญํ โ
- ์๋ฒ๋น ํ๋์ ์ํ ์ ์ง ์ธ์ ์ค์
- ํ๋กํ ์ฝ ํ์ ๋ฐ ๊ธฐ๋ฅ ๊ตํ ์ฒ๋ฆฌ
- ์๋ฐฉํฅ์ผ๋ก ํ๋กํ ์ฝ ๋ฉ์์ง ๋ผ์ฐํ
- ๊ตฌ๋ ๋ฐ ์ ๋ฆผ ๊ด๋ฆฌ
- ์๋ฒ ๊ฐ ๋ณด์ ๊ฒฝ๊ณ ์ ์ง
3. ์๋ฒ(Server)โ
์๋ฒ๋ ํน์ ์ปจํ ์คํธ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ ๋ฆฝ์ ์ธ ํ๋ก๊ทธ๋จ์ ๋๋ค.
์๋ฒ์ ์ฃผ์ ์ญํ โ
- ๋ฆฌ์์ค, ๋๊ตฌ, ํ๋กฌํํธ ๋ฑ์ ๊ธฐ๋ฅ ๋ ธ์ถ
- ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ๋ฉฐ ํน์ ์ฑ ์ ์ํ
- ํด๋ผ์ด์ธํธ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ํ๋ง ์์ฒญ ์ฒ๋ฆฌ
- ๋ณด์ ์ ์ฝ ์ค์
- ๋ก์ปฌ ํ๋ก์ธ์ค ๋๋ ์๊ฒฉ ์๋น์ค๋ก ๊ตฌํ ๊ฐ๋ฅ
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ฅผ ํธ์ถํ๋ ๋ฐฉ์โ
1. stdio ๋ฐฉ์ (ํ์ค ์ ์ถ๋ ฅ)โ
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ฅผ ํ์ ํ๋ก์ธ์ค๋ก ์คํํฉ๋๋ค.
- ์๋ฒ๋ ํ์ค ์
๋ ฅ(
stdin
)์ผ๋ก ๋ช ๋ น์ ๋ฐ๊ณ ํ์ค ์ถ๋ ฅ(stdout
)์ผ๋ก ์๋ตํฉ๋๋ค. - JSON-RPC 2.0 ํ์์ผ๋ก ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ต๋๋ค.
- ๋ก์ปฌ ํ๊ฒฝ์์ ์ค์ ์ด ๊ฐ๋จํ๊ณ ๋น ๋ฅด๊ฒ ์คํ ๊ฐ๋ฅํฉ๋๋ค.
2. HTTP+SSE ๋ฐฉ์ (Server-Sent Events)โ
- ํด๋ผ์ด์ธํธ๋ HTTP
POST
์์ฒญ์ผ๋ก ๋ช ๋ น์ ์๋ฒ์ ๋ณด๋ ๋๋ค. - ์๋ฒ๋
SSE(Server-Sent Events)
๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต์ด๋ ์ด๋ฒคํธ๋ฅผ ์คํธ๋ฆฌ๋ฐํฉ๋๋ค. - ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ๋ถ์ฐ ์์คํ ์์ ์ ์ฉํฉ๋๋ค.
๋ง๋ฌด๋ฆฌโ
MCP๋ AI ๋ชจ๋ธ์ด ์ธ๋ถ ๋ฐ์ดํฐ์ ๋๊ตฌ์ ์ ๊ทผํ ์ ์๋ ํ์คํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํจ์ผ๋ก์จ AI ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฅ์ฑ์ ํฌ๊ฒ ํ์ฅ์ํค๊ณ ์์ต๋๋ค. ํธ์คํธ, ํด๋ผ์ด์ธํธ, ์๋ฒ๋ก ๊ตฌ์ฑ๋ ์ํคํ ์ฒ๋ ๋ณต์กํ ์์คํ ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋๋ก ๋์ต๋๋ค.