XWiki MCP服务器

XWiki MCP服务器是一个用于与XWiki实例交互的REST API服务,支持搜索、读取和创建XWiki页面。

  • by alfredfs85
  • JavaScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 alfredfs85/xwiki-mcp-server

使用说明

XWiki MCP服务器

用于与XWiki实例交互的MCP(模型上下文协议)服务器。该服务器允许您通过REST API在XWiki中搜索、阅读和创建页面。

🚀 特性

  • 文章检索:使用搜索API在XWiki中搜索页面
  • 页面阅读:获取任何XWiki页面的完整内容
  • 页面创建/更新:使用XWiki语法在XWiki中创建或更新页面

📋 先决条件

  • 已安装Docker和Docker Compose
  • Node.js 20+(如果不使用Docker运行)
  • 对启用REST API的XWiki实例的访问

🔧 安装

选项1:使用Docker(推荐)

  1. 克隆存储库:
git clone https://github.com/alfredfs85/xwiki-mcp-server.git
cd xwiki-mcp-server
  1. 通过创建 .env 文件:
XWIKI_URL=https://your-xwiki-instance.com
XWIKI_USERNAME=your_username
XWIKI_PASSWORD=your_password
XWIKI_WIKI=xwiki
  1. 构建并运行容器:
docker-compose up -d --build
  1. 验证服务器是否正在运行:
curl http://localhost:3000/health

选项2:本地执行

  1. 安装依赖项:
npm install
  1. 配置环境变量:
export XWIKI_URL=https://your-xwiki-instance.com
export XWIKI_USERNAME=your_username
export XWIKI_PASSWORD=your_password
export XWIKI_WIKI=xwiki
  1. 运行服务器:
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 出于安全考虑

🤝 贡献

欢迎捐款。拜托:

  1. 分叉项目
  2. 创建要素分支(git checkout -b feature/AmazingFeature)
  3. 提交您的更改(git commit -m 'Add some AmazingFeature')
  4. 推到分支(git push origin feature/AmazingFeature)
  5. 打开拉取请求

📄 许可证

该项目根据MIT许可证获得许可。请参阅 LICENSE 文件以获取更多详细信息。

🐛 报告问题

如果您遇到任何问题,请在GitHub存储库上打开问题。

👤 作者

和平85

🙏 致谢

  • XWiki的优秀平台和REST API
  • MCP标准的模型上下文协议团队