minhoyooDEV/confluence-mcp-server
If you are the rightful owner of confluence-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Confluence MCP Server is a Model Context Protocol server system designed to access the Confluence API using a Personal Access Token, acting as an intermediary server within a VPN area.
Confluence MCP Server
Confluence API์ ์ ๊ทผํ๊ธฐ ์ํ Model Context Protocol ์๋ฒ ์์คํ ์ ๋๋ค. Personal Access Token์ ์ฌ์ฉํ์ฌ Confluence์ ํต์ ํฉ๋๋ค. VPN ์์ญ ๋ด์์ Confluence API์ ์ ๊ทผํ๊ธฐ ์ํ ์ค๊ฐ ์๋ฒ ์ญํ ์ ํฉ๋๋ค.
์์คํ ๊ตฌ์ฑ
์ด ํ๋ก์ ํธ๋ ๋ ๊ฐ์ง ์๋ฒ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค:
-
MCP ์๋ฒ (server.ts): Confluence API์ ํต์ ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์ฃผ ์๋ฒ์ ๋๋ค.
- ๊ธฐ๋ณธ ํฌํธ: 3000
- RESTful API ์ ๊ณต
- MCP ํ๋กํ ์ฝ ์ฒ๋ฆฌ
-
ํ๋ก์ ์๋ฒ (proxyServer.ts): MCP ํด๋ผ์ด์ธํธ์ MCP ์๋ฒ ์ฌ์ด์ ํ๋ก์ ์ญํ ์ ํฉ๋๋ค.
- ๊ธฐ๋ณธ ํฌํธ: 3001
- MCP ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์์ฒญ์ ๋ฐ์ ์ฃผ ์๋ฒ๋ก ์ ๋ฌ
์ด ๊ตฌ์กฐ๋ VPN ์์ญ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ค๊ณ๋์์ต๋๋ค. MCP ์๋ฒ๋ VPN ๋ด๋ถ์์ ์คํ๋์ด Confluence API์ ์ ๊ทผํ๊ณ , ํ๋ก์ ์๋ฒ๋ ์ธ๋ถ์์ ์ ๊ทผ ๊ฐ๋ฅํ ํ๊ฒฝ์์ ์คํ๋ฉ๋๋ค.
๊ธฐ๋ฅ
- ๋ชจ๋ Confluence ์คํ์ด์ค ๋ชฉ๋ก ์กฐํ
- ํน์ ์คํ์ด์ค ๋ด์ ๋ชจ๋ ํ์ด์ง ์กฐํ
- ํ์ด์ง ID๋ก ํน์ ํ์ด์ง ์ ๋ณด ์กฐํ
- ์ ํ์ด์ง ์์ฑ
- ๊ธฐ์กด ํ์ด์ง ์ ๋ฐ์ดํธ
์ค์น ๋ฐ ์ค์
ํ์ ์กฐ๊ฑด
- Node.js 16.x ์ด์
- Bun 1.0.0 ์ด์
์ค์น
# ์ ์ฅ์ ํด๋ก
git clone https://github.com/yourusername/confluence-mcp-server.git
cd confluence-mcp-server
# ์์กด์ฑ ์ค์น
bun install
ํ๊ฒฝ ๋ณ์ ์ค์
.env
ํ์ผ์ ํ๋ก์ ํธ ๋ฃจํธ์ ์์ฑํ๊ณ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํฉ๋๋ค:
PORT=3000
PROXY_PORT=3001
MCP_SERVER_URL=http://localhost:3000
CONFLUENCE_BASE_URL=https://wiki.musinsa.com
PERSONAL_ACCESS_TOKEN=your_personal_access_token
NODE_ENV=development
์คํ
๊ฐ๋ฐ ํ๊ฒฝ
# MCP ์๋ฒ ์คํ (Confluence API์ ํต์ )
bun run dev
# ํ๋ก์ ์๋ฒ ์คํ (MCP ํด๋ผ์ด์ธํธ์ ํต์ )
bun run dev:proxy
# MCP ์๋ฒ Stdio ๋ชจ๋ ์คํ (์ ํ ์ฌํญ)
bun run dev:stdio
ํ๋ก๋์ ํ๊ฒฝ
# ๋น๋
bun run build
# MCP ์๋ฒ ์คํ
bun run serve
# ํ๋ก์ ์๋ฒ ์คํ
bun run serve:proxy
์๋ํฌ์ธํธ
MCP ์๋ฒ ์๋ํฌ์ธํธ (๊ธฐ๋ณธ ํฌํธ: 3000)
- POST /mcp - MCP ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋ฉ์ธ ์๋ํฌ์ธํธ
- GET /mcp/tools - ์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ ๋ชฉ๋ก ์กฐํ
- GET /api/spaces - ๋ชจ๋ ์คํ์ด์ค ๋ชฉ๋ก ์กฐํ
- GET /api/spaces/:spaceKey/pages - ํน์ ์คํ์ด์ค์ ํ์ด์ง ๋ชฉ๋ก ์กฐํ
- GET /api/pages/:pageId - ํน์ ํ์ด์ง ์ ๋ณด ์กฐํ
- POST /api/pages - ์ ํ์ด์ง ์์ฑ
- PUT /api/pages/:pageId - ํ์ด์ง ์ ๋ฐ์ดํธ
- GET /health - ์๋ฒ ์ํ ํ์ธ
ํ๋ก์ ์๋ฒ ์๋ํฌ์ธํธ (๊ธฐ๋ณธ ํฌํธ: 3001)
- POST /mcp - MCP ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ฐ์ MCP ์๋ฒ๋ก ์ ๋ฌ
- GET /tools - ์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ ๋ชฉ๋ก ์กฐํ
- GET /health - ํ๋ก์ ์๋ฒ ์ํ ํ์ธ
๋ฌธ์ ํด๊ฒฐ
VPN ์์ญ ๋ฌธ์ ํด๊ฒฐ
์ด ํ๋ก์ ํธ๋ VPN ์์ญ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ์๋ฒ๋ก ๋ถ๋ฆฌ๋์์ต๋๋ค:
- MCP ์๋ฒ๋ VPN ๋ด๋ถ์์ ์คํํ์ฌ Confluence API์ ์ง์ ์ ๊ทผํฉ๋๋ค.
- ํ๋ก์ ์๋ฒ๋ ์ธ๋ถ์์ ์ ๊ทผ ๊ฐ๋ฅํ ํ๊ฒฝ์์ ์คํํ์ฌ MCP ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ์ต๋๋ค.
์ด ๊ตฌ์ฑ์ MCP ํด๋ผ์ด์ธํธ๊ฐ ์ง์ Confluence API์ ์ ๊ทผํ ์ ์๋ ์ํฉ์์ ์ค๊ฐ ์ญํ ์ ํฉ๋๋ค.
"Error fetching spaces: Unable to connect" ์ค๋ฅ
์ด ์ค๋ฅ๋ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ก ๋ฐ์ํ ์ ์์ต๋๋ค:
-
HTTPS ์ธ์ฆ์ ๋ฌธ์ : ๊ฐ๋ฐ ํ๊ฒฝ์์๋ SSL ์ธ์ฆ์ ๊ฒ์ฆ์ด ๋นํ์ฑํ๋์ด ์์ง๋ง, ํ๋ก๋์ ํ๊ฒฝ์์๋ ์ฌ๋ฐ๋ฅธ ์ธ์ฆ์ ์ค์ ์ด ํ์ํฉ๋๋ค.
-
๋คํธ์ํฌ ์ฐ๊ฒฐ ๋ฌธ์ : ๋ฐฉํ๋ฒฝ์ด๋ ํ๋ก์ ์ค์ ์ผ๋ก ์ธํด Confluence ์๋ฒ์ ์ ๊ทผํ ์ ์๋ ๊ฒฝ์ฐ์ ๋๋ค.
-
Personal Access Token ๋ฌธ์ : ํ ํฐ์ด ๋ง๋ฃ๋์๊ฑฐ๋ ์๋ชป๋ ํ์์ผ ์ ์์ต๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
.env
ํ์ผ์CONFLUENCE_BASE_URL
์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธํฉ๋๋ค.- Personal Access Token์ด ์ ํจํ์ง ํ์ธํฉ๋๋ค.
- ๋ฐฉํ๋ฒฝ ์ค์ ์ ํ์ธํ์ฌ Confluence ์๋ฒ์ ์ ๊ทผํ ์ ์๋์ง ํ์ธํฉ๋๋ค.
- ๋คํธ์ํฌ ๊ด๋ฆฌ์์๊ฒ ๋ฌธ์ํ์ฌ ์ ๊ทผ ๊ถํ์ ํ์ธํฉ๋๋ค.
- MCP ์๋ฒ์ ํ๋ก์ ์๋ฒ ๊ฐ์ ์ฐ๊ฒฐ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค (
MCP_SERVER_URL
์ค์ ).
ํ ์คํธ
# ๋ชจ๋ ํ
์คํธ ์คํ
bun test
# ํน์ ํ
์คํธ ์คํ
bun test src/test/getSpaces.test.ts
๋ฐฐํฌ ๊ตฌ์ฑ
๊ถ์ฅ ๋ฐฐํฌ ๊ตฌ์ฑ
ํ๋ก๋์ ํ๊ฒฝ์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฐํฌ ๊ตฌ์ฑ์ ๊ถ์ฅํฉ๋๋ค:
- MCP ์๋ฒ: VPN ๋ด๋ถ ๋๋ Confluence ์๋ฒ์ ์ ๊ทผํ ์ ์๋ ๋คํธ์ํฌ์ ๋ฐฐํฌ
- ํ๋ก์ ์๋ฒ: MCP ํด๋ผ์ด์ธํธ๊ฐ ์ ๊ทผํ ์ ์๋ ๋คํธ์ํฌ์ ๋ฐฐํฌ
๋ณด์ ๊ณ ๋ ค์ฌํญ
- ํ๋ก์ ์๋ฒ์ MCP ์๋ฒ ๊ฐ์ ํต์ ์ HTTPS๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
- Personal Access Token์ ์์ ํ๊ฒ ๊ด๋ฆฌํ๊ณ , ํ์์ ๋ฐ๋ผ ์ ๊ธฐ์ ์ผ๋ก ๊ฐฑ์ ํ์ธ์.
- ํ๋ก๋์ ํ๊ฒฝ์์๋ ์ ์ ํ ์ธ์ฆ ๋ฉ์ปค๋์ฆ์ ์ถ๊ฐํ์ฌ ํ๋ก์ ์๋ฒ์ ๋ํ ๋ฌด๋จ ์ ๊ทผ์ ๋ฐฉ์งํ์ธ์.
๋ผ์ด์ผ์ค
MIT