@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.
Files changed (3) hide show
  1. package/README.md +44 -8
  2. package/dist/index.js +22 -5
  3. 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 (29 tools)
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 (12 tools, require authentication)
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
- ### 读取操作(29 个工具)
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
- ### 写入操作(12 个工具,需要认证)
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.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": "./dist/index.js"
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 USER_AGENT = "nodemw-mcp-server/1.0";
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: userAgent || USER_AGENT,
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.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": "./dist/index.js"
16
+ "nodemw-mcp-server": "dist/index.js"
17
17
  },
18
18
  "scripts": {
19
19
  "build": "node scripts/build.js",