README.md•3.02 kB
# Confluence MCP Server
基于 Model Context Protocol (MCP) 的 Confluence 文档访问服务,提供文档搜索和内容获取功能。
## 功能特性
- **文档搜索**
- 支持标题和全文搜索
- 限制返回结果数量
- 返回匹配内容片段和文档基本信息
- **文档内容获取**
- 获取完整的页面内容
- 包含元数据(标题、空间信息、版本等)
- 创建和修改信息
- 页面标签
## 快速开始
### 环境配置
创建 `.env` 文件配置 Confluence 访问信息:
```bash
CONFLUENCE_URL="your-confluence-url"
CONFLUENCE_USERNAME="your-username"
CONFLUENCE_PASSWORD="your-password"
# 或者使用 Token 认证
CONFLUENCE_TOKEN="your-api-token"
```
### 安装依赖
```bash
# 安装项目依赖
uv pip install -e .
# 或者直接安装依赖包
uv pip install "mcp[cli]>=1.5.0" "atlassian-python-api>=3.41.4" "typer>=0.9.0"
```
### 运行服务
```bash
# 使用 uvx
/Users/hose/.local/bin/uvx --directory /Users/hose/code/ops/ops-mcp mcp main.py
# 或者使用 uv run
uv run --with mcp mcp run main.py
```
## MCP 接口说明
### Tools (工具)
1. search_confluence
```python
# 搜索 Confluence 内容
Input:
- query: str # 搜索关键词
- limit: int = 10 # 返回结果数量限制
Output:
{
"success": true,
"query": "搜索词",
"total": 5,
"results": [
{
"id": "12345",
"title": "页面标题",
"type": "page",
"url": "页面URL",
"excerpt": "匹配内容片段"
}
]
}
```
2. get_confluence_page
```python
# 获取页面详细信息
Input:
- page_id: str # 页面ID
Output:
{
"success": true,
"page": {
"id": "12345",
"title": "页面标题",
"space": {
"key": "SPACE",
"name": "空间名称"
},
"version": 1,
"content": "页面内容",
"url": "页面URL",
"created": {
"date": "创建时间",
"by": "创建者"
},
"modified": {
"date": "修改时间",
"by": "修改者"
},
"labels": ["标签1", "标签2"]
}
}
```
### Resources (资源)
1. confluence://pages/{page_id}
- 通过页面ID直接获取页面内容和元数据
- 返回 JSON 格式数据
2. confluence://search/{query}
- 通过关键词直接搜索内容
- 返回 JSON 格式的搜索结果
## 错误处理
所有接口在出错时返回统一格式:
```json
{
"success": false,
"error": "错误信息描述"
}
```
## 使用示例
1. 搜索文档
```python
result = await mcp.use_tool("search_confluence", {
"query": "Python",
"limit": 5
})
```
2. 获取页面内容
```python
page = await mcp.use_tool("get_confluence_page", {
"page_id": "12345"
})
```
3. 使用资源URI
```python
content = await mcp.access_resource("confluence://pages/12345")
search_results = await mcp.access_resource("confluence://search/Python")
```