๐งฉ Model Context Protocol (MCP) & Serena MCP ์ ๋ฆฌ
Claude์ Serena MCP ์ฐ๋ ๊ฐ๋ ๋ฐ ์ค์น/์ค์ ๊ฐ์ด๋
1. MCP๋?
MCP (Model Context Protocol) ์ Anthropic(Claude ๊ฐ๋ฐ์ฌ)์ด ์ ์ํ
AI ๋ชจ๋ธ๊ณผ ์ธ๋ถ ๋ฆฌ์์ค(ํ์ผ, DB, API ๋ฑ)๊ฐ ํ์คํ๋ ๋ฐฉ์์ผ๋ก ์ํธ์์ฉํ๋๋ก ํ๋ ์คํ ํ๋กํ ์ฝ์ด๋ค.
๐ก ํต์ฌ ๋ชฉ์
- AI ๋ชจ๋ธ์ด ์ธ๋ถ ์์คํ ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ ์ ์๊ฒ ํจ
- ๊ธฐ์กด์ โ์ปค์คํ ํ๋ฌ๊ทธ์ธ/ํด ์ฐ๊ฒฐ ๋ฌธ์ (NรM)โ๋ฅผ ํ๋์ ํตํฉ ์ธํฐํ์ด์ค๋ก ๋จ์ํ
๐ง ์ฃผ์ ํน์ง
| ํญ๋ชฉ | ์ค๋ช | |โโ|โโ| | ํต์ ๋ฐฉ์ | JSON-RPC 2.0 ๊ธฐ๋ฐ ์๋ฐฉํฅ ํต์ | | ๊ตฌ์กฐ | ํด๋ผ์ด์ธํธ(๋ชจ๋ธ) โ MCP ์๋ฒ(๋ฆฌ์์ค ์ ๊ณต์) | | ๋ณด์ | ๋ช ์์ ๊ถํ ์์ฒญ / ์น์ธ ๊ธฐ๋ฐ ์ ๊ทผ | | ํ์ฉ ๋ฒ์ | ํ์ผ ์ฝ๊ธฐ, API ํธ์ถ, ๋ฐ์ดํฐ ์กฐํ, ์ฝ๋๋ฒ ์ด์ค ๋ถ์ ๋ฑ |
2. MCP์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
+----------------+
| Claude / LLM | โ ํด๋ผ์ด์ธํธ
+--------+-------+
|
| JSON-RPC ์์ฒญ (MCP ํ๋กํ ์ฝ)
โ
+--------+-------+
| MCP Server | โ ์ธ๋ถ ๋ฆฌ์์ค ์ ๊ทผ ์๋ฒ
| (์: Serena) |
+--------+-------+
|
โ
+----------------+
| Files / DB / APIs |
+----------------+
3. Serena MCP๋?
Serena MCP๋ MCP ํ์ค์ ๊ตฌํํ ์ฝ๋๋ฒ ์ด์ค ๋ถ์์ฉ ์๋ฒ์ด๋ค.
Claude Code ๋๋ Claude Desktop ๋ฑ๊ณผ ์ฐ๋๋์ด,
AI๊ฐ ํ๋ก์ ํธ์ ์ ์ฒด ์ฝ๋๋ฅผ ๊ตฌ์กฐ์ ์ผ๋ก ์ดํดํ ์ ์๊ฒ ๋๋๋ค.
๐งฐ Serena MCP์ ์ญํ
| ๊ธฐ๋ฅ | ์ค๋ช | |โโ|โโ| | ์ฝ๋ ์ธ๋ฑ์ฑ | ํ๋ก์ ํธ ์ ์ฒด ํ์ผ์ ์ค์บํ๊ณ , ํจ์/ํด๋์ค ๊ด๊ณ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์คํ | | ์ฐธ์กฐ ์ถ์ | ํจ์ ํธ์ถ ๊ด๊ณ, ํด๋์ค ์์, ๋ณ์ ์ฐธ์กฐ ๋ฑ์ ์ถ์ | | ๋น ๋ฅธ ๊ฒ์ | Claude์ ์์ฒญ์ ๋ง์ถฐ ๊ด๋ จ ์ฝ๋๋ ํ์ผ์ ์ฆ์ ๋ฐํ | | ๋ฌธ๋งฅ ๊ด๋ฆฌ | ๋๊ท๋ชจ ์ฝ๋์์ ๋ชจ๋ธ์ด ์ฒ๋ฆฌ ๊ฐ๋ฅํ ๋ฒ์๋ฅผ ๊ด๋ฆฌ | | MCP ํต์ | Claude์ JSON-RPC๋ก ๋ช ๋ น/์๋ต ์ฒ๋ฆฌ |
4. Claude Code + Serena MCP ์ฐ๊ฒฐ ํ๋ฆ
1
2
3
4
5
6
7
8
9
10
11
์ฌ์ฉ์ ์์ฒญ
โ
Claude Code (ํด๋ผ์ด์ธํธ)
โ
[MCP ์์ฒญ]
โ
Serena MCP (์๋ฒ)
โ
์ฝ๋๋ฒ ์ด์ค / ํ์ผ ์์คํ
์๋ฅผ ๋ค์ด ์ฌ์ฉ์๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๋ฌป๋๋ค๋ฉด:
โ
UserServiceํด๋์ค๊ฐ ์ด๋์ ์ฌ์ฉ๋๋์?โ
- Claude Code๊ฐ MCP ์์ฒญ์ ๋ณด๋
- Serena MCP๊ฐ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ํ์
- ํธ์ถ ์์น๋ฅผ ์ฐพ์ JSON ์๋ต
- Claude Code๊ฐ ์์ฐ์ด๋ก ๊ฒฐ๊ณผ๋ฅผ ์์ฝํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค
5. Serena MCP ์ค์น ์์ฝ (์์)
1
2
3
4
5
6
7
8
9
10
11
12
13
# 1๏ธโฃ ์ ์ฅ์ ํด๋ก
git clone https://github.com/oraios/serena
cd serena
# 2๏ธโฃ ์์กด์ฑ ์ค์น (uv ์ฌ์ฉ)
uv sync
# 3๏ธโฃ MCP ์๋ฒ ์คํ
uv run --directory /path/to/serena serena-mcp-server --context ide-assistant
# 4๏ธโฃ Claude Code์ ์๋ฒ ๋ฑ๋ก
claude mcp add serena -- \
uvx --from git+https://github.com/oraios/serena serena-mcp-server --context ide-assistant
โ๏ธ ์ค์ ํ์ผ: ~/.serena/serena_config.yml
1
2
web_dashboard: false
read_only: true
6. Claude โ Serena ์ฐ๋ ์ค์
๐งฉ ์ ์ญ ์ค์ (๊ถ์ฅ)
Claude Desktop์ MCP ์๋ฒ ๋ชฉ๋ก์ ์ ์ญ ํ์ผ(servers.json)๋ก ๊ด๋ฆฌํ๋ค.
Mac ์์ ๊ฒฝ๋ก:
1
~/Library/Application Support/Claude/servers.json
Linux ์์ ๊ฒฝ๋ก:
1
~/.config/Claude/servers.json
โ๏ธ ์์ ์ค์
1
2
3
4
5
6
7
8
9
10
11
12
{
"servers": [
{
"id": "serena",
"name": "Serena MCP Server",
"command": "uv",
"args": ["run", "--directory", "/Users/you/serena", "serena", "start-mcp-server"],
"env": {},
"autoStart": true
}
]
}
Claude๋ฅผ ์ฌ์์ํ๋ฉด ์๋์ผ๋ก Serena MCP ์๋ฒ๋ฅผ ๊ฐ์งํ๊ณ ์ฐ๊ฒฐํ๋ค.
โSerena MCP Server connectedโ ๋ฉ์์ง๊ฐ ํ์๋๋ฉด ์ฑ๊ณต ๐
7. ๊ณ ๊ธ ์ค์ (์ ํ ์ฌํญ)
๐ง ์ฌ๋ฌ ํ๋ก์ ํธ์์ ๋ค๋ฅธ Serena ์ธ์คํด์ค ์ฌ์ฉํ๊ธฐ
๊ธฐ๋ณธ์ ์ผ๋ก servers.json์ ์ ์ญ ์ค์ ์ด์ง๋ง, ์๋ก ๋ค๋ฅธ ํ๋ก์ ํธ๋ณ๋ก ๋ค๋ฅธ Serena ์๋ฒ๋ฅผ ๋ฑ๋กํ ์๋ ์๋ค.
์์
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"servers": [
{
"id": "serena-dev",
"name": "Serena (Dev)",
"command": "uv",
"args": ["run", "--directory", "/Users/you/dev/serena", "serena", "start-mcp-server"]
},
{
"id": "serena-prod",
"name": "Serena (Prod)",
"command": "uv",
"args": ["run", "--directory", "/Users/you/prod/serena", "serena", "start-mcp-server"]
}
]
}
๋๋ ํ๊ฒฝ๋ณ์ ๊ธฐ๋ฐ์ผ๋ก๋ ์ง์ ๊ฐ๋ฅํ๋ค.
1
2
3
4
5
6
7
8
9
10
{
"servers": [
{
"id": "serena",
"name": "Serena (Dynamic)",
"command": "uv",
"args": ["run", "--directory", "$SERENA_PATH", "serena", "start-mcp-server"]
}
]
}
1
2
3
# ํ๋ก์ ํธ๋ณ๋ก ํ๊ฒฝ๋ณ์ ์ค์ ํ ์คํ
export SERENA_PATH=/Users/you/myproject/serena
claude &
8. ์ฅ์ ๋ฐ ์ฃผ์์ฌํญ
โ ์ฅ์
- ์ฝ๋ ์ดํด๋ ฅ ํฅ์ (ํจ์ ๊ด๊ณ, ํธ์ถ ์ถ์ ๋ฑ)
- ๋๊ท๋ชจ ํ๋ก์ ํธ ํ์ ์๋ ๊ฐ์
- Claude Code์ ๋งฅ๋ฝ ํ์ง ํฅ์
- uv ๊ธฐ๋ฐ ์ค์น๋ก ๋น ๋ฅด๊ณ ๊ฐ๋ฒผ์
- Claude์ ์๋ ํต์ (MCP ํ๋กํ ์ฝ ํ์ค)
โ ๏ธ ์ฃผ์์ฌํญ
- ํ๋ก์ ํธ์ ์ ๊ทผ ๊ถํ์ด ์๋ ๊ฒฝ์ฐ์๋ง ์คํ
read_only๋ชจ๋ ๊ถ์ฅ (์ฝ๋ ์์ ๋ฐฉ์ง)servers.json์ ์ ์ญ ์ ์ฉ์ด๋ฏ๋ก, ์๋ชป๋ ๊ฒฝ๋ก ์ค์ ์ Claude ์ ์ฒด์์ ์๋ฌ ๋ฐ์
9. ์์ฝ
| ๊ตฌ๋ถ | ์ค๋ช |
|---|---|
| MCP | ๋ชจ๋ธ์ด ์ธ๋ถ ๋ฆฌ์์ค์ ํต์ ํ๊ธฐ ์ํ ์คํ ํ๋กํ ์ฝ |
| Serena MCP | ์ฝ๋๋ฒ ์ด์ค ๊ตฌ์กฐ๋ฅผ Claude์ ์ ๊ณตํ๋ MCP ์๋ฒ |
| Claude Code | ์ฌ์ฉ์ ๋ช ๋ น์ ์ดํดํ๊ณ Serena MCP๋ก๋ถํฐ ๋ฐ์ดํฐ ์์ฒญ |
| ํต์ฌ ์ฅ์ | ์ฝ๋ ํ์ยท๋ฆฌํฉํ ๋งยท๋งฅ๋ฝ ์ดํด ํฅ์ |
| ํ์ ์กฐ๊ฑด | Python + uv ํ๊ฒฝ, ๋ก์ปฌ ์๋ฒ ์คํ ๊ถํ |
| ์ฐ๊ฒฐ ๋ฐฉ์ | Claude โ Serena ๊ฐ JSON-RPC ๊ธฐ๋ฐ ์๋ฐฉํฅ ํต์ |
| ์ค์ ์์น | ์ ์ญ: servers.json / ๋ก์ปฌ: ~/.serena/config.yml |
๋ฐ๋ก ๊ทธ ๋ด์ฉ ์น์ ํ๋ ์ถ๊ฐํ๋ฉด ๋ฑ ์ข๊ฒ ๋ค. ์๋ ๋ธ๋ก์ โ10. Codex์ Serena MCP ์ฐ๋ํ๊ธฐโ ๊ฐ์ ์ ๋ชฉ์ผ๋ก ๊ทธ๋๋ก ๋ถ์ฌ ๋ฃ์ผ๋ฉด ๋๋ค.
10. Codex์ Serena MCP ์ฐ๋ํ๊ธฐ
Serena MCP๋ Claude๋ฟ๋ง ์๋๋ผ Codex CLI์์๋ ๊ทธ๋๋ก MCP ์๋ฒ๋ก ์ฌ์ฉํ ์ ์๋ค. Codex๋ MCP ํด๋ผ์ด์ธํธ์ด๊ธฐ ๋๋ฌธ์, ~/.codex/config.toml ์ Serena ์๋ฒ ์คํ ์ปค๋งจ๋๋ฅผ ๋ฑ๋กํด ๋๋ฉด ๋๋ค.([OpenAI Developers][1])
10.1 ์ฌ์ ์ค๋น
- Codex CLI ์ค์น
1
2
3
npm install -g @openai/codex@latest
codex --version
codex login
- uv ์ค์น (Serena ์คํ์ฉ) ([Playbooks][2])
1
2
3
4
5
curl -LsSf https://astral.sh/uv/install.sh | sh
# ์ค์น ํ PATH์ ์ถ๊ฐ (Linux / macOS ์์)
export PATH="$HOME/.local/bin:$PATH"
uvx --version
โ ๏ธ
uvx: command not found๊ฐ ๋์ค๋ฉด, Codex๊ฐ ๋จ๋ ์ ํ๋กํ์ผ(.zshrc,.bashrc๋ฑ)์PATH="$HOME/.local/bin:$PATH"๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค.
10.2 Codex MCP ์ค์ ํ์ผ์ Serena ๋ฑ๋ก
Codex๋ MCP ์ค์ ์ ~/.codex/config.toml ์ ์ ์ฅํ๋ค.([OpenAI Developers][1])
- macOS / Linux:
~/.codex/config.toml - Windows:
C:\Users\<๊ณ์ >\.codex\config.toml(์์ผ๋ฉด ์ง์ ์์ฑ)
ํ์ผ์ ์๋ ๋ธ๋ก์ ์ถ๊ฐํ๋ค(์์ผ๋ฉด ์ ํ์ผ๋ก ๋ง๋ค์ด๋ ๋จ):
1
2
3
4
5
6
7
8
9
10
11
[mcp_servers.serena]
command = "uvx"
args = [
"--from", "git+https://github.com/oraios/serena",
"serena", "start-mcp-server",
"--context", "codex"
]
# (์ต์
) Serena ๊ธฐ๋/ํด ์คํ ํ์์์ ์กฐ์
startup_timeout_sec = 120
tool_timeout_sec = 600
mcp_servers.serena- Codex์์ ๋ณด์ด๋ ์๋ฒ ์ด๋ฆ(์ํ๋ฉด
serena-code๋ฑ์ผ๋ก ๋ฐ๊ฟ๋ ๋จ).([OpenAI Developers][1])
- Codex์์ ๋ณด์ด๋ ์๋ฒ ์ด๋ฆ(์ํ๋ฉด
command = "uvx"- Codex๊ฐ MCP ์๋ฒ๋ฅผ ๋์ธ ๋ ์คํํ ๋ช ๋ น.
args = [...]- Serena ๊ณต์ ๋ฌธ์ ๊ถ์ฅ ํํ๋ก, Codex ์ ์ฉ ์ปจํ
์คํธ์ธ
--context codex๋ฅผ ๊ผญ ๋ถ์ฌ์ผ Codex์ ํธํ๋๊ฒ ํด ๊ตฌ์ฑ์ด ์กํ๋ค.([mcpindex.net][3])
- Serena ๊ณต์ ๋ฌธ์ ๊ถ์ฅ ํํ๋ก, Codex ์ ์ฉ ์ปจํ
์คํธ์ธ
10.3 Codex์์ ์ฐ๊ฒฐ ํ์ธ ๋ฐ ํ๋ก์ ํธ ํ์ฑํ
- Codex TUI ์คํ
1
codex
- MCP ์๋ฒ ์ฐ๊ฒฐ ์ํ ํ์ธ
Codex TUI ์์์:
1
/mcp
serena๊ฐ ๋ชฉ๋ก์ ๋ณด์ด๋ฉด MCP ์ฐ๊ฒฐ์ ์ฑ๊ณตํ ๊ฒ.([OpenAI Developers][1])
- ํ์ฌ ํ๋ก์ ํธ๋ฅผ Serena์ ํ์ฑํ
Serena ๊ณต์ ๊ฐ์ด๋์ ๋ฐ๋ผ, Codex์์๋ ๋ํ ์์์ ํ๋ก์ ํธ๋ฅผ ํ์ฑํํด์ผ ํด์ด ์ ๋๋ก ๋์ํ๋ค.([mcpindex.net][3])
Codex์๊ฒ ์ด๋ ๊ฒ ๋งํด์ค๋ค:
โActivate the current dir as project using serenaโ
ํน์:
โUse Serena to activate this directory as a projectโ
- ์ด ๊ณผ์ ์ ํ์ง ์์ผ๋ฉด Serena ํด์ด ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ ๋๋ก ๋ชป ๋ณธ๋ค.
- ํ ๋ฒ ํ์ฑํํ๋ฉด
~/.serena/serena_config.yml๊ณผ<ํ๋ก์ ํธ>/.serena/project.yml์ด ์์ฑ๋์ด ์ดํ๋ถํฐ๋ ๋ ๋นจ๋ฆฌ ๋ถ๋๋ค.([mcpindex.net][3])
- ์ ์ ๋์ ์ฌ๋ถ ๋ก๊ทธ ํ์ธ (์ ํ)
๋ฌธ์ ๊ฐ ์์ฌ๋๋ฉด:
1
tail -n 200 ~/.codex/log/codex-tui.log
์์ serena ๊ด๋ จ ์๋ฌ๊ฐ ์๋์ง ํ์ธํ ์ ์๋ค.([mcpindex.net][3])
10.4 Codex + Serena ์ฌ์ฉํ ๋ ํ / ์ฃผ์์ฌํญ
๋์๋ณด๋ Serena๋ ๊ธฐ๋ณธ์ ์ผ๋ก
http://localhost:24282/dashboard/index.html์ ์น ๋์๋ณด๋๋ฅผ ๋์ด๋ค. Codex์์ ๋ธ๋ผ์ฐ์ ์๋ ์คํ์ ๋งํ ์ ์์ผ๋, ์ฃผ์๋ฅผ ์ง์ ์ด์ด๋ณด๋ฉด ํ์ฌ ์ธ์ /๋ก๊ทธ๋ฅผ ํ์ธํ ์ ์๋ค.([mcpindex.net][3])ํด ์ํ๊ฐ
failed๋ก ๋ณด์ฌ๋ ์ค์ ๋ก ์ ์ Codex ์ชฝ ๋ฒ๊ทธ๋ก, Serena ํด ์คํ์ด ์ฑ๊ณตํ๋๋ฐ๋ UI์failed๋ก ํ์๋๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. Serena ๋ฌธ์์์๋ โ์๋ฌ์ฒ๋ผ ๋ณด์ฌ๋ ์ค์ ๋ก๋ ์ ๋์ํ๋ ๋ฌด์ํด๋ ๋๋คโ๊ณ ๋ช ์๋ผ ์๋ค.([mcpindex.net][3])ํ๋ก์ ํธ ์ธ๋ฑ์ฑ(์ต์ ) ํฐ ๋ ํฌ๋ผ๋ฉด ์ฒซ ํธ์ถ ์๋๋ฅผ ์ํด ํ ๋ฒ์ฏค ์๋๋ฅผ ์คํํด ๋๋ ๊ฑธ ๊ถ์ฅ:
1 2
# ํ๋ก์ ํธ ๋ฃจํธ์์ uvx --from git+https://github.com/oraios/serena serena project index
์ด๋ ๊ฒ ํด๋๋ฉด Codex๊ฐ Serena ํด์ ๋ถ๋ฅผ ๋ ์ฝ๋ ๊ฒ์/์ฐธ์กฐ ์ถ์ ์ด ํจ์ฌ ๋น ๋ฅด๋ค.([mcpindex.net][3])
โจ ํ๋ง๋๋ก MCP๋ โAI ๋ชจ๋ธ์ ์ธ๋ถ ๋ฆฌ์์ค์ ์ฐ๊ฒฐํ๋ ํ์ค ์ธํฐํ์ด์คโ์ด๊ณ , Serena MCP๋ ๊ทธ ํ์ค์ ํ์ฉํด Claude๊ฐ โ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ดํดํ๊ณ ํ์ํ ์ ์๊ฒ ๋๋ ๋ก์ปฌ ๋๊ตฌ ์๋ฒโ์ด๋ค.