@lmcc-dev/mult-fetch-mcp-server 1.1.0 → 1.2.1
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 +8 -8
- package/README.zh.md +16 -8
- package/dist/i18n-test-report.json +8 -0
- package/dist/i18n-unused-keys-report.json +8 -0
- package/dist/src/client.js +70 -37
- package/dist/src/index.js +0 -0
- package/dist/src/lib/BrowserFetcher.js +12 -12
- package/dist/src/lib/NodeFetcher.js +22 -22
- package/dist/src/lib/fetch.js +40 -0
- package/dist/src/lib/fetchers/FetcherFactory.js +43 -0
- package/dist/src/lib/fetchers/browser/BrowserFetcher.js +381 -0
- package/dist/src/lib/fetchers/browser/BrowserInstance.js +180 -0
- package/dist/src/lib/fetchers/browser/PageOperations.js +168 -0
- package/dist/src/lib/fetchers/common/types.js +41 -0
- package/dist/src/lib/fetchers/common/utils.js +141 -0
- package/dist/src/lib/fetchers/index.js +62 -0
- package/dist/src/lib/fetchers/node/HttpClient.js +239 -0
- package/dist/src/lib/fetchers/node/NodeFetcher.js +180 -0
- package/dist/src/lib/i18n/index.js +105 -17
- package/dist/src/lib/i18n/keys/base.js +41 -0
- package/dist/src/lib/i18n/keys/browser.js +91 -0
- package/dist/src/lib/i18n/keys/client.js +68 -0
- package/dist/src/lib/i18n/keys/errors.js +49 -0
- package/dist/src/lib/i18n/keys/factory.js +46 -0
- package/dist/src/lib/i18n/keys/fetcher.js +87 -0
- package/dist/src/lib/i18n/keys/index.js +16 -0
- package/dist/src/lib/i18n/keys/node.js +69 -0
- package/dist/src/lib/i18n/keys/prompts.js +79 -0
- package/dist/src/lib/i18n/keys/resources.js +53 -0
- package/dist/src/lib/i18n/keys/server.js +67 -0
- package/dist/src/lib/i18n/keys/tools.js +39 -0
- package/dist/src/lib/i18n/keys.js +488 -119
- package/dist/src/lib/i18n/locales/en/browser.js +67 -57
- package/dist/src/lib/i18n/locales/en/client.js +57 -33
- package/dist/src/lib/i18n/locales/en/errors.js +36 -12
- package/dist/src/lib/i18n/locales/en/factory.js +38 -0
- package/dist/src/lib/i18n/locales/en/fetcher.js +8 -2
- package/dist/src/lib/i18n/locales/en/index.js +10 -8
- package/dist/src/lib/i18n/locales/en/node.js +57 -35
- package/dist/src/lib/i18n/locales/en/prompts.js +42 -65
- package/dist/src/lib/i18n/locales/en/resources.js +52 -55
- package/dist/src/lib/i18n/locales/en/server.js +49 -24
- package/dist/src/lib/i18n/locales/en/tools.js +27 -19
- package/dist/src/lib/i18n/locales/zh/browser.js +71 -62
- package/dist/src/lib/i18n/locales/zh/client.js +57 -32
- package/dist/src/lib/i18n/locales/zh/errors.js +36 -12
- package/dist/src/lib/i18n/locales/zh/factory.js +38 -0
- package/dist/src/lib/i18n/locales/zh/fetcher.js +36 -30
- package/dist/src/lib/i18n/locales/zh/index.js +10 -8
- package/dist/src/lib/i18n/locales/zh/node.js +61 -36
- package/dist/src/lib/i18n/locales/zh/prompts.js +35 -57
- package/dist/src/lib/i18n/locales/zh/resources.js +52 -55
- package/dist/src/lib/i18n/locales/zh/server.js +51 -25
- package/dist/src/lib/i18n/locales/zh/tools.js +27 -19
- package/dist/src/lib/i18n/logger.js +90 -19
- package/dist/src/lib/logger.js +135 -14
- package/dist/src/lib/server/browser.js +42 -10
- package/dist/src/lib/server/fetcher.js +87 -37
- package/dist/src/lib/server/index.js +2 -2
- package/dist/src/lib/server/prompts.js +1 -1
- package/dist/src/lib/server/resources.js +1 -1
- package/dist/src/lib/server/tools.js +46 -10
- package/dist/src/lib/utils/ErrorHandler.js +125 -0
- package/dist/src/mcp-server.js +0 -0
- package/dist/src/test-i18n.js +139 -0
- package/dist/tests/BrowserFetcher.test.js +0 -0
- package/dist/tests/NodeFetcher.test.js +0 -0
- package/dist/tests/client.test.js +42 -81
- package/dist/tests/fetch.test.js +70 -0
- package/dist/tests/fetchers/Fetcher.test.js +108 -0
- package/dist/tests/fetchers/browser/BrowserFetcher.test.js +195 -0
- package/dist/tests/fetchers/browser/BrowserInstance.test.js +163 -0
- package/dist/tests/fetchers/node/NodeFetcher.test.js +211 -0
- package/dist/tests/i18n-missing-keys.js +364 -0
- package/dist/tests/i18n-remove-unused-keys.js +236 -0
- package/dist/tests/i18n-test-report.json +2004 -0
- package/dist/tests/i18n-unused-keys.js +425 -0
- package/dist/tests/i18n.test.js +6 -7
- package/dist/tests/logger.test.js +14 -13
- package/dist/tests/mcp-server.test.js +7 -7
- package/dist/tests/server/browser.test.js +25 -21
- package/dist/tests/server/fetcher.test.js +58 -101
- package/dist/tests/server/index.test.js +30 -30
- package/dist/tests/server/prompts.test.js +36 -33
- package/dist/tests/server/resources.test.js +120 -84
- package/dist/tests/server/tools.test.js +7 -6
- package/dist/tests/setup.js +36 -0
- package/dist/tests/src/lib/i18n/index.js +108 -0
- package/dist/tests/src/lib/i18n/keys/base.js +47 -0
- package/dist/tests/src/lib/i18n/keys/browser.js +93 -0
- package/dist/tests/src/lib/i18n/keys/client.js +70 -0
- package/dist/tests/src/lib/i18n/keys/errors.js +34 -0
- package/dist/tests/src/lib/i18n/keys/fetcher.js +84 -0
- package/dist/tests/src/lib/i18n/keys/index.js +31 -0
- package/dist/tests/src/lib/i18n/keys/node.js +56 -0
- package/dist/tests/src/lib/i18n/keys/prompts.js +82 -0
- package/dist/tests/src/lib/i18n/keys/resources.js +50 -0
- package/dist/tests/src/lib/i18n/keys/server.js +64 -0
- package/dist/tests/src/lib/i18n/keys/tools.js +34 -0
- package/dist/tests/src/lib/i18n/locales/en/browser.js +88 -0
- package/dist/tests/src/lib/i18n/locales/en/client.js +66 -0
- package/dist/tests/src/lib/i18n/locales/en/errors.js +28 -0
- package/dist/tests/src/lib/i18n/locales/en/fetcher.js +71 -0
- package/dist/tests/src/lib/i18n/locales/en/index.js +29 -0
- package/dist/tests/src/lib/i18n/locales/en/node.js +51 -0
- package/dist/tests/src/lib/i18n/locales/en/prompts.js +52 -0
- package/dist/tests/src/lib/i18n/locales/en/resources.js +50 -0
- package/dist/tests/src/lib/i18n/locales/en/server.js +56 -0
- package/dist/tests/src/lib/i18n/locales/en/tools.js +28 -0
- package/dist/tests/src/lib/i18n/locales/zh/browser.js +87 -0
- package/dist/tests/src/lib/i18n/locales/zh/client.js +66 -0
- package/dist/tests/src/lib/i18n/locales/zh/errors.js +28 -0
- package/dist/tests/src/lib/i18n/locales/zh/fetcher.js +71 -0
- package/dist/tests/src/lib/i18n/locales/zh/index.js +29 -0
- package/dist/tests/src/lib/i18n/locales/zh/node.js +51 -0
- package/dist/tests/src/lib/i18n/locales/zh/prompts.js +53 -0
- package/dist/tests/src/lib/i18n/locales/zh/resources.js +50 -0
- package/dist/tests/src/lib/i18n/locales/zh/server.js +57 -0
- package/dist/tests/src/lib/i18n/locales/zh/tools.js +28 -0
- package/dist/tests/src/lib/i18n/logger.js +114 -0
- package/dist/tests/src/lib/logger.js +181 -0
- package/dist/tests/test-direct-client.js +0 -0
- package/dist/tests/test-i18n.js +530 -0
- package/dist/tests/test-mcp-methods.js +1 -1
- package/dist/tests/test-mcp.js +0 -0
- package/dist/tests/test-mini4k.js +0 -0
- package/dist/tests/tests/test-i18n.js +588 -0
- package/dist/tests/types.test.js +1 -1
- package/dist/tests/utils/ErrorHandler.test.js +144 -0
- package/dist/vitest.config.js +29 -0
- package/package.json +31 -27
- package/dist/src/cli-language.js +0 -78
- package/dist/src/client.d.ts +0 -6
- package/dist/src/client.js.map +0 -1
- package/dist/src/index.d.ts +0 -15
- package/dist/src/index.js.map +0 -1
- package/dist/src/lib/BrowserFetcher.d.ts +0 -175
- package/dist/src/lib/BrowserFetcher.js.map +0 -1
- package/dist/src/lib/NodeFetcher.d.ts +0 -92
- package/dist/src/lib/NodeFetcher.js.map +0 -1
- package/dist/src/lib/example.js +0 -93
- package/dist/src/lib/i18n/index.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/browser.d.ts +0 -61
- package/dist/src/lib/i18n/locales/en/browser.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/client.d.ts +0 -39
- package/dist/src/lib/i18n/locales/en/client.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/errors.d.ts +0 -17
- package/dist/src/lib/i18n/locales/en/errors.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/fetcher.d.ts +0 -66
- package/dist/src/lib/i18n/locales/en/fetcher.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/index.d.ts +0 -344
- package/dist/src/lib/i18n/locales/en/index.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/node.d.ts +0 -41
- package/dist/src/lib/i18n/locales/en/node.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/prompts.d.ts +0 -65
- package/dist/src/lib/i18n/locales/en/prompts.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/resources.d.ts +0 -41
- package/dist/src/lib/i18n/locales/en/resources.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/server.d.ts +0 -30
- package/dist/src/lib/i18n/locales/en/server.js.map +0 -1
- package/dist/src/lib/i18n/locales/en/tools.d.ts +0 -24
- package/dist/src/lib/i18n/locales/en/tools.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/browser.d.ts +0 -61
- package/dist/src/lib/i18n/locales/zh/browser.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/client.d.ts +0 -38
- package/dist/src/lib/i18n/locales/zh/client.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/errors.d.ts +0 -17
- package/dist/src/lib/i18n/locales/zh/errors.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/fetcher.d.ts +0 -66
- package/dist/src/lib/i18n/locales/zh/fetcher.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/index.d.ts +0 -343
- package/dist/src/lib/i18n/locales/zh/index.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/node.d.ts +0 -41
- package/dist/src/lib/i18n/locales/zh/node.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/prompts.d.ts +0 -65
- package/dist/src/lib/i18n/locales/zh/prompts.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/resources.d.ts +0 -41
- package/dist/src/lib/i18n/locales/zh/resources.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/server.d.ts +0 -30
- package/dist/src/lib/i18n/locales/zh/server.js.map +0 -1
- package/dist/src/lib/i18n/locales/zh/tools.d.ts +0 -24
- package/dist/src/lib/i18n/locales/zh/tools.js.map +0 -1
- package/dist/src/lib/i18n/logger.d.ts +0 -38
- package/dist/src/lib/i18n/logger.js.map +0 -1
- package/dist/src/lib/logger.d.ts +0 -32
- package/dist/src/lib/logger.js.map +0 -1
- package/dist/src/lib/server/browser.d.ts +0 -34
- package/dist/src/lib/server/browser.js.map +0 -1
- package/dist/src/lib/server/fetcher.d.ts +0 -20
- package/dist/src/lib/server/fetcher.js.map +0 -1
- package/dist/src/lib/server/index.d.ts +0 -10
- package/dist/src/lib/server/index.js.map +0 -1
- package/dist/src/lib/server/logger.js +0 -23
- package/dist/src/lib/server/prompts.d.ts +0 -11
- package/dist/src/lib/server/prompts.js.map +0 -1
- package/dist/src/lib/server/resources.d.ts +0 -11
- package/dist/src/lib/server/resources.js.map +0 -1
- package/dist/src/lib/server/tools.d.ts +0 -12
- package/dist/src/lib/server/tools.js.map +0 -1
- package/dist/src/lib/server/types.d.ts +0 -71
- package/dist/src/lib/server/types.js.map +0 -1
- package/dist/src/lib/types.d.ts +0 -119
- package/dist/src/lib/types.js.map +0 -1
- package/dist/src/mcp-server.d.ts +0 -6
- package/dist/src/mcp-server.js.map +0 -1
- package/dist/tests/jest.setup.d.ts +0 -6
- package/dist/tests/jest.setup.js +0 -30
- package/dist/tests/jest.setup.js.map +0 -1
- package/dist/tests/test-direct-client.d.ts +0 -6
- package/dist/tests/test-direct-client.js.map +0 -1
- package/dist/tests/test-mcp-methods.d.ts +0 -6
- package/dist/tests/test-mcp-methods.js.map +0 -1
- package/dist/tests/test-mcp.d.ts +0 -6
- package/dist/tests/test-mcp.js.map +0 -1
- package/dist/tests/test-mini4k.d.ts +0 -6
- package/dist/tests/test-mini4k.js.map +0 -1
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Author: Martin <lmccc.dev@gmail.com>
|
|
3
|
+
* Co-Author: AI Assistant (Claude)
|
|
4
|
+
* Description: This code was collaboratively developed by Martin and AI Assistant.
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
7
|
+
import { ErrorHandler, ErrorType } from '../../src/lib/utils/ErrorHandler.js';
|
|
8
|
+
import * as logger from '../../src/lib/logger.js';
|
|
9
|
+
// 模拟logger模块
|
|
10
|
+
vi.mock('../../src/lib/logger.js', () => ({
|
|
11
|
+
log: vi.fn(),
|
|
12
|
+
COMPONENTS: {
|
|
13
|
+
SERVER: 'MCP-SERVER',
|
|
14
|
+
NODE_FETCH: 'NODE-FETCH',
|
|
15
|
+
BROWSER_FETCH: 'BROWSER-FETCH',
|
|
16
|
+
CLIENT: 'CLIENT'
|
|
17
|
+
}
|
|
18
|
+
}));
|
|
19
|
+
describe('ErrorHandler 类测试 (ErrorHandler Class Tests)', () => {
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
vi.clearAllMocks();
|
|
22
|
+
});
|
|
23
|
+
describe('getErrorMessage 方法测试 (getErrorMessage Method Tests)', () => {
|
|
24
|
+
it('应该正确处理 Error 对象 (Should correctly handle Error objects)', () => {
|
|
25
|
+
const error = new Error('测试错误');
|
|
26
|
+
const message = ErrorHandler.getErrorMessage(error);
|
|
27
|
+
expect(message).toBe('测试错误');
|
|
28
|
+
});
|
|
29
|
+
it('应该正确处理字符串错误 (Should correctly handle string errors)', () => {
|
|
30
|
+
const error = '测试错误字符串';
|
|
31
|
+
const message = ErrorHandler.getErrorMessage(error);
|
|
32
|
+
expect(message).toBe('测试错误字符串');
|
|
33
|
+
});
|
|
34
|
+
it('应该正确处理带有 message 属性的对象 (Should correctly handle objects with message property)', () => {
|
|
35
|
+
const error = { message: '对象中的错误消息' };
|
|
36
|
+
const message = ErrorHandler.getErrorMessage(error);
|
|
37
|
+
expect(message).toBe('对象中的错误消息');
|
|
38
|
+
});
|
|
39
|
+
it('应该正确处理普通对象 (Should correctly handle plain objects)', () => {
|
|
40
|
+
const error = { code: 404, status: 'Not Found' };
|
|
41
|
+
const message = ErrorHandler.getErrorMessage(error);
|
|
42
|
+
expect(message).toBe('{"code":404,"status":"Not Found"}');
|
|
43
|
+
});
|
|
44
|
+
it('应该正确处理 null 和 undefined (Should correctly handle null and undefined)', () => {
|
|
45
|
+
expect(ErrorHandler.getErrorMessage(null)).toBe('null');
|
|
46
|
+
expect(ErrorHandler.getErrorMessage(undefined)).toBe('undefined');
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
describe('classifyError 方法测试 (classifyError Method Tests)', () => {
|
|
50
|
+
it('应该正确分类网络错误 (Should correctly classify network errors)', () => {
|
|
51
|
+
const networkErrors = [
|
|
52
|
+
'network error',
|
|
53
|
+
'connection refused',
|
|
54
|
+
'host unreachable',
|
|
55
|
+
'ECONNREFUSED'
|
|
56
|
+
];
|
|
57
|
+
networkErrors.forEach(error => {
|
|
58
|
+
expect(ErrorHandler.classifyError(error)).toBe(ErrorType.NETWORK);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
it('应该正确分类访问被拒绝错误 (Should correctly classify access denied errors)', () => {
|
|
62
|
+
const accessDeniedErrors = [
|
|
63
|
+
'403 Forbidden',
|
|
64
|
+
'access denied',
|
|
65
|
+
'cloudflare protection',
|
|
66
|
+
'captcha required',
|
|
67
|
+
'security check'
|
|
68
|
+
];
|
|
69
|
+
accessDeniedErrors.forEach(error => {
|
|
70
|
+
expect(ErrorHandler.classifyError(error)).toBe(ErrorType.ACCESS_DENIED);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
it('应该正确分类超时错误 (Should correctly classify timeout errors)', () => {
|
|
74
|
+
expect(ErrorHandler.classifyError('request timeout')).toBe(ErrorType.TIMEOUT);
|
|
75
|
+
});
|
|
76
|
+
it('应该正确分类解析错误 (Should correctly classify parse errors)', () => {
|
|
77
|
+
const parseErrors = [
|
|
78
|
+
'parse error',
|
|
79
|
+
'JSON syntax error',
|
|
80
|
+
'invalid syntax'
|
|
81
|
+
];
|
|
82
|
+
parseErrors.forEach(error => {
|
|
83
|
+
expect(ErrorHandler.classifyError(error)).toBe(ErrorType.PARSE);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
it('应该正确分类浏览器错误 (Should correctly classify browser errors)', () => {
|
|
87
|
+
const browserErrors = [
|
|
88
|
+
'browser crashed',
|
|
89
|
+
'puppeteer error',
|
|
90
|
+
'page load failed',
|
|
91
|
+
'chrome not found'
|
|
92
|
+
];
|
|
93
|
+
browserErrors.forEach(error => {
|
|
94
|
+
expect(ErrorHandler.classifyError(error)).toBe(ErrorType.BROWSER);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
it('应该正确分类验证错误 (Should correctly classify validation errors)', () => {
|
|
98
|
+
const validationErrors = [
|
|
99
|
+
'invalid url',
|
|
100
|
+
'schema validation failed',
|
|
101
|
+
'type error'
|
|
102
|
+
];
|
|
103
|
+
validationErrors.forEach(error => {
|
|
104
|
+
expect(ErrorHandler.classifyError(error)).toBe(ErrorType.VALIDATION);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
it('应该将未知错误分类为 UNKNOWN (Should classify unknown errors as UNKNOWN)', () => {
|
|
108
|
+
expect(ErrorHandler.classifyError('some random error')).toBe(ErrorType.UNKNOWN);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
describe('handleError 方法测试 (handleError Method Tests)', () => {
|
|
112
|
+
it('应该调用 log 函数并返回错误消息 (Should call log function and return error message)', () => {
|
|
113
|
+
const error = new Error('测试错误');
|
|
114
|
+
const component = 'TEST-COMPONENT';
|
|
115
|
+
const debug = true;
|
|
116
|
+
const context = { url: 'https://example.com' };
|
|
117
|
+
const result = ErrorHandler.handleError(error, component, debug, context);
|
|
118
|
+
expect(logger.log).toHaveBeenCalledWith('errors.unknown_error', debug, { error: '测试错误', ...context }, component);
|
|
119
|
+
expect(result).toBe('测试错误');
|
|
120
|
+
});
|
|
121
|
+
it('应该使用默认组件和调试值 (Should use default component and debug values)', () => {
|
|
122
|
+
const error = new Error('测试错误');
|
|
123
|
+
ErrorHandler.handleError(error);
|
|
124
|
+
expect(logger.log).toHaveBeenCalledWith('errors.unknown_error', false, { error: '测试错误' }, logger.COMPONENTS.SERVER);
|
|
125
|
+
});
|
|
126
|
+
it('应该根据错误类型使用正确的日志键 (Should use correct log key based on error type)', () => {
|
|
127
|
+
const networkError = 'network error occurred';
|
|
128
|
+
ErrorHandler.handleError(networkError, logger.COMPONENTS.NODE_FETCH, true);
|
|
129
|
+
expect(logger.log).toHaveBeenCalledWith('errors.network_error', true, { error: 'network error occurred' }, logger.COMPONENTS.NODE_FETCH);
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
describe('createError 方法测试 (createError Method Tests)', () => {
|
|
133
|
+
it('应该创建带有类型的错误对象 (Should create error object with type)', () => {
|
|
134
|
+
const error = ErrorHandler.createError('自定义错误', ErrorType.NETWORK);
|
|
135
|
+
expect(error instanceof Error).toBe(true);
|
|
136
|
+
expect(error.message).toBe('自定义错误');
|
|
137
|
+
expect(error.type).toBe(ErrorType.NETWORK);
|
|
138
|
+
});
|
|
139
|
+
it('应该使用默认错误类型 (Should use default error type)', () => {
|
|
140
|
+
const error = ErrorHandler.createError('自定义错误');
|
|
141
|
+
expect(error.type).toBe(ErrorType.UNKNOWN);
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Author: Martin <lmccc.dev@gmail.com>
|
|
3
|
+
* Co-Author: AI Assistant (Claude)
|
|
4
|
+
* Description: This code was collaboratively developed by Martin and AI Assistant.
|
|
5
|
+
*/
|
|
6
|
+
import { defineConfig } from 'vitest/config';
|
|
7
|
+
export default defineConfig({
|
|
8
|
+
test: {
|
|
9
|
+
environment: 'node',
|
|
10
|
+
include: ['tests/**/*.test.ts'],
|
|
11
|
+
exclude: ['node_modules', 'dist'],
|
|
12
|
+
globals: true, // 启用全局测试 API,如 describe, it, expect 等
|
|
13
|
+
setupFiles: ['./tests/setup.ts'], // 添加设置文件
|
|
14
|
+
coverage: {
|
|
15
|
+
provider: 'v8',
|
|
16
|
+
reporter: ['text', 'json', 'html'],
|
|
17
|
+
include: ['src/**/*.ts'],
|
|
18
|
+
exclude: ['src/**/*.d.ts', 'src/**/*.test.ts']
|
|
19
|
+
},
|
|
20
|
+
deps: {
|
|
21
|
+
// 处理 ESM 模块
|
|
22
|
+
interopDefault: true
|
|
23
|
+
},
|
|
24
|
+
// 模拟 Jest 的 transformIgnorePatterns
|
|
25
|
+
testTransformMode: {
|
|
26
|
+
web: ['node_modules/(?!(@modelcontextprotocol)/)']
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lmcc-dev/mult-fetch-mcp-server",
|
|
3
|
-
"version": "1.1
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "An MCP protocol-based web content fetching tool that supports multiple modes and formats, can be integrated with AI assistants like Claude",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -18,25 +18,7 @@
|
|
|
18
18
|
"url": "https://github.com/lmcc-dev/mult-fetch-mcp-server/issues"
|
|
19
19
|
},
|
|
20
20
|
"engines": {
|
|
21
|
-
"node": ">=18
|
|
22
|
-
},
|
|
23
|
-
"scripts": {
|
|
24
|
-
"build": "tsc && shx chmod +x dist/src/*.js dist/tests/*.js || true && shx chmod +x dist/*.js || true",
|
|
25
|
-
"prepare": "npm run build",
|
|
26
|
-
"dev": "tsc --watch",
|
|
27
|
-
"start": "node dist/index.js",
|
|
28
|
-
"test:mcp": "node dist/tests/test-mcp.js",
|
|
29
|
-
"test:mini4k": "node dist/tests/test-mini4k.js",
|
|
30
|
-
"test:direct": "node dist/tests/test-direct-client.js",
|
|
31
|
-
"test:methods": "node dist/tests/test-mcp-methods.js",
|
|
32
|
-
"test": "jest --coverage",
|
|
33
|
-
"test:watch": "jest --watch",
|
|
34
|
-
"client": "node dist/src/client.js",
|
|
35
|
-
"server": "node dist/index.js",
|
|
36
|
-
"prepublishOnly": "npm run build",
|
|
37
|
-
"release": "npm publish --access public",
|
|
38
|
-
"codecov": "codecov",
|
|
39
|
-
"test:ci": "jest --coverage && codecov"
|
|
21
|
+
"node": ">=18"
|
|
40
22
|
},
|
|
41
23
|
"keywords": [
|
|
42
24
|
"mcp",
|
|
@@ -54,7 +36,7 @@
|
|
|
54
36
|
"proxy"
|
|
55
37
|
],
|
|
56
38
|
"dependencies": {
|
|
57
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
39
|
+
"@modelcontextprotocol/sdk": "^1.7.0",
|
|
58
40
|
"http-proxy-agent": "^7.0.2",
|
|
59
41
|
"https-proxy-agent": "^7.0.6",
|
|
60
42
|
"i18next": "^24.2.2",
|
|
@@ -67,17 +49,19 @@
|
|
|
67
49
|
"zod": "^3.24.2"
|
|
68
50
|
},
|
|
69
51
|
"devDependencies": {
|
|
70
|
-
"@types/
|
|
52
|
+
"@types/glob": "^8.1.0",
|
|
71
53
|
"@types/jsdom": "^21.1.7",
|
|
72
54
|
"@types/node": "^22.10.2",
|
|
73
55
|
"@types/node-fetch": "^2.6.12",
|
|
74
56
|
"@types/puppeteer": "^5.4.7",
|
|
75
57
|
"@types/turndown": "^5.0.5",
|
|
58
|
+
"@vitest/coverage-v8": "^3.0.8",
|
|
76
59
|
"codecov": "^3.8.2",
|
|
77
|
-
"
|
|
60
|
+
"glob": "^11.0.1",
|
|
78
61
|
"shx": "^0.3.4",
|
|
79
|
-
"ts-
|
|
80
|
-
"typescript": "^5.7.2"
|
|
62
|
+
"ts-node": "^10.9.2",
|
|
63
|
+
"typescript": "^5.7.2",
|
|
64
|
+
"vitest": "^3.0.8"
|
|
81
65
|
},
|
|
82
66
|
"files": [
|
|
83
67
|
"dist",
|
|
@@ -85,5 +69,25 @@
|
|
|
85
69
|
"README.zh.md",
|
|
86
70
|
"LICENSE",
|
|
87
71
|
"images"
|
|
88
|
-
]
|
|
89
|
-
|
|
72
|
+
],
|
|
73
|
+
"scripts": {
|
|
74
|
+
"build": "tsc && shx chmod +x dist/src/*.js dist/tests/*.js || true && shx chmod +x dist/*.js || true",
|
|
75
|
+
"dev": "tsc --watch",
|
|
76
|
+
"start": "node dist/index.js",
|
|
77
|
+
"test:mcp": "node dist/tests/test-mcp.js",
|
|
78
|
+
"test:mini4k": "node dist/tests/test-mini4k.js",
|
|
79
|
+
"test:direct": "node dist/tests/test-direct-client.js",
|
|
80
|
+
"test:methods": "node dist/tests/test-mcp-methods.js",
|
|
81
|
+
"test:i18n": "pnpm run build && node dist/tests/test-i18n.js",
|
|
82
|
+
"test:i18n:unused": "pnpm run build && node dist/tests/i18n-unused-keys.js",
|
|
83
|
+
"test:i18n:missing": "pnpm run build && node --loader ts-node/esm tests/i18n-missing-keys.ts",
|
|
84
|
+
"test": "vitest run",
|
|
85
|
+
"test:watch": "vitest",
|
|
86
|
+
"test:coverage": "vitest run --coverage",
|
|
87
|
+
"client": "node dist/src/client.js",
|
|
88
|
+
"server": "node dist/index.js",
|
|
89
|
+
"release": "pnpm publish --access public",
|
|
90
|
+
"codecov": "vitest run --coverage && codecov",
|
|
91
|
+
"test:ci": "vitest run --coverage && codecov"
|
|
92
|
+
}
|
|
93
|
+
}
|
package/dist/src/cli-language.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Author: Martin <lmccc.dev@gmail.com>
|
|
4
|
-
* Co-Author: AI Assistant (Claude)
|
|
5
|
-
* Description: This code was collaboratively developed by Martin and AI Assistant.
|
|
6
|
-
*/
|
|
7
|
-
import { getCurrentLanguage, changeLanguage } from './lib/i18n/index.js';
|
|
8
|
-
import { createLogger } from './lib/i18n/logger.js';
|
|
9
|
-
// 创建日志记录器 (Create logger)
|
|
10
|
-
const logger = createLogger('LANGUAGE');
|
|
11
|
-
/**
|
|
12
|
-
* 显示帮助信息 (Show help information)
|
|
13
|
-
*/
|
|
14
|
-
function showHelp() {
|
|
15
|
-
console.error(`
|
|
16
|
-
语言设置工具 (Language Setting Tool)
|
|
17
|
-
|
|
18
|
-
用法 (Usage):
|
|
19
|
-
node dist/cli-language.js [命令] (node dist/cli-language.js [command])
|
|
20
|
-
|
|
21
|
-
命令 (Commands):
|
|
22
|
-
get 获取当前语言设置 (Get current language setting)
|
|
23
|
-
set <lang> 设置语言 (Set language)
|
|
24
|
-
<lang> 可以是 'en' 或 'zh' (<lang> can be 'en' or 'zh')
|
|
25
|
-
help 显示此帮助信息 (Show this help information)
|
|
26
|
-
|
|
27
|
-
示例 (Examples):
|
|
28
|
-
node dist/cli-language.js get
|
|
29
|
-
node dist/cli-language.js set en
|
|
30
|
-
node dist/cli-language.js set zh
|
|
31
|
-
|
|
32
|
-
注意 (Note):
|
|
33
|
-
此工具只会影响当前进程的语言设置,不会影响已经运行的服务器进程。
|
|
34
|
-
对于服务器进程,建议使用 MCP_LANG 环境变量来设置语言。
|
|
35
|
-
(This tool only affects the language setting of the current process, not running server processes.
|
|
36
|
-
For server processes, it is recommended to use the MCP_LANG environment variable to set the language.)
|
|
37
|
-
|
|
38
|
-
例如 (Example):
|
|
39
|
-
MCP_LANG=zh node dist/index.js
|
|
40
|
-
`);
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* 主函数 (Main function)
|
|
44
|
-
*/
|
|
45
|
-
async function main() {
|
|
46
|
-
const args = process.argv.slice(2);
|
|
47
|
-
const command = args[0];
|
|
48
|
-
if (!command || command === 'help') {
|
|
49
|
-
showHelp();
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
switch (command) {
|
|
53
|
-
case 'get':
|
|
54
|
-
console.error(`当前语言 (Current language): ${getCurrentLanguage()}`);
|
|
55
|
-
break;
|
|
56
|
-
case 'set':
|
|
57
|
-
const lang = args[1];
|
|
58
|
-
if (lang !== 'en' && lang !== 'zh') {
|
|
59
|
-
console.error('错误: 语言必须是 "en" 或 "zh" (Error: Language must be "en" or "zh")');
|
|
60
|
-
process.exit(1);
|
|
61
|
-
}
|
|
62
|
-
changeLanguage(lang);
|
|
63
|
-
console.error(`语言已设置为 (Language set to): ${lang}`);
|
|
64
|
-
// 测试翻译 (Test translation)
|
|
65
|
-
logger.info('server.starting');
|
|
66
|
-
logger.info('server.started');
|
|
67
|
-
break;
|
|
68
|
-
default:
|
|
69
|
-
console.error(`未知命令: ${command} (Unknown command: ${command})`);
|
|
70
|
-
showHelp();
|
|
71
|
-
process.exit(1);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// 执行主函数 (Execute main function)
|
|
75
|
-
main().catch(error => {
|
|
76
|
-
console.error('错误 (Error):', error);
|
|
77
|
-
process.exit(1);
|
|
78
|
-
});
|
package/dist/src/client.d.ts
DELETED
package/dist/src/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Author: Martin <lmccc.dev@gmail.com>
|
|
4
|
-
* Co-Author: AI Assistant (Claude)
|
|
5
|
-
* Description: This code was collaboratively developed by Martin and AI Assistant.
|
|
6
|
-
*
|
|
7
|
-
* MCP 服务器启动入口 (MCP Server Entry Point)
|
|
8
|
-
*
|
|
9
|
-
* 这个文件是 MCP 服务器的主入口点,它导入并启动 mcp-server.ts 中定义的服务器。
|
|
10
|
-
* (This file is the main entry point of the MCP server, it imports and starts the server defined in mcp-server.ts.)
|
|
11
|
-
*
|
|
12
|
-
* 使用方法 (Usage):
|
|
13
|
-
* node dist/index.js
|
|
14
|
-
*/
|
|
15
|
-
import './mcp-server.js';
|
package/dist/src/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG;AAEH,gCAAgC;AAChC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,iCAAiC;AACjC,OAAO,iBAAiB,CAAC;AAEzB,uCAAuC;AACvC,sFAAsF;AACtF,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Author: Martin <lmccc.dev@gmail.com>
|
|
3
|
-
* Co-Author: AI Assistant (Claude)
|
|
4
|
-
* Description: This code was collaboratively developed by Martin and AI Assistant.
|
|
5
|
-
*/
|
|
6
|
-
import { RequestPayload } from './types.js';
|
|
7
|
-
/**
|
|
8
|
-
* 定义响应接口 (Define response interface)
|
|
9
|
-
* 包含内容和错误状态 (Contains content and error status)
|
|
10
|
-
*/
|
|
11
|
-
interface FetchResponse {
|
|
12
|
-
content: Array<{
|
|
13
|
-
type: string;
|
|
14
|
-
text: string;
|
|
15
|
-
}>;
|
|
16
|
-
isError: boolean;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* 浏览器模式获取器类 (Browser mode fetcher class)
|
|
20
|
-
* 使用Puppeteer实现浏览器模式的网页获取 (Implements webpage fetching in browser mode using Puppeteer)
|
|
21
|
-
*/
|
|
22
|
-
export declare class BrowserFetcher {
|
|
23
|
-
/**
|
|
24
|
-
* 浏览器实例 (Browser instance)
|
|
25
|
-
* 静态单例,避免重复创建 (Static singleton to avoid repeated creation)
|
|
26
|
-
*/
|
|
27
|
-
private static browser;
|
|
28
|
-
/**
|
|
29
|
-
* 浏览器启动状态标志 (Browser startup status flag)
|
|
30
|
-
* 防止并发启动多个浏览器实例 (Prevents concurrent startup of multiple browser instances)
|
|
31
|
-
*/
|
|
32
|
-
private static browserStarting;
|
|
33
|
-
/**
|
|
34
|
-
* 浏览器启动Promise (Browser startup Promise)
|
|
35
|
-
* 用于等待浏览器启动完成 (Used to wait for browser startup completion)
|
|
36
|
-
*/
|
|
37
|
-
private static browserStartPromise;
|
|
38
|
-
/**
|
|
39
|
-
* Cookie存储 (Cookie storage)
|
|
40
|
-
* 存储不同域名的Cookie (Store cookies for different domains)
|
|
41
|
-
*/
|
|
42
|
-
private static cookieStore;
|
|
43
|
-
/**
|
|
44
|
-
* 上次内存检查时间 (Last memory check time)
|
|
45
|
-
*/
|
|
46
|
-
private static lastMemoryCheck;
|
|
47
|
-
/**
|
|
48
|
-
* 内存检查间隔(毫秒) (Memory check interval in milliseconds)
|
|
49
|
-
*/
|
|
50
|
-
private static memoryCheckInterval;
|
|
51
|
-
/**
|
|
52
|
-
* 常用浏览器的User-Agent列表 (List of common browser User-Agents)
|
|
53
|
-
* 用于模拟不同浏览器的请求 (Used to simulate requests from different browsers)
|
|
54
|
-
*/
|
|
55
|
-
private static userAgents;
|
|
56
|
-
/**
|
|
57
|
-
* 获取随机User-Agent (Get random User-Agent)
|
|
58
|
-
* @returns 随机的User-Agent字符串 (Random User-Agent string)
|
|
59
|
-
*/
|
|
60
|
-
private static getRandomUserAgent;
|
|
61
|
-
/**
|
|
62
|
-
* 检查内存使用情况 (Check memory usage)
|
|
63
|
-
* 定期监控浏览器内存使用,必要时关闭浏览器释放资源 (Periodically monitor browser memory usage, close browser to release resources when necessary)
|
|
64
|
-
* @param debug 是否启用调试输出 (Whether to enable debug output)
|
|
65
|
-
*/
|
|
66
|
-
private static checkMemoryUsage;
|
|
67
|
-
/**
|
|
68
|
-
* 获取系统代理设置 (Get system proxy settings)
|
|
69
|
-
* @param useSystemProxy 是否使用系统代理 (Whether to use system proxy)
|
|
70
|
-
* @returns 系统代理URL或undefined (System proxy URL or undefined)
|
|
71
|
-
*/
|
|
72
|
-
private static getSystemProxy;
|
|
73
|
-
/**
|
|
74
|
-
* 获取浏览器实例 (Get browser instance)
|
|
75
|
-
* 如果浏览器未启动,则启动浏览器 (Start browser if not started)
|
|
76
|
-
* @param debug 是否启用调试输出 (Whether to enable debug output)
|
|
77
|
-
* @returns 浏览器实例 (Browser instance)
|
|
78
|
-
*/
|
|
79
|
-
private static getBrowser;
|
|
80
|
-
static closeBrowser(debug?: boolean): Promise<void>;
|
|
81
|
-
private static getDomain;
|
|
82
|
-
private static saveCookies;
|
|
83
|
-
private static getCookies;
|
|
84
|
-
private static autoScroll;
|
|
85
|
-
private static handleCloudflareProtection;
|
|
86
|
-
private static simulateHumanBehavior;
|
|
87
|
-
/**
|
|
88
|
-
* 使用Puppeteer获取网页内容 (Get webpage content using Puppeteer)
|
|
89
|
-
* 浏览器模式获取的底层实现方法 (Low-level implementation method for browser mode fetching)
|
|
90
|
-
* @param params 请求参数 (Request parameters)
|
|
91
|
-
* @returns 获取结果 (Fetch result)
|
|
92
|
-
*/
|
|
93
|
-
static fetch({ url, headers, proxy, timeout, waitForSelector, waitForTimeout, scrollToBottom, saveCookies, closeBrowser, useSystemProxy, debug, }: RequestPayload): Promise<FetchResponse>;
|
|
94
|
-
/**
|
|
95
|
-
* 使用Puppeteer获取HTML内容 (Get HTML content using Puppeteer)
|
|
96
|
-
* 通过浏览器模式获取网页HTML (Fetch webpage HTML in browser mode)
|
|
97
|
-
* @param requestPayload 请求参数 (Request parameters)
|
|
98
|
-
* @returns 获取结果 (Fetch result)
|
|
99
|
-
*/
|
|
100
|
-
static html(requestPayload: RequestPayload & {
|
|
101
|
-
waitForSelector?: string;
|
|
102
|
-
waitForTimeout?: number;
|
|
103
|
-
scrollToBottom?: boolean;
|
|
104
|
-
saveCookies?: boolean;
|
|
105
|
-
closeBrowser?: boolean;
|
|
106
|
-
useSystemProxy?: boolean;
|
|
107
|
-
}): Promise<{
|
|
108
|
-
content: Array<{
|
|
109
|
-
type: string;
|
|
110
|
-
text: string;
|
|
111
|
-
}>;
|
|
112
|
-
isError: boolean;
|
|
113
|
-
}>;
|
|
114
|
-
/**
|
|
115
|
-
* 使用Puppeteer获取JSON内容 (Get JSON content using Puppeteer)
|
|
116
|
-
* 通过浏览器模式获取JSON数据 (Fetch JSON data in browser mode)
|
|
117
|
-
* @param requestPayload 请求参数 (Request parameters)
|
|
118
|
-
* @returns 获取结果 (Fetch result)
|
|
119
|
-
*/
|
|
120
|
-
static json(requestPayload: RequestPayload & {
|
|
121
|
-
waitForSelector?: string;
|
|
122
|
-
waitForTimeout?: number;
|
|
123
|
-
scrollToBottom?: boolean;
|
|
124
|
-
saveCookies?: boolean;
|
|
125
|
-
closeBrowser?: boolean;
|
|
126
|
-
useSystemProxy?: boolean;
|
|
127
|
-
}): Promise<{
|
|
128
|
-
content: Array<{
|
|
129
|
-
type: string;
|
|
130
|
-
text: string;
|
|
131
|
-
}>;
|
|
132
|
-
isError: boolean;
|
|
133
|
-
}>;
|
|
134
|
-
/**
|
|
135
|
-
* 使用Puppeteer获取纯文本内容 (Get plain text content using Puppeteer)
|
|
136
|
-
* 通过浏览器模式获取网页纯文本 (Fetch webpage plain text in browser mode)
|
|
137
|
-
* @param requestPayload 请求参数 (Request parameters)
|
|
138
|
-
* @returns 获取结果 (Fetch result)
|
|
139
|
-
*/
|
|
140
|
-
static txt(requestPayload: RequestPayload & {
|
|
141
|
-
waitForSelector?: string;
|
|
142
|
-
waitForTimeout?: number;
|
|
143
|
-
scrollToBottom?: boolean;
|
|
144
|
-
saveCookies?: boolean;
|
|
145
|
-
closeBrowser?: boolean;
|
|
146
|
-
useSystemProxy?: boolean;
|
|
147
|
-
}): Promise<{
|
|
148
|
-
content: Array<{
|
|
149
|
-
type: string;
|
|
150
|
-
text: string;
|
|
151
|
-
}>;
|
|
152
|
-
isError: boolean;
|
|
153
|
-
}>;
|
|
154
|
-
/**
|
|
155
|
-
* 使用Puppeteer获取Markdown内容 (Get Markdown content using Puppeteer)
|
|
156
|
-
* 通过浏览器模式获取HTML并转换为Markdown (Fetch HTML in browser mode and convert to Markdown)
|
|
157
|
-
* @param requestPayload 请求参数 (Request parameters)
|
|
158
|
-
* @returns 获取结果 (Fetch result)
|
|
159
|
-
*/
|
|
160
|
-
static markdown(requestPayload: RequestPayload & {
|
|
161
|
-
waitForSelector?: string;
|
|
162
|
-
waitForTimeout?: number;
|
|
163
|
-
scrollToBottom?: boolean;
|
|
164
|
-
saveCookies?: boolean;
|
|
165
|
-
closeBrowser?: boolean;
|
|
166
|
-
useSystemProxy?: boolean;
|
|
167
|
-
}): Promise<{
|
|
168
|
-
content: Array<{
|
|
169
|
-
type: string;
|
|
170
|
-
text: string;
|
|
171
|
-
}>;
|
|
172
|
-
isError: boolean;
|
|
173
|
-
}>;
|
|
174
|
-
}
|
|
175
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserFetcher.js","sourceRoot":"","sources":["../../../src/lib/BrowserFetcher.ts"],"names":[],"mappings":"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"}
|