维基内容管理服务器

一个强大的模型上下文协议(MCP)服务器,提供AI系统与MediaWiki实例之间的无缝集成,支持通过标准化接口读取、搜索和编辑维基内容。

  • by vilosource
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 vilosource/mcp-mediawiki

使用说明

MediaWiki MCP服务器

一个强大的模型上下文协议(MCP)服务器,提供AI系统和MediaWiki实例之间的无缝集成。此服务器使LLM和自动化工具能够通过标准化的界面读取、搜索和编辑wiki内容。

🚀 特性

  • 全页面访问:检索完整的wiki页面内容而不进行分块
  • 内容管理:以编程方式创建、编辑和更新wiki页面
  • 搜索功能:按标题关键字搜索页面
  • 版本历史记录:访问页面修订历史
  • Docker支持:具有自动重启功能的容器化部署
  • VS代码集成:与VS Code的MCP扩展无缝协作
  • 认证:Bot帐户支持安全的API访问

📋 目录

⚡ 快速开始

  1. 克隆存储库:

    git clone <repository-url>
    cd mcp-mediawiki
    
  2. 设置环境:

    cp .env.example .env
    # Edit .env with your MediaWiki credentials
    
  3. 使用Docker运行 (推荐):

    docker-compose up --build
    
  4. 或在本地运行:

    pip install -r requirements.txt
    python mcp_mediawiki.py
    
  5. 测试服务器:

    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

地方发展设置

  1. 克隆和设置:

    git clone <repository-url>
    cd mcp-mediawiki
    cp .env.example .env
    
  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 在开发模式下运行:

    python mcp_mediawiki.py
    
  4. 运行测试:

    python -m pytest tests/
    

进行更改

  1. 代码格式:

    black mcp_mediawiki.py
    
  2. Linting:

    flake8 mcp_mediawiki.py
    
  3. 类型检查:

    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代码中设置

  1. 安装MCP扩展 VS代码
  2. 添加到您的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"
      }
    }
  }
}
  1. 或者使用Docker版本:
{
  "mcp.servers": {
    "mediawiki": {
      "transport": {
        "type": "http",
        "url": "http://localhost:3000/mcp"
      }
    }
  }
}

VS代码中的用法

配置后,您可以:

  • 让AI助手“获取DevOps维基页面”
  • 请求编辑,如“使用新示例更新API文档页面”
  • 搜索页面:“查找与部署相关的所有页面”

🤝 贡献

我们欢迎捐款!请查看我们的 贡献指南 了解详情。

开发工作流程

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature/amazing-feature
  3. 进行更改并添加测试
  4. 确保所有测试通过: make test
  5. 提交您的更改: git commit -m 'Add amazing feature'
  6. 推到您的分支: git push origin feature/amazing-feature
  7. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🆘 支持

  • 问题:报告错误或请求功能 GitHub问题
  • 文档:检查 使用.md 详细示例
  • 维基:访问项目wiki以获取更多文档

🙏 致谢


由以下材料制成❤️ 面向人工智能和MediaWiki社区