XWiki MCP服务器
用于与XWiki实例交互的MCP(模型上下文协议)服务器。该服务器允许您通过REST API在XWiki中搜索、阅读和创建页面。
🚀 特性
- 文章检索:使用搜索API在XWiki中搜索页面
- 页面阅读:获取任何XWiki页面的完整内容
- 页面创建/更新:使用XWiki语法在XWiki中创建或更新页面
📋 先决条件
- 已安装Docker和Docker Compose
- Node.js 20+(如果不使用Docker运行)
- 对启用REST API的XWiki实例的访问
🔧 安装
选项1:使用Docker(推荐)
- 克隆存储库:
git clone https://github.com/alfredfs85/xwiki-mcp-server.git
cd xwiki-mcp-server- 通过创建
.env文件:
XWIKI_URL=https://your-xwiki-instance.com
XWIKI_USERNAME=your_username
XWIKI_PASSWORD=your_password
XWIKI_WIKI=xwiki- 构建并运行容器:
docker-compose up -d --build- 验证服务器是否正在运行:
curl http://localhost:3000/health选项2:本地执行
- 安装依赖项:
npm install- 配置环境变量:
export XWIKI_URL=https://your-xwiki-instance.com
export XWIKI_USERNAME=your_username
export XWIKI_PASSWORD=your_password
export XWIKI_WIKI=xwiki- 运行服务器:
node server.js服务器将在以下时间可用 http://localhost:3000
🔐 SSL配置(可选)
如果你需要HTTPS,你可以使用 setup.sh 生成自签名SSL证书的脚本:
chmod +x setup.sh
./setup.sh --ssl备注:生成的证书(server.key 和 server.crt)都在 .gitignore 并且不会上传到存储库。
📡 端点
健康检查
GET /health返回服务器状态和XWiki配置。
MCP JSON-RPC
POST /mcp使用JSON-RPC 2.0进行MCP通信的主要端点。
服务器发送事件(SSE)
GET /sse
POST /messages?sessionId={sessionId}通过服务器发送事件进行通信的替代端点。
🛠️ 可用工具
search_xwiki
在XWiki中搜索文章。
参数:
query(必填):搜索词limit(可选):最大结果数(默认值:10)
例子:
{
"method": "tools/call",
"params": {
"name": "search_xwiki",
"arguments": {
"query": "documentation",
"limit": 5
}
}
}get_xwiki_page
获取XWiki页面的内容。
参数:
page_path(必填):页面路径(例如。,Main.WebHome或Space.Page)
例子:
{
"method": "tools/call",
"params": {
"name": "get_xwiki_page",
"arguments": {
"page_path": "Main.WebHome"
}
}
}create_xwiki_page
在XWiki中创建或更新页面。
参数:
page_path(必填):页面路径title(必填):页面标题content(必填):XWiki语法的内容
例子:
{
"method": "tools/call",
"params": {
"name": "create_xwiki_page",
"arguments": {
"page_path": "Test.MyPage",
"title": "My Test Page",
"content": "= Title =\n\nPage content..."
}
}
}🔌 与Cursor/Claude桌面集成
要将此MCP服务器与Cursor或Claude Desktop一起使用,请将以下配置添加到MCP配置文件中:
{
"mcpServers": {
"xwiki": {
"url": "http://localhost:3000/mcp",
"transport": "http"
}
}
}🐳 环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
PORT | 服务器端口 | 3000 |
XWIKI_URL | 您的XWiki实例URL | - |
XWIKI_USERNAME | 身份验证用户名 | - |
XWIKI_PASSWORD | 身份验证密码 | - |
XWIKI_WIKI | Wiki名称 | xwiki |
MCP_MODE | MCP操作模式 | http |
NODE_TLS_REJECT_UNAUTHORIZED | 禁用SSL验证(仅限开发) | 0 |
📝 安全说明
- ⚠️ 从不 将凭据提交到存储库
- ⚠️ 自签名SSL证书仅用于开发
- ⚠️ 在生产中,使用有效证书并设置
NODE_TLS_REJECT_UNAUTHORIZED=1 - ⚠️ 这
.env文件在.gitignore出于安全考虑
🤝 贡献
欢迎捐款。拜托:
- 分叉项目
- 创建要素分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
📄 许可证
该项目根据MIT许可证获得许可。请参阅 LICENSE 文件以获取更多详细信息。
🐛 报告问题
如果您遇到任何问题,请在GitHub存储库上打开问题。
👤 作者
和平85
- github: @alfredfs85
🙏 致谢
- XWiki的优秀平台和REST API
- MCP标准的模型上下文协议团队
