使用说明
MediaWiki MCP服务器
一个强大的模型上下文协议(MCP)服务器,提供AI系统和MediaWiki实例之间的无缝集成。此服务器使LLM和自动化工具能够通过标准化的界面读取、搜索和编辑wiki内容。
🚀 特性
- 全页面访问:检索完整的wiki页面内容而不进行分块
- 内容管理:以编程方式创建、编辑和更新wiki页面
- 搜索功能:按标题关键字搜索页面
- 版本历史记录:访问页面修订历史
- Docker支持:具有自动重启功能的容器化部署
- VS代码集成:与VS Code的MCP扩展无缝协作
- 认证:Bot帐户支持安全的API访问
📋 目录
⚡ 快速开始
-
克隆存储库:
git clone <repository-url> cd mcp-mediawiki -
设置环境:
cp .env.example .env # Edit .env with your MediaWiki credentials -
使用Docker运行 (推荐):
docker-compose up --build -
或在本地运行:
pip install -r requirements.txt python mcp_mediawiki.py -
测试服务器:
curl http://localhost:3000/
📦 安装
先决条件
- Python 3.12+
- Docker(可选但推荐)
- 访问MediaWiki实例
本地安装
# Install dependencies
pip install -r requirements.txt
# Set up environment variables
cp .env.example .env
Docker安装
# Build and run with Docker Compose
docker-compose up --build -d
⚙️ 配置
创建一个 .env 包含MediaWiki实例详细信息的项目根目录中的文件:
# MediaWiki API Configuration
MW_API_HOST=wiki.example.com
MW_API_PATH=/wiki/
MW_USE_HTTPS=true
# Bot Account Credentials (optional but recommended)
MW_BOT_USER=mcp-bot
MW_BOT_PASS=secret-password
# Server Configuration
PORT=3000
HOST=0.0.0.0
环境变量
| 变量 | 描述 | 默认值 | 必填 |
|---|---|---|---|
MW_API_HOST |
MediaWiki主机名 | - | ✅ |
MW_API_PATH |
MediaWiki API 路径 | /wiki/ |
❌ |
MW_USE_HTTPS |
使用HTTPS进行连接 | true |
❌ |
MW_BOT_USER |
机器人帐户用户名 | - | ❌ |
MW_BOT_PASS |
Bot帐户密码 | - | ❌ |
PORT |
服务器端口 | 3000 |
❌ |
HOST |
服务器主机 | 0.0.0.0 |
❌ |
MediaWiki 机器人设置
对于写入操作,建议创建一个具有适当权限的机器人帐户:
# Add to LocalSettings.php
$wgGroupPermissions['bot']['edit'] = true;
$wgGroupPermissions['bot']['createpage'] = true;
$wgGroupPermissions['bot']['writeapi'] = true;
🎯 用法
健康检查
测试服务器是否正在运行:
curl http://localhost:3000/
预期响应:
{
"status": "healthy",
"service": "mcp-mediawiki",
"version": "1.0.0"
}
MCP集成
服务器在以下位置提供MCP传输 /mcp 用于与MCP兼容的客户端(如VS Code扩展或AI助手)集成。
📚 api参考
资源
wiki://{title}
检索wiki页面的完整内容。
请求示例:
GET wiki://DevOps
示例响应:
{
"@id": "wiki://DevOps",
"@type": "Document",
"name": "DevOps",
"content": "Full wikitext content...",
"metadata": {
"url": "https://wiki.example.com/wiki/DevOps",
"last_modified": "2025-06-06T14:20:00Z",
"namespace": 0,
"length": 5032,
"protection": {},
"categories": []
}
}
工具
get_page
检索特定wiki页面的完整内容和元数据。
参数:
title(string):wiki页面的标题
update_page
创建或编辑包含新内容的wiki页面。
参数:
title(string):wiki页面的标题content(string):页面的新内容summary(string):编辑描述更改的摘要
例子:
{
"title": "DevOps",
"content": "== Updated Section ==\nNew content here...",
"summary": "Updated DevOps documentation"
}
search_pages
按标题关键字搜索页面。
参数:
query(string):搜索查询limit(整数,可选):最大结果数(默认值:5)
get_page_history
检索wiki页面的修订历史。
参数:
title(string):wiki页面的标题limit(整数,可选):最大修订次数(默认值:5)
server_status
获取基本服务器配置和MediaWiki版本信息。
🐳 Docker部署
使用Docker Compose(推荐)
该项目包括 docker-compose.yml 文件以便于部署:
services:
mcp-mediawiki:
image: mcp-mediawiki:latest
build: .
restart: unless-stopped
ports:
- "3000:8000"
env_file:
- .env
environment:
- PYTHONUNBUFFERED=1
networks:
mcp_network:
ipv4_address: 192.168.170.2
networks:
mcp_network:
driver: bridge
ipam:
driver: default
config:
- subnet: 192.168.170.0/24
gateway: 192.168.170.1
启动服务:
docker-compose up -d --build
查看日志:
docker-compose logs -f mcp-mediawiki
停止服务:
docker-compose down
手动Docker构建
# Build the image
docker build -t mcp-mediawiki .
# Run the container
docker run -d \
--name mcp-mediawiki \
--restart unless-stopped \
-p 3000:8000 \
--env-file .env \
mcp-mediawiki
🛠️ 发展
项目结构
mcp-mediawiki/
├── docker-compose.yml # Docker Compose configuration
├── Dockerfile # Docker image definition
├── entrypoint.sh # Container entrypoint script
├── mcp_mediawiki.py # Main server implementation
├── requirements.txt # Python dependencies
├── settings.json # MCP server settings
├── .env.example # Environment variables template
├── tests/ # Test files
│ └── test_server.py
├── Makefile # Development commands
├── README.md # This file
├── Usage.md # Detailed usage documentation
└── LICENSE # License file
地方发展设置
-
克隆和设置:
git clone <repository-url> cd mcp-mediawiki cp .env.example .env -
安装依赖项:
pip install -r requirements.txt -
在开发模式下运行:
python mcp_mediawiki.py -
运行测试:
python -m pytest tests/
进行更改
-
代码格式:
black mcp_mediawiki.py -
Linting:
flake8 mcp_mediawiki.py -
类型检查:
mypy mcp_mediawiki.py
可用的生成命令
make build # Build Docker image
make run # Run with Docker Compose
make stop # Stop Docker containers
make logs # View container logs
make test # Run tests
make clean # Clean up Docker resources
🔧 VS代码集成
在VS代码中设置
- 安装MCP扩展 VS代码
- 添加到您的VS代码设置 (
settings.json):
{
"mcp.servers": {
"mediawiki": {
"command": "python",
"args": ["path/to/mcp-mediawiki/mcp_mediawiki.py"],
"env": {
"MW_API_HOST": "your-wiki-host.com",
"MW_API_PATH": "/wiki/",
"MW_USE_HTTPS": "true"
}
}
}
}
- 或者使用Docker版本:
{
"mcp.servers": {
"mediawiki": {
"transport": {
"type": "http",
"url": "http://localhost:3000/mcp"
}
}
}
}
VS代码中的用法
配置后,您可以:
- 让AI助手“获取DevOps维基页面”
- 请求编辑,如“使用新示例更新API文档页面”
- 搜索页面:“查找与部署相关的所有页面”
🤝 贡献
我们欢迎捐款!请查看我们的 贡献指南 了解详情。
开发工作流程
- 分叉存储库
- 创建要素分支:
git checkout -b feature/amazing-feature - 进行更改并添加测试
- 确保所有测试通过:
make test - 提交您的更改:
git commit -m 'Add amazing feature' - 推到您的分支:
git push origin feature/amazing-feature - 打开拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🆘 支持
🙏 致谢
- MCP Python SDK 用于协议实现
- mwclient 用于 MediaWiki API 集成
- 快速 API 对于web框架
由以下材料制成❤️ 面向人工智能和MediaWiki社区
