Confluence Wiki管理协议

一个用于管理Confluence Wiki页面的MCP服务器,支持页面创建、修改、删除和搜索等功能。

  • by koreaOkey
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 koreaOkey/wiki_mcp_poc

使用说明

维基mcp

管理Confluence维基页面的模型上下文协议(MCP)服务器。

🚀 功能

  • 浏览页面(wiki_get_page)
  • 生成页面(wiki_create_page)
  • 修改页面(wiki_update_page)
  • 删除页面(wiki_delete_page)
  • 搜索页面(wiki_search)
  • 浏览空间列表(wiki_get_spaces)

📋 需求

  • Python 3.10+
  • Docker(使用容器时)
  • Confluence Server/Data Center或Confluence Cloud

🔧 设置环境变量

Confluence连接设置

方法1:断开IP和端口(建议) 🌟

环境变量 必需 默认值 说明 示例
CONFLUENCE_HOST ✅ localhost Confluence服务器IP/域 192.168.1.100
CONFLUENCE_PORT ❌ 8090 Confluence服务器端口 8090
CONFLUENCE_PROTOCOL ❌ http 协议 http / https

方法2:输入完整URL

环境变量 必需 默认值 说明 示例
CONFLUENCE_URL ENT--Confluence完整URL http://192.168.1.100:8090

💡 优先级: CONFLUENCE_URL > CONFLUENCE_HOST + CONFLUENCE_PORT

认证设置

环境变量 必需 默认值 说明 示例
CONFLUENCE_PERSONAL_TOKEN ✅ - 个人访问令牌(服务器/DC용) OTEzNjg...
CONFLUENCE_USERNAME - 用户名(适用于Cloud) user@company.com
CONFLUENCE_API_TOKEN --API令牌(用于云) ATATT3x...
CONFLUENCE_SSL_VERIFY ❌ true 验证SSL证书 true / false

认证方式:

  • 服务器/DC: CONFLUENCE_PERSONAL_TOKEN 必需
  • 云: CONFLUENCE_USERNAME + CONFLUENCE_API_TOKEN 必需

MCP服务器设置

环境变量 必需 默认值 说明 示例
MCP_TRANSPORT ❌ sse 通信方式 sse / stdio
MCP_HOST ❌ 0.0.0.0 侦听IP(允许外部连接) 0.0.0.0 / 192.168.1.200
MCP_PORT ❌ 8002 服务端口 8002 / 8080

💡 MCP_HOST设置:

  • 0.0.0.0:允许所有网络接口连接(建议)
  • 127.0.0.1:仅允许localhost连接
  • 192.168.1.200:仅从特定IP进行监听(增强安全性)

🐳 使用Docker

1映像构建

cd mcp-wiki
docker build -t wiki-mcp:latest .

运行2⃣容器

本地测试(localhost:8090)

docker run -d \
  --name wiki-mcp-server \
  -p 8002:8002 \
  -e CONFLUENCE_PERSONAL_TOKEN="your-token-here" \
  wiki-mcp:latest

💡 简单! HOST和PORT是默认值(localhost:8090)。

输入IP和端口分离(建议) 🌟

docker run -d \
  --name wiki-mcp-server \
  -p 8002:8002 \
  -e CONFLUENCE_HOST="192.168.1.100" \
  -e CONFLUENCE_PORT="8090" \
  -e CONFLUENCE_PERSONAL_TOKEN="your-token-here" \
  wiki-mcp:latest

输入完整URL

docker run -d \
  --name wiki-mcp-server \
  -p 8002:8002 \
  -e CONFLUENCE_URL="http://192.168.1.100:8090" \
  -e CONFLUENCE_PERSONAL_TOKEN="your-token-here" \
  wiki-mcp:latest

使用HTTPS

docker run -d \
  --name wiki-mcp-server \
  -p 8002:8002 \
  -e CONFLUENCE_PROTOCOL="https" \
  -e CONFLUENCE_HOST="wiki.company.com" \
  -e CONFLUENCE_PORT="443" \
  -e CONFLUENCE_PERSONAL_TOKEN="your-token-here" \
  wiki-mcp:latest

使用环境文件(.env)

# .env 파일 생성
cat > .env << EOF
CONFLUENCE_HOST=192.168.1.100
CONFLUENCE_PORT=8090
CONFLUENCE_PROTOCOL=http
CONFLUENCE_PERSONAL_TOKEN=your-token-here
MCP_PORT=8002
EOF

# 실행
docker run -d \
  --name wiki-mcp-server \
  -p 8002:8002 \
  --env-file .env \
  wiki-mcp:latest

3检查日志

docker logs -f wiki-mcp-server

4停止/删除容器

docker stop wiki-mcp-server
docker rm wiki-mcp-server

📦 部署封闭网络

保存1 ENT⃣图像

docker save wiki-mcp:latest -o wiki-mcp-image.tar

文件传输到2⃣封闭网络

  • wiki-mcp-image.tar 将文件复制到封闭网络服务器

加载并运行3⃣映像

# 이미지 로드
docker load -i wiki-mcp-image.tar

# 폐쇄망 A 실행
docker run -d \
  --name wiki-mcp-server \
  -p 8002:8002 \
  -e CONFLUENCE_HOST="192.168.1.100" \
  -e CONFLUENCE_PORT="8090" \
  -e CONFLUENCE_PERSONAL_TOKEN="폐쇄망A-토큰" \
  wiki-mcp:latest

# 폐쇄망 B 실행 (IP만 다름)
docker run -d \
  --name wiki-mcp-server \
  -p 8002:8002 \
  -e CONFLUENCE_HOST="10.0.0.50" \
  -e CONFLUENCE_PORT="8090" \
  -e CONFLUENCE_PERSONAL_TOKEN="폐쇄망B-토큰" \
  wiki-mcp:latest

💡 封闭网络部署技巧

典型情况(标准端口)

# 환경마다 IP만 변경
# 폐쇄망 A
-e CONFLUENCE_HOST="192.168.1.100"

# 폐쇄망 B
-e CONFLUENCE_HOST="10.20.30.40"

# 폐쇄망 C
-e CONFLUENCE_HOST="172.16.0.10"

💡 端口使用默认值(8090)

特殊情况(非标准端口)

# 포트가 다른 경우
-e CONFLUENCE_HOST="192.168.1.100"
-e CONFLUENCE_PORT="9090"

需要更改的项目

项目 因环境而异 示例
✅ 汇流成本 IP地址 192.168.1.100
✅ 汇流_个人_令牌 代币(安全) OTEzNjg...
⚠️ 汇流口 仅当端口为非标准端口时 9090

不需要更改的项目

项目 默认值 原因
❌ MCP端口 8002 标准端口
❌ MCP_HOST 0.0.0.0 标准设置
❌ 汇流口 8090 Confluence默认端口
❌ 汇流协议 http 封闭网络通常是HTTP

💻 本地开发

1安装依赖性

# uv 설치 (Windows PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# 프로젝트 의존성 설치
cd mcp-wiki
uv sync

设置2⃣环境变量

# .env 파일 생성
cat > .env << EOF
CONFLUENCE_HOST=localhost
CONFLUENCE_PORT=8090
CONFLUENCE_PERSONAL_TOKEN=your-token-here
EOF

运行3⃣

# SSE 모드 (권장)
uv run wiki-mcp --transport sse --port 8002

# 또는 환경 변수 사용
export MCP_PORT=8002
uv run wiki-mcp

🔌 Cursor IDE集成

1️⃣ mcp.json 设置

本地环境(wiki-mcp在同一台PC上运行)

Cursor设置文件(C:\Users\<username>\.cursor\mcp.json):

{
  "mcpServers": {
    "wiki-mcp": {
      "url": "http://localhost:8002/sse"
    }
  }
}

远程服务器环境(wiki-mcp在其他服务器上运行)

{
  "mcpServers": {
    "wiki-mcp": {
      "url": "http://192.168.1.200:8002/sse"
    }
  }
}

💡 192.168.1.200请更改为wiki-mcp服务器的实际IP地址。

重新启动2⃣Cursor

完全退出并重新启动Cursor时,将自动连接。

3使用示例

wiki-mcp로 TES 스페이스의 페이지 목록 알려줘
wiki-mcp로 페이지 ID 98371 내용 가져와줘

🖥️ 远程服务器部署

场景:在单独的服务器上运行wiki-mcp

在1⃣服务器上运行

# 서버 192.168.1.200에서 실행
docker run -d \
  --name wiki-mcp-server \
  -p 8002:8002 \
  -e MCP_HOST="0.0.0.0" \
  -e MCP_PORT="8002" \
  -e CONFLUENCE_HOST="192.168.1.100" \
  -e CONFLUENCE_PORT="8090" \
  -e CONFLUENCE_PERSONAL_TOKEN="토큰" \
  wiki-mcp:latest

环境变量说明:

  • MCP_HOST="0.0.0.0":启用外部连接
  • MCP_PORT="8002":服务端口
  • CONFLUENCE_HOST:Confluence服务器IP
  • CONFLUENCE_PORT:Confluence服务器端口

2防火墙设置

# Linux (firewalld)
sudo firewall-cmd --add-port=8002/tcp --permanent
sudo firewall-cmd --reload

# Windows
New-NetFirewallRule -DisplayName "wiki-mcp" -Direction Inbound -LocalPort 8002 -Protocol TCP -Action Allow

3客户机PC连接

mcp.json:

{
  "mcpServers": {
    "wiki-mcp": {
      "url": "http://192.168.1.200:8002/sse"
    }
  }
}

网络配置

PC A (Cursor)
    │
    │ HTTP
    ▼
서버 B (192.168.1.200)
    wiki-mcp:8002
    │
    │ REST API
    ▼
서버 C (192.168.1.100)
    Confluence:8090

🔑 创建Personal Access Token

汇流服务器/数据中心

  1. Confluence登录
  2. 配置文件图标→ 设置
  3. 左侧菜单→ 个人访问令牌
  4. 创建令牌 单击
  5. 输入名称后 创建
  6. 复制生成的令牌(无法再次查看!)

🛠️ 故障排除

1⃣“未设置Confluence URL”

# 방법 1: HOST와 PORT 설정
export CONFLUENCE_HOST="192.168.1.100"
export CONFLUENCE_PORT="8090"

# 방법 2: 전체 URL 설정
export CONFLUENCE_URL="http://192.168.1.100:8090"

2⃣“未设置身份验证信息”

# Server/DC
export CONFLUENCE_PERSONAL_TOKEN="your-token"

# Cloud
export CONFLUENCE_USERNAME="user@email.com"
export CONFLUENCE_API_TOKEN="your-api-token"

3 SSL证书错误

export CONFLUENCE_SSL_VERIFY=false

4集装箱无法启动

# 로그 확인
docker logs wiki-mcp-server

# 환경 변수 확인
docker exec wiki-mcp-server env | grep CONFLUENCE

📚 环境变量优先级

URL解析顺序:

  1. 直接作为参数传递的 url (最优先)
  2. 环境变量 CONFLUENCE_URL (完整URL)
  3. 环境变量 CONFLUENCE_HOST + CONFLUENCE_PORT + CONFLUENCE_PROTOCOL (组合)

📄 许可证

该项目可用于个人和商业用途。