web-fetcher-mcp 1.0.17 → 1.0.19

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 CHANGED
@@ -45,6 +45,68 @@ npm install -g web-fetcher-mcp
45
45
 
46
46
  ---
47
47
 
48
+ ## 环境变量配置
49
+
50
+ MCP 在启动浏览器时,支持以下环境变量覆盖默认配置,便于在不同机器、不同 Chrome profile 之间灵活复用登录态。
51
+
52
+ | 变量名 | 默认值 | 说明 |
53
+ |--------|--------|------|
54
+ | `WF_CHROME_PATH` | `C:\Program Files\Google\Chrome\Application\chrome.exe` | Chrome 可执行文件路径。非 Windows 或自定义安装路径时设置。 |
55
+ | `WF_DEBUGGING_PORT` | `9222` | Chrome 远程调试端口。当默认端口被占用,或与你自己启动的 Chrome 冲突时修改。 |
56
+ | `WF_USER_DATA_DIR` | `~/.web-fetcher-mcp/chrome-user-data` | **Chrome 用户数据目录**,决定登录态、Cookie、书签等是否持久化。 |
57
+
58
+ ### WF_USER_DATA_DIR 使用场景
59
+
60
+ `WF_USER_DATA_DIR` 是本次新增的重点配置项,用于指定 Chrome 启动时使用的用户数据目录(profile):
61
+
62
+ **场景一:复用日常浏览器的登录态(推荐)**
63
+
64
+ 将变量指向你本机 Chrome 的真实用户数据目录,MCP 启动的浏览器会直接带上你已有的登录状态、Cookie、书签,无需重复登录 TAPD、内部系统等网站。
65
+
66
+ ```json
67
+ {
68
+ "mcpServers": {
69
+ "web-fetcher": {
70
+ "command": "web-fetcher-mcp",
71
+ "env": {
72
+ "WF_USER_DATA_DIR": "C:\\Users\\你的用户名\\AppData\\Local\\Google\\Chrome\\User Data"
73
+ }
74
+ }
75
+ }
76
+ }
77
+ ```
78
+
79
+ > ⚠️ **重要**:Chrome 不允许两个进程同时打开同一个用户数据目录(会报 "user data directory is already in use")。配置真实目录时,**请先完全关闭你日常使用的 Chrome 窗口**,否则 MCP 会启动失败。若想日常 Chrome 与 MCP 并行使用,请复制一份 profile 目录,或新建独立目录。
80
+
81
+ **场景二:隔离的独立 Profile(默认行为)**
82
+
83
+ 不设置 `WF_USER_DATA_DIR` 时,MCP 使用独立的 `~/.web-fetcher-mcp/chrome-user-data` 目录,与日常 Chrome 互不干扰。登录态通过 `loginMode: "manual"` 首次登录后保存到该目录,后续用 `loginMode: "auto"` 自动复用。
84
+
85
+ **场景三:多环境隔离**
86
+
87
+ 可在不同 MCP 配置(如公司项目 / 个人项目)中设置不同的 `WF_USER_DATA_DIR`,实现登录态、Cookie 完全隔离。
88
+
89
+ ### 其他变量示例
90
+
91
+ ```json
92
+ {
93
+ "mcpServers": {
94
+ "web-fetcher": {
95
+ "command": "web-fetcher-mcp",
96
+ "env": {
97
+ "WF_CHROME_PATH": "/usr/bin/google-chrome-stable",
98
+ "WF_DEBUGGING_PORT": "9333",
99
+ "WF_USER_DATA_DIR": "/home/you/.web-fetcher-mcp/chrome-user-data"
100
+ }
101
+ }
102
+ }
103
+ }
104
+ ```
105
+
106
+ > 提示:环境变量也可在系统/Shell 中直接 `export`,效果相同。
107
+
108
+ ---
109
+
48
110
  ## 功能概述
49
111
 
50
112
  - 获取任意网页的文本内容
@@ -330,19 +392,40 @@ MCP 提供了两套操作方式,使用时需要注意它们的区别:
330
392
 
331
393
  ### 7. open-devtools
332
394
 
333
- 打开浏览器开发者工具
395
+ 打开浏览器 F12 开发者工具(DevTools)面板,支持手机设备模拟。
334
396
 
335
397
  #### 参数说明
336
398
 
337
399
  | 参数 | 类型 | 必填 | 默认值 | 说明 |
338
400
  |------|------|------|--------|------|
339
- | mobileMode | boolean | 否 | false | 是否开启手机设备模拟模式 |
401
+ | url | string | 否 | 'current' | 网页 URL,使用 'current' 则操作当前已打开的页面 |
402
+ | isMobile | boolean | 否 | false | 是否开启手机设备模式 |
403
+ | mobileDevice | string | 否 | 'iPhone 13' | 模拟的手机设备型号(iPhone 13、Pixel 5、Galaxy S21 等) |
404
+ | useExistingPage | boolean | 否 | true | 是否使用已存在的页面 |
405
+
406
+ #### 示例
407
+
408
+ ```json
409
+ // 桌面模式打开 DevTools
410
+ { "isMobile": false }
411
+
412
+ // 手机模式(iPhone 13)
413
+ { "isMobile": true, "mobileDevice": "iPhone 13" }
414
+ ```
340
415
 
341
416
  ---
342
417
 
343
418
  ### 8. get-console-logs
344
419
 
345
- 获取浏览器控制台日志
420
+ 获取浏览器控制台日志(console.log、console.error、console.warn 等)。
421
+
422
+ #### 参数说明
423
+
424
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
425
+ |------|------|------|--------|------|
426
+ | url | string | 否 | 'current' | 网页 URL |
427
+ | logTypes | string[] | 否 | ['all'] | 日志类型:error/warn/log/info/debug/all |
428
+ | clearAfterGet | boolean | 否 | false | 获取后是否清空缓冲区 |
346
429
 
347
430
  ---
348
431
 
@@ -555,6 +638,89 @@ MCP 提供了两套操作方式,使用时需要注意它们的区别:
555
638
 
556
639
  ---
557
640
 
641
+ ### 17. list-tabs
642
+
643
+ 列出浏览器中当前打开的所有标签页,包括 ID、URL、标题和活跃状态。
644
+
645
+ #### 参数说明
646
+
647
+ 无参数。
648
+
649
+ #### 示例
650
+
651
+ ```json
652
+ { "name": "list-tabs" }
653
+ ```
654
+
655
+ 返回示例:
656
+ ```
657
+ 总标签数: 3
658
+ 1. [tab_1] 营业数据 (http://localhost:8090/...) ⬅️ 当前
659
+ 2. [tab_2] uni-app官网 (https://uniapp.dcloud.net.cn/)
660
+ 3. [tab_3] W3Schools (https://www.w3schools.com/...)
661
+ ```
662
+
663
+ ---
664
+
665
+ ### 18. switch-tab
666
+
667
+ 切换或关闭指定标签页。
668
+
669
+ #### 参数说明
670
+
671
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
672
+ |------|------|------|--------|------|
673
+ | tabId | string | 是 | - | 目标标签页的 ID(通过 list-tabs 获取) |
674
+ | action | string | 否 | 'switch' | 操作类型:switch(切换)/ close(关闭) |
675
+
676
+ #### 示例
677
+
678
+ ```json
679
+ // 切换到 tab_2
680
+ { "tabId": "tab_2", "action": "switch" }
681
+
682
+ // 关闭 tab_3
683
+ { "tabId": "tab_3", "action": "close" }
684
+ ```
685
+
686
+ ---
687
+
688
+ ### 19. close-browser
689
+
690
+ 断开浏览器连接。如果连接的是你已有的 Chrome,仅断开 CDP 连接(不关闭浏览器窗口);如果是 MCP 自启动的浏览器实例,会直接关闭窗口。
691
+
692
+ #### 参数说明
693
+
694
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
695
+ |------|------|------|--------|------|
696
+ | confirm | boolean | 否 | true | 确认操作 |
697
+
698
+ ---
699
+
700
+ ## 多标签页使用指南
701
+
702
+ 从 v1.0.16 起,MCP 支持多标签页操作。浏览器连接在整个会话期间保持活跃,不会在每次工具调用后断开。
703
+
704
+ ### 基本流程
705
+
706
+ ```
707
+ 1. fetch-web-page(url) → 打开页面(自动新建标签)
708
+ 2. list-tabs → 查看所有标签页
709
+ 3. switch-tab(tabId, 'switch') → 切换标签
710
+ 4. 在当前标签上执行各种操作 → click、scroll、execute-js 等
711
+ 5. switch-tab(tabId, 'close') → 关闭不需要的标签
712
+ 6. close-browser → 完成后断开连接
713
+ ```
714
+
715
+ ### 注意事项
716
+
717
+ - 标签页 ID 在整个会话期间保持稳定
718
+ - 手动在浏览器中切换标签会被自动检测
719
+ - SPA(单页应用)导航后页面不会丢失
720
+ - MCP 重启后标签 ID 会重新分配,但会从浏览器自动恢复
721
+
722
+ ---
723
+
558
724
  ## 数据存储
559
725
 
560
726
  | 数据类型 | 存储位置 |
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAmBtD,wBAAsB,UAAU,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAkE7D;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,OAAO,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,OAAO,EAC3B,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GACA,OAAO,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAExC;AAGD,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1H;AAGD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpG"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAmBtD,wBAAsB,UAAU,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAsE7D;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,OAAO,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,OAAO,EAC3B,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GACA,OAAO,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAExC;AAGD,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1H;AAGD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpG"}
@@ -54,6 +54,8 @@ export async function getBrowser() {
54
54
  executablePath: CHROME_PATH,
55
55
  userDataDir: USER_DATA_DIR,
56
56
  defaultViewport: null,
57
+ // 去掉 puppeteer 默认注入的 --enable-automation(注意必须带双横线才匹配),消除顶部"正受到自动测试软件控制"提示
58
+ ignoreDefaultArgs: ['--enable-automation'],
57
59
  args: [
58
60
  '--no-sandbox',
59
61
  '--disable-setuid-sandbox',
@@ -65,6 +67,8 @@ export async function getBrowser() {
65
67
  '--disable-infobars',
66
68
  '--disable-notifications',
67
69
  '--disable-popup-blocking',
70
+ // 彻底禁用 Blink 的自动化标记(navigator.webdriver 等),与 ignoreDefaultArgs 双保险
71
+ '--disable-blink-features=AutomationControlled',
68
72
  `--remote-debugging-port=${DEBUGGING_PORT}`
69
73
  ]
70
74
  });
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"AAAA,OAAO,SAA4B,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEnF,OAAO,EAAyB,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE5E,WAAW;AACX,SAAS,aAAa;IACpB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,6BAA6B;AAC7B,IAAI,aAAa,GAAmB,IAAI,CAAC;AACzC,IAAI,iBAAiB,GAAY,KAAK,CAAC;AAEvC,wBAAwB;AACxB,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,aAAa,EAAE,CAAC;IAEhB,aAAa;IACb,MAAM,iBAAiB,EAAE,CAAC;IAE1B,wBAAwB;IACxB,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IAC3E,CAAC;IAED,6CAA6C;IAC7C,YAAY,EAAE,CAAC;IAEf,+BAA+B;IAC/B,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC;YACtC,UAAU,EAAE,oBAAoB,cAAc,EAAE;YAChD,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrC,YAAY;QACZ,4BAA4B,CAAC,OAAO,CAAC,CAAC;QACtC,aAAa,GAAG,OAAO,CAAC;QACxB,iBAAiB,GAAG,IAAI,CAAC;QACzB,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;IAC/C,CAAC;IAAC,OAAO,YAAiB,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,MAAM,WAAW,6BAA6B,cAAc,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC;YACrC,QAAQ,EAAE,KAAK;YACf,cAAc,EAAE,WAAW;YAC3B,WAAW,EAAE,aAAa;YAC1B,eAAe,EAAE,IAAI;YACrB,IAAI,EAAE;gBACJ,cAAc;gBACd,0BAA0B;gBAC1B,yBAAyB;gBACzB,mBAAmB;gBACnB,0BAA0B;gBAC1B,gBAAgB;gBAChB,oCAAoC;gBACpC,oBAAoB;gBACpB,yBAAyB;gBACzB,0BAA0B;gBAC1B,2BAA2B,cAAc,EAAE;aAC5C;SACF,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAClC,YAAY;QACZ,4BAA4B,CAAC,OAAO,CAAC,CAAC;QACtC,aAAa,GAAG,OAAO,CAAC;QACxB,iBAAiB,GAAG,KAAK,CAAC;QAC1B,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;IAChD,CAAC;IAAC,OAAO,WAAgB,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,WAAW,WAAW,CAAC,OAAO,mCAAmC,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,OAAgB,EAChB,kBAA2B,EAC3B,GAAY;IAEZ,0BAA0B;IAC1B,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1E,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAgB,EAChB,kBAA2B,EAC3B,OAIC;IAED,OAAO,cAAc,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAgB,EAAE,kBAA2B,EAAE,WAAoB,KAAK;IACzG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAC9C,CAAC;AAED,mCAAmC;AACnC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAgB,EAAE,kBAA2B;IACnF,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  export declare const DATA_DIR: string;
2
2
  export declare const COOKIE_FILE: string;
3
3
  export declare const IMAGES_DIR: string;
4
- export declare const CHROME_PATH = "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe";
5
- export declare const DEBUGGING_PORT = 9222;
4
+ export declare const CHROME_PATH: string;
5
+ export declare const DEBUGGING_PORT: number;
6
6
  export declare const USER_DATA_DIR: string;
7
7
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ,QAA8C,CAAC;AACpE,eAAO,MAAM,WAAW,QAAsC,CAAC;AAC/D,eAAO,MAAM,UAAU,QAAgC,CAAC;AAGxD,eAAO,MAAM,WAAW,+DAA+D,CAAC;AACxF,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,eAAO,MAAM,aAAa,QAA0C,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ,QAA8C,CAAC;AACpE,eAAO,MAAM,WAAW,QAAsC,CAAC;AAC/D,eAAO,MAAM,UAAU,QAAgC,CAAC;AAMxD,eAAO,MAAM,WAAW,QAA6F,CAAC;AACtH,eAAO,MAAM,cAAc,QAAgD,CAAC;AAC5E,eAAO,MAAM,aAAa,QAA0E,CAAC"}
@@ -4,8 +4,11 @@ import * as os from 'os';
4
4
  export const DATA_DIR = path.join(os.homedir(), '.web-fetcher-mcp');
5
5
  export const COOKIE_FILE = path.join(DATA_DIR, 'cookies.json');
6
6
  export const IMAGES_DIR = path.join(DATA_DIR, 'images');
7
- // Chrome 配置
8
- export const CHROME_PATH = 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe';
9
- export const DEBUGGING_PORT = 9222;
10
- export const USER_DATA_DIR = path.join(DATA_DIR, 'chrome-user-data');
7
+ // Chrome 配置(均支持环境变量覆盖,便于不同机器/不同 profile 复用登录态)
8
+ // WF_CHROME_PATH : Chrome 可执行文件路径
9
+ // WF_DEBUGGING_PORT : 远程调试端口(默认 9222
10
+ // WF_USER_DATA_DIR : 用户数据目录,决定登录态/cookie 是否持久化
11
+ export const CHROME_PATH = process.env.WF_CHROME_PATH || 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe';
12
+ export const DEBUGGING_PORT = Number(process.env.WF_DEBUGGING_PORT) || 9222;
13
+ export const USER_DATA_DIR = process.env.WF_USER_DATA_DIR || path.join(DATA_DIR, 'chrome-user-data');
11
14
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,SAAS;AACT,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAExD,YAAY;AACZ,MAAM,CAAC,MAAM,WAAW,GAAG,4DAA4D,CAAC;AACxF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,SAAS;AACT,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAExD,+CAA+C;AAC/C,wCAAwC;AACxC,yCAAyC;AACzC,mDAAmD;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,4DAA4D,CAAC;AACtH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC;AAC5E,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "web-fetcher-mcp",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "description": "MCP Server for fetching any web page content with login support",
5
5
  "main": "dist/index.js",
6
6
  "bin": {