ํต์ฌ ์์
- MCP๋ ๋๊ตฌ๋ฅผ ์ํ JSON-RPC 2.0 ํ๋กํ ์ฝ์ ๋๋ค. ๋ชจ๋ธ(ํด๋ผ์ด์ธํธ๋ฅผ ํตํด)์ด ํ๋ ์ด์์ MCP ์๋ฒ์ ์ฐ๊ฒฐํ๋ฉฐ, ๊ฐ ์๋ฒ๋ Tools(ํธ์ถ ๊ฐ๋ฅํ ํจ์), Resources(์ฝ์ ์ ์๋ ๋ฐ์ดํฐ), Prompts(ํ ํ๋ฆฟ)๋ฅผ ๋ ธ์ถํฉ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ Claude Desktop, Goose, Cline, Continue.dev ๋๋ LM Studio๋ wire ํ์์ ๋์ผํฉ๋๋ค.
- Ollama๋ MCP๋ฅผ ์ง์ ๋งํ์ง ์์ต๋๋ค โ MCP ํด๋ผ์ด์ธํธ๊ฐ Ollama๋ฅผ ๊ฐ์๋๋ค. Goose(Block)๋ Ollama ๊ธฐ๋ณธ ์ง์์ ๊ฐ์ถ ๊ฐ์ฅ ๊ฐ๋จํ ์คํ ์์ค CLI์ ๋๋ค; Cline, Continue.dev, LM Studio๋ 2026๋ ์ด์ MCP ํด๋ผ์ด์ธํธ ์ง์์ ์ถ๊ฐํ์ต๋๋ค.
- 4๊ฐ์ ์ฐธ์กฐ ์๋ฒ๊ฐ ๋๋ถ๋ถ์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ปค๋ฒํฉ๋๋ค:
filesystem(๊ฒฉ๋ฆฌ๋ ๋๋ ํฐ๋ฆฌ์์ ์ฝ๊ธฐ/์ฐ๊ธฐ),sqlite๋ฐpostgres(๊ธฐ๋ณธ์ ์ผ๋ก ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ),puppeteer๋๋playwright(headless ๋ธ๋ผ์ฐ์ ์ ์ด),github(personal access token์ผ๋ก ์ ์ฅ์ ๋ฐ PR ๊ด๋ฆฌ). - tool calling ์ ๋ขฐ์ฑ์ ๋ชจ๋ธ ํฌ๊ธฐ ๋ฐ ํ๋ จ๊ณผ ํจ๊ป ํ์ฅ๋ฉ๋๋ค. Gemma 4 27B, GLM-5.1 32B, Qwen3 32B, Qwen3-Coder 30B, Llama 3.3 70B๋ Q4_K_M์์ MCP๋ฅผ ๋ฌธ์ ์์ด ์ฒ๋ฆฌํฉ๋๋ค. 7B ๋ฏธ๋ง ๋ชจ๋ธ์ ์๋ชป๋ ํ์์ tool call์ ์์ฃผ ์์ฑํ๊ณ ๋ฃจํ๋ฅผ ์ฐจ๋จํฉ๋๋ค.
- ๋ณด์ ๋ชจ๋ธ์ ๋ชจ๋ธ์ ์ ๋ขฐํ์ง ์๋๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. filesystem ์๋ฒ๋ฅผ ๋จ์ผ ๋๋ ํฐ๋ฆฌ๋ก ์ ํํ๊ณ , ์ฝ๊ธฐ ์ ์ฉ ์ญํ ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๋ฅผ ์คํํ๊ณ ,
execute_command๋write_file์ ์ ๋๋ก ์๋ ์น์ธํ์ง ๋ง๊ณ , ๊ธด ์ธ์ ํ์๋ ๊ฐ์ฌ ๋ก๊ทธ๋ฅผ ๊ฒํ ํ์ญ์์ค. - ๋ก์ปฌ MCP vs Claude Desktop: ๋์ผํ ํ๋กํ ์ฝ, ๋์ผํ ์๋ฒ ์ํ๊ณ. ๋ก์ปฌ ์คํ์ ํด๋ผ์ฐ๋ ๋ชจ๋ธ์ ์คํ๋ผ์ธ ๋ชจ๋ธ๋ก ๊ต์ฒดํฉ๋๋ค โ ํ๋ผ์ด๋ฒ์, ํ ํฐ๋น ๋น์ฉ ์์, ์๋ ์ ํ ์์์ ์ ๊ณตํ๋ ๋์ , ์ฝ๊ฐ ๋ ์ ๋ฅํ ๋ชจ๋ธ๊ณผ ์ง์ ๋ณด์ ์ค์ ์ ๊ด๋ฆฌํด์ผ ํ๋ ํธ๋ ์ด๋์คํ๊ฐ ์์ต๋๋ค.
- ๋น์ฉ์ API ์์๋ฃ $0์ด์ง๋ง ํ ํฐ์์ ์ค์ ๋ก ๋ฐ์ํฉ๋๋ค. ์์ด์ ํธ ๋ฃจํ๋ ๋จ์ผ ๋ค๋จ๊ณ ์์ ์ ๋ํด 30K~80K ํ ํฐ์ ์๋นํ ์ ์์ต๋๋ค. ์ต์ 32K ์ปจํ ์คํธ๋ฅผ ๊ฐ์ง ๋ชจ๋ธ์ ์ฌ์ฉํ์ญ์์ค; 128K๊ฐ ํธ์ํฉ๋๋ค.
๋น ๋ฅธ ์ฌ์ค
- ํ๋กํ ์ฝ: stdio(๋ก์ปฌ ํ์ ํ๋ก์ธ์ค) ๋๋ HTTP/SSE(์๊ฒฉ)๋ฅผ ํตํ JSON-RPC 2.0. ๋ก์ปฌ ์์ด์ ํธ๋ ๊ฑฐ์ ๋ ์ ์ ์ผ๋ก stdio๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ ์ง ๊ด๋ฆฌ: Anthropic(์คํ ์์ค ์ฌ์); ์ฐธ์กฐ ์๋ฒ๋ GitHub์
modelcontextprotocol/servers์์ ์ ์ง ๊ด๋ฆฌ๋๋ฉฐ ์ฑ์ฅํ๋ ํ์ฌ ์ํ๊ณ๊ฐ ์์ต๋๋ค. - 2026๋ ๋ก์ปฌ ํด๋ผ์ด์ธํธ: Goose(Block), Cline(VS Code ํ์ฅ), Continue.dev(VS Code/JetBrains), LM Studio(๋ฐ์คํฌํฑ ์ฑ), ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ CLI ๋๊ตฌ๋ค.
- ์ง์๋๋ Ollama ๋ชจ๋ธ: ๋ค์ดํฐ๋ธ tool calling ํ๋ จ์ ๋ฐ์ ๋ชจ๋ ๋ชจ๋ธ. 2026๋ 5์ ๊ธฐ์ค: Gemma 4 27B, GLM-5.1 32B, Qwen3 32B, Qwen3-Coder 30B, Llama 3.3 70B.
- ๊ธฐ๋ณธ ์ ์ก: ๋ก์ปฌ ํ๋ก์ธ์ค๋ฅผ ์ํ stdio; ์๋ฒ๋ฅผ ๊ธฐ๊ธฐ ๋๋ ์์ด์ ํธ ๊ฐ์ ๊ณต์ ํด์ผ ํ ๋๋ง HTTP/SSE.
- ์ค์ ์ ๋จ์ผ ํ์ผ์ ์์ต๋๋ค:
~/.config/goose/config.yaml(Goose),~/.continue/config.json์ MCP ๋ธ๋ก(Continue.dev) ๋๋ Cline ์ค์ ์ธํฐํ์ด์ค์mcpServers. ๋ชจ๋ ๋์ผํ ๊ตฌ์กฐ: ์๋ฒ ์ด๋ฆ, ๋ช ๋ น, args, ํ๊ฒฝ ๋ณ์. - Claude Desktop์ด ํ์ํ์ง ์์ต๋๋ค. ํ๋กํ ์ฝ์ Claude Desktop ๋ ์ ์ฌ์ฉ ์ด์ ๋ถํฐ ์กด์ฌํ์ต๋๋ค; ๋ชจ๋ ์ฐธ์กฐ ์๋ฒ๋ MIT/Apache ๋ผ์ด์ ์ค์ด๋ฉฐ ๋ชจ๋ ํธํ ํด๋ผ์ด์ธํธ์์ ์๋ํฉ๋๋ค.
MCP๊ฐ ๋ก์ปฌ ๋ชจ๋ธ์ ์ค์ ๋ก ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ฒ
๋๊ตฌ ์๋ ๋ก์ปฌ LLM์ ํ ์คํธ๋ก๋ง ์๋ตํ ์ ์์ต๋๋ค. MCP๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ผํ ๋ชจ๋ธ์ด ๊ธฐ๊ธฐ์์ ํ๋ํ ์ ์์ต๋๋ค. ์ด ๋ณํ๋ ์ฑ๋ด๊ณผ ์์ด์ ํธ์ ์ฐจ์ด์ ๋๋ค.
- **"์ด ์ ์ฅ์์์ ๋ชจ๋ TODO๋ฅผ ์ฐพ์ ํ์ผ๋ณ๋ก ๊ทธ๋ฃนํํ๊ณ
notes/todos.md์ Markdown ์์ฝ์ ์์ฑํ์ญ์์ค."** โfilesystem์๋ฒ๊ฐ ์ฝ๊ณ , ๋ชจ๋ธ์ด ๊ทธ๋ฃนํํ๊ณ , ๋์ผํ ์๋ฒ๊ฐ ์๋๋ค. ์ฒ์๋ถํฐ ๋๊น์ง ๋จ ํ ๋ฒ์ ์๋ณต. - "์ด๋ฒ ๋ถ๊ธฐ ์์ต ๊ธฐ์ค ์์ 10๊ฐ ๊ณ ๊ฐ์ ๋ณด์ฌ์ฃผ๊ณ ์ฐจํธ๋ฅผ ๋ง๋์ญ์์ค." โ
postgres์๋ฒ๊ฐ SQL์ ์คํํ๊ณ (์ฝ๊ธฐ ์ ์ฉ ์ญํ ), ๋ชจ๋ธ์ด ์์ฝํ๊ณ ์ฐจํธ ๋๊ตฌ๋ฅผ ์ํดfilesystem์ ํตํด CSV๋ฅผ ์๋๋ค. - "Hacker News ์ฒซ ํ์ด์ง๋ฅผ ์ด์ด ์์ 3๊ฐ AI ๊ธฐ์ฌ๋ฅผ ์ฐพ์ ์์ฝํ๊ณ ๋ด ์ฝ๊ธฐ ๋ชฉ๋ก์ ์ถ๊ฐํ์ญ์์ค." โ
puppeteer์๋ฒ๊ฐ headless ๋ธ๋ผ์ฐ์ ๋ฅผ ์ ์ดํ๊ณ , ๋ชจ๋ธ์ด ์ถ์ถ ๋ฐ ์์ฝํ๊ณ ,filesystem์ด ์ถ๊ฐํฉ๋๋ค. - **"๋ด ํฌํฌ์ ๋ํด
chore: bump deps์ ๋ชฉ์ผ๋ก draft PR์ ์ด๊ณ ์คํจํ CI ์คํ์ ๋งํฌํ์ญ์์ค."** โgithub์๋ฒ๊ฐ PR์ ์์ฑํ๊ณ , ์คํ์ ๊ฐ์ ธ์ค๊ณ , ์ค๋ช ์ ๋งํฌ๋ฅผ ์๋๋ค. - **"
events.db์ ์ต๊ทผ 100๊ฐ ํ์ ๋ณด๊ณ ์ ์ค๋ฅ ๊ธ์ฆ์ ์ฑ ์์ด ์๋ ์ฌ์ฉ์ ID๋ฅผ ์๋ ค์ฃผ์ญ์์ค."** โsqlite์๋ฒ๊ฐ ์ฟผ๋ฆฌํ๊ณ ; ๋ชจ๋ธ์ด ์ถ๋ก ํ๊ณ ; ์ฑํ ํจ๋์์ ๋ต์ ์ฝ์ต๋๋ค. - ์ด ๊ฐ๊ฐ์ ์ด์ ์ ํธ์คํ ๋ ๋๊ตฌ๊ฐ ์๋ ํด๋ผ์ฐ๋ ๋ชจ๋ธ ๋๋ ์์ผ๋ก ์์ฑํ ์คํฌ๋ฆฝํธ๊ฐ ํ์ํ๋ ๋ฌธ์ฅ์์ ํ๋์ผ๋ก์ ์ํฌํ๋ก์ ๋๋ค. MCP๋ ํด๋ผ์ด์ธํธ ๊ฐ์ ๋์ผํ ์๋ฒ๋ฅผ ์ฌ์ฌ์ฉํ๊ณ ์๋ฒ ๊ฐ์ ๋์ผํ ๋ชจ๋ธ์ ์ฌ์ฌ์ฉํ ์ ์๊ฒ ํ๋ ๊ณ์ธต์ ๋๋ค.
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ 4๊ฐ์ MCP ์๋ฒ ๋น๊ต
์๋์ ์ฐธ์กฐ ์๋ฒ๋ค์ "๋ด ๋ก์ปฌ ๋ชจ๋ธ์ด ์ค์ ์์ ์ ์ํํ๊ธธ ์ํ๋ค"๋ ๊ธด ์ฌ์ ์ ์ปค๋ฒํฉ๋๋ค. ๋ชจ๋ ์คํ ์์ค์ด๋ฉฐ MCP ํด๋ผ์ด์ธํธ๊ฐ ์์ํ๋ ๋ก์ปฌ ํ์ ํ๋ก์ธ์ค๋ก ์คํ๋ฉ๋๋ค.
๐ ํ ๋ฌธ์ฅ์ผ๋ก
filesystem ์๋ฒ(5๋ถ, ๋ฎ์ ์ํ)๋ก ์์ํ๊ณ , ๋ฐ์ดํฐ ์์ ์ ์ํด SQLite ์๋ฒ๋ฅผ ์ถ๊ฐํ๊ณ , ํ์ํ ๋๋ง ๋ธ๋ผ์ฐ์ ์๋ฒ๋ฅผ ์ถ๊ฐํ๊ณ , ๊ธฐ๊ธฐ์์ ๋ชจ๋ธ์ ์ ๋ขฐํ ์ ์์ ๋ GitHub์ ๋์ ํ์ญ์์ค.
๐ฌ ์ฝ๊ฒ ๋งํ๋ฉด
4๊ฐ์ ์๋ฒ๊ฐ ๋ก์ปฌ ์์ด์ ํธ์๊ฒ ์ํ๋ ์์ ์ 90%๋ฅผ ์ปค๋ฒํฉ๋๋ค. filesystem ์๋ฒ๋ ๋น์ ์ด ์ ํํ ํด๋์์ ํ์ผ์ ์ฝ๊ณ ์๋๋ค. SQLite ๋๋ Postgres ์๋ฒ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ฟผ๋ฆฌ๋ฅผ ์คํํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ์๋ฒ๋ ๋ชจ๋ธ์ด JavaScript๊ฐ ํ์ํ ํ์ด์ง๋ฅผ ์ฝ์ ์ ์๋๋ก ์ค์ Chromium ์ฐฝ์ ์ ์ดํฉ๋๋ค. GitHub ์๋ฒ๋ ์ ์ฅ์์์ ์ด์์ PR์ ์ฝ๋๋ค. ๋ชจ๋ ํ๋์ ๋ช ๋ น์ผ๋ก ์ค์น๋๊ณ , ๋ชจ๋ ์์ฒด ๊ธฐ๊ธฐ์์ ํ์ ํ๋ก์ธ์ค๋ก ์คํ๋๋ฉฐ, ๋ช ์์ ์ผ๋ก ํ์ํ์ง ์์ ํ ์ธํฐ๋ท์ ํธ์ถํ์ง ์์ต๋๋ค(๋ธ๋ผ์ฐ์ ๋ ํธ์ถํ์ง๋ง ๋๋จธ์ง๋ ํ์ง ์์ต๋๋ค).
| MCP ์๋ฒ | ํ์ฑํํ๋ ๊ธฐ๋ฅ | ์ค์ ๋์ด๋ | ์ํ ์์ค | ์ด์์ ์ธ ์ฉ๋ |
|---|---|---|---|---|
| Filesystem | ๊ฒฉ๋ฆฌ๋ ๋๋ ํฐ๋ฆฌ ๋ด์์ ํ์ผ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ | ์ฌ์(ํ์ฉ ๋ชฉ๋ก์ ๊ฒฝ๋ก ํ๋) | ์ค๊ฐ โ ๋ฒ์๋ฅผ ์ ์คํ๊ฒ ์ ํํ์ญ์์ค | ๊ฐ์ธ ์๋ํ, ๋ ธํธ ์์ฑ, ์ ์ฅ์ ์์ฝ |
| SQLite | ๋ก์ปฌ SQLite ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ผ ์ฟผ๋ฆฌ | ์ฌ์(.db ํ์ผ ๊ฒฝ๋ก) | ์ฝ๊ธฐ ์ ์ฉ์์ ๋ฎ์; ์ฐ๊ธฐ ์ ์ค๊ฐ | ๋ฐ์ดํฐ ํ์, ๋ก๊ทธ ๋ถ์, ํ๋กํ ํ์ดํ |
| Postgres | ์ฐ๊ฒฐ ๋ฌธ์์ด์ ํตํด Postgres ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ | ์ค๊ฐ(์ญํ + URL) | ์ค๊ฐ โ ์ฝ๊ธฐ ์ ์ฉ ์ญํ ์ ์ฌ์ฉํ์ญ์์ค | ํ๋ก๋์ ๋ฐ์ดํฐ ํ์, ๋ณด๊ณ , BI ํ๋กํ ํ์ |
| Puppeteer / Playwright | ํ์, ์คํฌ๋ํ, ์์ ์์ฑ์ ์ํ headless ๋๋ ๋ณด์ด๋ Chromium ์ ์ด | ์ด๋ ค์(๋ธ๋ผ์ฐ์ ๋ฐ์ด๋๋ฆฌ, ์ ํ๊ธฐ, ์ง์ฐ) | ๋์ โ ์์์ ์ ์ถํ๊ณ ๋ฌด์์ด๋ ํด๋ฆญํ ์ ์์ต๋๋ค | ์ฐ๊ตฌ, ์คํฌ๋ํ, ํ๊ท ํ ์คํธ |
| GitHub | ์ ์ฅ์ ๋์ด, ํ์ผ ์ฝ๊ธฐ, ์ด์ ๋ฐ PR ์ด๊ธฐ | ์ฌ์(ํ๊ฒฝ ๋ณ์์ PAT) | ์ค๊ฐ โ ํ ํฐ์ ํน์ ์ ์ฅ์๋ก ์ ํํ์ญ์์ค | ๊ฐ๋ฐ ์ํฌํ๋ก, ํธ๋ฆฌ์์ง, PR ์ด์ |
| Custom | JSON-RPC ๋๊ตฌ๋ก ํํํ ์ ์๋ ๋ชจ๋ ๊ฒ | ์ด๋ ค์(์์ฒด ์๋ฒ ์์ฑ) | ๊ฐ๋ณ์ | ๋ด๋ถ API, ํ์ ์์คํ , ํตํฉ ์ฝ๋ |
๊ตฌ์ฑ ์์๊ฐ ๋ง์ถฐ์ง๋ ๋ฐฉ์
์ธ ๊ฐ์ง ํ๋ก์ธ์ค, ํ๋์ ๊ณต์ ํ๋กํ ์ฝ. ๋ชจ๋ธ์ Ollama์ ์๊ณ , ํด๋ผ์ด์ธํธ๋ MCP๋ฅผ ๋งํ๋ฉฐ, ๊ฐ ์๋ฒ๋ ์๊ท๋ชจ ๋๊ตฌ ์งํฉ์ ๋ ธ์ถํฉ๋๋ค. ๊ฐ tool call์ ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ์ด๋ํ๊ณ , ๋ก์ปฌ์์ ์คํ๋๊ณ , JSON์ ๋ฐํํฉ๋๋ค.
- Ollama๋
127.0.0.1:11434์์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์๋น์ค๋ก ์คํ๋๋ฉฐ OpenAI ํธํ API๋ฅผ ํตํด ๋ชจ๋ธ์ ์ ๊ณตํฉ๋๋ค. MCP๊ฐ ๋ฌด์์ธ์ง ์์ง ๋ชปํฉ๋๋ค โ ๋จ์ํ ์ฑํ ์์ฑ์ ์๋ตํ๊ณ ๋ชจ๋ธ์ด ์์ฒญํ ๋ tool call์ ์์ฑํฉ๋๋ค. - MCP ํด๋ผ์ด์ธํธ(Goose, Cline, Continue.dev, LM Studio)๊ฐ ๋ค๋ฆฌ ์ญํ ์ ํฉ๋๋ค. ๋ชจ๋ธ์ ์ํด Ollama์ ํต์ ํ๊ณ ๋๊ตฌ๋ฅผ ์ํด MCP ์๋ฒ์ ํต์ ํฉ๋๋ค. ๋ชจ๋ธ์ด tool call์ ์์ฑํ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ์ฌ๋ฐ๋ฅธ ์๋ฒ๋ก ๋ผ์ฐํ ํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ๋ํ์ ๋ฐํํฉ๋๋ค.
- MCP ์๋ฒ๋ ๋ ๋ฆฝ์ ์ธ ํ์ ํ๋ก์ธ์ค๋ก, ๊ฐ ๊ธฐ๋ฅ๋ง๋ค ํ๋์ฉ ์์ต๋๋ค. stdio๋ฅผ ํตํด JSON-RPC 2.0์ ๋งํฉ๋๋ค. ๊ฐ ์๋ฒ๋ Tools, Resources, Prompts ๋ชฉ๋ก์ ๊ณต๊ฐํ๋ฉฐ, ํด๋ผ์ด์ธํธ๋ ์ด๋ค์ ๋ชจ๋ธ์ ์ ์๋๋ ๋๊ตฌ ํ๋ฉด์ผ๋ก ๊ฒฐํฉํฉ๋๋ค.
- stdio ์ ์ก์ ๋ชจ๋ ๊ฒ์ ๋ก์ปฌ์ ์ ์งํฉ๋๋ค. ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ํ๊ณ , stdin/stdout์ ํตํด ํต์ ํ๋ฉฐ, ํด๋ผ์ด์ธํธ๊ฐ ์ข ๋ฃ๋ ๋ ์ข ๋ฃ๋ฉ๋๋ค. ์๋ฒ ์์ฒด๊ฐ ์ฐ๊ฒฐ์ ์ฌ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋ ๋คํธ์ํฌ๋ฅผ ํตํด ์๋ฌด๊ฒ๋ ์ ์ก๋์ง ์์ต๋๋ค(๋ธ๋ผ์ฐ์ ์๋ฒ๋ ๊ทธ๋ ๊ฒ ํ์ง๋ง filesystem ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๋ ํ์ง ์์ต๋๋ค).
- ๋ชจ๋ธ์ ํํํ ๋๊ตฌ ๋ชฉ๋ก์ ๋ด
๋๋ค. ๋ชจ๋ธ์ ๊ด์ ์์ ์๋ฒ๊ฐ ์์ต๋๋ค โ
filesystem.read_file,sqlite.query,puppeteer.navigate์ ๊ฐ์ ๋๊ตฌ ์ด๋ฆ์ ๋ชฉ๋ก๋ง ์์ต๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ๋ผ์ฐํ ์ ๊ด๋ฆฌํฉ๋๋ค.
๐Note: ์ํคํ ์ฒ๋ Claude Desktop๊ณผ ๋์ผํฉ๋๋ค. ์ฐจ์ด์ ์ ๋ชจ๋ธ(Claude ๋์ ๋ก์ปฌ Ollama ๋ชจ๋ธ)๊ณผ ํด๋ผ์ด์ธํธ(Claude Desktop ๋์ Goose/Cline/Continue.dev/LM Studio)์ ๋๋ค. MCP ์๋ฒ๋ ๋์ผํ ์๋ฒ์ ๋๋ค โ ์ค๋ Claude Desktop์์ filesystem ์๋ฒ๋ฅผ ์คํํ ์ ์๊ณ , ๋ด์ผ Goose์์๋ ๋ณ๊ฒฝ ์์ด ๊ณ์ ์๋ํฉ๋๋ค.
์ค์ : 15๋ถ ์์ Ollama + Goose
Goose๋ 2026๋ ์ ์๋ํ๋ ๋ก์ปฌ MCP ์์ด์ ํธ๋ก ๊ฐ๋ ๊ฐ์ฅ ๊ฐ๋จํ ๊ฒฝ๋ก์ ๋๋ค. Block์ ์คํ ์์ค CLI๋ก, Ollama ๊ธฐ๋ณธ ์ง์, ๋ํํ ์ฑํ ์ธํฐํ์ด์ค, ๋ชจ๋ MCP ์๋ฒ๋ฅผ ์ํ ๋จ์ผ ์ค์ ํ์ผ์ด ์์ต๋๋ค. Continue.dev, Cline, LM Studio๋ ์๋ํฉ๋๋ค โ Goose๋ ์ฒซ ๋ฒ์งธ ์คํ์ ์ค์ ๋น์ฉ์ด ๊ฐ์ฅ ๋ฎ์ต๋๋ค.
- 1๋จ๊ณ โ Ollama ์ค์น. ollama.com/download(macOS/Windows/Linux)์์ ๋ค์ด๋ก๋ํ์ญ์์ค.
curl http://127.0.0.1:11434/api/tags๋ก ์๋น์ค๊ฐ ์คํ ์ค์ธ์ง ํ์ธํ์ญ์์ค. - 2๋จ๊ณ โ tool calling ๋ชจ๋ธ ๋ค์ด๋ก๋. Gemma 4 27B(
gemma4:27b), GLM-5.1 32B(glm5:32b), Qwen3 32B(qwen3:32b) ๋๋ Llama 3.3 70B(llama3.3:70b) ์ค์์ ์ ํํ์ญ์์ค. 16GB ํตํฉ ๋ฉ๋ชจ๋ฆฌ ๋๋ 12GB VRAM์ผ๋ก Q4_K_M์์ 27B~32B๋ฅผ ํธ์ํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. - 3๋จ๊ณ โ Goose ์ค์น.
pipx install goose-ai(macOS, Linux) ๋๋ Goose releases ํ์ด์ง์์ ์ค์น ํ๋ก๊ทธ๋จ์ ๋ค์ด๋ก๋ํ์ญ์์ค. CLI๋goose๋ก ์ค์น๋ฉ๋๋ค. - 4๋จ๊ณ โ Ollama๋ฅผ ์ ๊ณต์๋ก ๊ตฌ์ฑ.
goose configure๋ฅผ ์คํํ๊ณ ,ollama๋ฅผ ์ ๊ณต์๋ก ์ ํํ๊ณ , ๋ชจ๋ธ์ ๋ค์ด๋ก๋ํ ๊ฒ์ผ๋ก ์ค์ ํ๊ณ , ํธ์คํธ๋ฅผhttp://127.0.0.1:11434๋ก ์ค์ ํ์ญ์์ค. Goose๊ฐ ์ด๊ฒ์~/.config/goose/config.yaml์ ์๋๋ค. - 5๋จ๊ณ โ filesystem MCP ์๋ฒ ์ถ๊ฐ.
~/.config/goose/config.yaml์ ํธ์งํ์ฌmcpServers๋ธ๋ก์ ์ถ๊ฐํ์ญ์์ค(์๋ ์ค์ ์์).goose session์ ์ฌ์์ํ๊ณ ํ ์คํธ ๋๋ ํฐ๋ฆฌ์ ํ์ผ ๋์ด์ ์์ฒญํ์ญ์์ค. ์ฒซ ๋ฒ์งธ ํด์ด ์๋ฒ๊ฐ ์ฐ๊ฒฐ๋์์์ ํ์ธํฉ๋๋ค. - 6๋จ๊ณ โ ์ค์ ์์
์ผ๋ก ํ์ธ.
goose session์ ์๋ํ๊ณ "notes/์ ๋ชจ๋ Markdown ํ์ผ์ ์ ๋ชฉ๊ณผ ๋จ์ด ์์ ํจ๊ป ๋์ดํ๊ณ ๊ฒฐ๊ณผ๋ฅผ notes/index.md์ ์ฐ์ญ์์ค."๋ฅผ ์์ฒญํ์ญ์์ค. ์์ด์ ํธ๊ฐ ์ฝ๊ณ , ์์ฝํ๊ณ , ๋ค์ ์ฐ๋ฉด ๋ฃจํ๊ฐ ์๋ํฉ๋๋ค.
# 1. Pull a tool-calling model
ollama pull gemma4:27b
# 2. Install Goose
pipx install goose-ai
# 3. Configure Ollama as the provider
goose configure
# Provider: ollama
# Model: gemma4:27b
# Host: http://127.0.0.1:11434
# 4. Start a session โ Goose reads ~/.config/goose/config.yaml
goose session๐กTip: Cline ๋๋ Continue.dev๋ฅผ ์ด๋ฏธ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด Goose๋ฅผ ๊ฑด๋๋ฐ๊ณ ๊ทธ๊ฒ๋ค์ ์ฌ์ฉํ์ญ์์ค โ ๋ ๋ค 2026๋
์ด ๋ฆด๋ฆฌ์ค์ MCP ์๋ฒ ์ง์์ ์ถ๊ฐํ์ต๋๋ค. Cline์ "MCP Servers" ํจ๋์ ํด๋ฆญ ํ ๋ฒ์ผ๋ก ์ฐธ์กฐ ์๋ฒ๋ฅผ ์ค์นํฉ๋๋ค; Continue.dev๋ ~/.continue/config.json์ mcpServers๋ฅผ ์ฝ์ต๋๋ค(์๋ Goose ์ค์ ๋ธ๋ก๊ณผ ๋์ผํ ๊ตฌ์กฐ). ๋ชจ๋ธ๊ณผ ์๋ฒ๋ ๋์ผํฉ๋๋ค; ํธ์คํธ ์ฑ๋ง ๋ฐ๋๋๋ค.
Filesystem ์๋ฒ: ๊ฒฉ๋ฆฌ๋ ๋๋ ํฐ๋ฆฌ์์ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ
filesystem ์๋ฒ๋ ์ฒ์ ์ค์นํ๊ณ ์์ ํ๊ฒ ์ ํํ๊ธฐ ๊ฐ์ฅ ์ฝ์ต๋๋ค. read_file, write_file, list_directory, move_file, search_files, create_directory๋ฅผ ๋
ธ์ถํฉ๋๋ค โ ๋ชจ๋ ํ๋ ์ด์์ ํ์ฉ ๋ชฉ๋ก ๊ฒฝ๋ก๋ก ์ ํ๋ฉ๋๋ค.
- ์ค์น: ์ฐธ์กฐ ์๋ฒ๋
@modelcontextprotocol/server-filesystem์ผ๋ก,npx -y๋ฅผ ํตํด ์คํ๋ฉ๋๋ค(์ ์ญ ์ค์น ๋ถํ์). Goose, Cline, Continue.dev๊ฐ ์ค์ ๋ธ๋ก์์ ์๋์ผ๋ก ์์ํฉ๋๋ค. - ํ์ฉ ๋ชฉ๋ก ๊ฒฝ๋ก: ์๋ฒ๋ ํ๋ ์ด์์ ๋๋ ํฐ๋ฆฌ ์ธ์๋ฅผ ๋ฐ์๋ค์ด๊ณ ๊ทธ ๋ฐ์ ์์
์ ๊ฑฐ๋ถํฉ๋๋ค. ํญ์ ๋ช
์์ ์ด๊ณ ์ข์ ๊ฒฝ๋ก๋ฅผ ์ ๋ฌํ์ญ์์ค โ
~๋/๋ ์ ๋ ์ฌ์ฉํ์ง ๋ง์ญ์์ค. - ๋
ธ์ถ๋ ๋๊ตฌ:
read_file,read_multiple_files,write_file,edit_file(ํ ๋์ฒด),list_directory,search_files,move_file,create_directory,directory_tree. ๋ชจ๋ธ์ ์ด๊ฒ๋ค์filesystem.read_file๋ฑ์ผ๋ก ๋ด ๋๋ค. - ์ฌ์ฉ ํธ์์ฑ:
directory_tree๋ JSON ํธ๋ฆฌ๋ฅผ ๋ฐํํฉ๋๋ค; ํน์ ํ์ผ์ ์ฝ๊ธฐ ์ ์ ๋ชจ๋ธ์ด ๋ฐฉํฅ์ ์ก์ ๋ ์ด์์ ์ ๋๋ค.search_files๋ grep๊ณผ ์ ์ฌํ ์ฌ๊ท ๊ฒ์์ ์ํํฉ๋๋ค. - ์ํ ํ๋ฉด: ์๋ฒ๋ ํ์ฉ ๋ชฉ๋ก์ ์กด์คํ์ง๋ง ๊ทธ ์์์๋ ์์ ํ ์ฝ๊ธฐ/์ฐ๊ธฐ ๊ถํ์ด ์์ต๋๋ค. ํ์ฉ ๋ชฉ๋ก์ ์ ์ผํ ์ฅ๋ฒฝ์ผ๋ก ์ทจ๊ธํ๊ณ ํ ํด๋ ๋์ ์ ์ฉ workspace ๋๋ ํฐ๋ฆฌ๋ฅผ ์ ํํ์ญ์์ค.
# ~/.config/goose/config.yaml
mcpServers:
filesystem:
command: npx
args:
- "-y"
- "@modelcontextprotocol/server-filesystem"
- "/Users/you/agent-workspace"
env: {}โ ๏ธWarning: ํ์ฉ ๋ชฉ๋ก์ /๋ ํ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ ๋ ๋ฃ์ง ๋ง์ญ์์ค. ์ ์ฉ agent-workspace ํด๋๋ฅผ ๋ง๋ค๊ณ , ์์ด์ ํธ๊ฐ ์์
ํ ํ์ผ์ ๋ณต์ฌ๋ณธ์ ๊ทธ ์์ ๋ฃ๊ณ , ์์ด์ ํธ๊ฐ ๊ทธ ํด๋ ๋ด์์๋ง ์๋ํ๋๋ก ํ์ญ์์ค. ์์ด์ ํธ๊ฐ ์คํจํ๋๋ผ๋ ํผํด ๋ฒ์๋ ํ๋์ ๋๋ ํฐ๋ฆฌ์ ๊ทธ์นฉ๋๋ค.
SQLite ๋ฐ Postgres ์๋ฒ: ์ค์ ๋ฐ์ดํฐ ์ฟผ๋ฆฌ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๋ ๋ชจ๋ธ์ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ ์งํ๋ ํ ์ค์ ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์ง๋ฌธ์ ๋ตํ ์ ์๋ ์ฃผ๋์ด ๋ถ์๊ฐ๋ก ๋ง๋ค์ด์ค๋๋ค. ๋ ์ฐธ์กฐ ์๋ฒ ๋ชจ๋ query ๋๊ตฌ์ ์ ํ์ ์ธ write_query ๋๊ตฌ๋ฅผ ํฌํจํฉ๋๋ค.
- **SQLite ์๋ฒ(
@modelcontextprotocol/server-sqlite)**๋.dbํ์ผ ๊ฒฝ๋ก๋ฅผ ๋ฐ์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์คํํ ํ์ ์์ด ๋ก๊ทธ ๋ถ์, ์คํค๋ง ํ๋กํ ํ์ดํ, ๋ด๋ณด๋ด๊ธฐ ํ์์ ์ ์ฉํฉ๋๋ค. - **Postgres ์๋ฒ(
@modelcontextprotocol/server-postgres)**๋ ์ฐ๊ฒฐ ๋ฌธ์์ด์ ๋ฐ์ต๋๋ค. ๊ถ์ฅ ํจํด์ ์์ด์ ํธ๋ฅผ ์ํ ์ ์ฉ ์ฝ๊ธฐ ์ ์ฉ ์ญํ ์ ๋ง๋ค๊ณ ํด๋น ์ญํ ์ ์ฐ๊ฒฐ ๋ฌธ์์ด์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. - ๋
ธ์ถ๋ ๋๊ตฌ:
query(์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ๊ตฌ์ฑ๋๋ฉด SELECT๋ง),list_tables,describe_table. Postgres ์๋ฒ๋list_schemas๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ผ๋ถ ํฌํฌ๋write_query๋ฅผ ์ถ๊ฐํฉ๋๋ค โ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ชจ๋ธ์ ์ ๋ขฐํ์ง ์๋ ํ ๋นํ์ฑํ๋ ์ํ๋ก ์ ์งํ์ญ์์ค. - ์คํค๋ง ์ธ์: ๋ถ์์ ์ง๋ฌธ์ ํ๊ธฐ ์ ์ ์์ด์ ํธ์๊ฒ "ํ
์ด๋ธ์ ๋์ดํ๊ณ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ 5๊ฐ๋ฅผ ์ค๋ช
ํ์ญ์์ค"๋ฅผ ์์ฒญํ์ญ์์ค โ ๋ชจ๋ธ์ด ์ด ์ด๋ฆ์ ์ถ์ธกํ๋ ๊ฒ๋ณด๋ค
describe_table์ ํธ์ถํ ํ์ ํจ์ฌ ๋ ์ ํํฉ๋๋ค. - ๋น์ฉ: ์ฟผ๋ฆฌ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ง์ ๊ฐ๋๋ค. 1์ต ํ ํ
์ด๋ธ์ ๋ํ ์๋ชป๋
SELECT *๋ ์ธ๊ฐ์ด ํ ๊ฒ๊ณผ ๋์ผํ ์ฌ๊ณ ์ ๋๋ค โ ์ญํ ์ ๋ณ๋์ ์ฐ๊ฒฐ ํ์ statement timeout๊ณผ ํจ๊ป ์ ์งํ์ญ์์ค.
# ~/.config/goose/config.yaml
mcpServers:
sqlite:
command: npx
args:
- "-y"
- "@modelcontextprotocol/server-sqlite"
- "--db-path"
- "/Users/you/data/events.db"
env: {}
postgres:
command: npx
args:
- "-y"
- "@modelcontextprotocol/server-postgres"
- "postgresql://agent_ro@127.0.0.1:5432/analytics"
env:
PGPASSWORD: "${PG_AGENT_PASSWORD}"๐กTip: Postgres ์ญํ ์ ํ ๋ฒ ๋ง๋ค๊ณ ์์ด์ ํธ์๊ฒ ๊ทธ ์ด์์ ์ฃผ์ง ๋ง์ญ์์ค: CREATE ROLE agent_ro WITH LOGIN PASSWORD 'โฆ'; GRANT CONNECT ON DATABASE analytics TO agent_ro; GRANT USAGE ON SCHEMA public TO agent_ro; GRANT SELECT ON ALL TABLES IN SCHEMA public TO agent_ro; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO agent_ro; ๊ทธ๋ฐ ๋ค์ ์ญํ ์ statement_timeout = 30s๋ฅผ ์ถ๊ฐํ์ญ์์ค. ์์ด์ ํธ๋ ์ธ ์ ์๊ณ , ์ญ์ ํ ์ ์๊ณ , ๋ฌดํํ ์คํํ ์ ์์ต๋๋ค.
๋ธ๋ผ์ฐ์ ์๋ฒ: Puppeteer ๋๋ Playwright๋ก Chromium ์ ์ด
๋ธ๋ผ์ฐ์ ์๋ฒ๋ 4๊ฐ ์ค ๊ฐ์ฅ ๊ฐ๋ ฅํ๊ณ ๊ฐ์ฅ ์ํํฉ๋๋ค. ์ค์ Chromium์ ์คํํ๊ณ ํ์, ํด๋ฆญ, ์์ ์์ฑ, ์คํฌ๋ฆฐ์ท์ ๋ ธ์ถํฉ๋๋ค โ ์ฆ, ๋ธ๋ผ์ฐ์ ์์ ํ ์ ์๋ ๋ชจ๋ ๊ฒ์ ํ ์ ์์ผ๋ฉฐ ์์ ์ ์ถ๋ ํฌํจ๋ฉ๋๋ค.
- ์ฐธ์กฐ ์๋ฒ:
@modelcontextprotocol/server-puppeteer(๋ ๊ฐ๋ณ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก headless)์@modelcontextprotocol/server-playwright(๋ ๋ฌด๊ฒ๊ณ ์ฌ๋ฌ ๋ธ๋ผ์ฐ์ ์ง์). ๋ก์ปฌ ์์ด์ ํธ์ ๊ฒฝ์ฐ Puppeteer๋ก ์ถฉ๋ถํฉ๋๋ค. - ๋
ธ์ถ๋ ๋๊ตฌ:
navigate,screenshot,click,fill,select,evaluate(JavaScript ์คํ),get_page_content. ๋ชจ๋ธ์get_page_content๋ฅผ ๊ตฌ์กฐํ๋ ํ ์คํธ๋ฅผ ์ฝ๊ธฐ ์ํด,screenshot์ ์๊ฐ์ ์ผ๋ก ํ์ธํ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค. - ์ง์ฐ: ์ค์ ๋ธ๋ผ์ฐ์ ์ธ์ ์ ์์ ๋น 1~5์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค. ๋ค๋จ๊ณ ํ์์ ํ์ด์ง ๋ด์ฉ์ด ํฌ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ 30~60์ด์ ์๋ง ํ ํฐ์ ์๋นํ ์ ์์ต๋๋ค. 32K+ ์ปจํ ์คํธ ์ฐฝ์ ์ฌ์ฉํ์ญ์์ค.
- ์ ํ๊ธฐ: ๋ชจ๋ธ์ด CSS ์ ํ๊ธฐ๋ฅผ ์ ํํด์ผ ํฉ๋๋ค. ๋ ์์ ๋ชจ๋ธ์ ์์ฃผ ํ๋ฆฝ๋๋ค; 27B+ tool calling ๋ชจ๋ธ์ ์ผ๋ฐ์ ์ธ ํจํด์ ์์ ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. ์์ ์ ์ ํ์ ์ผ๋ก ์ ์งํ์ญ์์ค โ "์ด URL์์ ์ ๋ชฉ๊ณผ ์ฒซ ๋จ๋ฝ์ ์ถ์ถํ์ญ์์ค"๋ "์ฌ์ดํธ๋ฅผ ํ์ํ์ฌ ์ฐ๋ฝ์ฒ ํ์ด์ง๋ฅผ ์ฐพ์ผ์ญ์์ค"๋ณด๋ค ํจ์ฌ ์ ๋ขฐํ ์ ์์ต๋๋ค.
- ์ฌ๋ฐ๋ฅธ ์ฌ์ฉ ์ฌ๋ก: ์ฐ๊ตฌ(ํ์ด์ง ์ด๊ธฐ, ์์ฝํ๊ธฐ, ๋ ธํธ์ ์ถ๊ฐ), ํ๊ท ํ ์คํธ(ํ์, ํด๋ฆญ, ์คํฌ๋ฆฐ์ท), ๋น์ ์ด ์ ์ดํ๋ ํ์ด์ง์ ์์ ์์ฑ. ์๋ชป๋ ์ฌ์ฉ ์ฌ๋ก: ๋ผ์ด๋ธ ์น์์ ์๋ชป๋ ํด๋ฆญ์ ๊ฒฐ๊ณผ๊ฐ ๋ฐ๋ฅด๋ ๋ชจ๋ ๊ฒ.
# ~/.config/goose/config.yaml
mcpServers:
puppeteer:
command: npx
args:
- "-y"
- "@modelcontextprotocol/server-puppeteer"
env:
PUPPETEER_HEADLESS: "true"
# Block obviously dangerous endpoints at the OS firewall level
# rather than relying on the agent to refuse them.โ ๏ธWarning: ๋ธ๋ผ์ฐ์ ์๋ฒ์ ์๊ฒฉ ์ฆ๋ช
์ ์ ๋ ์ ๊ณตํ์ง ๋ง์ญ์์ค. ์ธ์ฆ๋ ์ธ์
์ด ํ์ํ๋ค๋ฉด ์์ด์ ํธ์๊ฒ ์ฌ์ ์ธ์ฆ๋ ๋ธ๋ผ์ฐ์ ํ๋กํ์ผ(userDataDir์ ํตํด)์ ์ ๋ฌํ๊ณ ๊ณ ์ํฅ ์ฌ์ดํธ(๋ฑ
ํน, ์ด๋ฉ์ผ, ํด๋ผ์ฐ๋ ์ฝ์, ๊ฒฐ์ ์์)๋ฅผ ํ์ํ์ง ๋ชปํ๊ฒ ํ์ญ์์ค. ๋ชจ๋ธ์ ๋ฒํผ์ด ๋ฌด์์ ํ๋์ง ํ๋จํ์ง ์์ต๋๋ค โ ํ
์คํธ๋ฅผ ๋ณด๊ณ ํด๋ฆญํฉ๋๋ค. ๋งฅ๋ฝ๋ ์๊ณ ์ ํ๊ถ๋ ์๋ ์ธํด์ฒ๋ผ ์ทจ๊ธํ์ญ์์ค.
GitHub ์๋ฒ: ๋ก์ปฌ ๋ชจ๋ธ์์ ์ ์ฅ์, ์ด์, PR
GitHub ์๋ฒ๋ ์ ์ฅ์์ ๋ํ ์์ฐ์ด ์์ ์ API ํธ์ถ๋ก ๋ณํํฉ๋๋ค. 4๊ฐ ์ค ์ค์ ์ด ๊ฐ์ฅ ๊ฐ๋จํ๋ฉฐ personal access token(PAT) ๊ถํ์ ํตํด ์ ํํ๊ธฐ ๊ฐ์ฅ ์ฝ์ต๋๋ค.
- ์ค์น:
@modelcontextprotocol/server-github, ํ๊ฒฝ ๋ณ์GITHUB_PERSONAL_ACCESS_TOKEN์ PAT์ ํจ๊ป ์คํ. ํ ํฐ์ด ์ ์ผํ ์ธ์ฆ์ ๋๋ค โ ์๋ฒ ์์ฒด์๋ ๋ณ๋ ์ค์ ์ด ์์ต๋๋ค. - ๋
ธ์ถ๋ ๋๊ตฌ:
search_repositories,get_file_contents,create_or_update_file,create_pull_request,list_issues,create_issue,add_issue_comment,merge_pull_request, ๊ทธ ์ธ ์์ญ ๊ฐ์ง ์ถ๊ฐ ๋๊ตฌ. ์ ์ฒด ํ๋ฉด์ด ํฌ์ง๋ง ๋๋ถ๋ถ์ ์์ ์ 5~10๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. - PAT ๋ฒ์ ์ ํ. ์ต์ ํ์ ๊ถํ(ํ์์ ์ํ Read, PR/์ด์ ์์ฑ์ ์ํ Write)์ผ๋ก ํน์ ์ ์ฅ์์ ๋ฒ์๊ฐ ์ง์ ๋ ์ธ๋ถํ๋ PAT๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์คํ์ ์์ด์ ํธ์
repo๊ฐ ์๋ ํด๋์ PAT๋ฅผ ์ฌ์ฉํ์ง ๋ง์ญ์์ค. - ์ค์ ์ํฌํ๋ก: ํธ๋ฆฌ์์ง("์ต๊ทผ 20๊ฐ์ ์ด๋ฆฐ ์ด์๋ฅผ ์ฝ์ด ๊ทธ๋ฃนํํ๊ณ ๋ ์ด๋ธ์ ์ ์ํ์ญ์์ค"), ์ด์("README๋ฅผ ์ฝ๊ณ ์คํ๋ฅผ ์์ ํ๋ PR์ ์ฌ์ญ์์ค"), ๋ณด๊ณ ์("์ด๋ฒ ์ฃผ ๋นํ์ฑ PR์ด ๋ฌด์์ ๋๊น").
- ์ํ ํ๋ฉด: ์์ด์ ํธ๊ฐ ์ด์์ PR์ ๋ง๋ค๊ณ ๋๊ธ์ ๋ฌ ์ ์์ผ๋ฉฐ, (์ฐ๊ธฐ ๊ถํ์ด ์๋ ๊ฒฝ์ฐ) ์ปค๋ฐ์ pushํ ์ ์์ต๋๋ค. ๋ชจ๋ธ๊ณผ ์ํฌํ๋ก ๋ชจ๋๋ฅผ ์ ๋ขฐํ์ง ์๋ ํ merge ๋๊ตฌ๋ฅผ ๋นํ์ฑํํ์ญ์์ค โ ์ธ๋ถํ๋ PAT๋ก ์ ์ฅ์์์์ ์ค์ merge๋ ๋ณต๊ตฌ ๊ฐ๋ฅํ์ง๋ง ๋นจ๋ฆฌ ์์์ฐจ๋ ค์ผ ํฉ๋๋ค.
# ~/.config/goose/config.yaml
mcpServers:
github:
command: npx
args:
- "-y"
- "@modelcontextprotocol/server-github"
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "${GH_AGENT_PAT}"
# Fine-grained PAT scoped to one or two test repos,
# not your personal account-wide classic token.๋ชจ๋ธ์ ์ ๋ขฐํ์ง ์๋ ๋ณด์ ๋ชจ๋ธ
์ฌ๋ฐ๋ฅธ ๋ฉํ ๋ชจ๋ธ์ "LLM์ ๋น์ ์ด ์ฃผ๋ ์ด์ ๋ฅผ ๊ฐ์ง ์ ๋ขฐํ์ง ์๋ ์ธํด"์ ๋๋ค. ๊ธฐ๋ฅ์ ํ์ฉ ๋ชฉ๋ก์ ํฌํจํ๋ ์๋ฒ์ ํ๋ฉด์์ ์ต๋๋ค โ ๋ชจ๋ธ์ ํ๋จ์์ ์ค๋ ๊ฒ์ด ์๋๋๋ค.
- filesystem ์๋ฒ๋ฅผ ํ๋์ ๋๋ ํฐ๋ฆฌ๋ก ์ ํํ์ญ์์ค.
~๋/๋ ์ ๋ ์ ๋ฉ๋๋ค.agent-workspace/ํด๋๋ฅผ ์ ํํ๊ณ ์์ด์ ํธ๊ฐ ์์ ํ ํ์ผ์ ๋ณต์ฌ๋ณธ์ ๊ทธ ์์ ๋ฃ์ผ์ญ์์ค. ์์ด์ ํธ๊ฐ ์คํจํ๋๋ผ๋ ์ต์ ์ ๊ฒฝ์ฐ๋ ํ๋์ ํด๋์ ๋๋ค. - ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์คํํ์ญ์์ค.
SELECT๊ถํ๋ง ์๊ณ 30์ด statement timeout์ด ์๋ ์ ์ฉagent_ro์ญํ ์ด ์ ์ฒด ์ฌ๊ณ ํด๋์ค๋ฅผ ์ ๊ฑฐํฉ๋๋ค. - ๋ชจ๋ ์ฐ๊ธฐ ๋๋ ์
ธ ๋๊ตฌ๋ฅผ ๋ช
์์ ์น์ธ ๋ค์ ๋์ญ์์ค. Goose, Cline, Continue.dev๋ ๋๊ตฌ๋ณ ์น์ธ ๊ท์น์ ์ง์ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฝ๊ธฐ ๋๊ตฌ๋ฅผ ํ์ฉํ๊ณ ;
write_file,edit_file,execute_command,create_pull_request, ์์์ ์ ์ถํ๋ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์ ์น์ธ์ ์๊ตฌํ์ญ์์ค. - ๊ฐ์ฌ ๋ก๊ทธ๋ฅผ ์ฌ์ฉํ์ญ์์ค. ๋ชจ๋ MCP ํด๋ผ์ด์ธํธ๋ tool call๊ณผ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํฉ๋๋ค. ๊ธด ์ธ์ ํ์ ๋ก๊ทธ๋ฅผ ๊ฒํ ํ์ญ์์ค: ๋ชจ๋ธ์ด ์์์น ๋ชปํ ๊ฒ์ ์๋ํ๋ ๊ฒ์ ๋ฐ๊ฒฌํ ๊ฒ์ ๋๋ค(๋๋ก๋ ๋ฌดํดํ์ง๋ง, ๋๋ก๋ ๊ถํ ์กฐ์ ์ ์ ๋นํํฉ๋๋ค).
- ์ข์ ๋ฒ์์ ํ ํฐ์ผ๋ก ํ์ฌ ์ ๊ทผ์ ์ ํํ์ญ์์ค. ๋ ๊ฐ์ ํ ์คํธ ์ ์ฅ์๋ก ์ ํ๋ GitHub PAT. ์ฝ๊ธฐ ์ ์ฉ Postgres ์ญํ . ์๊ฒฉ ์ฆ๋ช ์๋ ๋ธ๋ผ์ฐ์ ์ธ์ . ๋ชจ๋ธ์ ๊ฒฐ๊ตญ ์์์น ๋ชปํ ๊ฒ์ ์๋ํ ๊ฒ์ ๋๋ค; ๋ฌด์์ ํ ์ ์๋์ง์ ํ๊ณ๊ฐ ๋ชจ๋ธ์ด ์ฌ๋ฐ๋ฅด๊ฒ ํ๋ํ๋์ง์ ์์กดํด์๋ ์ ๋ฉ๋๋ค.
- ๋ฏผ๊ฐํ ๋ฐ์ดํฐ ์์ ์ ์ํด ์์ด์ ํธ๋ฅผ ๊ฒฉ๋ฆฌํ์ญ์์ค. ๊ฐ์ธ ๋ฐ์ดํฐ๋ก ์์ ํ ๋ ์์ด์ ํธ๊ฐ ์คํ๋๋ ๋์ ํธ์คํธ์์ ๋คํธ์ํฌ ์ ๊ทผ์ ๋นํ์ฑํํ์ญ์์ค(๋๋ ๋คํธ์ํฌ ๋ค์์คํ์ด์ค ์ฌ์ฉ). ๋ก์ปฌ ์คํ์ ์ด๋ฏธ ๊ธฐ๊ธฐ ๋ฐ์ผ๋ก ์๋ฌด๊ฒ๋ ์ ์กํ์ง ์์ง๋ง ์ฌ์ธต ๋ฐฉ์ด๋ ํ์ฌ ์๋ฒ์ ๋ฒ๊ทธ๋ฅผ ํฌ์ฐฉํฉ๋๋ค.
- MCP ์๋ฒ ์ ํ์ ๋ชจ๋ ์์กด์ฑ ์ ํ๊ณผ ๋์ผํ๊ฒ ์ทจ๊ธํ์ญ์์ค. ์ฐธ์กฐ ์๋ฒ๋ ์ ์ ์ง ๊ด๋ฆฌ๋ฉ๋๋ค; ๋ง์ ํ์ฌ ์๋ฒ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์๊ฒฉ ์ฆ๋ช ์ด ํ์ํ ์๋ฒ๋ฅผ ์ค์นํ๊ธฐ ์ ์ ์๋ฒ ์ฝ๋๋ฅผ ์ฝ์ผ์ญ์์ค.
๐Note: ์ ์ฉํ ์ฅ์ ๋ณต๊ตฌ ์ต๊ด: ์ค์ํ์ง ์์ ์์ด์ ํธ ์์
์ ์ git stash(๋๋ git checkout -b agent/<task>)๋ฅผ ์ํํ์ญ์์ค. ์์
ํ diff๋ฅผ ๊ฒํ ํ๊ณ , ์ํ๋ ๋ถ๋ถ์ ์ ์งํ๊ณ , ๋๋จธ์ง๋ ๋ฒ๋ฆฌ์ญ์์ค. ์ด๊ฒ์ ๊ธด Cline ๋๋ Aider ์ธ์
์ ์์ ํ๊ฒ ๋ง๋๋ ๊ฒ๊ณผ ๋์ผํ ๊ดํ์
๋๋ค โ ๋ ๋์ ํจํด์ Continue.dev vs Cline vs Aider ๋น๊ต๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๋ก์ปฌ MCP vs Claude Desktop: ๋ฌด์์ด ๋ฐ๋๊ณ ๋ฌด์์ด ๋จ๋๊ฐ
ํ๋กํ ์ฝ๊ณผ ์๋ฒ๋ ๋์ผํฉ๋๋ค. ๋ชจ๋ธ๊ณผ ํด๋ผ์ด์ธํธ๋ง ๋ฐ๋๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก MCP๊ฐ ์ค์ํ ์ด์ ์ ๋๋ค โ ๋๊ตฌ์ ๋ํ ํฌ์๊ฐ ๋ก์ปฌ ๋ฐ ํด๋ผ์ฐ๋ ์ค์ ๊ฐ์ ๊น๋ํ๊ฒ ์ด์๋ฉ๋๋ค.
| ๋ ์ด์ด | Claude Desktop | Ollama ๋ก์ปฌ + Goose |
|---|---|---|
| ๋ชจ๋ธ | Claude(Anthropic, ํด๋ผ์ฐ๋) | Gemma 4, GLM-5.1, Qwen3 ๋๋ Llama 3.3(๋ก์ปฌ) |
| ํด๋ผ์ด์ธํธ | Claude Desktop ์ฑ | Goose, Cline, Continue.dev ๋๋ LM Studio |
| ์๋ฒ | ๋์ผํ MCP ์๋ฒ | ๋์ผํ MCP ์๋ฒ |
| ํ๋กํ ์ฝ | MCP(JSON-RPC 2.0) | MCP(JSON-RPC 2.0) |
| ์์ฒญ๋น ๋น์ฉ | ํ ํฐ๋น API ์ง์ถ | $0 โ ๋ก์ปฌ ์ถ๋ก |
| ํ๋ผ์ด๋ฒ์ | ๋ํ๊ฐ Anthropic์ผ๋ก ์ ์ก๋จ | ๊ธฐ๊ธฐ์์๋ง ์ ์ง๋จ |
| ์๋ ์ ํ | API ์ ํ ์ ์ฉ | ํ๋์จ์ด ์ฑ๋ฅ์ ์ํด์๋ง ์ ํ๋จ |
| tool calling ํ์ง | ์ต๊ณ ์์ค | 27B+ ๋ชจ๋ธ์์ ์ข์; 7B ๋ฏธ๋ง์์ ๊ธ๊ฒฉํ ์ ํ๋จ |
| ์ธํฐ๋ท ํ์ | ์ | ์๋ฒ๊ฐ ์์ฒญ์ ํ ๊ฒฝ์ฐ์๋ง(์: ๋ธ๋ผ์ฐ์ ) |
| ์ค์ ์๊ฐ | 5๋ถ | 15๋ถ(์ผํ์ฑ) |
๋ก์ปฌ MCP๋ฅผ ์ํ tool calling ๋ชจ๋ธ ์ ํ
tool calling ์ ๋ขฐ์ฑ์ harness๊ฐ ์๋ ๋ชจ๋ธ ํฌ๊ธฐ์ ํ๋ จ๊ณผ ํจ๊ป ํ์ฅ๋ฉ๋๋ค. Cline์์ ์๋ชป๋ ํ์์ tool call์ ์์ฑํ๋ ๋ชจ๋ธ์ ๊ฐ์ ์ด์ ๋ก Goose์์๋ ์์ฑํฉ๋๋ค.
- **Gemma 4 27B(
gemma4:27b)** โ Google์ tool calling ํ๋ จ์ ์ด ํฌ๊ธฐ์์ ์ต๊ณ ์์ค์ ๋๋ค. Q4_K_M์์ 16GB ํตํฉ ๋ฉ๋ชจ๋ฆฌ ๋๋ 24GB VRAM์ ๋ง์ต๋๋ค. ํ๋ฅญํ ์ผ๋ฐ ์ถ๋ก ; ์ฐ์ tool call์์ ์ฝ๊ฐ ๋ณด์์ . - **GLM-5.1 32B(
glm5:32b)** โ Zhipu์ ๋ชจ๋ธ์ ๋งค์ฐ ๋์ tool calling ์ ๋ขฐ์ฑ๊ณผ ํ์ค 128K ์ปจํ ์คํธ ์ฐฝ์ ๊ฐ์ง๋๋ค. Gemma 4๋ณด๋ค ์ฝ๊ฐ ๋ฌด๊ฒ์ง๋ง 24GB GPU์ ํธ์ํ๊ฒ ๋ง์ต๋๋ค. - **Qwen3 32B(
qwen3:32b) โ ๊ท ํ ์กํ; ์กฐ๋ฐํ 32B๋ MCP๋ฅผ ๋ฌธ์ ์์ด ์ฒ๋ฆฌํ๊ณ ๊ธด ์์ด์ ํธ ๋ฃจํ์์ ์ ์๋ํฉ๋๋ค. Qwen3-Coder 30B(qwen3-coder:30b)**๋ ์์ด์ ํธ ์์ ์ด ์ฝ๋ ์งํฅ์ ์ธ ๊ฒฝ์ฐ ์ต์ ์ ๋๋ค. - **Llama 3.3 70B(
llama3.3:70b)** โ ๊ฐ์ฅ ๋์ ์ฑ๋ฅ์ด์ง๋ง ๊ฐ์ฅ ๋ฌด๊ฒ์ต๋๋ค. Q4_K_M์์ 48GB+ ํตํฉ ๋ฉ๋ชจ๋ฆฌ ๋๋ 2ร 24GB GPU. ํ๋์จ์ด๊ฐ ์ง์ํ๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํ์ญ์์ค; ๋ ์์ ๋ชจ๋ธ์ด ์ถฉ๋ถํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. - MCP ์์ ์์ ํผํด์ผ ํ ๊ฒ: 7B ๋ฏธ๋ง์ ๋ชจ๋ ๊ฒ๊ณผ ๋ช ์์ ์ธ tool calling ํ๋ จ์ด ์๋ ๋ฒ์ฉ ๋ชจ๋ธ. ์๋ชป๋ ํ์์ ํธ์ถ์ ์์ฑํ๊ณ , ๋ฃจํ๊ฐ ์ฐจ๋จ๋๊ณ , harness๋ฅผ ํํ๊ฒ ๋ฉ๋๋ค โ ํ์ง๋ง harness๋ ๊ด์ฐฎ์ต๋๋ค.
- ๋ชจ๋ ๋ชจ๋ธ์์ tool calling ํ์ง์ ํฅ์์ํค๋ ๊ตฌ์กฐ์ ํ๋กฌํํ ๊ธฐ๋ฒ์ Chain-of-thought ํ๋กฌํํ ์ ์ฐธ์กฐํ์ญ์์ค.
- ๋น๊ต ๋ฐ์ดํฐ๋ 2026๋ tool calling์ ์ํ ์ต๊ณ ์ ๋ก์ปฌ ๋ชจ๋ธ์ ์ฐธ์กฐํ์ญ์์ค.
MCP vs ์ผ๋ฐ Function Calling: ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ
Function calling์ ๋ชจ๋ธ์ด ์์ฑํ๋ ๊ฒ์ ๋๋ค. MCP๋ ํด๋ผ์ด์ธํธ์ ๋๊ตฌ๊ฐ ๋ง๋ ์ ์๊ฒ ํ๋ ํ๋กํ ์ฝ์ ๋๋ค. ๋ ๊ฐ์ง๋ ๋ค๋ฅธ ๋ ์ด์ด์ ์์ผ๋ฉฐ ํ๋ ฅํฉ๋๋ค; ํ๋๊ฐ ๋ค๋ฅธ ๊ฒ์ ๋์ฒดํ์ง ์์ต๋๋ค.
- Function calling์ LLM ์ธก์ ๊ธฐ๋ฅ์ ๋๋ค: ๋ชจ๋ธ์ด ๋๊ตฌ ์ด๋ฆ๊ณผ ์ธ์๋ฅผ ์ค๋ช ํ๋ ๊ตฌ์กฐํ๋ JSON ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค. OpenAI์ ๋๊ตฌ, Anthropic์ ๋๊ตฌ, Ollama์ tool call API๋ ์ฝ๊ฐ ๋ค๋ฅธ wire ํ์์ผ๋ก ๋์ผํ ์์ด๋์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- MCP๋ ๊ทธ ์์ ์์นํฉ๋๋ค: ๋๊ตฌ๊ฐ ํ๋ก์ธ์ค ๊ฐ์ ์ค๋ช , ๋ฐ๊ฒฌ, ํธ์ถ, ๋ฐํ๋๋ ๋ฐฉ์์ ํ์คํํฉ๋๋ค. function calling๋ง ์๋ ๋ชจ๋ธ์ filesystem์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฆ ๋๋ค; MCP ์๋ฒ๋ filesystem ์์ ์ ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ณ , ํด๋ผ์ด์ธํธ๋ ์ด๋ฅผ ๋ชจ๋ธ์ function calling API์ ๋งคํํ๊ณ , ๋ชจ๋ธ์ด ํธ์ถํ ์ ์์ต๋๋ค.
- ์ด์ ์ ์ํธ ์ด์ฉ์ฑ์ ๋๋ค. filesystem ์๋ฒ๋ฅผ ํ ๋ฒ ์์ฑํ๋ฉด; Claude Desktop, Goose, Cline, Continue.dev, LM Studio ๋ชจ๋ ๋ณ๊ฒฝ ์์ด ์ฌ์ฉํฉ๋๋ค. Claude์์ Gemma 4๋ก ๋ชจ๋ธ์ ๋ฐ๊ฟ๋; ์๋ฒ๋ ๋ฐ๋์ง ์์ต๋๋ค.
- pure function calling์ผ๋ก ์์ด์ ํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ํ๋ก์ ํธ๋ณ๋ก filesystem, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ธ๋ผ์ฐ์ ํธ๋ค๋ฌ๋ฅผ ์ฌ๊ตฌํํ๊ฒ ๋ฉ๋๋ค. MCP๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๊ฒ๋ค์ด ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ ์์กด์ฑ์ด ๋ฉ๋๋ค.
- ์ผํ์ฑ ์คํฌ๋ฆฝํธ์ ๊ฒฝ์ฐ pure function calling์ด ๋ ๊ฐ๋จํฉ๋๋ค. ํ๋ก์ ํธ๋ ๋ชจ๋ธ ๊ฐ์ ์ฌ์ฌ์ฉํ๊ณ ์ถ์ ๋ชจ๋ ๊ฒ์ ๋ํด MCP๋ ๋ฉฐ์น ๋ด์ ๊ฐ์ฅ ๋ฎ์ ๋ ธ๋ ฅ์ ๊ฒฝ๋ก์ ๋๋ค.
๋ก์ปฌ MCP ์ค์ ์ ์ผ๋ฐ์ ์ธ ์ค์
- ์ค์ 1: ๋ฒ์ฉ ์ํ ๋ชจ๋ธ ์ฌ์ฉ. 7B ๋ฏธ๋ง ๋ชจ๋ธ(๊ทธ๋ฆฌ๊ณ tool calling ํ์ธํ๋ ์๋ ๋๋ถ๋ถ์ 7B~13B ๋ฒ์ฉ ๋ชจ๋ธ)์ ์๋ชป๋ ํ์์ tool call์ ์์ฑํฉ๋๋ค. tool calling์ ํ์ธํ๋๋ 27B+ ๋ชจ๋ธ์ ์ฌ์ฉํ๊ณ harness์ ์ธ์ฐ๋ ๊ฒ์ ๊ทธ๋ง๋์ญ์์ค.
- ์ค์ 2: ํ์ฉ ๋ชฉ๋ก์ ํ ๋๋ ํฐ๋ฆฌ ๋ฃ๊ธฐ. "ํ
์คํธ๋ง์ ์ํ"
~ํ์ฉ ๋ชฉ๋ก์ ์ผ์์ ์ธ ์ฌ์ฉ๊น์ง ์ด์๋จ์ต๋๋ค. ์ฒ์๋ถํฐ ์ ์ฉagent-workspace๋ฅผ ๋ง๋์ญ์์ค. - ์ค์ 3: ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๋ฅผ ์ฝ๊ธฐ/์ฐ๊ธฐ ๋ชจ๋๋ก ๋๊ธฐ. ์ค์ ํ
์ด๋ธ์ ๋ํ ์์ ๊ฐ ์๋ ์์ด์ ํธ์
DELETE์ฟผ๋ฆฌ๊ฐ ์ ํํ ์ด๊ฒ์ด ๋ฐฉ์งํ๋ ์ฌ๊ณ ์ ๋๋ค.agent_ro๋ฅผ ๊ธฐ๋ณธ ์ญํ ๋ก ๋ง๋์ญ์์ค; ๊ทธ๊ฒ์ ๋ช ์์ ์ผ๋ก ํ์๋ก ํ๋ ์์ ์๋ง, ๊ทธ๋ฆฌ๊ณ ๊ทธ ์์ ๋์์๋ง ๋ณ๋์ ์ฐ๊ธฐ ๊ฐ๋ฅํ ์ญํ ์ ์ค์ ํ์ญ์์ค. - ์ค์ 4: ๋ชจ๋ ๋๊ตฌ ์๋ ์น์ธ. "๋ชจ๋ ์น์ธ" ๋ฒํผ์ ํธ๋ฆฌํ๊ณ ์ํํฉ๋๋ค. ์ฝ๊ธฐ ๋๊ตฌ(
read_file,list_directory,query)๋ฅผ ์๋ ์น์ธํ์ญ์์ค; ์ฐ๊ธฐ/์ ธ/PR ๋๊ตฌ๋ ํญ์ ์น์ธ์ด ํ์ํฉ๋๋ค. - ์ค์ 5: ๋ค๋จ๊ณ ๋ธ๋ผ์ฐ์ ์์ ์ 32K ์ปจํ ์คํธ ๋ชจ๋ธ ์ฌ์ฉ. ํ์ด์ง ๋ด์ฉ์ด ํฌ๊ธฐ ๋๋ฌธ์ ์ธ ํ์ด์ง๋ฅผ ํ์ํ๋ ์์ด์ ํธ๊ฐ ์ถ๋ก ์ ์ 32K ํ ํฐ์ ์์งํ ์ ์์ต๋๋ค. ๋ธ๋ผ์ฐ์ ์ง์ฝ์ ์ธ ์์ ์๋ 128K ์ปจํ ์คํธ ๋ชจ๋ธ์ ์ฌ์ฉํ์ญ์์ค.
- ์ค์ 6: ์์ด์ ํธ๊ฐ ํ๋จ๋ ฅ์ด ์๋ค๊ณ ๊ฐ์ ํ๊ธฐ. ๊ทธ๋ ์ง ์์ต๋๋ค. ๋ชจ๋ธ์ "์ด๊ฒ์ด ํ๋ก๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ค" ๋๋ "์ด PR์ด ๋ฐฐํฌ๋ ๊ฒ์ด๋ค"๋ผ๋ ๊ฐ๋ ์ด ์์ต๋๋ค. ๊ถํ์ด ์ ์ผํ ์ฅ๋ฒฝ์ ๋๋ค.
- ์ค์ 7: ์ฒ์๋ถํฐ ๋ชจ๋ ์ฐธ์กฐ ์๋ฒ ์ค์น. ๋ ๋ง์ ๋๊ตฌ = ๋ ํฐ ์์คํ
ํ๋กฌํํธ = ๋ ๋๋ฆฌ๊ณ ๋ ์ ๋ขฐํ ์ ์๋ ๋๊ตฌ ์ ํ.
filesystem์ผ๋ก ์์ํ์ญ์์ค. ๊ทธ๊ฒ์ ํ์๋ก ํ๋ ์ํฌํ๋ก๊ฐ ์์ ๋๋ง ๋ค๋ฅธ ๊ฒ์ ์ถ๊ฐํ์ญ์์ค.
์ถ์ฒ
- Model Context Protocol ์ฌ์ โ ๊ณต์ ์ฌ์, JSON-RPC ์คํค๋ง, ์ ์ก ๋ฐ ์๋ช ์ฃผ๊ธฐ ์ ์.
- GitHub modelcontextprotocol/servers ์ ์ฅ์ โ ์ฐธ์กฐ ์๋ฒ(filesystem, sqlite, postgres, github, puppeteer ๋ฑ) ๋ฐ ์ค์ ๋ฌธ์.
- Goose ํ๋ก์ ํธ ๋ฌธ์ โ CLI ์ค์น, Ollama ์ ๊ณต์ ์ค์ , MCP ์๋ฒ ์ค์ ๊ตฌ๋ฌธ.
- Ollama ๋ชจ๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ โ ์ด ๊ฐ์ด๋์์ ์ฐธ์กฐํ๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ก์ปฌ ๋ชจ๋ธ, tool calling ์ง์ ์งํ ๋ฐ ์์ํ ์์ค.
- Cline GitHub ์ ์ฅ์ โ VS Code์ฉ MCP ํด๋ผ์ด์ธํธ ๊ตฌํ, MCP ์๋ฒ ํจ๋.
- Continue.dev ๋ฌธ์ โ Continue.dev ํด๋ผ์ด์ธํธ๋ฅผ ์ํ
mcpServers์ค์ ๋ธ๋ก ์ฐธ์กฐ.
FAQ
MCP๋ ๋ฌด์์ด๋ฉฐ ๋ก์ปฌ AI์ ์ ์ค์ํฉ๋๊น?
Model Context Protocol(MCP)์ ํด๋ผ์ด์ธํธ(Goose, Cline, Continue.dev, LM Studio, Claude Desktop)๊ฐ ์ธ์ด ๋ชจ๋ธ์ ๋๊ตฌ ์๋ฒ์ ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐํ ์ ์๊ฒ ํ๋ ์คํ JSON-RPC 2.0 ํ๋กํ ์ฝ์ ๋๋ค. ๋ก์ปฌ AI์ ์ค์ํ ์ด์ ๋ ์ฑํ ๋ชจ๋ธ์ ์์ด์ ํธ๋ก ๋ณํํ๋ ๊ณ์ธต์ ํ์คํํ๊ธฐ ๋๋ฌธ์ ๋๋ค โ ๋๊ตฌ ์๋ฒ๋ฅผ ํ ๋ฒ ์์ฑํ๋ฉด ๋ก์ปฌ Ollama ๋ชจ๋ธ์ ํฌํจํ ๋ชจ๋ ํด๋ผ์ด์ธํธ์ ๋ชจ๋ ๋ชจ๋ธ์์ ์ฌ์ฉํ์ญ์์ค. MCP ์์ด๋ ๊ฐ ํ๋ก์ ํธ๊ฐ ์์ฒด ํด๋ผ์ด์ธํธ์ ๋ํด ํ์ผ/๋ฐ์ดํฐ๋ฒ ์ด์ค/๋ธ๋ผ์ฐ์ ๋๊ตฌ๋ฅผ ์ฌ๋ฐ๋ช ํฉ๋๋ค.
MCP๋ Claude Desktop ์์ด ์๋ํฉ๋๊น?
๋ค. ํ๋กํ ์ฝ์ ์คํ์ด๋ฉฐ Claude Desktop๊ณผ ์์ ํ ๋ ๋ฆฝ์ ์ ๋๋ค. 2026๋ ์ Goose, Cline, Continue.dev, LM Studio๋ ๋ก์ปฌ Ollama ๋ชจ๋ธ๊ณผ ์๋ํ๋ MCP ํด๋ผ์ด์ธํธ ๊ตฌํ์ ์ ๊ณตํฉ๋๋ค. ์ฐธ์กฐ ์๋ฒ(filesystem, sqlite, postgres, puppeteer, github)๋ ํธํ ํด๋ผ์ด์ธํธ์์ ๋ณ๊ฒฝ ์์ด ์๋ํฉ๋๋ค.
์ด๋ค ๋ก์ปฌ ๋ชจ๋ธ์ด MCP๋ฅผ ๊ฐ์ฅ ์ ์ง์ํฉ๋๊น?
2026๋ 5์ ๊ธฐ์ค์ผ๋ก ๊ฐ์ฅ ์ ๋ขฐํ ์ ์๋ ์ต์ ์ Gemma 4 27B, GLM-5.1 32B, Qwen3 32B(์ฝ๋ ์งํฅ ์์ ์ ๊ฒฝ์ฐ Qwen3-Coder 30B), Llama 3.3 70B์ ๋๋ค. 4๊ฐ ๋ชจ๋ ๋ช ์์ ์ธ tool calling ํ๋ จ์ ๋ฐ์์ผ๋ฉฐ MCP ํด๋ผ์ด์ธํธ๊ฐ ๋ผ์ฐํ ํ ์ ์๋ ๊น๋ํ function calling JSON์ ์์ฑํฉ๋๋ค. 7B ๋ฏธ๋ง ๋ชจ๋ธ(๊ทธ๋ฆฌ๊ณ tool calling ํ์ธํ๋ ์๋ ๋๋ถ๋ถ์ ๋ฒ์ฉ ๋ชจ๋ธ)์ ์ ๊ธฐ์ ์ผ๋ก ์๋ชป๋ ํ์์ tool call์ ์์ฑํฉ๋๋ค.
MCP๋ ์์ ํฉ๋๊น? ์์ด์ ํธ๊ฐ ๋ด ํ์ผ์ ์ญ์ ํ ์ ์์ต๋๊น?
ํ์ฉํ๋ฉด ๊ฐ๋ฅํฉ๋๋ค. ๋ณด์์ ํ๋กํ ์ฝ์ด ์๋ ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ์์์ ์ต๋๋ค. filesystem ์๋ฒ๋ ํ์ฉ ๋ชฉ๋ก์ ๋ฃ์ ๊ฒฝ๋ก ๋ด์์๋ง ์๋ํฉ๋๋ค โ ์ ์ฉ agent-workspace ๋๋ ํฐ๋ฆฌ๋ก ์ ํํ์ญ์์ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๋ SELECT ์ ์ฉ ์ญํ ์ ์ฌ์ฉํ ๋ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์๋ํฉ๋๋ค. ์ฐ๊ธฐ, ์
ธ, PR ๋๊ตฌ์ ๋ํด ํญ์ ๋ช
์์ ์น์ธ์ ์๊ตฌํ์ญ์์ค; ์ฝ๊ธฐ ์์
๋ง ์๋ ์น์ธํ์ญ์์ค. ๊ฐ์ฌ ๋ก๊ทธ๋ ์์ด์ ํธ๊ฐ ํ ์ผ์ ์ฌํ์ ์ ํํ ๋ณด์ฌ์ค๋๋ค.
๋๋ง์ MCP ์๋ฒ๋ฅผ ์์ฑํ ์ ์์ต๋๊น?
๋ค โ ๊ทธ๋ฆฌ๊ณ SDK๊ฐ ๊ฐ๋จํ๊ฒ ๋ง๋ค์ด์ค๋๋ค. ๊ณต์ TypeScript ๋ฐ Python SDK(@modelcontextprotocol/sdk ๋ฐ mcp)๊ฐ JSON-RPC ๋ฐฐ๊ด์ ์ฒ๋ฆฌํฉ๋๋ค. JSON ์คํค๋ง์ ํธ๋ค๋ฌ ํจ์๋ก ๋๊ตฌ๋ฅผ ์ ์ํ๋ฉด SDK๊ฐ stdio๋ฅผ ํตํด ๋
ธ์ถํฉ๋๋ค. ๋จ์ผ ๋ชฉ์ ์๋ฒ(๋ด๋ถ API๋ฅผ ๋ํํ๋ ํ๋ ๋๋ ๋ ๊ฐ์ ๋๊ตฌ)๋ 50~100์ค ํ์ผ์
๋๋ค.
MCP๋ Windows์์ ์๋ํฉ๋๊น?
๋ค. Ollama, Goose, Cline, Continue.dev, LM Studio ๋ชจ๋ Windows์์ ์๋ํฉ๋๋ค. MCP ์๋ฒ๋ Node.js ๋๋ Python ํ์ ํ๋ก์ธ์ค๋ก ์คํ๋ฉ๋๋ค; ๋ ๋ฐํ์ ๋ชจ๋ Windows์ ์์ ํ ํธํ๋ฉ๋๋ค. ์ ์ผํ ํ๋ซํผ ํน์ ์ธ๋ถ ์ฌํญ์ ๊ฒฝ๋ก ์ฒ๋ฆฌ์ ๋๋ค โ ์ค์ ์์ ์ฌ๋์๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๋ฐฑ์ฌ๋์๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ด์ค์ผ์ดํํ์ญ์์ค. ๊ทธ ์ธ์๋ ๊ฒฝํ์ด macOS ๋ฐ Linux์ ๋์ผํฉ๋๋ค.
MCP tool call์ ์ด๋ป๊ฒ ์๋๋ฐ์ฑํฉ๋๊น?
์ธ ๊ฐ์ง ๋ ์ด์ด๊ฐ ๋๋ถ๋ถ์ ์ํ์ ์ปค๋ฒํฉ๋๋ค. ์ฒซ์งธ, ์ค์ ์์ค์์ ๊ฐ ์๋ฒ๋ฅผ ์ข๊ฒ ์ ํํ์ญ์์ค: filesystem์ ํ๋์ ๋๋ ํฐ๋ฆฌ๋ก, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฝ๊ธฐ ์ ์ฉ ์ญํ ๋ก, GitHub๋ ํ
์คํธ ์ ์ฅ์๋ฅผ ์ํ ์ธ๋ถํ๋ PAT๋ก. ๋์งธ, ํด๋ผ์ด์ธํธ์ ๋๊ตฌ๋ณ ์น์ธ ๊ท์น์ ์ฌ์ฉํ์ญ์์ค: ์ฝ๊ธฐ์ ์๋ ์น์ธ, ์ฐ๊ธฐ์ ํ์ ์น์ธ. ์
์งธ, ์์ด์ ํธ๋ฅผ git stash ํธํ workspace ๋ด์์ ์ ์งํ์ฌ ๋ชจ๋ ํ๊ดด์ ์ธ ์์
์ด git์ ํตํด ์ทจ์ ๊ฐ๋ฅํ๋๋ก ํ์ญ์์ค. ๋ฏผ๊ฐํ ์์
์ ๊ฒฝ์ฐ ์๋ฒ๊ฐ ๋ช
์์ ์ผ๋ก ํ์๋ก ํ๋ ์๋ํฌ์ธํธ๋ฅผ ์ ์ธํ๊ณ ๋คํธ์ํฌ ์ ๊ทผ ์์ด ์คํํ์ญ์์ค.
MCP ์์ด์ ํธ๊ฐ HTTP ์์ฒญ์ ํ ์ ์์ต๋๊น?
๋ค, ํน์ ์๋ฒ๋ฅผ ํตํด. ๋ธ๋ผ์ฐ์ ์๋ฒ(puppeteer ๋๋ playwright)๋ ๋ชจ๋ธ์ด ํ์ํ๋ ์์ฒญ์ ํ๋ ์ค์ Chromium์ ์ ์ดํฉ๋๋ค. ์ฌ๋ฌ ํ์ฌ ์๋ฒ๋ ๋ ์ง์ ์ ์ผ๋ก http_get/http_post ๋๊ตฌ๋ฅผ ๋
ธ์ถํฉ๋๋ค. filesystem ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๋ ๋คํธ์ํฌ ์์ฒญ์ ํ์ง ์์ต๋๋ค; ๋ก์ปฌ ๋ฆฌ์์ค์์๋ง ์๋ํฉ๋๋ค.
MCP๊ฐ Ollama์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ํฉ๋๊น, ์๋๋ฉด ๋ํผ๊ฐ ํ์ํฉ๋๊น?
Ollama ์์ฒด๋ MCP๋ฅผ ๋งํ์ง ์์ต๋๋ค โ OpenAI ํธํ ์ฑํ API๋ฅผ ์ ๊ณตํฉ๋๋ค. Ollama์ ์ฑํ API์ MCP ์๋ฒ ์ฌ์ด๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํด ํด๋ผ์ด์ธํธ(Goose, Cline, Continue.dev, LM Studio)๊ฐ ํ์ํฉ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ๋ชจ๋ธ์ tool call์ ์ฌ๋ฐ๋ฅธ MCP ์๋ฒ๋ก ๋ผ์ฐํ ํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ํ์ ๋ฐํํฉ๋๋ค. ์ฌ์ฉ์ ๊ด์ ์์ ํด๋ผ์ด์ธํธ๋ฅผ ์ค์นํ๊ณ Ollama๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฒ ์ธ์ ์ถ๊ฐ ์ค์ ์ด ์์ต๋๋ค.
MCP์ function calling์ ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น?
Function calling์ LLM์ด ๋๊ตฌ ์ด๋ฆ๊ณผ ์ธ์๋ฅผ ํฌํจํ ๊ตฌ์กฐํ๋ JSON์ ์์ฑํ๋ ๊ฒ์ ๋๋ค โ ์ด๊ฒ์ ๋ชจ๋ธ ๊ธฐ๋ฅ์ ๋๋ค. MCP๋ ๋๊ตฌ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ํ๋ก์ธ์ค ๊ฐ์ ๋๊ตฌ๋ฅผ ์ค๋ช , ๋ฐ๊ฒฌ, ํธ์ถ, ๋ฐํํ๋ ๋ฐฉ์์ ํ์คํํ๋ ํ๋กํ ์ฝ์ ๋๋ค โ ์ด๊ฒ์ ์ํธ ์ด์ฉ์ฑ ๊ณ์ธต์ ๋๋ค. ํ๋ ฅํฉ๋๋ค: ํด๋ผ์ด์ธํธ๊ฐ MCP ๋๊ตฌ ์ ์๋ฅผ ๋ชจ๋ธ์ function calling ํ์์ผ๋ก ๋ณํํ๊ณ , ๋ชจ๋ธ์ด function call์ ์์ฑํ๊ณ , ํด๋ผ์ด์ธํธ๊ฐ ํธ์ถ์ MCP ์๋ฒ์ ๋ค์ ๋งคํํ๊ณ , ์๋ฒ๊ฐ ์คํํฉ๋๋ค. MCP ์์ด๋ function calling์ ํ ์ ์์ง๋ง ํ๋ก์ ํธ๋ณ๋ก filesystem/๋ฐ์ดํฐ๋ฒ ์ด์ค/๋ธ๋ผ์ฐ์ ํธ๋ค๋ฌ๋ฅผ ์ฌ๊ตฌํํ๊ฒ ๋ฉ๋๋ค. MCP๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ผํ ์๋ฒ๊ฐ ๋ชจ๋ ํด๋ผ์ด์ธํธ์์ ์๋ํฉ๋๋ค.