@h1deya/mcp-client-cli 0.3.9 → 0.4.0
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 +4 -4
- package/dist/index.js +6 -22
- package/dist/index.js.map +1 -1
- package/package.json +10 -13
- package/dist/remote-server-utils.d.ts +0 -18
- package/dist/remote-server-utils.d.ts.map +0 -1
- package/dist/remote-server-utils.js +0 -91
- package/dist/remote-server-utils.js.map +0 -1
package/README.md
CHANGED
|
@@ -266,14 +266,14 @@ There are quite a few useful MCP servers already available:
|
|
|
266
266
|
- Use `--verbose` flag to view the detailed logs
|
|
267
267
|
- Refer to [Debugging Section in MCP documentation](https://modelcontextprotocol.io/docs/tools/debugging)
|
|
268
268
|
|
|
269
|
-
## Change Log
|
|
270
|
-
|
|
271
|
-
Can be found [here](https://github.com/hideya/mcp-client-langchain-ts/blob/main/CHANGELOG.md)
|
|
272
|
-
|
|
273
269
|
## Building from Source
|
|
274
270
|
|
|
275
271
|
See [README_DEV.md](https://github.com/hideya/mcp-client-langchain-ts/blob/main/README_DEV.md) for details.
|
|
276
272
|
|
|
273
|
+
## Change Log
|
|
274
|
+
|
|
275
|
+
Can be found [here](https://github.com/hideya/mcp-client-langchain-ts/blob/main/CHANGELOG.md)
|
|
276
|
+
|
|
277
277
|
## License
|
|
278
278
|
|
|
279
279
|
MIT License - see [LICENSE](LICENSE) file for details.
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import "dotenv/config";
|
|
3
|
-
import {
|
|
4
|
-
import { MemorySaver } from "@langchain/langgraph";
|
|
5
|
-
import { HumanMessage } from "@langchain/core/messages";
|
|
3
|
+
import { createAgent, HumanMessage } from "langchain";
|
|
4
|
+
import { MemorySaver } from "@langchain/langgraph-checkpoint";
|
|
6
5
|
import { convertMcpToLangchainTools } from "@h1deya/langchain-mcp-tools";
|
|
7
6
|
import { initChatModel } from "./init-chat-model.js";
|
|
8
7
|
import { loadConfig } from "./load-config.js";
|
|
@@ -12,21 +11,6 @@ import { hideBin } from "yargs/helpers";
|
|
|
12
11
|
import * as fs from "fs";
|
|
13
12
|
import * as path from "path";
|
|
14
13
|
import { fileURLToPath } from "url";
|
|
15
|
-
// NOTE: without the following, I got this error:
|
|
16
|
-
// ReferenceError: WebSocket is not defined
|
|
17
|
-
// at <anonymous> (.../node_modules/@modelcontextprotocol/sdk/src/client/websocket.ts:29:26)
|
|
18
|
-
import WebSocket from 'ws';
|
|
19
|
-
global.WebSocket = WebSocket;
|
|
20
|
-
// // Remote server connection testing
|
|
21
|
-
// // Uncomment the following code snippet and add the configuration below to the configuration file.
|
|
22
|
-
// // weather: {
|
|
23
|
-
// // "url": "http://localhost:${SSE_SERVER_PORT}/sse"
|
|
24
|
-
// // },
|
|
25
|
-
// // This leverages the Supergateway to make the Weather Studio MCP Server accessible as an SSE server.
|
|
26
|
-
// import { startRemoteMcpServerLocally } from "./remote-server-utils.js";
|
|
27
|
-
// const [sseServerProcess, sseServerPort] = await startRemoteMcpServerLocally(
|
|
28
|
-
// "SSE", "npx -y @h1deya/mcp-server-weather");
|
|
29
|
-
// process.env.SSE_SERVER_PORT = `${sseServerPort}`;
|
|
30
14
|
// Constants
|
|
31
15
|
const COLORS = {
|
|
32
16
|
YELLOW: "\x1b[33m",
|
|
@@ -166,7 +150,7 @@ async function initializeReactAgent(config, verbose, logDir) {
|
|
|
166
150
|
temperature: config.llm.temperature,
|
|
167
151
|
maxTokens: config.llm.max_tokens,
|
|
168
152
|
};
|
|
169
|
-
const
|
|
153
|
+
const model = initChatModel(llmConfig);
|
|
170
154
|
console.log(`Initializing ${Object.keys(config.mcp_servers).length} MCP server(s)...\n`);
|
|
171
155
|
// Ensure log directory exists
|
|
172
156
|
if (!fs.existsSync(logDir)) {
|
|
@@ -193,10 +177,10 @@ async function initializeReactAgent(config, verbose, logDir) {
|
|
|
193
177
|
const toolsAndCleanup = await convertMcpToLangchainTools(config.mcp_servers, { llmProvider, logLevel: verbose ? "debug" : "info" });
|
|
194
178
|
const tools = toolsAndCleanup.tools;
|
|
195
179
|
const mcpCleanup = toolsAndCleanup.cleanup;
|
|
196
|
-
const agent =
|
|
197
|
-
|
|
180
|
+
const agent = createAgent({
|
|
181
|
+
model,
|
|
198
182
|
tools,
|
|
199
|
-
|
|
183
|
+
checkpointer: new MemorySaver(),
|
|
200
184
|
});
|
|
201
185
|
async function cleanup() {
|
|
202
186
|
await mcpCleanup();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@h1deya/mcp-client-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Simple MCP Client to quickly test and explore MCP servers from the command line",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -53,21 +53,18 @@
|
|
|
53
53
|
"publish:do": "npm run publish:prepare && npm publish --access=public"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@h1deya/langchain-mcp-tools": "^0.
|
|
57
|
-
"@langchain/anthropic": "^
|
|
58
|
-
"@langchain/cerebras": "^
|
|
59
|
-
"@langchain/
|
|
60
|
-
"@langchain/
|
|
61
|
-
"@langchain/
|
|
62
|
-
"@langchain/
|
|
63
|
-
"@langchain/openai": "^0.3.16",
|
|
64
|
-
"@langchain/xai": "^0.1.0",
|
|
56
|
+
"@h1deya/langchain-mcp-tools": "^0.4.0",
|
|
57
|
+
"@langchain/anthropic": "^1.3.17",
|
|
58
|
+
"@langchain/cerebras": "^1.0.1",
|
|
59
|
+
"@langchain/google-genai": "^2.1.18",
|
|
60
|
+
"@langchain/groq": "^1.1.0",
|
|
61
|
+
"@langchain/openai": "^1.2.7",
|
|
62
|
+
"@langchain/xai": "^1.3.3",
|
|
65
63
|
"@types/yargs": "^17.0.33",
|
|
66
64
|
"dotenv": "^16.4.7",
|
|
67
65
|
"json5": "^2.2.3",
|
|
68
|
-
"
|
|
69
|
-
"yargs": "^17.7.2"
|
|
70
|
-
"zod": "^3.24.1"
|
|
66
|
+
"langchain": "^1.2.23",
|
|
67
|
+
"yargs": "^17.7.2"
|
|
71
68
|
},
|
|
72
69
|
"devDependencies": {
|
|
73
70
|
"@eslint/js": "^9.17.0",
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import * as child_process from "child_process";
|
|
2
|
-
/**
|
|
3
|
-
* Find and return a free port on localhost.
|
|
4
|
-
* @returns A Promise resolving to an available port number
|
|
5
|
-
*/
|
|
6
|
-
export declare function findFreePort(): Promise<number>;
|
|
7
|
-
/**
|
|
8
|
-
* Start an MCP server process via supergateway with the specified transport
|
|
9
|
-
* type. Supergateway runs MCP stdio-based servers over SSE or WebSockets
|
|
10
|
-
* and is used here to run local SSE/WS servers for connection testing.
|
|
11
|
-
* Ref: https://github.com/supercorp-ai/supergateway
|
|
12
|
-
*
|
|
13
|
-
* @param transportType - The transport type, either "SSE" or "WS"
|
|
14
|
-
* @param mcpServerRunCommand - The command to run the MCP server
|
|
15
|
-
* @returns A Promise resolving to [serverProcess, serverPort]
|
|
16
|
-
*/
|
|
17
|
-
export declare function startRemoteMcpServerLocally(transportType: string, mcpServerRunCommand: string): Promise<[child_process.ChildProcess, number]>;
|
|
18
|
-
//# sourceMappingURL=remote-server-utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remote-server-utils.d.ts","sourceRoot":"","sources":["../src/remote-server-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,eAAe,CAAC;AAO/C;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAYpD;AAED;;;;;;;;;GASG;AACH,wBAAsB,2BAA2B,CAC/C,aAAa,EAAE,MAAM,EACrB,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CA4E/C"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import * as child_process from "child_process";
|
|
2
|
-
import * as net from "net";
|
|
3
|
-
// NOTE: Hard-coded dependency on the Supergateway message
|
|
4
|
-
// to easily identify the end of initialization.
|
|
5
|
-
const SUPERGATEWAY_READY_MESSAGE = "[supergateway] Listening on port";
|
|
6
|
-
/**
|
|
7
|
-
* Find and return a free port on localhost.
|
|
8
|
-
* @returns A Promise resolving to an available port number
|
|
9
|
-
*/
|
|
10
|
-
export async function findFreePort() {
|
|
11
|
-
return new Promise((resolve, reject) => {
|
|
12
|
-
const server = net.createServer();
|
|
13
|
-
server.unref();
|
|
14
|
-
server.on("error", reject);
|
|
15
|
-
server.listen(0, () => {
|
|
16
|
-
const port = server.address().port;
|
|
17
|
-
server.close(() => {
|
|
18
|
-
resolve(port);
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Start an MCP server process via supergateway with the specified transport
|
|
25
|
-
* type. Supergateway runs MCP stdio-based servers over SSE or WebSockets
|
|
26
|
-
* and is used here to run local SSE/WS servers for connection testing.
|
|
27
|
-
* Ref: https://github.com/supercorp-ai/supergateway
|
|
28
|
-
*
|
|
29
|
-
* @param transportType - The transport type, either "SSE" or "WS"
|
|
30
|
-
* @param mcpServerRunCommand - The command to run the MCP server
|
|
31
|
-
* @returns A Promise resolving to [serverProcess, serverPort]
|
|
32
|
-
*/
|
|
33
|
-
export async function startRemoteMcpServerLocally(transportType, mcpServerRunCommand) {
|
|
34
|
-
const serverPort = await findFreePort();
|
|
35
|
-
// Base command common to both server types
|
|
36
|
-
const command = [
|
|
37
|
-
"npx",
|
|
38
|
-
"-y",
|
|
39
|
-
"supergateway",
|
|
40
|
-
"--stdio",
|
|
41
|
-
mcpServerRunCommand,
|
|
42
|
-
"--port", serverPort.toString(),
|
|
43
|
-
];
|
|
44
|
-
// Add transport-specific arguments
|
|
45
|
-
if (transportType.toLowerCase() === "sse") {
|
|
46
|
-
command.push("--baseUrl", `http://localhost:${serverPort}`, "--ssePath", "/sse", "--messagePath", "/message");
|
|
47
|
-
}
|
|
48
|
-
else if (transportType.toLowerCase() === "ws") {
|
|
49
|
-
command.push("--outputTransport", "ws", "--messagePath", "/message");
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
throw new Error(`Unsupported transport type: ${transportType}`);
|
|
53
|
-
}
|
|
54
|
-
// Start the server process with stdout/stderr piped
|
|
55
|
-
const serverProcess = child_process.spawn(command[0], command.slice(1), {
|
|
56
|
-
stdio: ["ignore", "pipe", "pipe"],
|
|
57
|
-
});
|
|
58
|
-
console.log(`Starting ${transportType.toUpperCase()} MCP Server Process with PID: ${serverProcess.pid}`);
|
|
59
|
-
// Return a promise that resolves when the server is ready
|
|
60
|
-
return new Promise((resolve, reject) => {
|
|
61
|
-
// Set a reasonable timeout as fallback (30 seconds)
|
|
62
|
-
const timeoutId = setTimeout(() => {
|
|
63
|
-
reject(new Error(`Timed out waiting for ${transportType.toUpperCase()} server to start`));
|
|
64
|
-
}, 30000);
|
|
65
|
-
// Listen for the specific log message that indicates server is ready
|
|
66
|
-
serverProcess.stdout?.on("data", (data) => {
|
|
67
|
-
const output = data.toString();
|
|
68
|
-
console.log(output); // Still log the output to console
|
|
69
|
-
if (output.includes(SUPERGATEWAY_READY_MESSAGE)) {
|
|
70
|
-
clearTimeout(timeoutId);
|
|
71
|
-
console.log(`${transportType.toUpperCase()} MCP Server is ready on port ${serverPort}`);
|
|
72
|
-
resolve([serverProcess, serverPort]);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
// Handle errors
|
|
76
|
-
serverProcess.stderr?.on("data", (data) => {
|
|
77
|
-
console.error(`Server error: ${data}`);
|
|
78
|
-
});
|
|
79
|
-
serverProcess.on("error", (err) => {
|
|
80
|
-
clearTimeout(timeoutId);
|
|
81
|
-
reject(new Error(`Failed to start server: ${err.message}`));
|
|
82
|
-
});
|
|
83
|
-
serverProcess.on("exit", (code) => {
|
|
84
|
-
if (code !== 0 && code !== null) {
|
|
85
|
-
clearTimeout(timeoutId);
|
|
86
|
-
reject(new Error(`Server process exited with code ${code}`));
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=remote-server-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"remote-server-utils.js","sourceRoot":"","sources":["../src/remote-server-utils.ts"],"names":[],"mappings":"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"}
|