MCP๋ž€ ๋ฌด์—‡์ธ๊ฐ€

MCP (Model Context Protocol)๋Š” AI ๋ชจ๋ธ (ํŠนํžˆ Large Language Model, LLM)๊ณผ ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ์—ฐ๊ฒฐ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.
2024๋…„ Anthropic์ด ์ œ์•ˆํ•˜๊ณ  ์˜คํ”ˆ์†Œ์Šค๋กœ ๊ณต๊ฐœํ–ˆ์œผ๋ฉฐ, AI ๋ชจ๋ธ์ด ์™ธ๋ถ€ ๋„๊ตฌ๋‚˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ณ  ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ‘œ์ค€ํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

๋‹ค์–‘ํ•œ ๋ชจ๋ธ๊ณผ ๋„๊ตฌ ๊ฐ„์— ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋„๋ก ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋ฉฐ, ํ”ํžˆ โ€œAI ์—…๊ณ„์˜ USB-Cโ€ ๋กœ ๋น„์œ ๋œ๋‹ค.

๋“ฑ์žฅ ๋ฐฐ๊ฒฝ ๋ฐ ํ•„์š”์„ฑ

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

MCP๋Š” ์ด๋Ÿฐ ํ†ตํ•ฉ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ–ˆ์œผ๋ฉฐ, Nร—M์˜ ํ†ตํ•ฉ ๋ฌธ์ œ1๋ฅผ ํ•˜๋‚˜์˜ ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ๋กœ ๊ฐ„์†Œํ™”ํ•ด์ฃผ๋Š” ํ•ด๊ฒฐ์ฑ…์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.

2

์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ

MCP๋Š” LLM์—๊ฒŒ ์ „๋‹ฌ๋˜๋Š” ๋ฌธ๋งฅ๊ณผ ๋„๊ตฌ ํ˜ธ์ถœ์„ ๊ตฌ์กฐํ™” ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ •์˜ํ•œ๋‹ค.

๋ฐ์ดํ„ฐ ํฌ๋งท๊ณผ ๊ตฌ์กฐ

MCP๋Š” JSON-RPC 2.0 ๊ธฐ๋ฐ˜์˜ ํ†ต์‹  ํฌ๋งท์„ ์‚ฌ์šฉํ•œ๋‹ค.
๋ชจ๋“  ๋„๊ตฌ ์š”์ฒญ์€ method์™€ params ํ•„๋“œ๋ฅผ ๊ฐ–๋Š” JSON ๊ฐ์ฒด๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ๊ฒฐ๊ณผ ์—ญ์‹œ JSON ํ˜•์‹์œผ๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค.

Metadata ํƒœ๊ทธ

๋ชจ๋“  ๋ฉ”์‹œ์ง€์—๋Š” conversation_id, timestamp, token ์ˆ˜ ๋“ฑ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ๋‹ค.
๋ณด์•ˆ ์ œ์–ด๋ฅผ ์œ„ํ•œ allowed_tools ํ•„๋“œ๋‚˜ ์šฐ์„ ์ˆœ์œ„ ์„ค์ •, ์ง€์† ์—ฌ๋ถ€(persistent)์™€ ๊ฐ™์€ ํƒœ๊ทธ๋„ ์ง€์ • ๊ฐ€๋Šฅํ•˜๋‹ค.

Session ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

๋Œ€ํ™” ํ๋ฆ„์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด conversation_id๋กœ ์„ธ์…˜์„ ๊ตฌ๋ถ„ํ•˜๋ฉฐ, ๋ฉ”์‹œ์ง€์— persistent ํƒœ๊ทธ๋ฅผ ๋ถ€์—ฌํ•˜๋ฉด LLM์ด ๊ทธ ์ •๋ณด๋ฅผ ๊ธฐ์–ตํ•˜๋„๋ก ์œ ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ณผ๊ฑฐ ๋Œ€ํ™” ๋‚ด์šฉ๊ณผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ ๋ฆฌ์ŠคํŠธ๋„ LLM์—๊ฒŒ ๊ตฌ์กฐํ™”๋œ ๋ฐฉ์‹์œผ๋กœ ์ „๋‹ฌ๋œ๋‹ค.

Chain-of-Thought ๋ฐ ๋„๊ตฌ ์—ฐ๊ณ„

MCP๋Š” LLM์ด ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋„๊ตฌ๋ฅผ ๋‹จ๊ณ„์ ์œผ๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
์ด๋•Œ ๊ฐ ๋‹จ๊ณ„์˜ reasoning์€ tool ํ˜ธ์ถœ โ†’ ๊ฒฐ๊ณผ ๋ฐ˜์˜ โ†’ ๋‹ค์Œ reasoning์œผ๋กœ ์ด์–ด์ง€๋ฉฐ, MCP๋Š” ์ด ํ๋ฆ„์„ ๊ตฌ์กฐํ™”๋œ ๋ฉ”์‹œ์ง€ ๊ตํ™˜ ๋ฐฉ์‹์œผ๋กœ ์ง€์›ํ•œ๋‹ค.

Grounding ๋ฐ ์ถœ์ฒ˜ ์—ฐ๊ณ„

tool ํ˜ธ์ถœ ๊ฒฐ๊ณผ์— ์ถœ์ฒ˜ (source)๋‚˜ ์‹ ๋ขฐ๋„ (confidence) ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด๋Š” hallucination์„ ์ค„์ด๊ณ , ๋ชจ๋ธ์ด ์‘๋‹ต์— ์™ธ๋ถ€ ์ •๋ณด๋ฅผ ๊ทผ๊ฑฐ๋กœ ์‚ผ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

๋™์ž‘ ๋ฐฉ์‹

MCP๋Š” ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฅธ๋‹ค.
MCP ํด๋ผ์ด์–ธํŠธ๋Š” LLM์ด ์œ„์น˜ํ•œ ์•ฑ ๋˜๋Š” ์‹œ์Šคํ…œ์ด๋ฉฐ, MCP ์„œ๋ฒ„๋Š” ๋„๊ตฌ(API, DB ๋“ฑ)๋ฅผ ์‹ค์ œ ์‹คํ–‰ํ•˜๋Š” ์ชฝ์ด๋‹ค.

  1. ์‚ฌ์šฉ์ž ์งˆ์˜ ์ž…๋ ฅ

    • ์‚ฌ์šฉ์ž๊ฐ€ MCP๋ฅผ ์ง€์›ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ†ตํ•ด ์งˆ๋ฌธ์ด๋‚˜ ๋ช…๋ น ์ž…๋ ฅ
  2. MCP ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ปจํ…์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•˜๊ณ  ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ƒ์„ฑ

    • MCP ํด๋ผ์ด์–ธํŠธ (ํ˜ธ์ŠคํŠธ)๋Š” ํ˜„์žฌ ๋Œ€ํ™” ๋ฉ”๋ชจ๋ฆฌ์™€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ ๋ชฉ๋ก์„ MCP ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฏธ๋ฆฌ ์กฐํšŒ
    • ์‹œ์Šคํ…œ ๋ช…๋ น, ์‚ฌ์šฉ์ž ์งˆ๋ฌธ, ๋„๊ตฌ ์ •๋ณด๋ฅผ ์ข…ํ•ฉํ•˜์—ฌ ๊ตฌ์กฐํ™” ํ”„๋กฌํ”„ํŠธ ์ž‘์„ฑ
  3. LLM์ด ๋„๊ตฌ ํ˜ธ์ถœ์„ ํŒ๋‹จํ•˜๊ณ  ํ˜ธ์ถœ ํฌ๋งท ์ถœ๋ ฅ

    • ํ”„๋กฌํ”„ํŠธ๊ฐ€ LLM์— ์ž…๋ ฅ๋˜๊ณ  LLM์€ ์‚ฌ์šฉ์ž ์งˆ๋ฌธ๊ณผ ํฌํ•จ๋œ ๋งฅ๋ฝ ํ•ด์„
    • ์™ธ๋ถ€ ๋„๊ตฌ ํ•„์š”ํ•˜๋ฉด ํŠน์ • ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•˜๊ฒ ๋‹ค๋Š” ์‘๋‹ต ์ƒ์„ฑ
  4. MCP ํด๋ผ์ด์–ธํŠธ๊ฐ€ MCP ์„œ๋ฒ„์— JSON-RPC ๋ฐฉ์‹์œผ๋กœ ์‹ค์ œ ํ˜ธ์ถœ

    • LLM ์ถœ๋ ฅ ํ™•์ธํ•ด์„œ MCP ์„œ๋ฒ„์— ํ•ด๋‹น API ํ˜ธ์ถœ ์š”์ฒญ
    • MCP ์„œ๋ฒ„๋Š” ์‹ค์ œ ์™ธ๋ถ€ ๋™์ž‘ ์ˆ˜ํ–‰ํ•œ ํ›„ ๊ฒฐ๊ณผ๊ฐ’ ์ค€๋น„
  5. ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„ LLM์—๊ฒŒ ๋‹ค์‹œ ์ „๋‹ฌ

    • MCP ์„œ๋ฒ„๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„ MCP ํด๋ผ์ด์–ธํŠธ์— ๋ฐ˜ํ™˜
    • MCP ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฐ›์€ ๊ฒฐ๊ณผ๋ฅผ LLM์—๊ฒŒ ์ƒˆ๋กœ์šด ๋ฉ”์‹œ์ง€๋กœ ์ „๋‹ฌ
  6. LLM์ด ์ตœ์ข… ์‘๋‹ต ์ƒ์„ฑ

    • LLM์€ ๊ฐฑ์‹ ๋œ context๋ฅผ ๋ฐ›์•„ ์ตœ์ข… ์‚ฌ์šฉ์ž ๋‹ต๋ณ€ ์ƒ์„ฑ
    • MCP ํด๋ผ์ด์–ธํŠธ๋Š” ๊ทธ ์™„์„ฑ๋œ ๋‹ต๋ณ€์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌ

์ด ๊ณผ์ •์€ ๋‹ค๋‹จ๊ณ„๋กœ ๋ฐ˜๋ณต๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„ธ์…˜ ๊ด€๋ฆฌ์™€ ๋งฅ๋ฝ ์œ ์ง€๊ฐ€ ๊ตฌ์กฐํ™”๋œ ๋ฐฉ์‹์œผ๋กœ ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ด€๋ จ ๊ธฐ์ˆ  ๋ฐ ๋น„๊ต

MCP ๋“ฑ์žฅ ์ด์ „์— ์‚ฌ์šฉ๋˜์—ˆ๋˜ LLM ํ†ตํ•ฉ ๊ธฐ์ˆ ๋“ค๊ณผ MCP์˜ ์ฐจ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

LangChain

LangChain์€ Python ๊ธฐ๋ฐ˜์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, tool wrapping์ด๋‚˜ chaining์„ ์ˆ˜์›”ํ•˜๊ฒŒ ํ•˜์ง€๋งŒ, ๋ชจ๋ธ ์ž์ฒด์˜ ํ˜ธ์ถœ ํฌ๋งท ํ‘œ์ค€ํ™”๋Š” ๋ฏธํกํ•˜๋‹ค.
tool ํ†ตํ•ฉ์€ ๊ฐ API๋งˆ๋‹ค ๋ณ„๋„ ๊ตฌํ˜„์ด ํ•„์š”ํ–ˆ๊ณ  ์ˆ˜๋ฐฑ ๊ฐœ์˜ tool wrapper๋ฅผ ๋ผ์ด๋ฏ€๋Ÿฌ๋ฆฌ์— ์ถ”๊ฐ€ ์œ ์ง€ํ•ด์•ผ ํ–ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋ธ์ด ๋™์ ์œผ๋กœ ์ƒˆ๋กœ์šด tool์„ ๋ฐœ๊ฒฌํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์—†์—ˆ๋‹ค.

MCP๋Š” ์ด ์ ์„ ๋ณด์™„ํ•˜์—ฌ ๋ชจ๋ธ ์ค‘์‹ฌ์˜ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ LLM์ด ๋Ÿฐํƒ€์ž„์— ์ž„์˜์˜ MCP tool์„ ์กฐํšŒํ•˜๊ณ  ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

์ตœ์‹  LangChain ๋ฒ„์ „๋“ค์€ MCP ์„œ๋ฒ„๋ฅผ ํ•˜๋‚˜์˜ tool ๋กœ ์ทจ๊ธ‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ง€์›ํ•˜๊ณ  ์žˆ๊ณ  ์ด๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ MCP๋ฅผ ์‚ฌ์šฉํ•ด ์—ฌ๋Ÿฌ ํ™˜๊ฒฝ์—์„œ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ tool์„ ๋ถˆ๋Ÿฌ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

OpenAI Function Calling

Function calling์€ ๋ชจ๋ธ์ด JSON ํ˜•ํƒœ์˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์ถœ๋ ฅํ•˜๋Š” ๊ธฐ๋Šฅ์ด๊ณ  MCP๋Š” ์ด ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„ ์‹ค์ œ ์™ธ๋ถ€ API ํ˜ธ์ถœ์„ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๋‹ค์‹œ ๋งํ•ด OpenAI Function calling์€ ๋ชจ๋ธ์ด ๊ตฌ์กฐํ™”๋œ ํ•จ์ˆ˜ ์š”์ฒญ์„ Jsonํ˜•ํƒœ๋กœ ๋‚ด๋ณด๋‚ด๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์ด๊ณ , MCP๋Š” ๊ทธ๋Ÿฐ ์š”์ฒญ์„ ๋ฐ›์•„ ์‹ค์ œ ์™ธ๋ถ€ ๋„๊ตฌ ์‹คํ–‰ ๋ฐ ์‘๋‹ต ์ „์†ก์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ์ˆ ๋กœ ์„œ๋กœ ๋ณด์™„์ ์œผ๋กœ ์ž์ฃผ ๋™์ž‘ํ•œ๋‹ค.

MCP๋Š” ์ถ”๊ฐ€์ ์œผ๋กœ ์ง€์†์ ์ธ context ๊ด€๋ฆฌ๋‚˜ ๋ฐ˜๋ณต์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, OpenAI API ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋„ MCP๋ฅผ ๋„์ž…ํ•˜๋ฉด tool ํ™œ์šฉ์„ ๋ณด๋‹ค ์ฒด๊ณ„์ ์ด๊ณ  ๋ฒ”์šฉ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

ChatGPT Plugins

OpenAI๊ฐ€ ์ž์‚ฌ ์ฑ—๋ด‡์— ์™ธ๋ถ€ ์„œ๋น„์Šค๋ฅผ ๋ถ™์ผ ๋•Œ ์‚ฌ์šฉํ•˜๋˜ ์ „์šฉ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ, ํŠน์ • ์›น ์„œ๋น„์Šค๋งˆ๋‹ค ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ์ž‘ํ•ด์•ผํ–ˆ๊ณ  ํ”Œ๋žซํผ ์ข…์†์ ์ด๋‹ค.

๋ฐ˜๋ฉด MCP๋Š” ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€์œผ๋กœ, ์–ด๋–ค ํ”Œ๋žซํผ์ด๋‚˜ ์‹œ์Šคํ…œ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Toolformer

Toolformer๋Š” ๋ชจ๋ธ์ด ํ›ˆ๋ จ ์‹œ์ ์— tool ์‚ฌ์šฉ ํŒจํ„ด์„ ํ•™์Šตํ•˜์—ฌ inference ์‹œ tool์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์‹œ์ ๊ณผ ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•˜๋„๋ก ๋งŒ๋“  ๊ธฐ์ˆ ์ด๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ชจ๋ธ ํŒŒ๋ผ๋ฏธํ„ฐ ์†์— tool ์‚ฌ์šฉ ๋Šฅ๋ ฅ์ด ๋‚ด์žฅ๋˜์–ด, ์ถ”๋ก  ์‹œ ์™ธ๋ถ€ ์ปจํŠธ๋กค๋Ÿฌ ์—†์ด ๋ชจ๋ธ์ด ํ•„์š”ํ•œ API๋ฅผ ์ž๋™ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
ํ•˜์ง€๋งŒ ์ƒˆ๋กœ์šด tool์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ์žฌํ›ˆ๋ จ์ด๋‚˜ ์ถ”๊ฐ€ fine-tuning์ด ํ•„์š”ํ•˜๋ฉฐ, tool ์‚ฌ์šฉ ๋กœ์ง์ด ์ˆจ๊ฒจ์ ธ ์žˆ์–ด ๋ชจ๋ธ ์™ธ๋ถ€์—์„œ ๋ชจ๋‹ˆํ„ธ์ด ๋ฐ ์ œ์–ด๊ฐ€ ์–ด๋ ค์šด ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.

๋ฐ˜๋ฉด MCP๋Š” runtime ๊ธฐ๋ฐ˜์œผ๋กœ, ๋ณ„๋„ ํ›ˆ๋ จ ์—†์ด ์œ ์—ฐํ•˜๊ฒŒ tool์„ ์—ฐ๊ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

Toolformer๊ฐ€ ๊ฒฝ๋Ÿ‰/๊ณ ์†์ด์ง€๋งŒ ํ™•์žฅ์„ฑ์ด ๋‚ฎ๊ณ , MCP๋Š” ๋ฒ”์šฉ/์œ ์—ฐํ•˜์ง€๋งŒ ์™ธ๋ถ€ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชฉ์ ์— ๋”ฐ๋ผ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค

๋Œ€ํ‘œ์ ์ธ ๊ตฌํ˜„ ์‚ฌ๋ก€ ๋ฐ ํ”„๋กœ์ ํŠธ

  • Anthropic Claude Desktop: ๋กœ์ปฌ ํŒŒ์ผ ์—ด๋žŒ ๋ฐ ์‹œ์Šคํ…œ ๋„๊ตฌ ์ ‘๊ทผ ์ง€์›

  • OpenAI ChatGPT ๋ฐ Agents: ๊ณต์‹ MCP ๋„์ž… ๋ฐ ํด๋ผ์ด์–ธํŠธ SDK ์ œ๊ณต

  • Google Gemini: MCP ํ‘œ์ค€ ์ฑ„ํƒ ์˜ˆ์ •

  • ๊ธฐ์—… ๋‚ด AI ๋„์šฐ๋ฏธ(Block ๋“ฑ): ๋‚ด๋ถ€ ์‹œ์Šคํ…œ๊ณผ ์—ฐ๊ฒฐ

  • Sourcegraph, Replit, Zed IDE: ๊ฐœ๋ฐœ์ž tool ๋‚ด ์ฝ”๋“œ ๊ฒ€์ƒ‰ ๋ฐ ๋งฅ๋ฝ ์ง€์›

  • ์˜คํ”ˆ์†Œ์Šค MCP ์„œ๋ฒ„: Google Drive, GitHub, Slack ๋“ฑ

์žฅ์ 

  1. ๋ฒ”์šฉ ์ธํ„ฐํŽ˜์ด์Šค์— ๋”ฐ๋ฅธ ํ˜ธํ™˜์„ฑ๊ณผ ํ™•์žฅ์„ฑ
    • ํ•œ ๋ฒˆ ๊ฐœ๋ฐœํ•ด๋‘๋ฉด, ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์—ฌ๋Ÿฌ ๋„๊ตฌ ๊ต์ฒด ๋ฐ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
  2. ์‹ ์†ํ•œ ํ†ตํ•ฉ๊ณผ ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ
    • ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฝ‚๋“ฏ์ด ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
    • ๊ฐœ๋ฐœํŒ€์€ ๊ณ ์ˆ˜์ค€ logic ๊ตฌํ˜„์— ์ง‘์ค‘
  3. ๋ณต์žกํ•œ ๋ฉ€ํ‹ฐ์Šคํ… ์ž‘์—… ๋ฐ ์ž์œจ ์—์ด์ „ํŠธ ๊ตฌํ˜„
    • ์—ฌ๋Ÿฌ tool์„ ๋งฅ๋ฝ์— ๋”ฐ๋ผ ์—ฐ์† ํ˜ธ์ถœํ•˜๋ฉฐ ์ž‘์—…์„ ์™„์ˆ˜ํ•˜๋Š” ํ•ฉ์„ฑ ์—์ด์ „ํŠธ ๊ตฌํ˜„ (composable agent) ์‰ฌ์›Œ์ง
    • ๋„๋ฉ”์ธ ํŠนํ™” ์ž‘์—…์„ ์ธ๊ฐ„ ๋Œ€์‹  ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜, ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค ์ž๋™ํ™” ํˆฌ์ž… ๊ฐ€๋Šฅ์„ฑ ์—ด๋ฆผ
  4. ์ผ๊ด€์„ฑ ์žˆ๋Š” ํฌ๋งท๊ณผ ์ƒํ˜ธ์šด์šฉ์„ฑ
    • ์ผ๊ด€๋œ JSON ๊ตฌ์กฐ๋กœ ํ†ต์‹ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‘์šฉ ์‹œ ์ฒ˜๋ฆฌ ๋กœ์ง์ด ๋‹จ์ˆœํ•ด์ง€๊ณ  ๋””๋ฒ„๊น…๊ณผ ํ™•์žฅ์— ์œ ๋ฆฌ
  5. ์ง€์†์  ๋Œ€ํ™” ๋ฐ ์–‘๋ฐฉํ–ฅ context
    • tool๊ณผ ๋ชจ๋ธ ๊ฐ„์˜ ๋Œ€ํ™”๋ฅผ ์ด์–ด๋‚˜๊ฐ€๋ฉฐ ๋Œ€ํ™”ํ˜• ์ƒํ˜ธ์ž‘์šฉ ๊ฐ€๋Šฅ
  6. ๋ณด์•ˆ ๋ฐ ์ธ์ฆ ํ†ตํ•ฉ
    • ํ”„๋กœํ† ์ฝœ ์ฐจ์›์—์„œ ํ‘œ์ค€ ์ธ์ฆ ์ ˆ์ฐจ๋ฅผ ์ง€์›ํ•ด ๋ณด์•ˆ ํ–ฅ์ƒ
    • ๊ฐ tool์— ๊ถŒํ•œ scope๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋ชจ๋ธ ์ ‘๊ทผ ํ†ต์ œ ๋ฐ ๋ฐ์ดํ„ฐ ์ตœ์†Œ ๋…ธ์ถœ

ํ•œ๊ณ„

  1. ์ดˆ๊ธฐ ํ‘œ์ค€์˜ ๋ฏธ์„ฑ์ˆ™ํ•จ

    • ๋‹ค๋‹จ๊ณ„ tool ์—ฐ์‡„ ์‚ฌ์šฉ์˜ ํ‘œ์ค€ํ™”, ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆผ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ํ”„๋ผ์ด๋ฒ„์‹œ๊ฐ€ ํ•„์š”ํ•œ ์—ฐ์‚ฐ ๋“ฑ์„ ์–ด๋–ป๊ฒŒ ํ”„๋กœํ† ์ฝœ์— ๋…น์ผ์ง€ ํ–ฅํ›„ ๊ฐœ์„  ํ•„์š”
  2. ์„ฑ๋Šฅ ๋ฐ ๋ณต์žก๋„ ๋ถ€๋‹ด

    • ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ตฌ์กฐ๋กœ latency ์ƒ๊ธธ ์ˆ˜ ์žˆ์Œ
    • ๊ณ ์„ฑ๋Šฅ์ด ์š”๊ตฌ๋˜๋Š” ์‹ค์‹œ๊ฐ„ ์‘์šฉ์—์„œ๋Š” ์‚ฌ์šฉ์— ์‹ ์ค‘ํ•ด์•ผ ํ•จ
  3. ๋ชจ๋ธ์˜ ์˜์กด

    • tool์„ ์–ธ์ œ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ• ์ง€๋Š” ์—ฌ์ „ํžˆ LLM์˜ ํŒ๋‹จ์— ์˜์กด
    • MCP ์ž์ฒด๊ฐ€ ๋ชจ๋ธ์˜ ํŒ๋‹จ๋ ฅ์ด๋‚˜ ์‚ฌ์‹ค์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์ฃผ์ง€๋Š” ์•Š์Œ
  4. ๋ณด์•ˆ ์œ„ํ—˜ ์š”์†Œ

    • Prompt Injection3, tool-swapping4๊ณผ ๊ฐ™์€ ์‹ ๊ทœ ๋ณด์•ˆ ์œ„ํ˜‘ ๋ฐœ๊ฒฌ๋˜๊ณ  ์žˆ์Œ
  5. Tool ์ƒํƒœ๊ณ„ ์˜์กด

    • ์–ผ๋งˆ๋‚˜ ํ’๋ถ€ํ•œ MCP ํ˜ธํ™˜ tool ์ƒํƒœ๊ณ„๊ฐ€ ํ˜•์„ฑ๋˜๋Š”์ง€์— MCP์˜ ๊ฐ€์น˜ ๋ฐ ์„ฑ๊ณต์ด ๋‹ฌ๋ ค ์žˆ์Œ

๋ณด์•ˆ ๋ฐ ํ”„๋ผ์ด๋ฒ„์‹œ ๊ณ ๋ ค์‚ฌํ•ญ

MCP๋Š” AI์™€ ์™ธ๋ถ€ ์‹œ์Šคํ…œ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋งŒํผ ๋ณด์•ˆ(security)๊ณผ ํ”„๋ผ์ด๋ฒ„์‹œ(privacy)๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค.
MCP ์„ค๊ณ„์™€ ๊ตฌํ˜„ ์‹œ ๊ณ ๋ ค๋˜๋Š” ํ•ต์‹ฌ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค:

  1. ๊ถŒํ•œ ๊ด€๋ฆฌ ๋ฐ ์ธ์ฆ

    • allowed_tools,ย access_levelย ๋“ฑ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋กœ ๋„๊ตฌ ์ ‘๊ทผ ๋ฒ”์œ„๋ฅผ ์ œํ•œ
    • OAuth 2.0์„ ํ†ตํ•ด ์ธ์ฆ ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ณ , ์‚ฌ์šฉ์ž ์Šน์ธ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅ
  2. ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ ๋ฐ ์•ˆ์ „ํ•œ ์‹คํ–‰ ํ™˜๊ฒฝ

    • MCP ์„œ๋ฒ„๋ฅผ ๋กœ์ปฌ/๋‚ด๋ถ€๋ง์— ๋ฐฐ์น˜ํ•ด ๋ฐ์ดํ„ฐ ์œ ์ถœ์„ ๋ฐฉ์ง€
    • ์ƒŒ๋“œ๋ฐ•์Šค ์‹คํ–‰๊ณผ tool ์‹ ๋ขฐ ๋ชฉ๋ก์„ ํ†ตํ•ด tool-swapping ์œ„ํ—˜์„ ๊ฐ์†Œ
  3. ๊ณต๊ฒฉ ๋Œ€์‘ ๋ฐ ๊ฐ์‚ฌ ์ถ”์ 

    • Prompt injection ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ํ”„๋กฌํ”„ํŠธ ํ•„ํ„ฐ๋ง๊ณผ tool ์—ญํ•  ๊ตฌ๋ถ„ ๊ธฐ๋ฒ• ์‚ฌ์šฉ
    • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ์ถœ์ฒ˜ ํ‘œ๊ธฐ ๋ฐ ๋กœ๊ทธ ๊ธฐ๋ก์œผ๋กœ ์ž˜๋ชป๋œ ์ถœ๋ ฅ์— ๋Œ€ํ•œ ๊ฐ์‚ฌ ์ถ”์ ์ด ๊ฐ€๋Šฅ

๊ฒฐ๋ก ์ ์œผ๋กœ MCP๋Š” ํ”„๋กœํ† ์ฝœ ์ˆ˜์ค€์—์„œ ๋‹ค์–‘ํ•œ ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ์ง€์†์ ์ธ ์ ๊ฒ€๊ณผ ๊ฐœ๋ฐœ์ž ์ธก์˜ ์•ˆ์ „ ์„ค๊ณ„๊ฐ€ ๋ณ‘ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค.

ํ–ฅํ›„ ๋ฐœ์ „ ๊ฐ€๋Šฅ์„ฑ ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋™ํ–ฅ

  1. ํ”„๋กœํ† ์ฝœ ์„ฑ์ˆ™ ๋ฐ ๊ธฐ๋Šฅ ํ™•์žฅ

    • ํ”„๋กฌํ”„ํŠธ ๊ตฌ์กฐ ๊ฐœ์„ , ์ŠคํŠธ๋ฆฌ๋ฐ ์ง€์›, ๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ ์—ฐ๊ณ„ ๋“ฑ ๊ธฐ๋Šฅ ๊ณ ๋„ํ™”๊ฐ€ ๋…ผ์˜ ์ค‘
    • ์—์ด์ „ํŠธ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ๊ณผ ํ†ตํ•ฉ๋˜์–ด ๋ณต์žกํ•œ ํ˜‘์—… ๊ตฌ์กฐ๋„ ๊ฐ€๋Šฅํ•ด์งˆ ์ „๋ง
  2. ์ƒํƒœ๊ณ„ ๋ฐ ๋„๊ตฌ ํ™•์‚ฐ

    • ์˜คํ”ˆ MCP ์„œ๋ฒ„ ์ˆ˜์ฒœ ๊ฐœ๊ฐ€ ๋ฐฐํฌ๋˜๋ฉฐ ์ƒํƒœ๊ณ„๊ฐ€ ๊ธ‰์†ํžˆ ํ™•์žฅ๋˜๊ณ  ์žˆ์Œ
    • MCP ์ง€์› SDK์™€ ๋ฐฐํฌ ๋„๊ตฌ๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉฐ ๊ฐœ๋ฐœ์ž ์ฑ„ํƒ ์žฅ๋ฒฝ์ด ๋‚ฎ์•„์ง€๊ณ  ์žˆ์Œ
  3. ์ธํ”„๋ผ๋กœ์„œ์˜ ์ž๋ฆฌ๋งค๊น€

    • ์ „๋ฌธ๊ฐ€๋“ค์€ MCP๋ฅผ HTTP์ฒ˜๋Ÿผ AI ์‹œ๋Œ€์˜ ๊ธฐ๋ณธ ์—ฐ๊ฒฐ ํ”„๋กœํ† ์ฝœ๋กœ ๋ณด๊ณ  ์žˆ์Œ
    • ๋ณต์žกํ•œ ํ†ตํ•ฉ ๊ณผ์ •์„ ์ค„์ด๊ณ  ๋ชฉ์  ์ค‘์‹ฌ AI ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ๋กœ ์ง„ํ™” ์ค‘

๊ถ๊ทน์ ์œผ๋กœ ๋งŽ์€ ์ „๋ฌธ๊ฐ€๋Š” MCP์˜ ๋ฏธ๋ž˜์ƒ์„ HTTP ๊ฐ™์€ ์ธํ”„๋ผ์— ๋น„์œ ํ•œ๋‹ค.
์›น์ด ์ฒ˜์Œ ๋“ฑ์žฅํ–ˆ์„ ๋•Œ๋Š” ๋‹จ์ˆœํ•œ ํŽ˜์ด์ง€ ๋กœ๋”ฉ์ด์—ˆ์ง€๋งŒ, ๊ฒฐ๊ตญ ์ƒ์ƒ๋„ ๋ชปํ•œ ์›น์•ฑ๋“ค์„ ํƒ„์ƒ์‹œ์ผฐ๋“ฏ์ด, MCP๋„ ์ฒ˜์Œ์—” tool ๋ช‡ ๊ฐœ ์—ฐ๊ฒฐ์— ๋ถˆ๊ณผํ–ˆ์ง€๋งŒ ์žฅ์ฐจ AI ์—์ด์ „ํŠธ ์„ธ์ƒ์˜ ๊ธฐ๋ณธ ํ†ต์‹ ๋ง์ด ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

AI ์‹œ์Šคํ…œ์ด ์„ธ์ƒ๊ณผ ์†Œํ†ตํ•˜๋Š” ๋ฐฉ์‹์ด ์กฐ์šฉํžˆ MCP๋กœ ์ˆ˜๋ ด๋˜์–ด, ๋ฏธ๋ž˜์˜ ๊ฐœ๋ฐœ์ž๋“ค์€ ์˜ˆ์ „์— ์ด๋Ÿฐ ํ†ตํ•ฉ์„ ์ง์ ‘ ์ฝ”๋”ฉํ•ด์•ผ ํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค์กฐ์ฐจ ์žŠ๊ฒŒ ๋  ๊ฒƒ ์ด๋ผ๋Š” ์ „๋ง๋„ ๋‚˜์˜ค๊ณ  ์žˆ๋‹ค.

์‹ค์ œ๋กœ โ€œAI ํ†ตํ•ฉ์— ๋“ค์ด๋˜ ๋…ธ๋ ฅ์€ ๋๋‚˜๊ฐ€๊ณ , ์ด์ œ ๋ฌด์—‡์„ ํ• ์ง€์— ์ง‘์ค‘ํ•˜๋Š” ์‹œ๋Œ€โ€ ๊ฐ€ ์˜ค๊ณ  ์žˆ๋‹ค๊ณ  ๋ถ„์„๋˜๋ฉฐ , MCP๊ฐ€ ๊ทธ๋Ÿฐ ์‹œ๋Œ€๋ฅผ ์•ž๋‹น๊ธฐ๋Š” ํ•ต์‹ฌ ์š”์†Œ๋กœ ๊ธฐ๋Œ€๋˜๊ณ  ์žˆ๋‹ค.

Footnotes

  1. N๊ฐœ์˜ AI ๋ชจ๋ธ๊ณผ M๊ฐœ์˜ ๋„๊ตฌ๊ฐ€ ์žˆ์„ ๋•Œ, ๊ฐ๊ฐ์„ ๋ณ„๋„๋กœ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ ํ†ตํ•ฉ ๋น„์šฉ์ด ๋น ๋ฅด๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š” ๋ฌธ์ œ โ†ฉ

  2. https://www.descope.com/learn/post/mcp โ†ฉ

  3. ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กฌํ”„ํŠธ์— ํŠน์ •ํ•œ ๋ช…๋ น์ด๋‚˜ ์ง€์‹œ๋ฅผ ์‚ฝ์ž…ํ•ด, ๋ชจ๋ธ์ด ์›๋ž˜ ์˜๋„์™€ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ์œ ๋„ โ†ฉ

  4. ๋ชจ๋ธ์ด ํ˜ธ์ถœํ•˜๋ ค๋Š” ์ •์ƒ ๋„๊ตฌ๋ฅผ ๊ณต๊ฒฉ์ž๊ฐ€ ์œ ์‚ฌํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ€์ง„ ์•…์„ฑ ๋„๊ตฌ๋กœ ๋ฐ”๊ฟ”์น˜๊ธฐํ•˜์—ฌ ๋ชจ๋ธ์ด ์˜ค์šฉ๋˜๊ฑฐ๋‚˜ ๋ฏผ๊ฐ ์ •๋ณด๊ฐ€ ์œ ์ถœ๋˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ โ†ฉ