@xiedada/nodemw-mcp-server 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -8
- package/dist/index.js +22 -5
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -29,8 +29,13 @@ nodemw-mcp-server [options] [server]
|
|
|
29
29
|
| `[server]` | (positional) | Target MediaWiki server, e.g. `en.wikipedia.org` |
|
|
30
30
|
| `--server` | `-s` | Same as positional, explicit form |
|
|
31
31
|
| `--path` | | API script path (default: auto-detect; tries `/w` then root) |
|
|
32
|
+
| `--endpoint` | | Alias for `--path` |
|
|
32
33
|
| `--user` | `-u` | Login username |
|
|
33
34
|
| `--pass` | `-p` | Login password |
|
|
35
|
+
| `--token` | | Bot token (alternative to username/password) |
|
|
36
|
+
| `--user-agent` | `-A` | Custom User-Agent string (replaces default) |
|
|
37
|
+
| `--user-agent-append` | | Append custom User-Agent to default instead of replacing |
|
|
38
|
+
| `--debug` | | Enable debug logging |
|
|
34
39
|
| `--dry-run` | | Dry-run mode (no actual edits) |
|
|
35
40
|
|
|
36
41
|
**Examples**:
|
|
@@ -47,6 +52,15 @@ nodemw-mcp-server -s https://en.wikipedia.org
|
|
|
47
52
|
|
|
48
53
|
# Dry-run mode for safe testing
|
|
49
54
|
nodemw-mcp-server --dry-run -u editor -p secret mywiki.example.com
|
|
55
|
+
|
|
56
|
+
# Custom User-Agent (replace default)
|
|
57
|
+
nodemw-mcp-server -A "MyBot/1.0" mywiki.example.com
|
|
58
|
+
|
|
59
|
+
# Append to default User-Agent
|
|
60
|
+
nodemw-mcp-server --user-agent-append -A "MyBot/1.0" mywiki.example.com
|
|
61
|
+
|
|
62
|
+
# Debug mode
|
|
63
|
+
nodemw-mcp-server --debug mywiki.example.com
|
|
50
64
|
```
|
|
51
65
|
|
|
52
66
|
## Environment Variables
|
|
@@ -59,6 +73,10 @@ All settings can be configured via environment variables. CLI arguments take pre
|
|
|
59
73
|
| `NODEMW_MCP_ENDPOINT_PATH` | `--path` |
|
|
60
74
|
| `NODEMW_MCP_MW_USER` | `--user` / `-u` |
|
|
61
75
|
| `NODEMW_MCP_MW_PASS` | `--pass` / `-p` |
|
|
76
|
+
| `NODEMW_MCP_MW_TOKEN` | `--token` |
|
|
77
|
+
| `NODEMW_MCP_USER_AGENT` | `--user-agent` / `-A` |
|
|
78
|
+
| `NODEMW_MCP_USER_AGENT_APPEND` | `--user-agent-append` (set to `1`) |
|
|
79
|
+
| `NODEMW_MCP_DEBUG` | `--debug` (set to `1`) |
|
|
62
80
|
|
|
63
81
|
## Usage with config files
|
|
64
82
|
|
|
@@ -80,13 +98,13 @@ All settings can be configured via environment variables. CLI arguments take pre
|
|
|
80
98
|
|
|
81
99
|
## Available Tools
|
|
82
100
|
|
|
83
|
-
### Read Operations (
|
|
101
|
+
### Read Operations (33 tools)
|
|
84
102
|
|
|
85
|
-
`get-article`, `search`, `get-pages-in-category`, `get-categories`, `get-users`, `get-all-pages`, `get-pages-in-namespace`, `get-pages-by-prefix`, `get-pages-transcluding`, `get-article-revisions`, `get-article-categories`, `get-article-properties`, `get-article-info`, `get-user-contribs`, `whoami`, `whois`, `whoare`, `get-images`, `get-images-from-article`, `get-image-usage`, `get-image-info`, `get-log`, `expand-templates`, `parse`, `get-recent-changes`, `get-site-info`, `get-site-stats`, `get-mediawiki-version`, `get-external-links`, `get-backlinks`, `get-query-page`
|
|
103
|
+
`get-article`, `get-article-with-lineno`, `get-article-by-revision`, `search`, `get-pages-in-category`, `get-categories`, `get-users`, `get-all-pages`, `get-pages-in-namespace`, `get-pages-by-prefix`, `get-pages-transcluding`, `get-article-revisions`, `get-article-categories`, `get-article-properties`, `get-article-info`, `get-user-contribs`, `whoami`, `whois`, `whoare`, `get-images`, `get-images-from-article`, `get-image-usage`, `get-image-info`, `get-log`, `expand-templates`, `parse`, `get-recent-changes`, `get-site-info`, `get-site-stats`, `get-mediawiki-version`, `get-external-links`, `get-backlinks`, `get-query-page`
|
|
86
104
|
|
|
87
|
-
### Write Operations (
|
|
105
|
+
### Write Operations (16 tools, require authentication)
|
|
88
106
|
|
|
89
|
-
`edit`, `append`, `prepend`, `move`, `delete`, `protect`, `purge`, `send-email`, `upload`, `upload-by-url`, `add-flow-topic`, `create-account`
|
|
107
|
+
`edit`, `write`, `append`, `prepend`, `move`, `delete`, `undelete`, `protect`, `block`, `unblock`, `purge`, `send-email`, `upload`, `upload-by-url`, `add-flow-topic`, `create-account`
|
|
90
108
|
|
|
91
109
|
## Development
|
|
92
110
|
|
|
@@ -155,8 +173,13 @@ nodemw-mcp-server [options] [server]
|
|
|
155
173
|
| `[server]` | (位置参数) | 目标 MediaWiki 服务器,如 `en.wikipedia.org` |
|
|
156
174
|
| `--server` | `-s` | 同上,显式形式 |
|
|
157
175
|
| `--path` | | API 脚本路径(默认:自动检测;先尝试 `/w`,再尝试根路径) |
|
|
176
|
+
| `--endpoint` | | `--path` 的别名 |
|
|
158
177
|
| `--user` | `-u` | 登录用户名 |
|
|
159
178
|
| `--pass` | `-p` | 登录密码 |
|
|
179
|
+
| `--token` | | 机器人令牌(替代用户名/密码) |
|
|
180
|
+
| `--user-agent` | `-A` | 自定义 User-Agent 字符串(替换默认值) |
|
|
181
|
+
| `--user-agent-append` | | 将自定义 User-Agent 追加到默认值之后 |
|
|
182
|
+
| `--debug` | | 启用调试日志 |
|
|
160
183
|
| `--dry-run` | | 干运行模式(不执行实际编辑) |
|
|
161
184
|
|
|
162
185
|
**示例**:
|
|
@@ -173,6 +196,15 @@ nodemw-mcp-server -s https://en.wikipedia.org
|
|
|
173
196
|
|
|
174
197
|
# 干运行模式,安全测试
|
|
175
198
|
nodemw-mcp-server --dry-run -u editor -p secret mywiki.example.com
|
|
199
|
+
|
|
200
|
+
# 自定义 User-Agent(替换默认值)
|
|
201
|
+
nodemw-mcp-server -A "MyBot/1.0" mywiki.example.com
|
|
202
|
+
|
|
203
|
+
# 追加到默认 User-Agent
|
|
204
|
+
nodemw-mcp-server --user-agent-append -A "MyBot/1.0" mywiki.example.com
|
|
205
|
+
|
|
206
|
+
# 调试模式
|
|
207
|
+
nodemw-mcp-server --debug mywiki.example.com
|
|
176
208
|
```
|
|
177
209
|
|
|
178
210
|
## 环境变量
|
|
@@ -185,6 +217,10 @@ nodemw-mcp-server --dry-run -u editor -p secret mywiki.example.com
|
|
|
185
217
|
| `NODEMW_MCP_ENDPOINT_PATH` | `--path` |
|
|
186
218
|
| `NODEMW_MCP_MW_USER` | `--user` / `-u` |
|
|
187
219
|
| `NODEMW_MCP_MW_PASS` | `--pass` / `-p` |
|
|
220
|
+
| `NODEMW_MCP_MW_TOKEN` | `--token` |
|
|
221
|
+
| `NODEMW_MCP_USER_AGENT` | `--user-agent` / `-A` |
|
|
222
|
+
| `NODEMW_MCP_USER_AGENT_APPEND` | `--user-agent-append`(设为 `1`) |
|
|
223
|
+
| `NODEMW_MCP_DEBUG` | `--debug`(设为 `1`) |
|
|
188
224
|
|
|
189
225
|
## 配合配置文件使用
|
|
190
226
|
|
|
@@ -206,13 +242,13 @@ nodemw-mcp-server --dry-run -u editor -p secret mywiki.example.com
|
|
|
206
242
|
|
|
207
243
|
## 可用工具
|
|
208
244
|
|
|
209
|
-
### 读取操作(
|
|
245
|
+
### 读取操作(33 个工具)
|
|
210
246
|
|
|
211
|
-
`get-article`、`search`、`get-pages-in-category`、`get-categories`、`get-users`、`get-all-pages`、`get-pages-in-namespace`、`get-pages-by-prefix`、`get-pages-transcluding`、`get-article-revisions`、`get-article-categories`、`get-article-properties`、`get-article-info`、`get-user-contribs`、`whoami`、`whois`、`whoare`、`get-images`、`get-images-from-article`、`get-image-usage`、`get-image-info`、`get-log`、`expand-templates`、`parse`、`get-recent-changes`、`get-site-info`、`get-site-stats`、`get-mediawiki-version`、`get-external-links`、`get-backlinks`、`get-query-page`
|
|
247
|
+
`get-article`、`get-article-with-lineno`、`get-article-by-revision`、`search`、`get-pages-in-category`、`get-categories`、`get-users`、`get-all-pages`、`get-pages-in-namespace`、`get-pages-by-prefix`、`get-pages-transcluding`、`get-article-revisions`、`get-article-categories`、`get-article-properties`、`get-article-info`、`get-user-contribs`、`whoami`、`whois`、`whoare`、`get-images`、`get-images-from-article`、`get-image-usage`、`get-image-info`、`get-log`、`expand-templates`、`parse`、`get-recent-changes`、`get-site-info`、`get-site-stats`、`get-mediawiki-version`、`get-external-links`、`get-backlinks`、`get-query-page`
|
|
212
248
|
|
|
213
|
-
### 写入操作(
|
|
249
|
+
### 写入操作(16 个工具,需要认证)
|
|
214
250
|
|
|
215
|
-
`edit`、`append`、`prepend`、`move`、`delete`、`protect`、`purge`、`send-email`、`upload`、`upload-by-url`、`add-flow-topic`、`create-account`
|
|
251
|
+
`edit`、`write`、`append`、`prepend`、`move`、`delete`、`undelete`、`protect`、`block`、`unblock`、`purge`、`send-email`、`upload`、`upload-by-url`、`add-flow-topic`、`create-account`
|
|
216
252
|
|
|
217
253
|
## 开发
|
|
218
254
|
|
package/dist/index.js
CHANGED
|
@@ -33,11 +33,12 @@ import { parseArgs } from "util";
|
|
|
33
33
|
|
|
34
34
|
// src/server.ts
|
|
35
35
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
36
|
+
import { createRequire } from "module";
|
|
36
37
|
|
|
37
38
|
// package.json
|
|
38
39
|
var package_default = {
|
|
39
40
|
name: "@xiedada/nodemw-mcp-server",
|
|
40
|
-
version: "0.2.
|
|
41
|
+
version: "0.2.4",
|
|
41
42
|
description: "MCP server for nodemw - MediaWiki API client",
|
|
42
43
|
repository: {
|
|
43
44
|
type: "git",
|
|
@@ -50,7 +51,7 @@ var package_default = {
|
|
|
50
51
|
type: "module",
|
|
51
52
|
main: "dist/index.js",
|
|
52
53
|
bin: {
|
|
53
|
-
"nodemw-mcp-server": "
|
|
54
|
+
"nodemw-mcp-server": "dist/index.js"
|
|
54
55
|
},
|
|
55
56
|
scripts: {
|
|
56
57
|
build: "node scripts/build.js",
|
|
@@ -92,7 +93,10 @@ var package_default = {
|
|
|
92
93
|
};
|
|
93
94
|
|
|
94
95
|
// src/server.ts
|
|
95
|
-
var
|
|
96
|
+
var require2 = createRequire(import.meta.url);
|
|
97
|
+
var nodemwPkg = require2("nodemw/package.json");
|
|
98
|
+
var sdkVersion = require2("@modelcontextprotocol/sdk/package.json").version;
|
|
99
|
+
var DEFAULT_USER_AGENT = `nodemw/${nodemwPkg.version} (node.js ${process.version}; ${process.platform} ${process.arch}) nodemw-mcp/${package_default.version} (${package_default.name}@${package_default.version}; @modelcontextprotocol/sdk@${sdkVersion})`;
|
|
96
100
|
function createServer(description) {
|
|
97
101
|
return new McpServer(
|
|
98
102
|
{
|
|
@@ -126,6 +130,7 @@ function createBotFromConfig(config) {
|
|
|
126
130
|
port,
|
|
127
131
|
proxy,
|
|
128
132
|
userAgent,
|
|
133
|
+
userAgentAppend,
|
|
129
134
|
concurrency,
|
|
130
135
|
debug,
|
|
131
136
|
username,
|
|
@@ -133,13 +138,21 @@ function createBotFromConfig(config) {
|
|
|
133
138
|
domain,
|
|
134
139
|
dryRun
|
|
135
140
|
} = config;
|
|
141
|
+
let resolvedUA;
|
|
142
|
+
if (userAgent && userAgentAppend) {
|
|
143
|
+
resolvedUA = DEFAULT_USER_AGENT + " " + userAgent;
|
|
144
|
+
} else if (userAgent) {
|
|
145
|
+
resolvedUA = userAgent;
|
|
146
|
+
} else {
|
|
147
|
+
resolvedUA = DEFAULT_USER_AGENT;
|
|
148
|
+
}
|
|
136
149
|
return new Bot({
|
|
137
150
|
server,
|
|
138
151
|
protocol: protocol || "https",
|
|
139
152
|
port,
|
|
140
153
|
path,
|
|
141
154
|
proxy,
|
|
142
|
-
userAgent:
|
|
155
|
+
userAgent: resolvedUA,
|
|
143
156
|
concurrency,
|
|
144
157
|
debug,
|
|
145
158
|
username: username || void 0,
|
|
@@ -2983,7 +2996,9 @@ function parseCliArgs() {
|
|
|
2983
2996
|
pass: { type: "string", short: "p" },
|
|
2984
2997
|
token: { type: "string" },
|
|
2985
2998
|
debug: { type: "boolean" },
|
|
2986
|
-
"dry-run": { type: "boolean" }
|
|
2999
|
+
"dry-run": { type: "boolean" },
|
|
3000
|
+
"user-agent": { type: "string", short: "A" },
|
|
3001
|
+
"user-agent-append": { type: "boolean" }
|
|
2987
3002
|
},
|
|
2988
3003
|
strict: false,
|
|
2989
3004
|
allowPositionals: true
|
|
@@ -3023,6 +3038,8 @@ function parseCliArgs() {
|
|
|
3023
3038
|
password: values.pass ?? process.env.NODEMW_MCP_MW_PASS,
|
|
3024
3039
|
token: values.token,
|
|
3025
3040
|
dryRun: values["dry-run"],
|
|
3041
|
+
userAgent: values["user-agent"] ?? process.env.NODEMW_MCP_USER_AGENT,
|
|
3042
|
+
userAgentAppend: !!values["user-agent-append"] || process.env.NODEMW_MCP_USER_AGENT_APPEND === "1",
|
|
3026
3043
|
debug
|
|
3027
3044
|
},
|
|
3028
3045
|
pathExplicit,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xiedada/nodemw-mcp-server",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "MCP server for nodemw - MediaWiki API client",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"type": "module",
|
|
14
14
|
"main": "dist/index.js",
|
|
15
15
|
"bin": {
|
|
16
|
-
"nodemw-mcp-server": "
|
|
16
|
+
"nodemw-mcp-server": "dist/index.js"
|
|
17
17
|
},
|
|
18
18
|
"scripts": {
|
|
19
19
|
"build": "node scripts/build.js",
|