fa-mcp-sdk 0.2.17 → 0.2.18
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/dist/core/utils/testing/BaseMcpClient.d.ts +31 -0
- package/dist/core/utils/testing/BaseMcpClient.d.ts.map +1 -0
- package/dist/core/utils/testing/BaseMcpClient.js +58 -0
- package/dist/core/utils/testing/BaseMcpClient.js.map +1 -0
- package/dist/core/utils/testing/McpHttpClient.d.ts +4 -11
- package/dist/core/utils/testing/McpHttpClient.d.ts.map +1 -1
- package/dist/core/utils/testing/McpHttpClient.js +9 -29
- package/dist/core/utils/testing/McpHttpClient.js.map +1 -1
- package/dist/core/utils/testing/McpSseClient.d.ts +3 -10
- package/dist/core/utils/testing/McpSseClient.d.ts.map +1 -1
- package/dist/core/utils/testing/McpSseClient.js +14 -38
- package/dist/core/utils/testing/McpSseClient.js.map +1 -1
- package/dist/core/utils/testing/McpStdioClient.d.ts +3 -8
- package/dist/core/utils/testing/McpStdioClient.d.ts.map +1 -1
- package/dist/core/utils/testing/McpStdioClient.js +6 -20
- package/dist/core/utils/testing/McpStdioClient.js.map +1 -1
- package/dist/core/utils/testing/McpStreamableHttpClient.d.ts +3 -10
- package/dist/core/utils/testing/McpStreamableHttpClient.d.ts.map +1 -1
- package/dist/core/utils/testing/McpStreamableHttpClient.js +6 -26
- package/dist/core/utils/testing/McpStreamableHttpClient.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base MCP Client with common functionality
|
|
3
|
+
*
|
|
4
|
+
* Provides shared MCP methods that are identical across all transport implementations.
|
|
5
|
+
* Transport-specific methods should be overridden in child classes.
|
|
6
|
+
*/
|
|
7
|
+
export declare class BaseMcpClient {
|
|
8
|
+
protected nextId: number;
|
|
9
|
+
protected customHeaders: Record<string, string>;
|
|
10
|
+
constructor(customHeaders?: Record<string, string>);
|
|
11
|
+
/**
|
|
12
|
+
* Transport-specific request method - must be implemented by child classes
|
|
13
|
+
*/
|
|
14
|
+
protected sendRequest(_method: string, _params: any): Promise<any>;
|
|
15
|
+
/**
|
|
16
|
+
* Close connection - base implementation (can be overridden)
|
|
17
|
+
*/
|
|
18
|
+
close(): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Initialize connection - base implementation (can be overridden)
|
|
21
|
+
*/
|
|
22
|
+
initialize?(_params?: any): Promise<any>;
|
|
23
|
+
listTools(): Promise<any>;
|
|
24
|
+
callTool(toolName: string, args?: Record<string, any>): Promise<any>;
|
|
25
|
+
listResources(): Promise<any>;
|
|
26
|
+
readResource(uri: string): Promise<any>;
|
|
27
|
+
listPrompts(): Promise<any>;
|
|
28
|
+
getPrompt(name: string, args?: Record<string, any>): Promise<any>;
|
|
29
|
+
ping(): Promise<any>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=BaseMcpClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseMcpClient.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/testing/BaseMcpClient.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,SAAS,CAAC,MAAM,SAAK;IACrB,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEnC,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAIvD;;OAEG;cACa,WAAW,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzE;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACG,UAAU,CAAC,CAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAMzC,SAAS;IAKT,QAAQ,CAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAI1D,aAAa;IAKb,YAAY,CAAE,GAAG,EAAE,MAAM;IAIzB,WAAW;IAKX,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAIvD,IAAI;CAGX"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// noinspection UnnecessaryLocalVariableJS
|
|
2
|
+
/**
|
|
3
|
+
* Base MCP Client with common functionality
|
|
4
|
+
*
|
|
5
|
+
* Provides shared MCP methods that are identical across all transport implementations.
|
|
6
|
+
* Transport-specific methods should be overridden in child classes.
|
|
7
|
+
*/
|
|
8
|
+
export class BaseMcpClient {
|
|
9
|
+
nextId = 1;
|
|
10
|
+
customHeaders;
|
|
11
|
+
constructor(customHeaders = {}) {
|
|
12
|
+
this.customHeaders = customHeaders;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Transport-specific request method - must be implemented by child classes
|
|
16
|
+
*/
|
|
17
|
+
async sendRequest(_method, _params) {
|
|
18
|
+
throw new Error('sendRequest must be implemented by child class');
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Close connection - base implementation (can be overridden)
|
|
22
|
+
*/
|
|
23
|
+
async close() {
|
|
24
|
+
// Base implementation - can be overridden for specific transport needs
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Initialize connection - base implementation (can be overridden)
|
|
28
|
+
*/
|
|
29
|
+
async initialize(_params) {
|
|
30
|
+
// Base implementation - can be overridden for specific transport needs
|
|
31
|
+
}
|
|
32
|
+
// Common MCP methods - identical across all clients
|
|
33
|
+
async listTools() {
|
|
34
|
+
const result = await this.sendRequest('tools/list', {});
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
async callTool(toolName, args = {}) {
|
|
38
|
+
return this.sendRequest('tools/call', { name: toolName, arguments: args });
|
|
39
|
+
}
|
|
40
|
+
async listResources() {
|
|
41
|
+
const result = await this.sendRequest('resources/list', {});
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
async readResource(uri) {
|
|
45
|
+
return this.sendRequest('resources/read', { uri });
|
|
46
|
+
}
|
|
47
|
+
async listPrompts() {
|
|
48
|
+
const result = await this.sendRequest('prompts/list', {});
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
async getPrompt(name, args = {}) {
|
|
52
|
+
return this.sendRequest('prompts/get', { name, arguments: args });
|
|
53
|
+
}
|
|
54
|
+
async ping() {
|
|
55
|
+
return this.sendRequest('ping', {});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=BaseMcpClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseMcpClient.js","sourceRoot":"","sources":["../../../../src/core/utils/testing/BaseMcpClient.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAE1C;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACd,MAAM,GAAG,CAAC,CAAC;IACX,aAAa,CAAyB;IAEhD,YAAa,gBAAwC,EAAE;QACrD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,WAAW,CAAE,OAAe,EAAE,OAAY;QACxD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,uEAAuE;IACzE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAG,OAAa;QAC9B,uEAAuE;IACzE,CAAC;IAED,oDAAoD;IAEpD,KAAK,CAAC,SAAS;QACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAE,QAAgB,EAAE,OAA4B,EAAE;QAC9D,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,YAAY,CAAE,GAAW;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,SAAS,CAAE,IAAY,EAAE,OAA4B,EAAE;QAC3D,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BaseMcpClient } from './BaseMcpClient.js';
|
|
1
2
|
type Json = any;
|
|
2
3
|
/**
|
|
3
4
|
* MCP Simple HTTP Client
|
|
@@ -5,11 +6,9 @@ type Json = any;
|
|
|
5
6
|
* Uses simple POST requests instead of streaming HTTP for compatibility
|
|
6
7
|
* with the current server implementation
|
|
7
8
|
*/
|
|
8
|
-
export declare class McpHttpClient {
|
|
9
|
+
export declare class McpHttpClient extends BaseMcpClient {
|
|
9
10
|
private readonly baseUrl;
|
|
10
11
|
private readonly endpointPath;
|
|
11
|
-
private readonly customHeaders;
|
|
12
|
-
private nextId;
|
|
13
12
|
serverInfo?: {
|
|
14
13
|
name: string;
|
|
15
14
|
version: string;
|
|
@@ -30,16 +29,10 @@ export declare class McpHttpClient {
|
|
|
30
29
|
};
|
|
31
30
|
}): Promise<any>;
|
|
32
31
|
close(): Promise<void>;
|
|
33
|
-
private
|
|
32
|
+
private sendHttpRequest;
|
|
34
33
|
notify(method: string, params?: Json): void;
|
|
35
34
|
sendRpc<T = any>(method: string, params?: Json): Promise<T>;
|
|
36
|
-
|
|
37
|
-
callTool(toolName: string, args?: Record<string, any>): Promise<any>;
|
|
38
|
-
listResources(): Promise<any>;
|
|
39
|
-
readResource(uri: string): Promise<any>;
|
|
40
|
-
listPrompts(): Promise<any>;
|
|
41
|
-
getPrompt(name: string, args?: Record<string, any>): Promise<any>;
|
|
42
|
-
ping(): Promise<any>;
|
|
35
|
+
protected sendRequest(method: string, params: any): Promise<any>;
|
|
43
36
|
}
|
|
44
37
|
export {};
|
|
45
38
|
//# sourceMappingURL=McpHttpClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpHttpClient.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpHttpClient.ts"],"names":[],"mappings":"AAEA,KAAK,IAAI,GAAG,GAAG,CAAC;AA6BhB;;;;;GAKG;AACH,qBAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"McpHttpClient.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpHttpClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,KAAK,IAAI,GAAG,GAAG,CAAC;AA6BhB;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,aAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAE/B,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACtC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;IAMc,UAAU,CAAE,MAAM,GAAE;QACjC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,YAAY,CAAC,EAAE,GAAG,CAAC;QACnB,UAAU,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3C;IAWS,KAAK;YAIN,eAAe;IAqB7B,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IAQ/B,OAAO,CAAC,CAAC,GAAG,GAAG,EAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;cAwBzC,WAAW,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAGjF"}
|
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
// noinspection UnnecessaryLocalVariableJS
|
|
2
|
+
import { BaseMcpClient } from './BaseMcpClient.js';
|
|
2
3
|
/**
|
|
3
4
|
* MCP Simple HTTP Client
|
|
4
5
|
*
|
|
5
6
|
* Uses simple POST requests instead of streaming HTTP for compatibility
|
|
6
7
|
* with the current server implementation
|
|
7
8
|
*/
|
|
8
|
-
export class McpHttpClient {
|
|
9
|
+
export class McpHttpClient extends BaseMcpClient {
|
|
9
10
|
baseUrl;
|
|
10
11
|
endpointPath;
|
|
11
|
-
customHeaders;
|
|
12
|
-
nextId = 1;
|
|
13
12
|
serverInfo;
|
|
14
13
|
capabilities;
|
|
15
14
|
protocolVersion;
|
|
16
15
|
constructor(baseUrl, options) {
|
|
16
|
+
super(options?.headers ?? {});
|
|
17
17
|
this.baseUrl = baseUrl.replace(/\/$/, '');
|
|
18
18
|
this.endpointPath = options?.endpointPath ?? '/mcp';
|
|
19
|
-
this.customHeaders = options?.headers ?? {};
|
|
20
19
|
}
|
|
21
20
|
async initialize(params = {}) {
|
|
22
21
|
const res = await this.sendRpc('initialize', params);
|
|
@@ -30,7 +29,7 @@ export class McpHttpClient {
|
|
|
30
29
|
async close() {
|
|
31
30
|
// No persistent connection to close for simple HTTP client
|
|
32
31
|
}
|
|
33
|
-
async
|
|
32
|
+
async sendHttpRequest(request) {
|
|
34
33
|
const headers = {
|
|
35
34
|
'Content-Type': 'application/json',
|
|
36
35
|
'Accept': 'application/json',
|
|
@@ -50,14 +49,14 @@ export class McpHttpClient {
|
|
|
50
49
|
notify(method, params) {
|
|
51
50
|
const req = { jsonrpc: '2.0', method, params };
|
|
52
51
|
// Fire and forget for notifications
|
|
53
|
-
this.
|
|
52
|
+
this.sendHttpRequest(req).catch(() => {
|
|
54
53
|
// Ignore errors for notifications
|
|
55
54
|
});
|
|
56
55
|
}
|
|
57
56
|
async sendRpc(method, params) {
|
|
58
57
|
const id = this.nextId++;
|
|
59
58
|
const req = { jsonrpc: '2.0', id, method, params };
|
|
60
|
-
const response = await this.
|
|
59
|
+
const response = await this.sendHttpRequest(req);
|
|
61
60
|
// Handle response
|
|
62
61
|
if (response.result !== undefined && typeof response.id === 'number') {
|
|
63
62
|
const { result } = response;
|
|
@@ -72,28 +71,9 @@ export class McpHttpClient {
|
|
|
72
71
|
}
|
|
73
72
|
throw new Error(`Invalid MCP response: ${JSON.stringify(response)}`);
|
|
74
73
|
}
|
|
75
|
-
//
|
|
76
|
-
async
|
|
77
|
-
|
|
78
|
-
return res?.tools ?? res;
|
|
79
|
-
}
|
|
80
|
-
async callTool(toolName, args = {}) {
|
|
81
|
-
return this.sendRpc('tools/call', { name: toolName, arguments: args });
|
|
82
|
-
}
|
|
83
|
-
async listResources() {
|
|
84
|
-
return this.sendRpc('resources/list');
|
|
85
|
-
}
|
|
86
|
-
async readResource(uri) {
|
|
87
|
-
return this.sendRpc('resources/read', { uri });
|
|
88
|
-
}
|
|
89
|
-
async listPrompts() {
|
|
90
|
-
return this.sendRpc('prompts/list');
|
|
91
|
-
}
|
|
92
|
-
async getPrompt(name, args = {}) {
|
|
93
|
-
return this.sendRpc('prompts/get', { name, arguments: args });
|
|
94
|
-
}
|
|
95
|
-
async ping() {
|
|
96
|
-
return this.sendRpc('ping');
|
|
74
|
+
// Override sendRequest to handle JSON-RPC requests
|
|
75
|
+
async sendRequest(method, params) {
|
|
76
|
+
return this.sendRpc(method, params);
|
|
97
77
|
}
|
|
98
78
|
}
|
|
99
79
|
//# sourceMappingURL=McpHttpClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpHttpClient.js","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpHttpClient.ts"],"names":[],"mappings":"AAAA,0CAA0C;
|
|
1
|
+
{"version":3,"file":"McpHttpClient.js","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpHttpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BaseMcpClient } from './BaseMcpClient.js';
|
|
1
2
|
/**
|
|
2
3
|
* MCP SSE Client for testing (improved)
|
|
3
4
|
*
|
|
@@ -5,9 +6,8 @@
|
|
|
5
6
|
* and sends JSON-RPC requests as separate HTTP POSTs to /rpc.
|
|
6
7
|
* Supports routing by id and per-operation timeouts.
|
|
7
8
|
*/
|
|
8
|
-
export declare class McpSseClient {
|
|
9
|
+
export declare class McpSseClient extends BaseMcpClient {
|
|
9
10
|
private readonly baseUrl;
|
|
10
|
-
private readonly customHeaders;
|
|
11
11
|
private requestId;
|
|
12
12
|
private sseAbort?;
|
|
13
13
|
private sseReaderTask?;
|
|
@@ -27,14 +27,7 @@ export declare class McpSseClient {
|
|
|
27
27
|
/**
|
|
28
28
|
* Send JSON-RPC request over HTTP; await response via SSE stream
|
|
29
29
|
*/
|
|
30
|
-
sendRequest(method: string, params?: Record<string, any>): Promise<any>;
|
|
31
|
-
listTools(): Promise<any>;
|
|
32
|
-
callTool(toolName: string, parameters?: {}): Promise<any>;
|
|
33
|
-
listResources(): Promise<any>;
|
|
34
|
-
readResource(uri: string): Promise<any>;
|
|
35
|
-
listPrompts(): Promise<any>;
|
|
36
|
-
getPrompt(name: string, args?: Record<string, any>): Promise<any>;
|
|
37
|
-
ping(): Promise<any>;
|
|
30
|
+
protected sendRequest(method: string, params?: Record<string, any>): Promise<any>;
|
|
38
31
|
health(): Promise<unknown>;
|
|
39
32
|
}
|
|
40
33
|
//# sourceMappingURL=McpSseClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpSseClient.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpSseClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"McpSseClient.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpSseClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAWnD;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,aAAa;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,QAAQ,CAAC,CAA8B;IAC/C,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,OAAO,CAKV;gBAEQ,OAAO,EAAE,MAAM,EAAE,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAMxE,mDAAmD;IACpC,KAAK;IAkBpB,oCAAoC;YACtB,eAAe;IAO7B,sDAAsD;YACxC,OAAO;IAqCrB,4DAA4D;YAC9C,WAAW;IAgCzB,0EAA0E;IAC1E,OAAO,CAAC,cAAc;IAqEtB;;OAEG;cACsB,WAAW,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAsC/F,MAAM;CAIb"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getJsonFromResult } from '../../index.js';
|
|
2
|
+
import { BaseMcpClient } from './BaseMcpClient.js';
|
|
2
3
|
async function safeReadText(res) {
|
|
3
4
|
try {
|
|
4
5
|
const text = await res.text();
|
|
@@ -15,9 +16,8 @@ async function safeReadText(res) {
|
|
|
15
16
|
* and sends JSON-RPC requests as separate HTTP POSTs to /rpc.
|
|
16
17
|
* Supports routing by id and per-operation timeouts.
|
|
17
18
|
*/
|
|
18
|
-
export class McpSseClient {
|
|
19
|
+
export class McpSseClient extends BaseMcpClient {
|
|
19
20
|
baseUrl;
|
|
20
|
-
customHeaders;
|
|
21
21
|
requestId;
|
|
22
22
|
// SSE connection state
|
|
23
23
|
sseAbort;
|
|
@@ -26,8 +26,8 @@ export class McpSseClient {
|
|
|
26
26
|
// pending requests awaiting response by id
|
|
27
27
|
pending = new Map();
|
|
28
28
|
constructor(baseUrl, customHeaders = {}) {
|
|
29
|
+
super(customHeaders);
|
|
29
30
|
this.baseUrl = baseUrl.replace(/\/$/, '');
|
|
30
|
-
this.customHeaders = customHeaders;
|
|
31
31
|
this.requestId = 1;
|
|
32
32
|
}
|
|
33
33
|
/** Public API: close SSE and reject all pending */
|
|
@@ -167,10 +167,16 @@ export class McpSseClient {
|
|
|
167
167
|
// In test environment, log validation errors but don't crash
|
|
168
168
|
if (errorMessage.includes('invalid_type')) {
|
|
169
169
|
console.log(` ⚠️ Parameter validation error: ${errorMessage}`);
|
|
170
|
-
pending.resolve(
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
170
|
+
pending.resolve(null);
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
// For tool execution errors, we want to throw them so tests can verify expected failures
|
|
174
|
+
if (errorMessage.includes('Failed to execute tool')) {
|
|
175
|
+
console.log(` ⚠️ Error: ${errorMessage}`);
|
|
176
|
+
const err = new Error(`MCP Error: ${errorMessage}`);
|
|
177
|
+
err.data = payload.error?.data;
|
|
178
|
+
err.fullMcpResponse = payload;
|
|
179
|
+
pending.reject(err);
|
|
174
180
|
return;
|
|
175
181
|
}
|
|
176
182
|
const err = new Error(`MCP Error: ${errorMessage}`);
|
|
@@ -183,10 +189,7 @@ export class McpSseClient {
|
|
|
183
189
|
if (res?.message) {
|
|
184
190
|
console.log(' message:', res.message);
|
|
185
191
|
}
|
|
186
|
-
pending.resolve(
|
|
187
|
-
result: payload.result,
|
|
188
|
-
requestHeaders: this.customHeaders,
|
|
189
|
-
});
|
|
192
|
+
pending.resolve(payload.result);
|
|
190
193
|
}
|
|
191
194
|
}
|
|
192
195
|
/**
|
|
@@ -224,33 +227,6 @@ export class McpSseClient {
|
|
|
224
227
|
}
|
|
225
228
|
return promise;
|
|
226
229
|
}
|
|
227
|
-
async listTools() {
|
|
228
|
-
const { result } = await this.sendRequest('tools/list');
|
|
229
|
-
return result;
|
|
230
|
-
}
|
|
231
|
-
async callTool(toolName, parameters = {}) {
|
|
232
|
-
return this.sendRequest('tools/call', {
|
|
233
|
-
name: toolName,
|
|
234
|
-
arguments: parameters,
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
async listResources() {
|
|
238
|
-
const { result } = await this.sendRequest('resources/list');
|
|
239
|
-
return result;
|
|
240
|
-
}
|
|
241
|
-
async readResource(uri) {
|
|
242
|
-
return this.sendRequest('resources/read', { uri });
|
|
243
|
-
}
|
|
244
|
-
async listPrompts() {
|
|
245
|
-
const { result } = await this.sendRequest('prompts/list');
|
|
246
|
-
return result;
|
|
247
|
-
}
|
|
248
|
-
async getPrompt(name, args = {}) {
|
|
249
|
-
return this.sendRequest('prompts/get', { name, arguments: args });
|
|
250
|
-
}
|
|
251
|
-
async ping() {
|
|
252
|
-
return this.sendRequest('ping');
|
|
253
|
-
}
|
|
254
230
|
async health() {
|
|
255
231
|
const response = await fetch(`${this.baseUrl}/health`);
|
|
256
232
|
return response.json();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpSseClient.js","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpSseClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,KAAK,UAAU,YAAY,CAAE,GAAa;IACxC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"McpSseClient.js","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpSseClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
import '../../bootstrap/dotenv.js';
|
|
2
2
|
import { ChildProcess } from 'child_process';
|
|
3
|
-
|
|
3
|
+
import { BaseMcpClient } from './BaseMcpClient.js';
|
|
4
|
+
export declare class McpStdioClient extends BaseMcpClient {
|
|
4
5
|
private proc;
|
|
5
|
-
private nextId;
|
|
6
6
|
private pending;
|
|
7
7
|
private buffer;
|
|
8
8
|
constructor(proc: ChildProcess);
|
|
9
9
|
processLines(): void;
|
|
10
10
|
send(method: string, params?: {}, timeoutMs?: number): Promise<unknown>;
|
|
11
|
-
|
|
12
|
-
callTool(name: string, args?: Record<string, any>): Promise<unknown>;
|
|
13
|
-
listResources(): Promise<unknown>;
|
|
14
|
-
readResource(uri: string): Promise<unknown>;
|
|
15
|
-
listPrompts(): Promise<unknown>;
|
|
16
|
-
getPrompt(name: string, args?: Record<string, any>): Promise<unknown>;
|
|
11
|
+
protected sendRequest(method: string, params: any): Promise<any>;
|
|
17
12
|
}
|
|
18
13
|
//# sourceMappingURL=McpStdioClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpStdioClient.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpStdioClient.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"McpStdioClient.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpStdioClient.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAYnD,qBAAa,cAAe,SAAQ,aAAa;IAC/C,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,MAAM,CAAS;gBAEV,IAAI,EAAE,YAAY;IAqB/B,YAAY;IA+BZ,IAAI,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,EAAE,SAAS,SAAQ;cAsB3B,WAAW,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAGjF"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import '../../bootstrap/dotenv.js';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
|
+
import { BaseMcpClient } from './BaseMcpClient.js';
|
|
3
4
|
const SHOW_IN = process.env.TEST_SHOW_IN === 'true';
|
|
4
5
|
const SHOW_OUT = process.env.TEST_SHOW_OUT === 'true';
|
|
5
6
|
const SHOW_ERR = process.env.TEST_SHOW_ERR === 'true';
|
|
6
|
-
export class McpStdioClient {
|
|
7
|
+
export class McpStdioClient extends BaseMcpClient {
|
|
7
8
|
proc;
|
|
8
|
-
nextId;
|
|
9
9
|
pending;
|
|
10
10
|
buffer;
|
|
11
11
|
constructor(proc) {
|
|
12
|
+
super({});
|
|
12
13
|
this.proc = proc;
|
|
13
|
-
this.nextId = 1;
|
|
14
14
|
this.pending = new Map();
|
|
15
15
|
this.buffer = '';
|
|
16
16
|
if (this.proc.stdout) {
|
|
@@ -80,23 +80,9 @@ export class McpStdioClient {
|
|
|
80
80
|
this.pending.set(id, { resolve, reject, t });
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
callTool(name, args = {}) {
|
|
87
|
-
return this.send('tools/call', { name, arguments: args });
|
|
88
|
-
}
|
|
89
|
-
listResources() {
|
|
90
|
-
return this.send('resources/list');
|
|
91
|
-
}
|
|
92
|
-
readResource(uri) {
|
|
93
|
-
return this.send('resources/read', { uri });
|
|
94
|
-
}
|
|
95
|
-
listPrompts() {
|
|
96
|
-
return this.send('prompts/list');
|
|
97
|
-
}
|
|
98
|
-
getPrompt(name, args = {}) {
|
|
99
|
-
return this.send('prompts/get', { name, arguments: args });
|
|
83
|
+
// Override sendRequest to use the existing send method
|
|
84
|
+
async sendRequest(method, params) {
|
|
85
|
+
return this.send(method, params);
|
|
100
86
|
}
|
|
101
87
|
}
|
|
102
88
|
//# sourceMappingURL=McpStdioClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpStdioClient.js","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpStdioClient.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"McpStdioClient.js","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpStdioClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BaseMcpClient } from './BaseMcpClient.js';
|
|
1
2
|
type Json = any;
|
|
2
3
|
/**
|
|
3
4
|
* MCP Streamable HTTP Client
|
|
@@ -5,10 +6,9 @@ type Json = any;
|
|
|
5
6
|
* Supports a long-lived connection over HTTP (NDJSON),
|
|
6
7
|
* multiple requests/responses and incoming notifications.
|
|
7
8
|
*/
|
|
8
|
-
export declare class McpStreamableHttpClient {
|
|
9
|
+
export declare class McpStreamableHttpClient extends BaseMcpClient {
|
|
9
10
|
private readonly baseUrl;
|
|
10
11
|
private readonly endpointPath;
|
|
11
|
-
private readonly customHeaders;
|
|
12
12
|
private readonly requestTimeoutMs;
|
|
13
13
|
private encoder;
|
|
14
14
|
private decoder;
|
|
@@ -18,7 +18,6 @@ export declare class McpStreamableHttpClient {
|
|
|
18
18
|
private reader;
|
|
19
19
|
private abort;
|
|
20
20
|
private readLoopPromise;
|
|
21
|
-
private nextId;
|
|
22
21
|
private pending;
|
|
23
22
|
private notifications;
|
|
24
23
|
serverInfo?: {
|
|
@@ -50,13 +49,7 @@ export declare class McpStreamableHttpClient {
|
|
|
50
49
|
private writeNdjson;
|
|
51
50
|
notify(method: string, params?: Json): void;
|
|
52
51
|
sendRpc<T = any>(method: string, params?: Json, timeoutMs?: number): Promise<T>;
|
|
53
|
-
|
|
54
|
-
callTool(toolName: string, parameters?: Record<string, any>): Promise<any>;
|
|
55
|
-
listResources(): Promise<any>;
|
|
56
|
-
readResource(uri: string): Promise<any>;
|
|
57
|
-
listPrompts(): Promise<any>;
|
|
58
|
-
getPrompt(name: string, arguments_?: Record<string, any>): Promise<any>;
|
|
59
|
-
ping(): Promise<any>;
|
|
52
|
+
protected sendRequest(method: string, params: any): Promise<any>;
|
|
60
53
|
}
|
|
61
54
|
export {};
|
|
62
55
|
//# sourceMappingURL=McpStreamableHttpClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpStreamableHttpClient.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpStreamableHttpClient.ts"],"names":[],"mappings":"AAAA,KAAK,IAAI,GAAG,GAAG,CAAC;AA6BhB;;;;;GAKG;AACH,qBAAa,
|
|
1
|
+
{"version":3,"file":"McpStreamableHttpClient.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpStreamableHttpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,KAAK,IAAI,GAAG,GAAG,CAAC;AA6BhB;;;;;GAKG;AACH,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAE1C,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,MAAM,CAAsD;IACpE,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,eAAe,CAA4B;IAEjD,OAAO,CAAC,OAAO,CAA2F;IAC5G,OAAO,CAAC,aAAa,CAAiD;IAE/D,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACtC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;IAOD,cAAc,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI;IAM9D,OAAO,CAAC,gBAAgB;IAWlB,OAAO;IAsCE,UAAU,CAAE,MAAM,GAAE;QACjC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,YAAY,CAAC,EAAE,GAAG,CAAC;QACnB,UAAU,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3C;IAYS,KAAK;IAyBpB,OAAO,CAAC,OAAO;YAOD,QAAQ;IAwBtB,OAAO,CAAC,aAAa;IAqCrB,OAAO,CAAC,WAAW;IAKnB,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IAK/B,OAAO,CAAC,CAAC,GAAG,GAAG,EAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,SAAwB,GAAG,OAAO,CAAC,CAAC,CAAC;cAgB5E,WAAW,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAGjF"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
import { BaseMcpClient } from './BaseMcpClient.js';
|
|
1
2
|
/**
|
|
2
3
|
* MCP Streamable HTTP Client
|
|
3
4
|
*
|
|
4
5
|
* Supports a long-lived connection over HTTP (NDJSON),
|
|
5
6
|
* multiple requests/responses and incoming notifications.
|
|
6
7
|
*/
|
|
7
|
-
export class McpStreamableHttpClient {
|
|
8
|
+
export class McpStreamableHttpClient extends BaseMcpClient {
|
|
8
9
|
baseUrl;
|
|
9
10
|
endpointPath;
|
|
10
|
-
customHeaders;
|
|
11
11
|
requestTimeoutMs;
|
|
12
12
|
encoder = new TextEncoder();
|
|
13
13
|
decoder = new TextDecoder();
|
|
@@ -17,16 +17,15 @@ export class McpStreamableHttpClient {
|
|
|
17
17
|
reader;
|
|
18
18
|
abort;
|
|
19
19
|
readLoopPromise;
|
|
20
|
-
nextId = 1;
|
|
21
20
|
pending = new Map();
|
|
22
21
|
notifications = new Map();
|
|
23
22
|
serverInfo;
|
|
24
23
|
capabilities;
|
|
25
24
|
protocolVersion;
|
|
26
25
|
constructor(baseUrl, options) {
|
|
26
|
+
super(options?.headers ?? {});
|
|
27
27
|
this.baseUrl = baseUrl.replace(/\/$/, '');
|
|
28
28
|
this.endpointPath = options?.endpointPath ?? '/mcp';
|
|
29
|
-
this.customHeaders = options?.headers ?? {};
|
|
30
29
|
this.requestTimeoutMs = options?.requestTimeoutMs ?? 120_000;
|
|
31
30
|
}
|
|
32
31
|
onNotification(method, handler) {
|
|
@@ -215,28 +214,9 @@ export class McpStreamableHttpClient {
|
|
|
215
214
|
this.writeNdjson(req);
|
|
216
215
|
return p;
|
|
217
216
|
}
|
|
218
|
-
//
|
|
219
|
-
async
|
|
220
|
-
|
|
221
|
-
return res?.tools ?? res;
|
|
222
|
-
}
|
|
223
|
-
async callTool(toolName, parameters = {}) {
|
|
224
|
-
return this.sendRpc('tools/call', { name: toolName, arguments: parameters });
|
|
225
|
-
}
|
|
226
|
-
async listResources() {
|
|
227
|
-
return this.sendRpc('resources/list');
|
|
228
|
-
}
|
|
229
|
-
async readResource(uri) {
|
|
230
|
-
return this.sendRpc('resources/read', { uri });
|
|
231
|
-
}
|
|
232
|
-
async listPrompts() {
|
|
233
|
-
return this.sendRpc('prompts/list');
|
|
234
|
-
}
|
|
235
|
-
async getPrompt(name, arguments_ = {}) {
|
|
236
|
-
return this.sendRpc('prompts/get', { name, arguments: arguments_ });
|
|
237
|
-
}
|
|
238
|
-
async ping() {
|
|
239
|
-
return this.sendRpc('ping');
|
|
217
|
+
// Override sendRequest to use sendRpc for consistency
|
|
218
|
+
async sendRequest(method, params) {
|
|
219
|
+
return this.sendRpc(method, params);
|
|
240
220
|
}
|
|
241
221
|
}
|
|
242
222
|
//# sourceMappingURL=McpStreamableHttpClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpStreamableHttpClient.js","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpStreamableHttpClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"McpStreamableHttpClient.js","sourceRoot":"","sources":["../../../../src/core/utils/testing/McpStreamableHttpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA+BnD;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,aAAa;IACvC,OAAO,CAAS;IAChB,YAAY,CAAS;IACrB,gBAAgB,CAAS;IAElC,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAC5B,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAC5B,UAAU,CAA+C;IACzD,QAAQ,CAA8B;IACtC,QAAQ,CAAuB;IAC/B,MAAM,CAAsD;IAC5D,KAAK,CAA8B;IACnC,eAAe,CAA4B;IAEzC,OAAO,GAAG,IAAI,GAAG,EAAgF,CAAC;IACpG,aAAa,GAAG,IAAI,GAAG,EAAsC,CAAC;IAE/D,UAAU,CAAqC;IAC/C,YAAY,CAAO;IACnB,eAAe,CAAU;IAEhC,YAAa,OAAe,EAAE,OAI7B;QACC,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,MAAM,CAAC;QACpD,IAAI,CAAC,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,IAAI,OAAO,CAAC;IAC/D,CAAC;IAED,cAAc,CAAE,MAAc,EAAE,OAA8B;QAC5D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAAA,CAAC;QACjF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;IAEO,gBAAgB,CAAE,MAAc,EAAE,MAAW;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;YAAA,OAAO;QAAA,CAAC;QACnB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,EAAE,CAAC,MAAM,CAAC,CAAC;YACb,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAAA,OAAO;QAAA,CAAC,CAAC,oBAAoB;QAEjD,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACnC,4CAA4C;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAa;YAC7C,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,MAAM,EAAE,GAAG,EAAE;YACb,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG;YACd,cAAc,EAAE,kBAAkB;YAClC,QAAQ,EAAE,kBAAkB;YAC5B,GAAG,IAAI,CAAC,aAAa;SACI,CAAC;QAE5B,IAAI,CAAC,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,2DAA2D;YAC3D,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACzG,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzC,CAAC;IAEQ,KAAK,CAAC,UAAU,CAAE,SAIvB,EAAE;QACJ,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,eAAe,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE,YAAY,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,UAAU,CAAC;QAElC,kFAAkF;QAClF,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;QAC7C,OAAO,GAAG,CAAC;IACb,CAAC;IAEQ,KAAK,CAAC,KAAK;QAClB,IAAI,CAAC;YACH,uCAAuC;YACvC,IAAI,CAAC;gBACH,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;YACT,CAAC;YACD,8BAA8B;YAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACpC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,eAAe;YACf,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;YACT,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,GAAG,EAAE;YACvC,CAAC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,MAAO,CAAC,IAAI,EAAE,CAAC;YAClD,IAAI,IAAI,EAAE,CAAC;gBAAA,MAAM;YAAA,CAAC;YAClB,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,IAAI,GAAG,CAAC;YACR,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAClC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;oBAAA,SAAS;gBAAA,CAAC;gBACzB,IAAI,GAA+B,CAAC;gBACpC,IAAI,CAAC;oBACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,GAAG,EAAE,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,aAAa,CAAE,GAAmB;QACxC,mBAAmB;QACnB,IAAK,GAAW,CAAC,MAAM,KAAK,SAAS,IAAI,OAAQ,GAAW,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC7E,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,GAAqB,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO;QACT,CAAC;QACD,iBAAiB;QACjB,IAAK,GAAW,CAAC,KAAK,IAAI,IAAI,IAAK,GAAW,EAAE,CAAC;YAC/C,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,GAAsB,CAAC;YAC7C,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrC,IAAI,OAAO,EAAE,CAAC;oBACZ,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACxB,MAAM,GAAG,GAAQ,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;oBACxE,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;oBACtB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,+CAA+C;gBAC/C,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACxC,CAAC;YACD,OAAO;QACT,CAAC;QACD,gCAAgC;QAChC,IAAK,GAAW,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAqB,CAAC;YACjD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEO,WAAW,CAAE,GAAW;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAE,MAAc,EAAE,MAAa;QACnC,MAAM,GAAG,GAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC/D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO,CAAW,MAAc,EAAE,MAAa,EAAE,SAAS,GAAG,IAAI,CAAC,gBAAgB;QACtF,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,GAAG,GAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACnE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxB,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC,CAAC;YACpD,CAAC,EAAE,SAAS,CAAC,CAAC;YACd,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACtB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,sDAAsD;IACnC,KAAK,CAAC,WAAW,CAAE,MAAc,EAAE,MAAW;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fa-mcp-sdk",
|
|
3
3
|
"productName": "FA MCP SDK",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.18",
|
|
5
5
|
"description": "Core infrastructure and templates for building Model Context Protocol (MCP) servers with TypeScript",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/core/index.js",
|