제2장 — Model Context Protocol(MCP)의 베일 벗기

게시일: 2026-03-31 마지막 업데이트 날짜: 2026-06-12 버전: 1

์ œ2์žฅ โ€” Model Context Protocol(MCP)์˜ ๋ฒ ์ผ ๋ฒ—๊ธฐ

LLM Primer IV: MCP๋กœ ์„ค๊ณ„ํ•˜๋Š” AI ์ธ์ง€๋ฅผ ์ฑ•ํ„ฐ๋ณ„๋กœ ๋”ฐ๋ผ๊ฐ€๋Š” ์›Œํฌ์Šค๋ฃจ์˜ ๋‘ ๋ฒˆ์งธ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ฉ˜ํƒˆ ๋ชจ๋ธ์„ ์„ธ์›๋‹ˆ๋‹ค โ€” ์„ธ ์—ญํ• , JSON-RPC ์™€์ด์–ด ํฌ๋งท, ๋™์  ๋ฐœ๊ฒฌ ํ‘œ๋ฉด, ๊ทธ๋ฆฌ๊ณ  ์„ธ์…˜ ๋ผ์ดํ”„์‚ฌ์ดํด โ€” ์ฑ…์˜ ๋‚˜๋จธ์ง€๊ฐ€ ๊ทธ ์œ„์— ์„ค ์ˆ˜ ์žˆ์„ ๋งŒํผ ์‹ ์ค‘ํ•˜๊ฒŒ.


์ด ์žฅ์ด ์กด์žฌํ•˜๋Š” ์ด์œ 

์ œ1์žฅ์€ ๋ฌธ์ œ์— ์ด๋ฆ„์„ ๋ถ™์˜€์Šต๋‹ˆ๋‹ค. ์ด ์žฅ์€ ๋‹ต์˜ ๋ฉ˜ํƒˆ ๋ชจ๋ธ์„ ์ง“์Šต๋‹ˆ๋‹ค. MCP๋Š” ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์š”์•ฝ๋  ์ˆ˜ ์žˆ๊ณ  ํ•œ ๋‹จ๋ฝ์œผ๋กœ ์˜คํ•ด๋  ์ˆ˜ ์žˆ์–ด์„œ, ์ด ์žฅ์€ ์ฒœ์ฒœํžˆ ๊ฐ‘๋‹ˆ๋‹ค. ์™€์ด์–ด ์ˆ˜์ค€์—์„œ ํ”„๋กœํ† ์ฝœ์ด ๋ฌด์—‡์ธ์ง€, ์„ธ ์—ญํ• ์ด ๋ฌด์—‡์„ ๋œปํ•˜๊ณ  ๊ฐ์ž ๋ฌด์—‡์„ ์†Œ์œ ํ•˜๋Š”์ง€, ํ”„๋กœ๋•์…˜์—์„œ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ์— REST API์™€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€, ๊ทธ๋ฆฌ๊ณ  ์—ฐ๊ฒฐ์—์„œ ํ•ด์ฒด๊นŒ์ง€ ์„ธ์…˜ ๋™์•ˆ ๋ฌด์—‡์ด ์ผ์–ด๋‚˜๋Š”์ง€. ๋ชฉํ‘œ๋Š” โ€” ๋‹ค์Œ ์žฅ์„ ์ฝ๊ธฐ ์ „์— โ€” ์„œ๋ฒ„ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ๊ฐ€ ๋ฌด์—‡์ด์–ด์•ผ ํ•˜๋Š”์ง€, ํด๋ผ์ด์–ธํŠธ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ๊ฐ€ ๋ฌด์—‡์ด์–ด์•ผ ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  MCP๊ฐ€ ์™œ ๊ฐ€์ง„ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๊ฒŒ ๋˜์—ˆ๋Š”์ง€๋ฅผ ์—ฌ๋Ÿฌ๋ถ„์ด ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•œ ์ค„๋กœ: MCP๋Š” ์„ธ ์—ญํ•  โ€” Host, Client, Server โ€” ์„ ๊ฐ€์ง„ JSON-RPC ํ”„๋กœํ† ์ฝœ๋กœ, ๋ช…์‹œ์  ๋Šฅ๋ ฅ ํ˜‘์ƒ, ์ง„์‹ค์˜ ์›์ฒœ์œผ๋กœ์„œ์˜ ๋Ÿฐํƒ€์ž„ ๋ฐœ๊ฒฌ, ๊ทธ๋ฆฌ๊ณ  ์—์ด์ „ํŠธํ˜• ํŒจํ„ด์„ ๋ง๋ถ™์ด๋Š” ๋Œ€์‹  ๋ณธ๋ž˜๋ถ€ํ„ฐ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์–‘๋ฐฉํ–ฅ ๋ฉ”์‹œ์ง€ ๋ชจ๋ธ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

2.1 MCP๊ฐ€ ๋ฌด์—‡์ด๋ฉฐ ใ€ŒAI๋ฅผ ์œ„ํ•œ USB-Cใ€๋Š” ์‹ค์ œ๋กœ ๋ฌด์—‡์„ ๋œปํ•˜๋Š”๊ฐ€

Model Context Protocol์€ LLM ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์™ธ๋ถ€ ๋Šฅ๋ ฅ์„ ๋ฐœ๊ฒฌํ•˜๊ณ , ๊ธฐ์ˆ ํ•˜๊ณ , ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•œ ์—ด๋ฆฐ ๋ช…์„ธ์ž…๋‹ˆ๋‹ค. ์™€์ด์–ด์—์„œ๋Š” ์†Œ์ˆ˜์˜ ์ „์†ก ์ค‘ ํ•˜๋‚˜ ์œ„์—์„œ ๋„๋Š” JSON-RPC 2.0์ž…๋‹ˆ๋‹ค. ์•„ํ‚คํ…์ฒ˜ ์ˆ˜์ค€์—์„œ๋Š” ํ˜ธ์ŠคํŠธ๊ฐ€ ๋งž์ถค ํ†ตํ•ฉ ์ฝ”๋“œ ์—†์ด ๋ชจ๋“  ์ ํ•ฉ ์„œ๋ฒ„์™€ ์ผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ฃผ๋Š” ๊ณ„์•ฝ์ž…๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ์— ๋งž์ถฐ ํ•œ ๋ฒˆ ๋งŒ๋“  ๋„๊ตฌ๋Š” ๊ทธ๊ฒƒ์„ ๋งํ•˜๋Š” ๋ชจ๋“  ํ˜ธ์ŠคํŠธ์™€ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ์— ๋งž์ถฐ ํ•œ ๋ฒˆ ๋งŒ๋“  ํ˜ธ์ŠคํŠธ๋Š” ๊ทธ๊ฒƒ์„ ๋งํ•˜๋Š” ๋ชจ๋“  ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž๋ฆฌ์žก์€ ์•ฝ์นญ์€ ใ€ŒAI๋ฅผ ์œ„ํ•œ USB-Cใ€์ž…๋‹ˆ๋‹ค. ๊ตฌ์กฐ์  ๋ชจ์–‘์€ ์ •๋ง๋กœ USB-C๋ฅผ ๋‹ฎ์•˜์Šต๋‹ˆ๋‹ค โ€” ์—ด๋ฆฐ ๋””๋ฐ”์ด์Šค ์ง‘๋‹จ๊ณผ ์—ด๋ฆฐ ํ˜ธ์ŠคํŠธ ์ง‘๋‹จ์„ ์ค‘์žฌํ•˜๋Š” ๋‹จ์ผ ์—ฐ๊ฒฐ ํ‘œ์ค€. ๋น„์œ ์˜ ํ•œ๊ณ„๋„ ์ด๋ฆ„ ๋ถ™์ผ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. USB-C๋Š” ์ปค๋„ฅํ„ฐ์™€ ๊ทธ ์œ„์˜ ์Šคํƒ์„ ํ‘œ์ค€ํ™”ํ•ฉ๋‹ˆ๋‹ค. MCP๋Š” ํ”„๋กœํ† ์ฝœ๋งŒ ํ‘œ์ค€ํ™”ํ•ฉ๋‹ˆ๋‹ค. USB-C๋Š” ํ•˜๋“œ์›จ์–ด๊ฐ€ ๊ฐ•์ œํ•˜๋Š” ํ”„๋ ˆ์ด๋ฐ๊ณผ ํ•จ๊ป˜ ์ „๊ธฐ์  ์‹œ๊ฐ„ ์ฒ™๋„๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. MCP๋Š” ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ •์˜ํ•œ ํ”„๋ ˆ์ด๋ฐ๊ณผ ํ•จ๊ป˜ ๋„คํŠธ์›Œํฌ ์‹œ๊ฐ„ ์ฒ™๋„๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ MCP๋Š” ๋” ์œ ์—ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, USB-C๊ฐ€ ๋‹ค๋ฃจ์ง€ ์•Š๋Š” ๋Š์–ด์ง„ ์—ฐ๊ฒฐ๊ณผ ๋А๋ฆฐ ๋™๋ฃŒ๋ฅผ ๋‹ค๋ฃจ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—”์ง€๋‹ˆ์–ด์—๊ฒŒ ๋” ๊ฐ€๊นŒ์šด ๋น„๊ต๋Š” LSP์ž…๋‹ˆ๋‹ค. Language Server Protocol์€ ๋ชจ๋“  ์—๋””ํ„ฐ์™€ ๋ชจ๋“  ์–ธ์–ด ์„œ๋ฒ„๊ฐ€ ๋งํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์„ ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. MCP๋Š” ๋ชจ๋“  LLM ํ˜ธ์ŠคํŠธ์™€ ๋ชจ๋“  ๋Šฅ๋ ฅ ์ œ๊ณต์ž๊ฐ€ ๋งํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์Šน๋ฆฌ์˜ ๋ชจ์–‘์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค โ€” ๋‹ค๋Œ€๋‹ค๊ฐ€ ๊ณต์œ  ํ”„๋กœํ† ์ฝœ๋กœ ๋ฌด๋„ˆ์ ธ ๋ง์…ˆ์œผ๋กœ ํ™•์žฅ๋˜๋Š” ๋ฌด์–ธ๊ฐ€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ƒˆ ์™€์ด์–ด ํฌ๋งท์„ ๋ฐœ๋ช…ํ•˜๋Š” ๋Œ€์‹  MCP๋ฅผ JSON-RPC 2.0์— ๊ธฐ๋ฐ˜ํ•œ ์„ ํƒ์€ ์˜๋„์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. JSON-RPC๋Š” ์ž‘๊ณ , ์„ฑ์ˆ™ํ•˜๊ณ , ์–ธ์–ด ์ค‘๋ฆฝ์ ์ด๋ฉฐ, ํ™”๋ คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํฅ๋ฏธ๋กœ์šด ์•„ํ‚คํ…์ฒ˜์  ์„ ํƒ์€ ์™€์ด์–ด ์ˆ˜์ค€์— ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Host, Client, Server๊ฐ€ ์ฑ…์ž„์„ ๋‚˜๋ˆ„๋Š” ๋ฐฉ์‹์— ์žˆ์Šต๋‹ˆ๋‹ค.

2.2 Host, Client, Server โ€” ๊ฐ ์—ญํ• ์ด ์†Œ์œ ํ•˜๋Š” ๊ฒƒ

MCP๋Š” ์„ธ ์—ญํ• ์„ ์ •์˜ํ•˜๋Š”๋ฐ, ๊ฐ€์žฅ ๋จผ์ € ์ดํ•ดํ•  ์ ์€ ใ€ŒClientใ€์™€ ใ€ŒServerใ€๊ฐ€ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ž์ฃผ ๋œปํ•˜๋Š” ๋ฐ”๋ฅผ ๋œปํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Server๋Š” ๋Šฅ๋ ฅ์„ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค โ€” ๋„๊ตฌ, ๋ฆฌ์†Œ์Šค, ํ”„๋กฌํ”„ํŠธ. Client๋Š” ๋” ํฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•ˆ์—์„œ ๊ด€๋ฆฌ๋˜๋Š”, ํ•˜๋‚˜์˜ Server์— ๋Œ€ํ•œ ๋‹จ์ผ ํ”„๋กœํ† ์ฝœ ์—ฐ๊ฒฐ์ž…๋‹ˆ๋‹ค. ๊ทธ ๋” ํฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Host์ž…๋‹ˆ๋‹ค. Host๋Š” ๋ชจ๋ธ, ์‚ฌ์šฉ์ž์˜ ์„ธ์…˜, ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋ธ์ด ๋ฌด์—‡์„ ํ•ด๋„ ๋˜๋Š”์ง€์— ๋Œ€ํ•œ ์ •์ฑ…์„ ์†Œ์œ ํ•ฉ๋‹ˆ๋‹ค. Server๋Š” ์ž์‹ ์˜ ๋Šฅ๋ ฅ ํ‘œ๋ฉด์„ ์†Œ์œ ํ•ฉ๋‹ˆ๋‹ค. Client๋Š” ๊ทธ ์‚ฌ์ด์˜ ์„ ์ด๋ฉฐ, Server๋‹น ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

์ด ๋ถ„ํ• ์ด ์ค‘์š”ํ•œ ์ด์œ ๋Š” ๊ฐ ์—ญํ• ์ด ๋‹ค๋ฅธ ์ฑ…์ž„๊ณผ ๋‹ค๋ฅธ ์‹ ๋ขฐ ์ž์„ธ๋ฅผ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Host๋Š” ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ์ค‘์š”ํ•œ ์‹ ๋ขฐ ๊ฒฝ๊ณ„์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์€ Host๊ฐ€ ๋“ค์ด๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๋ฌด์–ธ๊ฐ€์ž…๋‹ˆ๋‹ค. ๋‹ค์„ฏ ๊ฐœ์˜ Server์™€ ๋งํ•˜๋Š” Host๋Š” ์ž์ฒด ์„ธ์…˜ ์ƒํƒœ, ์ž์ฒด ๊ตฌ๋…, ์–ด๋–ค ๋Šฅ๋ ฅ์ด ํ˜‘์ƒ๋˜์—ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ž์ฒด ์‹œ์•ผ๋ฅผ ๊ฐ€์ง„ ๋‹ค์„ฏ ๊ฐœ์˜ Client๋ฅผ ์•ˆ์—์„œ ๋Œ๋ฆฝ๋‹ˆ๋‹ค. ํ•œ Server๊ฐ€ ์ถ”๋ฝํ•˜๋ฉด ํ•ด๋‹น Client๊ฐ€ ์ถ”๋ฝํ•˜๊ณ , ๋‹ค๋ฅธ Client๋Š” ๊ณ„์† ๋Œ๊ณ , Host๋Š” ์‚ด์•„ ์žˆ์Šต๋‹ˆ๋‹ค. Client๋Š” ํ•œ ๋‚˜์œ Server๊ฐ€ ์ „์ฒด ์„ธ์…˜์„ ์˜ค์—ผ์‹œํ‚ค์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ์—ฐ๊ฒฐ๋‹น ๊ฒฉ๋ฆฌ์ž์ž…๋‹ˆ๋‹ค.

์ด ๋ถ„ํ• ์— ๋Œ€ํ•œ ๋ณด์•ˆ ๋…ผ๋ฆฌ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  Server๋Š” ์ตœ์†Œํ•œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์“ด ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. Client๋Š” Server๊ฐ€ Host์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ โ€” ์•Œ๋ฆผ, ์ผ๋ฆฌ์‹œํ…Œ์ด์…˜, ์ƒ˜ํ”Œ๋ง ์š”์ฒญ, ๋ฐœํ–‰๋œ ๋ฆฌ์†Œ์Šค โ€” ์„ ์ค‘์žฌํ•˜๋ฉฐ, Server๋ณ„ ์ •์ฑ…์ด ์‚ฌ๋Š” ์ž๋ฆฌ์ž…๋‹ˆ๋‹ค. Host, Client, Server๋Š” ๋…ผ๋ฆฌ์  ์—ญํ• ์ด์ง€ ์—„๊ฒฉํ•˜๊ฒŒ ๋ฌผ๋ฆฌ์ ์ธ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋กœ์ปฌ ์„ค์ •์—์„œ Server๋Š” ์ž์ฃผ stdio ์œ„์˜ ์„œ๋ธŒํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ์›๊ฒฉ ๋ฐฐํฌ์—์„œ๋Š” HTTP ๊ธฐ๋ฐ˜ ์ „์†ก ์œ„์˜ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ์€ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ญํ•  ๊ฒฝ๊ณ„๋Š” ์‹ ๊ฒฝ ์”๋‹ˆ๋‹ค.

2.3 MCP ๋Œ€ REST โ€” ๋™์  ๋ฐœ๊ฒฌ๊ณผ ์˜๋ฏธ์  ๊ธฐ์ˆ ์ด ์‚ฌ ์ฃผ๋Š” ๊ฒƒ

ํ•ฉ๋‹นํ•œ ์งˆ๋ฌธ์€ ใ€Œ์ด๊ฒƒ์ด ๊ทธ๋ƒฅ REST ์•„๋‹™๋‹ˆ๊นŒ?ใ€์ž…๋‹ˆ๋‹ค. ์ฐจ์ด๋Š” ํ‘œ๋ฉด์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ์ฐจ์ด๋Š” ๋™์  ๋ฐœ๊ฒฌ, LLM์„ ์ฒญ์ค‘์œผ๋กœ ํ•œ ์˜๋ฏธ์  ๊ธฐ์ˆ , ๊ทธ๋ฆฌ๊ณ  ์–‘๋ฐฉํ–ฅ ๋ฉ”์‹œ์ง€ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

REST API๋Š” ์‚ฌ๋žŒ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด ์“ฐ์ธ ๋ฌธ์„œ์— ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์“ฐ๋Š” ์—”๋“œํฌ์ธํŠธ ์ง‘ํ•ฉ์€ ๋นŒ๋“œ ์‹œ๊ฐ„์— ๊ณ ์ •๋˜๋ฉฐ, ์ƒˆ ์—”๋“œํฌ์ธํŠธ๋Š” ์žฌ๋ฐฐํฌ๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. MCP๋Š” ์ด๋ฅผ ๋’ค์ง‘์Šต๋‹ˆ๋‹ค. ์„ธ์…˜ ์‹œ์ž‘ ์‹œ Client๋Š” ใ€Œ๋ฌด์—‡์„ ์ œ๊ณตํ•ฉ๋‹ˆ๊นŒ?ใ€๋ฅผ ๋ฌป๊ณ  Server๋Š” ํ˜ธ์ŠคํŠธ๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์œผ๋กœ ์“ฐ๋Š” ํƒ€์ž…ํ™”๋œ ์นดํƒˆ๋กœ๊ทธ โ€” ์Šคํ‚ค๋งˆ, ๊ธฐ์ˆ , ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ โ€” ๋กœ ๋‹ตํ•ฉ๋‹ˆ๋‹ค. Server๊ฐ€ ๋‚˜์ค‘์— ๋„๊ตฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด listChanged ์•Œ๋ฆผ์ด ์žฌ์‹œ์ž‘ ์—†์ด Client๋ฅผ ์„ธ์…˜ ์ค‘๊ฐ„์— ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค. Server๋Š” ์ž์‹ ์˜ ๋Šฅ๋ ฅ์— ๋Œ€ํ•œ ์ง„์‹ค์˜ ๊ถŒ์œ„ ์žˆ๋Š” ์›์ฒœ์ž…๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์€ ๊ตฌํ˜„์œผ๋กœ๋ถ€ํ„ฐ ํ‘œ๋ฅ˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค โ€” ํ‘œ๋ฅ˜ํ•  ๋ณ„๋„์˜ ํด๋ผ์ด์–ธํŠธ ์ธก ๋ณต์‚ฌ๋ณธ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์˜๋ฏธ์  ๊ธฐ์ˆ ์ด ๋‘ ๋ฒˆ์งธ ์ฐจ์ด์ž…๋‹ˆ๋‹ค. REST ์—”๋“œํฌ์ธํŠธ์˜ ๋ฌธ์„œ๋Š” ์ฝ๊ณ  ๊ฒฐ์ •ํ•  ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด ์“ฐ์ž…๋‹ˆ๋‹ค. MCP ๋„๊ตฌ์˜ ๊ธฐ์ˆ ์€ ์ž์‹ ์˜ ํ”„๋กฌํ”„ํŠธ์˜ ์ผ๋ถ€๋กœ ๊ทธ๊ฒƒ์„ ์ฝ๊ณ  ์ž์œจ์ ์œผ๋กœ ๊ฒฐ์ •ํ•  LLM์„ ์œ„ํ•ด ์“ฐ์ž…๋‹ˆ๋‹ค. ใ€ŒPOST๋ฅผ /users/:id/orders๋กœใ€๋ผ๊ณ  ์ฝํžˆ๋Š” ๊ธฐ์ˆ ์€ LLM์— ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. LLM์€ ๋„๊ตฌ๊ฐ€ ์–ด๋–ค ๊ฐœ๋…์  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€, ์–ธ์ œ ์„ ํ˜ธ๋˜์–ด์•ผ ํ•˜๋Š”์ง€, ์–ด๋–ค ๋ถ€์ž‘์šฉ์ด ์žˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์ž…๋ ฅ์ด ๋„๋ฉ”์ธ ์šฉ์–ด๋กœ ๋ฌด์—‡์„ ๋œปํ•˜๋Š”์ง€๋ฅผ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. API๋ฅผ LLM์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์šฉ์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š” ์ผ์€ ํ•œ ๋ฒˆ, Server๋กœ ๋ฐ€๋ ค๋‚ฌ๊ณ , ๊ทธ ๋Šฅ๋ ฅ์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์‚ฌ๋žŒ๋“ค์ด ์œ ์ง€๋ณด์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.

์„ธ ๋ฒˆ์งธ ์ฐจ์ด๋Š” ์–‘๋ฐฉํ–ฅ์„ฑ์ž…๋‹ˆ๋‹ค. REST๋Š” ์š”์ฒญ-์‘๋‹ต์ž…๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ์ด ๋‹ซํž™๋‹ˆ๋‹ค. MCP๋Š” ์„ค๊ณ„์ƒ ์–‘๋ฐฉํ–ฅ์ž…๋‹ˆ๋‹ค. Server๋Š” ์–ธ์ œ๋“  ์•Œ๋ฆผ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ณ , Client์—๊ฒŒ ์ƒ˜ํ”Œ๋ง ์š”์ฒญ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ณ , ํ๋ฆ„ ์ค‘๊ฐ„์— ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋‹ต์„ ์ผ๋ฆฌ์‹œํ…Œ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ค‘ ์–ด๋А ๊ฒƒ๋„ REST์—์„œ ๊ธฐ์ˆ ์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๊ฑฐ๊ธฐ์„œ๋Š” ์–ด์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. MCP์—์„œ๋Š” ํ‘œ์ค€์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.

2.4 ๋Šฅ๋ ฅ ํ˜‘์ƒ๊ณผ ์„ธ์…˜ ๋ผ์ดํ”„์‚ฌ์ดํด

์„ธ์…˜์€ Client๊ฐ€ ์ „์†ก์„ ์—ด๊ณ  ์ž์‹ ์˜ ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „๊ณผ ๋Šฅ๋ ฅ์„ ๋‹ด์€ initialize ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. Server๋Š” ์ž์‹ ์˜ ๋Šฅ๋ ฅ์œผ๋กœ ๋‹ตํ•ฉ๋‹ˆ๋‹ค โ€” ๋„๊ตฌ๋ฅผ ๋…ธ์ถœํ•˜๋Š”์ง€, ๋ฆฌ์†Œ์Šค๋ฅผ ๋…ธ์ถœํ•˜๋Š”์ง€, ๊ตฌ๋…์„ ์ œ๊ณตํ•˜๋Š”์ง€, ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š”์ง€. Client๋Š” initialized ์•Œ๋ฆผ์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์„ธ์…˜์€ ์ด์ œ ์šด์˜ ์ƒํƒœ์— ์žˆ๊ณ , ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”์‹œ์ง€ ์œ ํ˜•์€ ์–‘์ธก์ด ํ•ฉ์˜ํ•œ ๋ถ€๋ถ„์ง‘ํ•ฉ ๊ทธ๋Œ€๋กœ์ž…๋‹ˆ๋‹ค.

์ด ํ˜‘์ƒ์ด ๋‹ค๋ฅธ ๊ธฐ๋Šฅ ์ง‘ํ•ฉ์„ ๊ฐ€์ง„ Client์™€ Server๊ฐ€ ์ƒ์‚ฐ์ ์œผ๋กœ ๊ณต์กดํ•˜๊ฒŒ ํ•ด ์ค๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋˜ํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค โ€” Server๋Š” ์–‘์ธก์ด ์ง€์›ํ•˜๋Š” ๊ฐ€์žฅ ๋†’์€ ๋ฒ„์ „์„ ๊ณ ๋ฆ…๋‹ˆ๋‹ค. ์šด์˜์ ์œผ๋กœ ๋ผ์ดํ”„์‚ฌ์ดํด์—๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™”๋Š” ๋ฌด๋ฃŒ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ผ์šด๋“œํŠธ๋ฆฝ ๋น„์šฉ์ด ์žˆ๊ณ , ์›๊ฒฉ ์„œ๋ฒ„์˜ ๊ฒฝ์šฐ ๊ทธ ์œ„์— ์—ฐ๊ฒฐ ์„ค์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์žฅ์ˆ˜๋ช… ์„ธ์…˜์ด ์„ ํ˜ธ๋˜๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ๋Šฅ๋ ฅ ๋ณ€๊ฒฝ์€ ์žฌ์—ฐ๊ฒฐ์ด ์•„๋‹ˆ๋ผ ์•Œ๋ฆผ์œผ๋กœ ํ๋ฆ…๋‹ˆ๋‹ค. ์ด๋ฅผ ์กด์ค‘ํ•˜๋Š” ํ˜ธ์ŠคํŠธ๋Š” โ€” ์„ธ์…˜์„ ๋”ฐ๋œปํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ , ๋„คํŠธ์›Œํฌ ๊นœ๋นก์ž„ ํ›„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์žฌ์—ฐ๊ฒฐํ•˜๋Š” โ€” ์‹ค์งˆ์ ์œผ๋กœ ๋” ๋‚˜์€ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์–ป์Šต๋‹ˆ๋‹ค. ๋งค ์š”์ฒญ๋งˆ๋‹ค ํ•ด์ฒดํ•˜๊ณ  ์žฌ์ดˆ๊ธฐํ™”ํ•˜๋Š” ํ˜ธ์ŠคํŠธ๋Š” ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ํ•˜์ง€๋งŒ ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

๊ณ ์ •ํ•ด ๋‘˜ ๋งŒํ•œ ๋น„๋Œ€์นญ: ์š”์ฒญ์€ ์‘๋‹ต์„ ๊ฐ–์Šต๋‹ˆ๋‹ค. ์•Œ๋ฆผ์€ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. list-changed ์ด๋ฒคํŠธ๋Š” ์•Œ๋ฆผ์ด๋ฏ€๋กœ, ๊ทธ๊ฒƒ์„ ๋†“์นœ Client๋Š” list_tools๋ฅผ ๋‹ค์‹œ ํ˜ธ์ถœํ•ด ์ž๊ธฐ ์‹œ์•ผ๋ฅผ ๊ฐฑ์‹ ํ•  ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•Œ๋ฆผ์€ ์ตœ์ ํ™”์ด์ง€ ๋ณด์žฅ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ฒฌ๊ณ ํ•œ MCP ์ฝ”๋“œ๋Š” ๊ทธ๊ฒƒ์„ ๊ธฐ๋ก์ด ์•„๋‹ˆ๋ผ ํžŒํŠธ๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

๊ธฐ์–ตํ•ด ๋‘˜ ๊ฒƒ: ์„ธ ์—ญํ• ์€ ์ฑ…์ž„์˜ ์˜๋„์  ๋ถ„ํ• ๋กœ ์ฝ์œผ์‹ญ์‹œ์˜ค โ€” Host๋Š” ๋ชจ๋ธ๊ณผ ์ •์ฑ…์„ ์†Œ์œ ํ•˜๊ณ , Server๋Š” ๋Šฅ๋ ฅ์„ ์†Œ์œ ํ•˜๋ฉฐ, Client๋Š” ์—ฐ๊ฒฐ๋‹น ์ค‘์žฌ๋ฅผ ์†Œ์œ ํ•ฉ๋‹ˆ๋‹ค. ๋™์  ๋ฐœ๊ฒฌ์€ Server๋ฅผ ์ง„์‹ค์˜ ์›์ฒœ์œผ๋กœ ๋งŒ๋“ค๊ณ  ํด๋ผ์ด์–ธํŠธ ์ธก ํ‘œ๋ฅ˜๋ฅผ ์—†์• ๋Š” ์ˆ˜๋กœ ์ฝ์œผ์‹ญ์‹œ์˜ค. ์–‘๋ฐฉํ–ฅ ๋ฉ”์‹œ์ง€ ๋ชจ๋ธ์€ ์—์ด์ „ํŠธํ˜• ํŒจํ„ด์„ ์‚ฌํ›„ ๊ฐœ์กฐ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ณธ๋ž˜์˜ ๊ฒƒ์œผ๋กœ ๋งŒ๋“œ๋Š” ์ˆ˜๋กœ ์ฝ์œผ์‹ญ์‹œ์˜ค. ์ด ์ค‘ ์–ด๋А ๊ฒƒ๋„ ์ž‘์€ ์„ธ๋ถ€ ์‚ฌํ•ญ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐ๊ฐ์ด ๊ตฌ์กฐ์  ์ผ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ2์žฅ์ด ์ค€๋น„ํ•˜๋Š” ๊ฒƒ

์ด์ œ ๋ฉ˜ํƒˆ ๋ชจ๋ธ์ด ์†์— ์žˆ์Šต๋‹ˆ๋‹ค. MCP๋Š” ์„ธ ์—ญํ• ์„ ๊ฐ€์ง„ JSON-RPC ํ”„๋กœํ† ์ฝœ, Server๋ฅผ ์ž์‹ ์˜ ๋Šฅ๋ ฅ์— ๋Œ€ํ•œ ๊ถŒ์œ„๋กœ ๋งŒ๋“œ๋Š” ๋™์  ๋ฐœ๊ฒฌ, LLM ์ฒญ์ค‘์„ ์œ„ํ•ด ์“ฐ์ธ ๊ธฐ์ˆ , ์•Œ๋ฆผ๊ณผ ์„œ๋ฒ„ ์‹œ์ž‘ ์š”์ฒญ์„ ๊ฐ€์ง„ ์–‘๋ฐฉํ–ฅ ๋ฉ”์‹œ์ง€ ๋ชจ๋ธ, ๊ทธ๋ฆฌ๊ณ  ๋ช…์‹œ์  ๋Šฅ๋ ฅ ํ˜‘์ƒ์œผ๋กœ ์—ด๋ ค ์–‘์ธก์ด ํ•ฉ์˜ํ•œ ๋ถ€๋ถ„์ง‘ํ•ฉ ์•ˆ์—์„œ ์šด์˜๋˜๋Š” ๋ผ์ดํ”„์‚ฌ์ดํด์ž…๋‹ˆ๋‹ค. Server์™€ Client๊ฐ€ ๊ฐ๊ฐ ๋ฌด์—‡์„ ๋…ธ์ถœํ•˜๋Š”์ง€ ๊ตฌ์ฒด์ ์œผ๋กœ ๋งํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ ๋ฐœํŒ์ด๋ฉฐ, ๋‹ค์Œ ๋‘ ์žฅ์ด ๊ทธ ์ผ์„ ํ•ฉ๋‹ˆ๋‹ค.


๋‹ค์Œ โ†’ ์ œ3์žฅ: ์„œ๋ฒ„ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ โ€” Resources, Prompts, Tools. ์„œ๋ฒ„๊ฐ€ ๋‚ด๋†“์„ ์ˆ˜ ์žˆ๋Š” ์„ธ ๊ฐœ์˜ ๋ช…์‚ฌ, ์™œ ๊ฐ๊ฐ์ด ์ค‘์š”ํ•œ์ง€, ๊ทธ๋ฆฌ๊ณ  ํ•˜๋‚˜๋ฅผ ๋‹ค๋ฅธ ๊ฒƒ์˜ ์˜์—ญ์œผ๋กœ ๊ณผ๋ถ€ํ•˜ ํ•˜๋Š” ๋Œ€์‹  ์•Œ๋งž์€ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ๋ฅผ ๊ณ ๋ฅด๋Š” ๊ทœ์œจ.

์ „์ฒด ๊ทธ๋ฆผ์„ ๋ณด๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด? ์ฑ…์€ ์ฃผ์„์ด ๋‹ฌ๋ฆฐ ๋ฉ”์‹œ์ง€ ์ถ”์ ์œผ๋กœ ์™€์ด์–ด ํฌ๋งท์„ ๊ฑธ์–ด๊ฐ€๊ณ , LSP์™€ USB-C์™€์˜ ๋น„๊ต๋ฅผ ์‹ค์šฉ์  ํ•จ์˜๋กœ ์ „๊ฐœํ•˜๋ฉฐ, ๋ณด์•ˆ์— ๊ด€ํ•œ ์ œ11์žฅ๊ณผ ์ œ12์žฅ์„ ๋– ๋ฐ›์น  ๋งŒํผ์˜ ๊นŠ์ด๋กœ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. Amazon์—์„œ LLM Primer IV ๋ณด๊ธฐ โ†’

SHO
SHO