๐ฐ๏ธ MCP ์ง์
์ด ๋ฌธ์๋ Open WebUI์์ ์ ๊ณตํ๋ MCP (Model Context Protocol)-to-OpenAPI ํ๋ก์ ์๋ฒ (mcpo)๋ฅผ ๊ฐ๋จํ ์ค์ ํ๊ณ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. MCP ๊ธฐ๋ฐ ํด ์๋ฒ๋ฅผ ์ต์ข ์ฌ์ฉ์์ ๊ฐ๋ฐ์์๊ฒ ์ ํฉํ ํ์ค OpenAPI ์๋ํฌ์ธํธ๋ก ์ฝ๊ฒ ๋ ธ์ถ์ํค๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
๐ MCP ํ๋ก์ ์๋ฒ ๋ ๋ฌด์์ธ๊ฐ์?โ
MCP-to-OpenAPI ํ๋ก์ ์๋ฒ๋ MCP (Model Context Protocol)๋ก ๊ตฌํ๋ ํด ์๋ฒ๋ฅผ ํ์ค REST/OpenAPI API๋ฅผ ํตํด ์ง์ ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋คโ๋ณต์กํ๊ฑฐ๋ ์ต์ํ์ง ์์ ์ปค์คํ ํ๋กํ ์ฝ์ ๊ด๋ฆฌํ ํ์๊ฐ ์์ต๋๋ค. ์ต์ข ์ฌ์ฉ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์๋ผ๋ฉด ๊ฐ๋ ฅํ MCP ๊ธฐ๋ฐ ๋๊ตฌ์ REST์ ๊ฐ์ ์น์ํ ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๊ฒ ์ํธ์์ฉํ ์ ์์ต๋๋ค.
๐ก ์ mcpo๋ฅผ ์ฌ์ฉํด์ผ ํ๋์?โ
MCP ํด ์๋ฒ๋ ๊ฐ๋ ฅํ๊ณ ์ ์ฐํ์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ํ์ค ์ ๋ ฅ/์ถ๋ ฅ(stdio)์ผ๋ก ํต์ ํฉ๋๋คโ์ด๋ ์ข ์ข ๋ก์ปฌ ๋จธ์ ์์ ์คํ๋๋ฉฐ ํ์ผ ์์คํ , ํ๊ฒฝ ๋ฐ ๊ธฐํ ๋ค์ดํฐ๋ธ ์์คํ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
์ด ์ ์ ๊ฐ์ ์ด์ง๋ง, ๋์์ ์ ํ์ด ๋๊ธฐ๋ ํฉ๋๋ค.
์ฃผ์ ์ธํฐํ์ด์ค(์: Open WebUI)๋ฅผ ํด๋ผ์ฐ๋์ ๋ฐฐํฌํ๋ ค๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค: ํด๋ผ์ฐ๋ ์ธ์คํด์ค๋ ๋ก์ปฌ ๋จธ์ ์์ stdio๋ฅผ ํตํด ์คํ ์ค์ธ MCP ์๋ฒ์ ์ง์ ํต์ ํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ mcpo๊ฐ ํ๊ธฐ์ ์ผ๋ก ํด๊ฒฐํฉ๋๋ค.
MCP ์๋ฒ๋ ์ผ๋ฐ์ ์ผ๋ก raw stdio ํต์ ์ ์์กดํฉ๋๋ค. ์ด๋:
- ๐ ํ๊ฒฝ ๊ฐ์ ๋ณธ์ง์ ์ผ๋ก ๋ณด์์ด ๋ถ์กฑํจ
- โ ๋๋ถ๋ถ์ ํ๋ ๋๊ตฌ, UI ๋๋ ํ๋ซํผ๊ณผ ํธํ๋์ง ์์
- ๐งฉ ์ธ์ฆ, ๋ฌธ์ํ, ์ค๋ฅ ์ฒ๋ฆฌ์ ๊ฐ์ ์ค์ํ ๊ธฐ๋ฅ ๋ถ์กฑ
mcpo ํ๋ก์๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์๋์ผ๋ก ์ ๊ฑฐํฉ๋๋ค:
- โ ๊ธฐ์กด OpenAPI ๋๊ตฌ, SDK, ํด๋ผ์ด์ธํธ์ ์ฆ์ ํธํ ๊ฐ๋ฅ
- ๐ก ๋๊ตฌ๋ฅผ ๋ณด์์ฑ, ํ์ฅ์ฑ, ํ์ค ๊ธฐ๋ฐ HTTP ์๋ํฌ์ธํธ๋ก ๋ํ
- ๐ง ๋ชจ๋ ๋๊ตฌ์ ๋ํด ์ธํฐ๋ํฐ๋ธํ OpenAPI ๋ฌธ์๋ฅผ ์๋ ์์ฑ, ์ค์ ํ์ ์์
- ๐ ๊ฐ๋จํ HTTP ์ฌ์ฉโ์์ผ ์ค์ , ๋ฐ๋ชฌ ๊ด๋ฆฌ, ํ๋ซํผ๋ณ glue code ๋ถํ์
๋ฐ๋ผ์ ์ฒ์์๋ mcpo๊ฐ "๋จ์ง ๋ ํ๋์ ๋ ์ด์ด"์ฒ๋ผ ๋ณด์ผ ์ ์์ง๋งโ์ค์ ๋ก๋ ๋ชจ๋ ๊ฒ์ ๋จ์ํํ๋ฉด์ ๋ค์๊ณผ ๊ฐ์ ์ ์ ์ ๊ณตํฉ๋๋ค:
- ๋ ๋์ ํตํฉ โ
- ๋ ๋์ ๋ณด์ โ
- ๋ ๋์ ํ์ฅ์ฑ โ
- ๋ ๋ง์กฑ์ค๋ฌ์ด ๊ฐ๋ฐ์ ๋ฐ ์ฌ์ฉ์ โ
โจ mcpo๋ฅผ ์ฌ์ฉํ๋ฉด, ๋ก์ปฌ ์ ์ฉ AI ๋๊ตฌ๊ฐ ํด๋ผ์ฐ๋ ์ค๋น ์๋ฃ, UI ์นํ์ , ์ฆ์ ์ํธ์ด์ฉ ๊ฐ๋ฅํ๊ฒ ๋ฉ๋๋คโํด ์๋ฒ ์ฝ๋ ํ ์ค๋ ๋ณ๊ฒฝํ์ง ์๊ณ .
โ ๋น ๋ฅธ ์์: ๋ก์ปฌ์์ ํ๋ก์ ์คํํ๊ธฐโ
๊ฐ๋ณ๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ํด mcpo๋ฅผ ์ฌ์ฉํ์ฌ MCP-to-OpenAPI ํ๋ก์ ์๋ฒ๋ฅผ ์คํํ๋ ์ฝ๊ฒ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค (GitHub ๋ ํฌ์งํ ๋ฆฌ):
-
์ฌ์ ์ค๋น๋ฌผ
pip
์ด ์ค์น๋ Python 3.8+- MCP ํธํ ์ ํ๋ฆฌ์ผ์ด์
(์:
mcp-server-time
) - (๊ถ์ฅ)
uv
์ ์ค์นํ์ฌ ๋น ๋ฅธ ์์ ๋ฐ ์ค์ ์์ด ๊ฐํธํ ์ฌ์ฉ.
-
mcpo ์ค์นํ๊ธฐ
uv๋ฅผ ์ฌ์ฉํ์ฌ ์ค์น(๊ถ์ฅ):
uvx mcpo --port 8000 -- your_mcp_server_command
๋๋ pip
์ ์ฌ์ฉํ์ฌ ์ค์น:
pip install mcpo
mcpo --port 8000 -- your_mcp_server_command