一个全面的模型上下文协议(MCP)服务器,用于与Wiki.js集成,支持分层文档和Docker部署。非常适合管理多个存储库和大规模文档的组织。
首先,克隆此仓库并设置环境变量:
# 复制环境模板
cp config/example.env .env
# 使用您的凭据编辑 .env 文件:
# - 将 POSTGRES_PASSWORD 设置为安全密码
# - 根据需要更新其他设置
# 使用 Docker 启动 Wiki.js
docker-compose -f docker.yml up -d
Wiki.js 可以在 http://localhost:3000 访问
在 Web 界面中完成初始设置
# 安装 Python 依赖项
./setup.sh
# 在 .env 中更新 Wiki.js API 凭证:
# - 从 Wiki.js 管理面板获取 API 密钥
# - 在 .env 文件中设置 WIKIJS_TOKEN
# 测试连接
./test-server.sh
# 启动 MCP 服务器
# (对于像 Cursor 这样的AI IDE,无需执行此步骤,只需在编辑 mcp.json 后点击刷新图标,
# 您应该能看到绿色点并列出所有工具。在已打开的 Cursor 窗口中,此刷新是必要的,
# 才能使用此 MCP)
./start-server.sh
添加到您的 ~/.cursor/mcp.json:
{
"mcpServers": {
"wikijs": {
"command": "/path/to/wiki-js-mcp/start-server.sh"
}
}
}
在 Cursor 中添加这些全局规则,以自动利用文档进行编码前的操作:
编写任何代码之前:
1. 使用 wikijs_search_pages 查找现有文档,了解当前模式和架构
2. 检查是否存在相关的组件、函数或模块
3. 如果存在类似功能的文档,请遵循已建立的模式和命名约定
4. 如果没有文档,请先使用 wikijs_create_page 或 wikijs_create_nested_page 创建文档,然后再实现
5. 在进行更改时始终更新文档,使用 wikijs_sync_file_docs
6. 对于新功能,使用 wikijs_create_repo_structure 先规划文档层次结构
这些规则确保您的AI助手会:
# 开始新功能前
"在实现登录前搜索认证模式的文档"
# 创建组件时
"在构建React组件前,在frontend-app/components下创建嵌套文档"
# 开发API时
"检查现有的API文档,并使用已建立的结构创建端点文档"
# 在重构期间
"更新我即将修改的所有相关文档页面"
wikijs_create_repo_structure - 创建完整的存储库文档结构wikijs_create_nested_page - 创建具有层级路径的页面wikijs_get_page_children - 导航父-子页面关系wikijs_create_documentation_hierarchy - 自动组织项目文件到文档wikijs_create_page - 创建新页面(现在支持父级)wikijs_update_page - 更新现有页面wikijs_get_page - 获取页面内容和元数据wikijs_search_pages - 按文本搜索页面(修复了 GraphQL 问题)wikijs_delete_page - 通过ID或路径删除特定页面wikijs_batch_delete_pages - 批量删除,带模式匹配和安全检查wikijs_delete_hierarchy - 删除整个页面层次结构,多种模式wikijs_cleanup_orphaned_mappings - 清理孤立的文件到页面映射wikijs_list_spaces - 列出顶级文档空间wikijs_create_space - 创建新的文档空间wikijs_manage_collections - 管理页面集合wikijs_link_file_to_page - 将源文件链接到文档页面wikijs_sync_file_docs - 同步代码更改到文档wikijs_generate_file_overview - 自动生成文件文档wikijs_bulk_update_project_docs - 批量更新多个页面wikijs_connection_status - 检查 API 连接健康状况wikijs_repository_context - 显示存储库映射和上下文公司文档/
├── 前端Web应用/
│ ├── 概述/
│ ├── 组件/
│ │ ├── 按钮/
│ │ ├── 模态框/
│ │ └── 表单/
│ ├── API集成/
│ └── 部署/
├── 后端API/
│ ├── 概述/
│ ├── 控制器/
│ ├── 模型/
│ └── 数据库模式/
├── 移动应用/
│ ├── 概述/
│ ├── 屏幕/
│ └── 本地组件/
└── 共享库/
├── UI组件/
├── 实用工具/
└── 类型定义/
该系统智能地对文件进行分类:
# 创建完整的存储库结构
await wikijs_create_repo_structure(
"我的前端应用",
"现代的TypeScript React应用程序",
["概述", "组件", "API", "测试", "部署"]
)
# 创建嵌套的组件文档
await wikijs_create_nested_page(
"按钮组件",
"# 按钮组件\n\n可复用的按钮,具有多种变体...",
"my-frontend-app/components"
)
# 自动组织整个项目
await wikijs_create_documentation_hierarchy(
"我的项目",
[
{"file_path": "src/components/Button.tsx"},
{"file_path": "src/api/users.ts"},
{"file_path": "src/utils/helpers.ts"}
],
auto_organize=True
)
# 清理和管理文档
# 预览将被删除的内容(安全)
preview = await wikijs_delete_hierarchy(
"旧项目",
delete_mode="include_root",
confirm_deletion=False
)
# 删除整个废弃项目
await wikijs_delete_hierarchy(
"旧项目",
delete_mode="include_root",
confirm_deletion=True
)
# 批量删除测试页面
await wikijs_batch_delete_pages(
path_pattern="*test*",
confirm_deletion=True
)
# 清理孤立的文件映射
await wikijs_cleanup_orphaned_mappings()
# Docker 数据库配置
POSTGRES_DB=wikijs
POSTGRES_USER=wikijs
POSTGRES_PASSWORD=your_secure_password_here
# Wiki.js 连接
WIKIJS_API_URL=http://localhost:3000
WIKIJS_API_KEY=your_jwt_token_here
# 替代方案:用户名/密码
WIKIJS_USERNAME=your_username
WIKIJS_PASSWORD=your_password
# 数据库及日志
WIKIJS_MCP_DB=./wikijs_mappings.db
LOG_LEVEL=INFO
LOG_FILE=wikijs_mcp.log
# 存储库设置
REPOSITORY_ROOT=./
DEFAULT_SPACE_NAME=文档
wiki-js-mcp/
├── src/
│ └── wiki_mcp_server.py # 主 MCP 服务器实现
├── config/
│ └── example.env # 配置模板
├── docker.yml # Docker Compose 设置
├── pyproject.toml # Poetry 依赖项
├── requirements.txt # Pip 依赖项
├── setup.sh # 环境设置脚本
├── start-server.sh # MCP 服务器启动器
├── test-server.sh # 交互式测试脚本
├── HIERARCHICAL_FEATURES.md # 分层文档指南
├── DELETION_TOOLS.md # 删除和清理指南
├── LICENSE # MIT 许可证
└── README.md # 此文件
# 检查容器
docker-compose -f docker.yml ps
# 查看日志
docker-compose -f docker.yml logs wiki
docker-compose -f docker.yml logs postgres
# 重置一切
docker-compose -f docker.yml down -v
docker-compose -f docker.yml up -d
# 检查 Wiki.js 是否运行
curl http://localhost:3000/graphql
# 验证身份验证
./test-server.sh
# 调试模式
export LOG_LEVEL=DEBUG
./start-server.sh
docker.yml 中的端口 3000postgres_data/ 并重新启动./setup.sh 重新安装git checkout -b feature/amazing-feature)git commit -m '添加神奇的功能')git push origin feature/amazing-feature)本项目采用 MIT 许可证 - 详情参见 LICENSE 文件。
准备好扩展您的文档了吗? 🚀 从 wikijs_create_repo_structure 开始,构建企业级文档层次结构!使用 Cursor 全局规则确保文档优先开发!📚✨