
9์ด ๋์ ์๊ฐํจ
์ด ๊ฐ์ข์ ์ต์ข
๋ชฉํ๋ ์ฌ๋ฌ๋ถ์ด Anthropยญicโฏ์ฌ์์ ์ ์ํ ๋ชจ๋ธ ์ปจํ
์คํธ ํ๋กํ ์ฝ(Model Context Protocol, MCP) ์ ๋ฅ์ํ๊ฒ ๋ค๋ฃจ๋๋ก ๋๋ ๊ฒ์
๋๋ค.
์ฝ๊ฒ ๋งํด, AI ๋ชจ๋ธ์ด โ๋ํ ๋งฅ๋ฝโ์ ์ด๋ป๊ฒ ์ดํดํ๊ณ , ์ฃผ๊ณ ๋ฐ๊ณ , ์ ์ฅํ๊ณ , ํ์ฅํ ์ ์๋์ง๋ฅผ ์ค์ ์ฝ๋๋ก ์ตํ๋ ๊ณผ์ ์ด๋ผ๊ณ ์๊ฐํ์๋ฉด ๋ผ์.
MCP ์๋ฆฌ ์์ ์ดํด
MCP ์๋ฒ ๊ฐ๋ฐ ๋ฅ๋ ฅ
MCP ํด๋ผ์ด์ธํธ ๊ตฌํ ๋ฅ๋ ฅ
๊ณ ๊ธ ์์ด์ ํฑ(Agentic) ์ํฌํ๋ก ๊ตฌ์ถ
ํ๋ก๋์ (์ด์) ๊ด์ ์ ์ค๋ฌด ๊ฐ๊ฐ
| ๋์ | ์ ๋์์ด ๋๋๊ฐ |
|---|---|
| ์ํํธ์จ์ด ์์ง๋์ด | ์ด๋ฏธ ์ฝ๋๋ฅผ ์ ๋ค๋ฃจ๋, MCP๋ก AI ๊ธฐ๋ฅ์ ๋น ๋ฅด๊ฒ ํ์ฅํ ์ ์์ต๋๋ค. |
| ๋ฐ์ดํฐ ๊ณผํ์ | ํ์ดํ๋ผ์ธ ์์ โ์ง๋ฅํ ๋งฅ๋ฝ ์ฒ๋ฆฌโ๋ฅผ ๋ฃ์ด ์ํฌํ๋ก๋ฅผ ์๋ํํ ์ ์์ต๋๋ค. |
| ์ฝ๋ ์ฝ๊ณ ์ฐ๊ธฐ์ ๊ฑฐ๋ถ๊ฐ ์๋ ์ง๊ตฐ (ํ๋ก๊ทธ๋๋จธ ๋ฑ) | ์ค๋ฌด์์ LLM์ ํ์ฉํด ๋ฌธ์ยท๋ณด๊ณ ์ยท๋ถ์์ ์๋ํํ๋ ค๋ ๋ถ๋ค์ด ์ค์ ๋ก ์๊ฐํด ์ข์ ํผ๋๋ฐฑ์ ์ฃผ์ จ์ต๋๋ค. |
์ฃผ์! ์ด ๊ฐ์ข๋ โ์์ ๋น์ ๊ณต์์ฉ ์ ๋ฌธ ๊ฐ์โ๋ ์๋๋๋ค.
์ฝ๋๋ฅผ ์ด๋ ์ ๋ ์ฝ๊ณ ์คํํด ๋ณธ ๊ฒฝํ์ด ์์ด์ผ ์ดํด๊ฐ ์์ํฉ๋๋ค.
Python ๊ธฐ์ด
def, class, import ๊ฐ์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ ์๊ณ , ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ์ ์์ผ๋ฉด ์ถฉ๋ถํฉ๋๋ค.๊ฐ๋จํ Git ์ฌ์ฉ
git clone, git commit ์ ๋๋ง ๋ค๋ฃฐ ์์ ์ด๋ผ ์ด๋ ต์ง ์์ต๋๋ค.๊ฐ์ ํ๊ฒฝ๊ณผ ํ๊ฒฝ ๋ณ์
python -m venv venv ๋ก ํ๊ฒฝ์ ๋ง๋ค๊ณ , .env ํ์ผ์ด๋ export ๋ก API ํค๋ฅผ ๋ฃ์ด ๋ณธ ๊ฒฝํ์ด ์์ผ๋ฉด ์ข์ต๋๋ค.LLM ๊ธฐ๋ณธ ์ฉ์ด
์ด์ ์ค๋น๊ฐ ๋์
จ๋ค๋ฉด, ๋ณธ๊ฒฉ์ ์ผ๋ก MCP์ ์ธ๊ณ๋ก ๋ค์ด๊ฐ ๋ณผ๊น์?
๊ฑฑ์ ์ ์ ์ ์ ์ด๋์๊ณ , ์ฝ๋ ์๋ํฐ์ ํฐ๋ฏธ๋์ ์ผ ๋์๋ฉด ๋ฉ๋๋ค. ํ์ดํ
!
MCP์ ์ค์์ฑ์ ๋ํ ์ค๋ช
MCP๋ ์ฌ๋ฌ ๋ค์ํ ์์คํ ์ ํ๋๋ก ์ฐ๊ฒฐํ๊ฑฐ๋ ๊ฒฐํฉํ๋ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, Slack, Gmail, ๋ฐ์ดํฐ๋ฒ ์ด์ค(DB)์ฒ๋ผ ์ฌ๋ฌ ๋ค๋ฅธ ์์คํ ์ด ๊ฐ๊ฐ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋์ํ๋๋ฐ, ์ด๋ค์ ํตํฉํ๋ ค๋ฉด MCP๊ฐ ํ์ํด์. MCP๋ ์ฌ๋ฌ ๋๋ฆฌ(agent)์ ํด๋ค์ด ์๋ก ํ๋ ฅํ๋๋ก ๋์์ฃผ๋ ์ถ์ํ๋ ๊ณ์ธต์ ๋๋ค. ์ด๋ฅผ ํตํด ๋ณต์กํ ์์คํ ์ ๋ ฤฦกn์ํ๊ฒ ๊ด๋ฆฌํ๊ณ , ๊ฐ ์์คํ ๊ฐ์ ํตํฉ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ด์. ์ด์์ ์ธ ์์๋ก๋ ์ปค์๋ ์๋์ํ์ฒ๋ผ ๋ณต์กํ ๋์์ ๋จ์ํํ๋ ๋ฐฉ์ ๊ฐ์ฃ !
11์ด ๋์ ์๊ฐํจ
๋ชฉํ
Slack์ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ , Gmail๋ก ๋ฉ์ผ์ ์ฝ๊ณ ์ฐ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค(DB)์ ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆด ์ ์๊ฒ ๋ง๋ค๊ณ ์ถ์ต๋๋ค.ํ์ค
send_mail(), post_to_slack(), query_db() ๊ฐ์ ํจ์(๋๊ตฌ)๋ฅผ ์ง์ ๋ง๋ญ๋๋ค.๋ง์ฝ ๋ค๋ฅธ ํ(์:โฏWindsurf)๋ โ๊ทธ ๋๊ตฌ ์ธํธโ๋ฅผ ์ฐ๊ณ ์ถ๋ค๋ฉด?
์ด๋๊น์ง๋ ์์ด์ ํธ ์ฝ๋ + ๋๊ตฌ ๋ํผ๊ฐ Cursor ์ ์ฉ์ผ๋ก ์ง์ฌ ์์์ต๋๋ค.
Windsurf์์ ์ฐ๋ ค๋ฉด ์๋ก์ด ํตํฉ(Integration) ์์ ์ ๋ ํด์ผ ํ๊ณ ,
N๊ฐ์ ์์ด์ ํธ ร M๊ฐ์ ๋๊ตฌ โ ํตํฉ ์ง์ฅ ๐ต
์ปดํจํฐ ์ธ๊ณ์ ๊ฒฉ์ธ
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ํ ๊ฒน ๋ ์ถ์ํ ๊ณ์ธต์ ๋ง๋ ๋ค.
MCP๋ AIโฏ์์ด์ ํธ์ ๋๊ตฌ ์ฌ์ด์ ํ์ค ๋ํ ๊ท์น์ ๋ก๋๋ค.
[์์ด์ ํธ AppโA]โโโโ
[์์ด์ ํธ AppโB]โโโโผโโถ MCP ์๋ฒ โโโถ [๋๊ตฌ(์ฌ๋ยท์ง๋ฉ์ผยทDB)โฆ]
[์์ด์ ํธ AppโC]โโโโ
| ๊ธฐ์กด ๋ฐฉ์ | MCP ๋ฐฉ์ |
|---|---|
| ์ฑ๋ง๋ค ๋๊ตฌ๋ฅผ โ์ง์ ๋ถ์ฌโ์ผ ํจ | ํโฏ๋ฒ ๋ถ์ด๋ฉด ๋ชจ๋ MCP ์ฑ์์ ์ฌ์ฌ์ฉ |
| ์ฑร๋๊ตฌ ์๋งํผ ์ฝ๋ ์ค๋ณตยท๋ฒ์ ๊ด๋ฆฌ ํ์ | ์๋ฒยทํด๋ผ์ด์ธํธ ์์ชฝ ์ฝ๋๊ฐ ํ์ค |
| ์๋ก์ด ์ฑ ๋ฑ์ฅ โ ๋ ํตํฉ ์์ | โ์ง์ = MCP ์ง์ ์ฌ๋ถโ ํ ์ค์ด๋ฉด ๋ |
| ๊ฐ๊ฐ ๋ค๋ฅธ ๊ถํยท์ ์ฑ ๊ด๋ฆฌ ๋ณต์ก | MCP ๋ฉ์์ง ํฌ๋งท์ ์ ์ฑ ํ๋ ํฌํจ ๊ฐ๋ฅ |
์ฌ์ฉ์๊ฐ ๋ง์์๋ก ๊ฐ์น ํญ์ฆ
์์ฆ ํซํ ์ด์
๋ฉ์์ง ํฌ๋งท (JSON ๋น์ท)
{
"role": "agent",
"content": "SELECT * FROM sales LIMIT 5;",
"context": { "db": "prod" }
}
ํธ๋์ธ์ดํฌ(Handshake)
์คํธ๋ฆฌ๋ฐ
๊ถํยท์ ์ฑ ํ๋
capabilities: ["gmail.send", "gmail.read"] ์ฒ๋ผ ํ์ฉ ๋ฒ์๋ฅผ ๋ช
์.๐ ์ฃผ์: ์ ์์๋ ๊ฐ๋ ์ค๋ช ์ฉ โ๊ฐ์งโ ๋ฌธ๋ฒ์ ๋๋ค.
์ค์ MCP ์คํ์ ์์ผ๋ก ๊ฐ์์์ ์์ธํ ๋ค๋ฃน๋๋ค.
์ด์ **โMCP๊ฐ ์ ํ์ํ๊ฐโ**๋ ๊ฐ์ด ์กํ์ จ์ฃ ?
๋ค์ ๊ฐ์์์๋ ํ๋กํ ์ฝ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ๋ฏ์ด๋ณด๋ฉฐ,
๊ฐ๋จํ MCP ์๋ฒยทํด๋ผ์ด์ธํธ๋ฅผ ์ง์ ๋์ ๋ณด๋ ์ค์ต์ ๋ค์ด๊ฐ๋๋ค. ์ค๋น๋์ จ๋์? ๐ ๏ธ
CloudโฏIDE๋ฅผ ์ด์ด ํ์์ฒ๋ผ ๋ํ์ฐฝ์ ์ง๋ฌธ์ ์ ๋ ฅํฉ๋๋ค.
Whatโs the weather in SanโฏFrancisco right now?
LLM(์: Sonnetโฏ3.7) ์ ์ธํฐ๋ทยท์ค์๊ฐ API ์ ๊ทผ ๊ถํ์ด ์์ผ๋ฏ๋ก
โ์ค์๊ฐ ๋ ์จ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.โ
๋ผ๋ ๋ต๋ง ๋๋ ค์ค๋๋ค.
๐โฏ์ฆ, MCP ์๋ฒ๋ฅผ ์ฐ๊ฒฐํ์ง ์์ผ๋ฉด LLM์ ์ธ๋ถ ๋๊ตฌ(๋ ์จ API ๋ฑ)์ ์ ๊ทผํ ๊ธธ์ด ์์ต๋๋ค.
Cloud โ Settings โ Developer ํญ์์ MCP ์๋ฒ ๋ชฉ๋ก์ ํ์ธ
WeatherโฏMCP ์๋ฒ ์ฃผ์๋ฅผ ์ถ๊ฐ(๋ค ๊ฐ์์์ ์ค์ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์์ ).
๋ค์ ์ฑํ ์ฐฝ์ ๋์ผ ์ง๋ฌธ ์ ๋ ฅ โ ์ด๋ฒ์ ๋ค๋ฅธ ์ผ์ด ๋ฒ์ด์ง๋๋ค.
| ์์ | ์ฃผ์ฒด | ๋ฌด์จ ์ผ? |
|---|---|---|
| โ | CloudโLLM | โ์ํ๋์์ค์ฝ ์ยท๊ฒฝ๋โ๋ฅผ ์ค์ค๋ก ์ถ๋ก (Lat 37.77โฆ, Lon โ122.42โฆ) |
| โก | LLM โ MCP ์๋ฒ | get_forecast ํจ์ ํธ์ถ ์์ฒญ์ ์ ์ก(JSONโฏRPC ๋น์ท) |
| โข | MCP ์๋ฒ | ๋ด๋ถ์์ ์ค์ ๋ ์จ API ํธ์ถ โ ๊ฒฐ๊ณผ ๋ฐํ |
| โฃ | LLM | ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์์ฐ์ด๋ก ๊ฐ๊ณต โ ์ต์ข ๋ต๋ณ ์ถ๋ ฅ |
๋ณด์ ํ์
- ์ฒซ ํธ์ถ ๋ โweatherโฏ๋๊ตฌ๋ฅผ ๋ก์ปฌ์์ ์คํํ ๊น์?โ๋ผ๋ ํ์ธ์ฐฝ์ด ๋น๋๋ค.
- ์ ์ฑ ์ฝ๋ ๊ฐ๋ฅ์ฑ๋ ์์ผ๋ ์ฌ์ฉ์ ์น์ธ์ด ํ์ํ๋ค๋ ์ ์ ๋ณด์ฌ์ฃผ๋ ์ฅ๋ฉด์ ๋๋ค.
ํต์ฌ ์์ด๋์ด: ์๋ฒ ํ ๋ฒ ๋ง๋ค๋ฉด, MCP ์ง์ ํด๋ผ์ด์ธํธ ์ด๋์๋ ๊ทธ๋๋ก ํ์ฉ.
Cursor โ Settings โ MCP ํญ ํ์ธ
WeatherโฏMCP ํ๋๋ง ์ฐ๊ฒฐ๋ผ ์๊ณ ,
์๋ฒ๊ฐ ์ ๊ณตํ๋ ๋๊ตฌ ๋ชฉ๋ก์ด ํ์๋จ
- get_forecast
- get_alerts (ํน๋ณด/๊ฒฝ๋ณด ํ์ธ)
Cursor๋ YOLO ๋ชจ๋(์๋ ์น์ธ)๋ก ์ค์ ๋ผ ์์ด ๋ณด์ ํ์ ์์ด ๋ฐ๋ก ์คํ.
| ์์ | ์ฃผ์ฒด | ๋ฌด์จ ์ผ? |
|---|---|---|
| โ | CursorโLLM | โ์ํ๋์์ค์ฝ ๋ ์จ?โ โ get_forecast ํธ์ถ |
| โก | MCP ์๋ฒ | ์๋ณด ๋ฐ์ดํฐ ๋ฐํ |
| โข | LLM | ๋ด์ฉ์ ์ฝ์ด ๋ณด๋, โํน์ ๊ฒฝ๋ณด๋ ์์๊น?โ ํ๋จ โ ์ถ๊ฐ๋ก get_alerts ํธ์ถ |
| โฃ | MCP ์๋ฒ | ๊ฒฝ๋ณด ์ ๋ณด ๋ฐํ |
| โค | LLM | ์๋ณด + ๊ฒฝ๋ณด๋ฅผ ํ๊บผ๋ฒ์ ์์ฝํด ๋ต๋ณ ์์ฑ |
๐กย ์ฃผ๋ชฉ ํฌ์ธํธ
| ์ ํต์ ๋ฐฉ์ | MCP ๋ฐฉ์ |
|---|---|
| ํด๋ผ์ด์ธํธ๋ง๋ค ๋ ์จ API ๋ํผ ๋ฐ๋ก ๋ถ์ | ์๋ฒ 1๊ฐ + MCP ํธํ ํด๋ผ์ด์ธํธ๋ฉด ๋ |
| ๋ณด์ยท๊ถํ ๋ก์ง ์ค๋ณต | allow/deny ํ์
ยท๊ถํ ํ๋๋ก ํ์คํ |
| ๊ธฐ๋ฅ ์ถ๊ฐ ์ N๊ณณ ์์ | ์๋ฒ๋ง ๊ฐฑ์ โ ๋ชจ๋ ํด๋ผ์ด์ธํธ ์ฆ์ ์ด๋ |
| ๋ณต์ ๋๊ตฌ(์๋ณดยท๊ฒฝ๋ณด ๋ฑ) ์ฝ ์กฐ์จ ์ด๋ ค์ | LLM์ด ํ์ ์ ๋๊ตฌ ์ ํ โ ์์ด์ ํธ ์ง๋ฅ โ |
MCP ์๋ฒ๋ โAI์ฉ ํ๋ฌ๊ทธ์ธ ํ๋ธโ ๋ผ๊ณ ์๊ฐํ๋ฉด ์ดํด๊ฐ ์ฝ์ต๋๋ค.
Cloud, Cursor, Windsurfโฆ ์ด๋ค IDE/์ฑ ์ฑ์ด๋ MCP๋ง ์ง์ํ๋ฉด ๊ณง๋ฐ๋ก ์ฐ๋ฆฌ ๋๊ตฌ๋ฅผ ์ธ ์ ์์ต๋๋ค.
์์ผ๋ก ๊ฐ์์์
์ด์ ๋ฐ๋ชจ๊ฐ ๋ณด์ฌ์ค โํ ๋ฒ ๋ง๋ ๊ธฐ๋ฅ์ ์ด๋์๋ ์ฌ์ฌ์ฉโ ์ ๊ฐ์น๋ฅผ ์ถฉ๋ถํ ๋๋ผ์
จ๊ธธ ๋ฐ๋๋๋ค.
๋ค์ ์์์์๋ MCP ๋ฉ์์ง ํฌ๋งท๊ณผ ์๋ฒโํด๋ผ์ด์ธํธ ํธ๋์
ฐ์ดํฌ๋ฅผ ์ง์ ์ฝ๋ฉํด ๋ณด๋ฉฐ ์ดํด๋ฅผ ๋ ํ์คํ ๊ตณํ ๋ณผ๊ฒ์!