Semantic Kernel with MCP

Thinking

Semantic Kernel, MCP๋ฅผ ํ•จ๊ป˜ ์“ฐ๋Š” ์ด์œ ? ๊ทธ๋ƒฅ Claude์—์„œ๋„ ์—ฌ๋Ÿฌ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Semantic Kernel์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ? ์—ฌ๋Ÿฌ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ. Claude << Claude ๋ชจ๋ธ๋งŒ ์“ธ ์ˆ˜ ์žˆ์Œ. Semantic Kernel์˜ ์žฅ์ : ์—ฌ๋Ÿฌ ๋ชจ๋ธ์„ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ + ๊ธฐ์กด ์•ฑ์— AI ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์—ฌ๊ธฐ์— ์ง‘์ค‘ํ•ด๋ณด์ž.

Semantic KernelClaude Desktop
๋‹ค์–‘ํ•œ ๋ชจ๋ธonly Claude
SK, Claude Desktop ์ฐจ์ด์— ๋Œ€ํ•œ GPT์˜ ๋‹ต๋ณ€ ์š”์•ฝ: Claude์—์„œ MCP๋ฅผ ์“ฐ๋Š” ๊ฒฝ์šฐ, LLMโ€“๋„๊ตฌ ๊ฐ„ ํ†ต์‹ ์ด ํด๋ผ์ด์–ธํŠธ ์ธก(MCP ํด๋ผ์ด์–ธํŠธ โ†’ MCP ์„œ๋ฒ„)์—์„œ JSONโ€‘RPC(STDIN/โ€‹SSE)๋ฅผ ์ง์ ‘ ๋‹ค๋ฃจ๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ฃผ๋กœ ๋„๊ตฌ ํ˜ธ์ถœ ์ž์ฒด์— ์ง‘์ค‘๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด Semantic Kernel(SK)์—์„œ๋Š” MCP ์„œ๋ฒ„์˜ ๋„๊ตฌ๋“ค์„ `KernelFunction` ์ถ”์ƒํ™”๋กœ ๋ž˜ํ•‘ํ•˜๊ณ , ์ž๋™ ํ•จ์ˆ˜ ํ˜ธ์ถœ, ํŒŒ์ดํ”„๋ผ์ธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜, ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ, ๋ฉ”๋ชจ๋ฆฌยท์บ์‹œยทํ•„ํ„ฐ๋งยท๋กœ๊น… ๋“ฑ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ SDK ์ฐจ์›์—์„œ ์ œ๊ณตํ•˜์—ฌ, ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ด์ƒ์˜ AI ์—์ด์ „ํŠธ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‘ ํ™˜๊ฒฝ ๋ชจ๋‘ โ€œํ•จ์ˆ˜ ํ˜ธ์ถœโ€์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ, ์•„ํ‚คํ…์ฒ˜ ์œ„์น˜ยท์ถ”์ƒํ™” ๊ณ„์ธตยทํ™•์žฅ์„ฑยท๊ด€์ฐฐ ๊ฐ€๋Šฅ์„ฑ ๋ฉด์—์„œ ์ฐจ๋ณ„ํ™”๋ฉ๋‹ˆ๋‹ค.

1. ์•„ํ‚คํ…์ฒ˜ ๊ด€์ : ์–ด๋””์„œ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์ฒ˜๋ฆฌํ•˜๋Š”๊ฐ€

1.1 Claude์˜ MCP

  • MCP๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก์— ํ†ตํ•ฉ๋˜์–ด, Claude๊ฐ€ MCP ์„œ๋ฒ„์™€ STDIN/โ€‹STDOUT ๋˜๋Š” SSE(JSONโ€‘RPC) ๋ฐฉ์‹์œผ๋กœ ์ง์ ‘ ๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ โ€œFunction Calling์€ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ, MCP๋Š” ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œโ€๋ผ๋Š” ์„ค๋ช…์ด ์žˆ์„ ์ •๋„์ž…๋‹ˆ๋‹ค .

  • Claude Desktop ์•ฑ์— ๋กœ์ปฌ MCP ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ•˜๋ฉด, GitHub ์—ฐ๋™ยทํŒŒ์ผ ์‹œ์Šคํ…œ ์ ‘๊ทผ ๊ฐ™์€ ๋„๊ตฌ ํ˜ธ์ถœ์„ 1์‹œ๊ฐ„ ๋‚ด์— ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค .

1.2 Semantic Kernel์˜ MCP

  • SK์—์„œ๋Š” McpClient.ListToolsAsync()๋กœ MCP ์„œ๋ฒ„์˜ ๋„๊ตฌ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜จ ๋’ค, AsKernelFunction()์„ ํ†ตํ•ด ์ด๋ฅผ KernelFunction์œผ๋กœ ๋ณ€ํ™˜ํ•ด kernel.Plugins.AddFromFunctions()๋กœ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค Microsoft for Developers.

  • ํ•จ์ˆ˜ ํ˜ธ์ถœ์€ SK ๋‚ด์—์„œ LLM ์‹คํ–‰ ์„ค์ •(FunctionChoiceBehavior.Auto)์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๊ฒฐ์ •ยท์‹คํ–‰๋˜๋ฉฐ, ์—ฌ๋Ÿฌ ๋„๊ตฌ๋ฅผ ์ฒด์ด๋‹ํ•˜๊ฑฐ๋‚˜ ์—์ด์ „ํŠธ(Planner)๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค GitHub.

2. ์ถ”์ƒํ™” ์ˆ˜์ค€ ๋ฐ SDK ์ง€์›

2.1 Claude

  • Anthropic API์˜ Tool Use(ํ•จ์ˆ˜ ํ˜ธ์ถœ) ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋„๊ตฌ๋ฅผ ์ง์ ‘ ๋“ฑ๋กยทํ˜ธ์ถœํ•˜๋ฉฐ, JSON ํ˜•์‹ ์Šคํ‚ค๋งˆ์™€ ํŒŒ๋ผ๋ฏธํ„ฐ ํƒ€์ž…์„ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๋ช…์„ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค .

  • MCP ์ž์ฒด๋Š” ํ”„๋กœํ† ์ฝœ ๊ทœ๊ฒฉ(API ๊ฒŒ์ดํŠธ์›จ์ด ์—ญํ• )์œผ๋กœ ์ œ๊ณต๋˜๋ฉฐ, Tool Use์™€ ๋ณ‘ํ–‰ํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค .

2.2 Semantic Kernel

  • .NETยทPythonยทJava SDK๋กœ์„œ Kernel, KernelFunction, ChatCompletionAgent, Planner ๋“ฑ ๊ณ ์ˆ˜์ค€ ์ถ”์ƒํ™” ๊ณ„์ธต์„ ์ œ๊ณตํ•ด, ๋„๊ตฌ ํ˜ธ์ถœ๋ฟ ์•„๋‹ˆ๋ผ ๋ณตํ•ฉ ์›Œํฌํ”Œ๋กœ์šฐ ๊ตฌ์„ฑยทํ”„๋กฌํ”„ํŠธ ๊ด€๋ฆฌยท๋ฉ”๋ชจ๋ฆฌ ํ†ตํ•ฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค Microsoft for DevelopersGitHub.

  • SK๋ฅผ MCP ์„œ๋ฒ„๋กœ ๋…ธ์ถœ(kernel.as_mcp_server())ํ•˜๋ฉด, Claude ๋“ฑ ๋‹ค๋ฅธ MCP ํด๋ผ์ด์–ธํŠธ๊ฐ€ SK์˜ ํ•จ์ˆ˜ยทํ”„๋กฌํ”„ํŠธ๋ฅผ ๊ณง๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค Microsoft for Developers.

3. ๊ด€์ฐฐ ๊ฐ€๋Šฅ์„ฑ(Observability) ๋ฐ ๋ณด์•ˆ

3.1 Claude

  • ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜ธ์ถœ ๋กœ๊ทธยท์—๋Ÿฌ ์ฒ˜๋ฆฌ๋Š” ์ž์ฒด ๋กœ๊ทธ์— ์˜์กดํ•˜๋ฉฐ, ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฒ€์ฆยทํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ์€ ์ œ๊ณต๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

3.2 Semantic Kernel

  • SK๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ „ ํŒŒ๋ผ๋ฏธํ„ฐ ํ•„ํ„ฐ๋งยท๊ฒ€์ฆ, ํ›„ ๋กœ๊น…ยท๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘์„ ์ง€์›ํ•˜๋ฉฐ, Application Insights ๊ฐ™์€ ๊ธฐ์กด ๊ด€์ธก ์ธํ”„๋ผ์™€๋„ ์‰ฝ๊ฒŒ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .

  • ์บ์‹ฑยท์žฌ์‹œ๋„ ์ •์ฑ…๋„ SDK ์ฐจ์›์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด, ์•ˆ์ •์„ฑ๊ณผ ์„ฑ๋Šฅ์„ ๋™์‹œ์— ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค Microsoft for Developers.

4. ํ™•์žฅ์„ฑ ๋ฐ ์—์ฝ”์‹œ์Šคํ…œ

4.1 Claude

  • MCP ์ง€์› ํด๋ผ์ด์–ธํŠธ(Claude Desktop, CLI) ๋ฒ”์œ„ ๋‚ด์—์„œ๋งŒ ํ™œ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์„œ๋ฒ„ ์ธก ์ปค์Šคํ…€ ๊ตฌํ˜„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ๋„๊ตฌ ๊ด€๋ฆฌยท๋ฒ„์ „ ๊ด€๋ฆฌ ๋“ฑ์€ ์ „์ ์œผ๋กœ ๊ฐœ๋ฐœ์ž ๋ชซ์ž…๋‹ˆ๋‹ค.

4.2 Semantic Kernel

  • ๋‹ค์–‘ํ•œ LLM ๋ฐฑ์—”๋“œ(OpenAI, Azure AI, Ollama ๋“ฑ)๋ฅผ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ” ๋ผ์šธ ์ˆ˜ ์žˆ๊ณ , SK์— ๋“ฑ๋ก๋œ ๋„๊ตฌ๋“ค์„ ์„œ๋กœ ์ฒด์ด๋‹ํ•˜๊ฑฐ๋‚˜ ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค๋กœ ํ™•์žฅํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค GitHub.

  • ์ปค๋ฎค๋‹ˆํ‹ฐ ํŠœํ† ๋ฆฌ์–ผยท์ƒ˜ํ”Œ(.NET, Python)๋„ ํ’๋ถ€ํ•ด, ๋น ๋ฅธ ํ”„๋กœํ† ํƒ€์ž…๋ถ€ํ„ฐ ํ”„๋กœ๋•์…˜ํ™”๊นŒ์ง€ ์›์Šคํ†ฑ์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค Systenics Solutions AI.

5. ์‹ค์ œ ํ™œ์šฉ ์‚ฌ๋ก€

  • Claude + MCP: GitHub PR ์ƒ์„ฑ, ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ, Google Drive ์—ฐ๋™ ๋“ฑ ๋‹จ์ผ ๋„๊ตฌ ํ˜ธ์ถœ ์ค‘์‹ฌ .

  • SK + MCP: ๋ฌธ์„œ ์š”์•ฝ โ†’ DB ์กฐํšŒ โ†’ ๊ฒฐ๊ณผ ํฌ๋งทํŒ… โ†’ ์•Œ๋ฆผ ์ „์†ก ๊ฐ™์€ ๋ฉ€ํ‹ฐ์Šคํ… ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•, ์„ธ์…˜ยท์ฝ˜ํ…์ŠคํŠธ ์œ ์ง€, ์žฅ๊ธฐ ๊ธฐ์–ต(semantic memory) ํ†ตํ•ฉ ๋“ฑ์ด ๊ฐ€๋Šฅํ•œ ์—์ด์ „ํŠธ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ GitHubMicrosoft for Developers.


๊ฒฐ๋ก ์ ์œผ๋กœ, Claude์—์„œ MCP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ โ€œ๋„๊ตฌ ํ˜ธ์ถœ ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด ์™ธ๋ถ€ ์‹œ์Šคํ…œ์— ์ ‘๊ทผโ€ํ•˜๋Š” ์ˆ˜์ค€์ด๋ผ๋ฉด, Semantic Kernel์—์„œ MCP๋ฅผ ํ™œ์šฉํ•˜๋ฉด โ€œ๋„๊ตฌ ํ˜ธ์ถœ์„ ํฌํ•จํ•œ AI ์›Œํฌํ”Œ๋กœ์šฐ ์ „๋ฐ˜์„ ์„ค๊ณ„ยท๊ด€๋ฆฌยทํ™•์žฅโ€ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ์ฐจ์›์˜ ํ†ตํ•ฉ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์˜ต์‹œ๋””์–ธ ์“ฐ๊ณ ์‹ถ์Œ. ์˜ต์‹œ๋””์–ธ์œผ๋กœ ์„ธ์ปจ๋ธŒ๋ ˆ์ธ ์–ด์ฉŒ๊ณ .. ์—ฌ๊ธฐ์— ํ”„๋กฌํ”„ํŠธ๋กœ ์ œํ…”์นด์Šคํ… ๊ธฐ๋ฒ• ์“ฐ๋ผ๊ณ  ํ•˜์ž. ์žˆ์–ด๋ณด์ด๋Š”๊ฑด ๋‹ค ๋•Œ๋ ค๋„ฃ๋Š”๊ฑฐ์ž„.

MS์—์„œ ๋ฐœํ‘œํ•˜๋‹ˆ๊นŒ Teams๋„ ๋„ฃ์„๊นŒโ€ฆ? โ€œํŒ€์ฆˆ์— ์ผ์ • ์ถ”๊ฐ€ํ•˜๊ณ  ์˜ต์‹œ๋””์–ธ ์บ˜๋ฆฐ๋”์— ๋„ฃ์–ด์ค˜โ€ ์ด๋Ÿฐ์‹์œผ๋กœ ใ…‡ใ…‡โ€ฆ

์›น ๊ฒ€์ƒ‰๊ธฐ๋Šฅ๋„ ๋„ฃ์ž Perplexity โ€œ๊ฒ€์ƒ‰ํ•ด์„œ ์ด ๋‚ด์šฉ ์˜ต์‹œ๋””์–ธ์— ์ถ”๊ฐ€ํ•ด์ค˜โ€

์ฐธ๊ณ ์ž๋ฃŒ๋ฅผ ๋ณด๋ฉด MCP ์„œ๋ฒ„๋Š” ๋”ฐ๋กœ ๊ตฌ๋™์‹œ์ผœ๋†“๊ณ  ์ด๋ฅผ SK์—์„œ ๋ถˆ๋Ÿฌ์™€ ์“ฐ๋Š” ๋ฐฉ์‹์ด๋ผ ํ•จ. ๊ทธ๋Ÿผ docker๋กœ MCP ์„œ๋ฒ„ ๊ฐ๊ฐ์„ ๋ง์•„์„œ compose๋กœ ์‹คํ–‰์‹œ์ผœ์•ผ๊ฒ ๋‹ค.

SK ์“ฐ๋Š” ์ด์œ ? ์—ฌ๋Ÿฌ ๋ชจ๋ธ ์“ฐ๋ ค๊ณ  ํ•˜์ž–์Œ.

์‚ฌ์šฉ์ž ์Œ์„ฑ - OpenAI ์ธ์‹ - ํ”„๋กฌํ”„ํŠธ๋กœ ์ „๋‹ฌ - ์‘๋‹ต - TTS ๋ฐฐ์ถœ

Real-time API with SK, MCP

์ด๋ ‡๊ฒŒ ๋˜๋ฉด ํŒŒ์ด์ฌ์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ด๋‹ค. ํŒŒ์ด์ฌ์—์„œ๋งŒ Real-time API๋ฅผ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ. โ€ฆ์•„๋‹ˆ, ๊ตณ์ด Real-time API๋ฅผ ์จ์•ผํ•˜๋‚˜?

์˜ต์‹œ๋””์–ธ MCP << ์ž‘์„ฑ ๊ถŒํ•œ ์—†์Œ. ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅ. ํŒŒ์ผ์‹œ์Šคํ…œ << Desktop์„ ๋ฃจํŠธ๋กœ ์ง€์ •ํ•จ.

Flow

  • Semantic Kernel์ด ๋ญ”์ง€
  • MCP๊ฐ€ ๋ญ”์ง€
  • ๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ์ด ์•ฑ ๋งŒ๋“ฆ ๊ฑ ์ž๋น„์Šค์ž„
    • ์‹œ๋งจํ‹ฑ ์ปค๋„, MCP ๊ฐ™์ด ์“ฐ๋Š” ์‹œ๋„ˆ์ง€
    • ์–ด๋–ค MCP ์„œ๋ฒ„ ์ถ”๊ฐ€ํ–ˆ๋Š”์ง€
  • ์ฃผ์˜ํ•  ์ 
    • ๋ณด์•ˆ (์ค‘์š”)
  • ๋‚˜์ค‘์— ์ถ”๊ฐ€ํ•˜๊ณ ์‹ถ์€๊ฑฐ
    • IoT
      • ์• ํ”Œ ํ™ˆํŒŸ์ด๋ž‘ ์—ฐ๋™
      • MCP ์„œ๋ฒ„ ์—†์œผ๋ฉด ์ง์ ‘ ๋งŒ๋“ค์–ด์•ผํ• ๋“ฏ?