关于 MediaWiki MCP adapter
MediaWiki MCP adapter 是连接 MediaWiki 和 WikiBase API 的 MCP 适配器,供需要以程序方式读取或编辑页面的用户使用。它支持自定义 API 地址,并将页面读取和编辑分别作为资源与工具提供。
主要功能
- 01读取 MediaWiki 页面内容
- 02编辑页面并添加摘要
- 03配置 MediaWiki 和 WikiBase API 地址
适用场景
- 01获取指定页面内容
- 02通过程序更新 Wiki 页面
- 03连接自定义 MediaWiki 或 WikiBase 实例
MCP 相关
该适配器作为 MCP 服务,提供读取页面内容的 `getPageContent` 资源,以及编辑页面的 `editPage` 工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MediaWikiAdapter
用于与 MediaWiki 和 WikiBase API 交互的自定义 Model Context Protocol(MCP) 适配器。该适配器可让你使用 MCP 框架以编程方式获取和编辑 MediaWiki 页面。
功能
- 获取 MediaWiki 页面的内容。
- 使用新内容和可选摘要编辑 MediaWiki 页面。
- 可为不同的 MediaWiki 和 WikiBase 实例配置 API 基础 URL。
要求
- Node.js(v16 或更高版本)
- TypeScript(用于开发)
- 已启用 API 访问的 MediaWiki 实例
安装
- 克隆仓库:
git clone https://github.com/yourusername/mediawikiadapter.git
cd mediawikiadapter
-
安装依赖:
npm install -
构建项目:
npm run build
使用方法
配置适配器
你可以将适配器配置为使用自定义的 MediaWiki 和 WikiBase API 端点:
server.configure({
mediaWikiAPIBase: "https://my.mediawiki.instance/api.php",
wikiBaseAPIBase: "https://my.wikibase.instance/api.php",
});
启动 MCP 服务
使用以下命令运行 MCP 服务:
node build/index.js
资源
getPageContent
获取 MediaWiki 页面的内容。
- 输入架构:
{
"title": "string"
}
- 输出架构:
{ "content": "string" }
使用示例:
const response = await server.callResource("getPageContent", {
title: "Main Page",
});
console.log(response.content);
工具
editPage
使用新内容编辑 MediaWiki 页面。
- 输入架构:
{
"title": "string",
"content": "string",
"summary": "string (optional)"
}
- 输出架构:
{
"success": "boolean"
}
使用示例:
const response = await server.callTool("editPage", {
title: "Main Page",
content: "Updated content for the page.",
summary: "Updated via MediaWikiAdapter",
});
console.log(response.success ? "Edit successful" : "Edit failed");
开发
在开发模式下运行
使用 TypeScript 在开发模式下运行项目:
npm run dev
代码检查
运行代码检查工具以检查代码质量:
npm run lint
测试
目前尚未实现测试。你可以在 test 目录中添加测试,并使用以下命令运行:
npm test
配置
适配器使用以下默认 API 基础 URL:
- MediaWiki API 基础 URL:https://en.wikipedia.org/w/api.php
- WikiBase API 基础 URL:https://www.wikidata.org/w/api.php
你可以使用 server.configure() 方法覆盖这些默认值。
贡献
欢迎贡献!请按照以下步骤操作:
- Fork 仓库。
- 为你的功能或错误修复创建一个新分支。
- 提交 pull request,并详细描述所做的更改。
许可证
本项目采用 LGPL-3.0-or-later 许可证。详情请参阅 LICENSE 文件。
作者
由 Luca Mauri 创建。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。