@h1deya/mcp-client-cli 0.3.4 → 0.3.5
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 +40 -18
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/init-chat-model.d.ts +1 -1
- package/dist/init-chat-model.d.ts.map +1 -1
- package/dist/init-chat-model.js +19 -11
- package/dist/init-chat-model.js.map +1 -1
- package/dist/load-config.d.ts +1 -1
- package/dist/load-config.d.ts.map +1 -1
- package/dist/load-config.js +63 -54
- package/dist/load-config.js.map +1 -1
- package/dist/remote-server-utils.d.ts +2 -2
- package/dist/remote-server-utils.js +11 -11
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -25,8 +25,10 @@ A Python equivalent of this utility is available [here](https://pypi.org/project
|
|
|
25
25
|
[OpenAI](https://platform.openai.com/api-keys),
|
|
26
26
|
[Anthropic](https://console.anthropic.com/settings/keys),
|
|
27
27
|
[Google AI Studio (for GenAI/Gemini)](https://aistudio.google.com/apikey),
|
|
28
|
-
and/or
|
|
29
28
|
[xAI](https://console.x.ai/),
|
|
29
|
+
[Cerebras](https://cloud.cerebras.ai),
|
|
30
|
+
and/or
|
|
31
|
+
[Groq](https://console.groq.com/keys),
|
|
30
32
|
as needed
|
|
31
33
|
|
|
32
34
|
## Quick Start
|
|
@@ -46,14 +48,12 @@ A Python equivalent of this utility is available [here](https://pypi.org/project
|
|
|
46
48
|
```json5
|
|
47
49
|
{
|
|
48
50
|
"llm": {
|
|
49
|
-
"
|
|
50
|
-
"model": "
|
|
51
|
-
// "
|
|
52
|
-
// "model": "
|
|
53
|
-
// "
|
|
54
|
-
// "model": "
|
|
55
|
-
// "model_provider": "xai",
|
|
56
|
-
// "model": "grok-3-mini",
|
|
51
|
+
"provider": "openai", "model": "gpt-5-mini",
|
|
52
|
+
// "provider": "anthropic", "model": "claude-3-5-haiku-latest",
|
|
53
|
+
// "provider": "google_genai", "model": "gemini-2.5-flash",
|
|
54
|
+
// "provider": "xai", "model": "grok-3-mini",
|
|
55
|
+
// "provider": "cerebras", "model": "gpt-oss-120b",
|
|
56
|
+
// "provider": "groq", "model": "openai/gpt-oss-20b",
|
|
57
57
|
},
|
|
58
58
|
|
|
59
59
|
"mcp_servers": {
|
|
@@ -75,7 +75,9 @@ A Python equivalent of this utility is available [here](https://pypi.org/project
|
|
|
75
75
|
echo "ANTHROPIC_API_KEY=sk-ant-...
|
|
76
76
|
OPENAI_API_KEY=sk-proj-...
|
|
77
77
|
GOOGLE_API_KEY=AI...
|
|
78
|
-
XAI_API_KEY=xai-...
|
|
78
|
+
XAI_API_KEY=xai-...
|
|
79
|
+
CEREBRAS_API_KEY=csk-...
|
|
80
|
+
GROQ_API_KEY=gsk_..." > .env
|
|
79
81
|
|
|
80
82
|
code .env
|
|
81
83
|
```
|
|
@@ -142,9 +144,12 @@ mcp-client-cli --help
|
|
|
142
144
|
|
|
143
145
|
## Supported LLM Providers
|
|
144
146
|
|
|
145
|
-
- **OpenAI**: `
|
|
147
|
+
- **OpenAI**: `gpt-5-mini`, `gpt-4.1-nano`, etc.
|
|
146
148
|
- **Anthropic**: `claude-sonnet-4-0`, `claude-3-5-haiku-latest`, etc.
|
|
147
|
-
- **Google (GenAI)**: `gemini-2.5-
|
|
149
|
+
- **Google (GenAI)**: `gemini-2.5-flash`, `gemini-2.5-pro`, etc.
|
|
150
|
+
- **xAI**: `grok-3-mini`, `grok-4`, etc.
|
|
151
|
+
- **Cerebras**: `gpt-oss-120b`, etc.
|
|
152
|
+
- **Groq**: `openai/gpt-oss-20b`, `openai/gpt-oss-120b`, etc.
|
|
148
153
|
|
|
149
154
|
## Configuration
|
|
150
155
|
|
|
@@ -166,29 +171,40 @@ Create a `llm_mcp_config.json5` file:
|
|
|
166
171
|
```json5
|
|
167
172
|
{
|
|
168
173
|
"llm": {
|
|
169
|
-
"
|
|
170
|
-
"model": "gpt-
|
|
171
|
-
// model: "
|
|
174
|
+
"provider": "openai",
|
|
175
|
+
"model": "gpt-4.1-nano",
|
|
176
|
+
// model: "gpt-5-mini",
|
|
172
177
|
},
|
|
173
178
|
|
|
174
179
|
// "llm": {
|
|
175
|
-
// "
|
|
180
|
+
// "provider": "anthropic",
|
|
176
181
|
// "model": "claude-3-5-haiku-latest",
|
|
177
182
|
// // "model": "claude-sonnet-4-0",
|
|
178
183
|
// },
|
|
179
184
|
|
|
180
185
|
// "llm": {
|
|
181
|
-
// "
|
|
186
|
+
// "provider": "google_genai",
|
|
182
187
|
// "model": "gemini-2.5-flash",
|
|
183
188
|
// // "model": "gemini-2.5-pro",
|
|
184
189
|
// },
|
|
185
190
|
|
|
186
191
|
// "llm": {
|
|
187
|
-
// "
|
|
192
|
+
// "provider": "xai",
|
|
188
193
|
// "model": "grok-3-mini",
|
|
189
194
|
// // "model": "grok-4",
|
|
190
195
|
// },
|
|
191
196
|
|
|
197
|
+
// "llm": {
|
|
198
|
+
// "provider": "cerebras",
|
|
199
|
+
// "model": "gpt-oss-120b",
|
|
200
|
+
// },
|
|
201
|
+
|
|
202
|
+
// "llm": {
|
|
203
|
+
// "provider": "groq",
|
|
204
|
+
// "model": "openai/gpt-oss-20b",
|
|
205
|
+
// // "model": "openai/gpt-oss-120b",
|
|
206
|
+
// },
|
|
207
|
+
|
|
192
208
|
"example_queries": [
|
|
193
209
|
"Tell me how LLMs work in a few sentences",
|
|
194
210
|
"Are there any weather alerts in California?",
|
|
@@ -240,6 +256,8 @@ Create a `.env` file for API keys:
|
|
|
240
256
|
OPENAI_API_KEY=sk-ant-...
|
|
241
257
|
ANTHROPIC_API_KEY=sk-proj-...
|
|
242
258
|
GOOGLE_API_KEY=AI...
|
|
259
|
+
CEREBRAS_API_KEY=csk-...
|
|
260
|
+
GROQ_API_KEY=gsk_...
|
|
243
261
|
|
|
244
262
|
# Other services as needed
|
|
245
263
|
GITHUB_PERSONAL_ACCESS_TOKEN=github_pat_...
|
|
@@ -259,6 +277,10 @@ There are quite a few useful MCP servers already available:
|
|
|
259
277
|
- Use `--verbose` flag to view the detailed logs
|
|
260
278
|
- Refer to [Debugging Section in MCP documentation](https://modelcontextprotocol.io/docs/tools/debugging)
|
|
261
279
|
|
|
280
|
+
## Change Log
|
|
281
|
+
|
|
282
|
+
Can be found [here](https://github.com/hideya/mcp-client-langchain-ts/blob/main/CHANGELOG.md)
|
|
283
|
+
|
|
262
284
|
## License
|
|
263
285
|
|
|
264
286
|
MIT License - see [LICENSE](LICENSE) file for details.
|
package/dist/index.js
CHANGED
|
@@ -141,7 +141,7 @@ function addLogFileWatcher(logPath, serverName) {
|
|
|
141
141
|
}
|
|
142
142
|
// Application initialization
|
|
143
143
|
async function initializeReactAgent(config, verbose, logDir) {
|
|
144
|
-
const llmProvider = config.llm.
|
|
144
|
+
const llmProvider = config.llm.provider;
|
|
145
145
|
console.log("Initializing model...", config.llm, "\n");
|
|
146
146
|
const llmConfig = {
|
|
147
147
|
modelProvider: llmProvider,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAmC,MAAM,6BAA6B,CAAC;AAC1G,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAU,MAAM,kBAAkB,CAAC;AACtD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,iDAAiD;AACjD,6CAA6C;AAC7C,gGAAgG;AAChG,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,MAAM,CAAC,SAAS,GAAG,SAAgB,CAAC;AAEpC,sCAAsC;AACtC,qGAAqG;AACrG,uBAAuB;AACvB,iEAAiE;AACjE,eAAe;AACf,wGAAwG;AACxG,0EAA0E;AAC1E,+EAA+E;AAC/E,kDAAkD;AAClD,oDAAoD;AAEpD,YAAY;AACZ,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,SAAS;CACR,CAAC;AAUX,MAAM,cAAc,GAAG,GAAc,EAAE;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChC,OAAO,CAAC;QACP,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,qBAAqB;YAClC,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,sBAAsB;YAC/B,KAAK,EAAE,GAAG;SACX;QACD,OAAO,EAAE;YACP,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,0BAA0B;YACvC,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG;SACX;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,yCAAyC;YACtD,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,GAAG;SACX;KACF,CAAC;SACD,IAAI,EAAE;SACN,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC;SAClB,SAAS,EAAe,CAAC;AAC9B,CAAC,CAAC;AAEF,iBAAiB;AACjB,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACnC,OAAO,QAAQ,CAAC,eAAe,CAAC;QAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,EAAsB,EAAE,MAAc,EAAmB,EAAE;IAC3E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,KAAK,UAAU,YAAY,CACzB,EAAsB,EACtB,gBAA0B;IAE1B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;IAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE3B,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;QAClE,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACjE,OAAO,MAAM,YAAY,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,6BAA6B;QACrE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,kBAAkB,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7E,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oBAAoB;AACpB,KAAK,UAAU,kBAAkB,CAC/B,KAA0C,EAC1C,gBAA0B;IAE1B,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;IACpF,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;QAC7E,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAErC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,MAAM,CACxC,EAAE,QAAQ,EAAE,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EACvC,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,CAC/C,CAAC;QAEF,mCAAmC;QACnC,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;QACrF,MAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACtF,IAAI,gBAAgB,CAAC,WAAW,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACxD,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,kCAAkC;QACnD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,UAAkB;IAC5D,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;IAE1B,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,SAAiB,EAAE,QAAiB,EAAE,EAAE;QACzE,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,kDAAkD;YAClD,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;YAC/B,IAAI,WAAW,GAAG,QAAQ,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;gBACpD,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACrC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACpD,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACjB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CACT,GAAG,MAAM,CAAC,KAAK,qBAAqB,UAAU,KAAK,MAAM,CAAC,KAAK,EAAE,EACjE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrB,QAAQ,GAAG,WAAW,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6BAA6B;AAC7B,KAAK,UAAU,oBAAoB,CAAC,MAAc,EAAE,OAAgB,EAAE,MAAc;IAClF,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,QAAuB,CAAC;IAEvD,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG;QAChB,aAAa,EAAE,WAAW;QAC1B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK;QACvB,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW;QACnC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU;KACjC,CAAA;IACD,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAErC,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,qBAAqB,CAAC,CAAC;IAEzF,8BAA8B;IAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,mEAAmE;IACnE,MAAM,cAAc,GAAoE,EAAE,CAAC;IAC3F,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QACnD,IAAI,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,UAAU,MAAM,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACxC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;YAC9C,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACvD,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM,0BAA0B,CACtD,MAAM,CAAC,WAAW,EAClB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CACtD,CAAC;IACF,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC;IACpC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC;IAE3C,MAAM,KAAK,GAAG,gBAAgB,CAAC;QAC7B,GAAG;QACH,KAAK;QACL,eAAe,EAAE,IAAI,WAAW,EAAE;KACnC,CAAC,CAAC;IAEH,KAAK,UAAU,OAAO;QACpB,MAAM,UAAU,EAAE,CAAC;QAEnB,qCAAqC;QACrC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC5C,IAAI,CAAC;gBACH,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACxC,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED,OAAO;AACP,KAAK,UAAU,IAAI;IACjB,IAAI,UAA0C,CAAC;IAE/C,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzF,UAAU,GAAG,OAAO,CAAC;QAErB,MAAM,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;IAEhE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,CAAC;gBAC3D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACrC,OAAO,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,MAAM,gBAAgB,CAAC,CAAC;oBACzE,OAAO,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;gBAC7F,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAC,EAAE,CAAC;gBACrE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC7B,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,KAAK,CAAC;IAEd,CAAC;YAAS,CAAC;QACT,MAAM,UAAU,EAAE,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,8CAA8C;AAC9C,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-chat-model.d.ts","sourceRoot":"","sources":["../src/init-chat-model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init-chat-model.d.ts","sourceRoot":"","sources":["../src/init-chat-model.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAK5F,UAAU,eAAe;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,CAsDpE"}
|
package/dist/init-chat-model.js
CHANGED
|
@@ -1,29 +1,37 @@
|
|
|
1
|
-
import { ChatAnthropic } from
|
|
2
|
-
import {
|
|
1
|
+
import { ChatAnthropic } from "@langchain/anthropic";
|
|
2
|
+
import { ChatCerebras } from "@langchain/cerebras";
|
|
3
3
|
import { ChatGoogleGenerativeAI } from "@langchain/google-genai";
|
|
4
|
+
import { ChatGroq } from "@langchain/groq";
|
|
5
|
+
import { ChatOpenAI } from "@langchain/openai";
|
|
4
6
|
import { ChatXAI } from "@langchain/xai";
|
|
5
7
|
export function initChatModel(config) {
|
|
6
8
|
let model;
|
|
7
9
|
const { modelProvider, tools, ...llmConfig } = config;
|
|
8
10
|
try {
|
|
9
11
|
switch (modelProvider.toLowerCase()) {
|
|
10
|
-
case
|
|
12
|
+
case "openai":
|
|
11
13
|
model = new ChatOpenAI(llmConfig);
|
|
12
14
|
break;
|
|
13
|
-
case
|
|
15
|
+
case "anthropic":
|
|
14
16
|
model = new ChatAnthropic(llmConfig);
|
|
15
17
|
break;
|
|
16
|
-
case
|
|
17
|
-
case
|
|
18
|
+
case "google_genai":
|
|
19
|
+
case "google_gemini":
|
|
18
20
|
model = new ChatGoogleGenerativeAI(llmConfig);
|
|
19
21
|
break;
|
|
20
|
-
case
|
|
22
|
+
case "xai":
|
|
21
23
|
model = new ChatXAI(llmConfig);
|
|
22
24
|
break;
|
|
25
|
+
case "cerebras":
|
|
26
|
+
model = new ChatCerebras(llmConfig);
|
|
27
|
+
break;
|
|
28
|
+
case "groq":
|
|
29
|
+
model = new ChatGroq(llmConfig);
|
|
30
|
+
break;
|
|
23
31
|
default:
|
|
24
|
-
throw new Error(`Unsupported
|
|
32
|
+
throw new Error(`Unsupported LLM provider: ${modelProvider}`);
|
|
25
33
|
}
|
|
26
|
-
if (typeof model?.bindTools ===
|
|
34
|
+
if (typeof model?.bindTools === "function") {
|
|
27
35
|
if (tools && tools.length > 0) {
|
|
28
36
|
// FIXME
|
|
29
37
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
@@ -31,12 +39,12 @@ export function initChatModel(config) {
|
|
|
31
39
|
}
|
|
32
40
|
}
|
|
33
41
|
else {
|
|
34
|
-
throw new Error(`Tool calling unsupported by
|
|
42
|
+
throw new Error(`Tool calling unsupported by model: ${modelProvider}`);
|
|
35
43
|
}
|
|
36
44
|
return model;
|
|
37
45
|
}
|
|
38
46
|
catch (error) {
|
|
39
|
-
throw new Error(`Failed to initialize chat model: ${error instanceof Error ? error.message :
|
|
47
|
+
throw new Error(`Failed to initialize chat model: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
40
48
|
}
|
|
41
49
|
}
|
|
42
50
|
//# sourceMappingURL=init-chat-model.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-chat-model.js","sourceRoot":"","sources":["../src/init-chat-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"init-chat-model.js","sourceRoot":"","sources":["../src/init-chat-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAczC,MAAM,UAAU,aAAa,CAAC,MAAuB;IACnD,IAAI,KAAoB,CAAC;IAEzB,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC;IAEtD,IAAI,CAAC;QACH,QAAQ,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;YACpC,KAAK,QAAQ;gBACX,KAAK,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;gBAClC,MAAM;YAER,KAAK,WAAW;gBACd,KAAK,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;gBACrC,MAAM;YAER,KAAK,cAAc,CAAC;YACpB,KAAK,eAAe;gBAClB,KAAK,GAAG,IAAI,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAC9C,MAAM;YAER,KAAK,KAAK;gBACR,KAAK,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC/B,MAAM;YAER,KAAK,UAAU;gBACb,KAAK,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;gBACpC,MAAM;YAER,KAAK,MAAM;gBACT,KAAK,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAChC,MAAM;YAER;gBACE,MAAM,IAAI,KAAK,CACb,6BAA6B,aAAa,EAAE,CAC7C,CAAC;QACN,CAAC;QAED,IAAI,OAAO,KAAK,EAAE,SAAS,KAAK,UAAU,EAAE,CAAC;YAC3C,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,QAAQ;gBACR,sEAAsE;gBACtE,KAAK,GAAI,KAAiC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,sCAAsC,aAAa,EAAE,CACtD,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAClH,CAAC;AACH,CAAC"}
|
package/dist/load-config.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-config.d.ts","sourceRoot":"","sources":["../src/load-config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,
|
|
1
|
+
{"version":3,"file":"load-config.d.ts","sourceRoot":"","sources":["../src/load-config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG,cAAc,CAAC;AAElE,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,SAAS,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE;QACX,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;KAChC,CAAA;CACF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA+B/C"}
|
package/dist/load-config.js
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
|
-
import JSON5 from
|
|
2
|
-
import { readFileSync } from
|
|
1
|
+
import JSON5 from "json5";
|
|
2
|
+
import { readFileSync } from "fs";
|
|
3
3
|
export function loadConfig(path) {
|
|
4
4
|
try {
|
|
5
|
-
let json5Str = readFileSync(path,
|
|
5
|
+
let json5Str = readFileSync(path, "utf-8");
|
|
6
6
|
// Replace environment variables in the format ${VAR_NAME} with their values
|
|
7
7
|
Object.entries(process.env).forEach(([key, value]) => {
|
|
8
|
-
json5Str = json5Str.replace(`\${${key}}`, value ||
|
|
8
|
+
json5Str = json5Str.replace(`\${${key}}`, value || "");
|
|
9
9
|
});
|
|
10
10
|
const config = JSON5.parse(json5Str);
|
|
11
|
+
// Normalize alias: convert "model_provider" to "provider"
|
|
12
|
+
if (config.llm && "model_provider" in config.llm) {
|
|
13
|
+
if ("provider" in config.llm) {
|
|
14
|
+
throw new Error("Cannot specify both `provider` and `model_provider`");
|
|
15
|
+
}
|
|
16
|
+
config.llm.provider = config.llm.model_provider;
|
|
17
|
+
delete config.llm.model_provider;
|
|
18
|
+
}
|
|
19
|
+
console.log(config);
|
|
11
20
|
// Validate required fields
|
|
12
21
|
validateConfig(config);
|
|
13
22
|
return config;
|
|
@@ -20,26 +29,26 @@ export function loadConfig(path) {
|
|
|
20
29
|
}
|
|
21
30
|
}
|
|
22
31
|
function validateConfig(config) {
|
|
23
|
-
if (typeof config !==
|
|
24
|
-
throw new Error(
|
|
32
|
+
if (typeof config !== "object" || config === null) {
|
|
33
|
+
throw new Error("Configuration must be an object");
|
|
25
34
|
}
|
|
26
|
-
if (!(
|
|
27
|
-
throw new Error(
|
|
35
|
+
if (!("llm" in config)) {
|
|
36
|
+
throw new Error("LLM configuration is required");
|
|
28
37
|
}
|
|
29
38
|
validateLLMConfig(config.llm);
|
|
30
|
-
if (
|
|
39
|
+
if ("example_queries" in config) {
|
|
31
40
|
if (!Array.isArray(config.example_queries)) {
|
|
32
|
-
throw new Error(
|
|
41
|
+
throw new Error("example_queries must be an array if provided");
|
|
33
42
|
}
|
|
34
|
-
if (config.example_queries.some((query) => typeof query !==
|
|
35
|
-
throw new Error(
|
|
43
|
+
if (config.example_queries.some((query) => typeof query !== "string")) {
|
|
44
|
+
throw new Error("All example queries must be strings");
|
|
36
45
|
}
|
|
37
46
|
}
|
|
38
|
-
if (!(
|
|
39
|
-
throw new Error(
|
|
47
|
+
if (!("mcp_servers" in config)) {
|
|
48
|
+
throw new Error("mcp_servers configuration is required");
|
|
40
49
|
}
|
|
41
|
-
if (typeof config.mcp_servers !==
|
|
42
|
-
throw new Error(
|
|
50
|
+
if (typeof config.mcp_servers !== "object" || config.mcp_servers === null) {
|
|
51
|
+
throw new Error("mcp_servers must be an object");
|
|
43
52
|
}
|
|
44
53
|
Object.entries(config.mcp_servers).forEach(([key, value]) => {
|
|
45
54
|
try {
|
|
@@ -51,71 +60,71 @@ function validateConfig(config) {
|
|
|
51
60
|
});
|
|
52
61
|
}
|
|
53
62
|
function validateLLMConfig(llmConfig) {
|
|
54
|
-
if (typeof llmConfig !==
|
|
55
|
-
throw new Error(
|
|
63
|
+
if (typeof llmConfig !== "object" || llmConfig === null) {
|
|
64
|
+
throw new Error("LLM configuration must be an object");
|
|
56
65
|
}
|
|
57
|
-
if (!(
|
|
58
|
-
throw new Error(
|
|
66
|
+
if (!("provider" in llmConfig) || typeof llmConfig.provider !== "string") {
|
|
67
|
+
throw new Error("LLM provider must be a string");
|
|
59
68
|
}
|
|
60
|
-
if (!(
|
|
61
|
-
throw new Error(
|
|
69
|
+
if (!("model" in llmConfig) || typeof llmConfig.model !== "string") {
|
|
70
|
+
throw new Error("LLM model must be a string");
|
|
62
71
|
}
|
|
63
|
-
if (
|
|
64
|
-
throw new Error(
|
|
72
|
+
if ("temperature" in llmConfig && typeof llmConfig.temperature !== "number") {
|
|
73
|
+
throw new Error("LLM temperature must be a number if provided");
|
|
65
74
|
}
|
|
66
|
-
if (
|
|
67
|
-
throw new Error(
|
|
75
|
+
if ("max_tokens" in llmConfig && typeof llmConfig.max_tokens !== "number") {
|
|
76
|
+
throw new Error("LLM max_tokens must be a number if provided");
|
|
68
77
|
}
|
|
69
|
-
if (
|
|
70
|
-
throw new Error(
|
|
78
|
+
if ("max_completion_tokens" in llmConfig && typeof llmConfig.max_completion_tokens !== "number") {
|
|
79
|
+
throw new Error("LLM max_completion_tokens must be a number if provided");
|
|
71
80
|
}
|
|
72
81
|
}
|
|
73
82
|
function validateMCPServerConfig(serverConfig) {
|
|
74
|
-
if (typeof serverConfig !==
|
|
75
|
-
throw new Error(
|
|
83
|
+
if (typeof serverConfig !== "object" || serverConfig === null) {
|
|
84
|
+
throw new Error("MCP server configuration must be an object");
|
|
76
85
|
}
|
|
77
|
-
if (!(
|
|
78
|
-
throw new Error(
|
|
86
|
+
if (!("url" in serverConfig) && !("command" in serverConfig)) {
|
|
87
|
+
throw new Error("MCP server configuration must include command or url");
|
|
79
88
|
}
|
|
80
|
-
if (
|
|
81
|
-
throw new Error(
|
|
89
|
+
if ("url" in serverConfig && typeof serverConfig.url !== "string") {
|
|
90
|
+
throw new Error("MCP server url must be a string");
|
|
82
91
|
}
|
|
83
|
-
if (
|
|
84
|
-
throw new Error(
|
|
92
|
+
if ("transport" in serverConfig && typeof serverConfig.transport !== "string") {
|
|
93
|
+
throw new Error("MCP server transport must be a string");
|
|
85
94
|
}
|
|
86
|
-
if (
|
|
87
|
-
throw new Error(
|
|
95
|
+
if ("type" in serverConfig && typeof serverConfig.type !== "string") {
|
|
96
|
+
throw new Error("MCP server type must be a string");
|
|
88
97
|
}
|
|
89
|
-
if (
|
|
90
|
-
if (typeof serverConfig.headers !==
|
|
91
|
-
throw new Error(
|
|
98
|
+
if ("headers" in serverConfig && serverConfig.headers !== undefined) {
|
|
99
|
+
if (typeof serverConfig.headers !== "object" || serverConfig.headers === null) {
|
|
100
|
+
throw new Error("MCP server headers must be an object if provided");
|
|
92
101
|
}
|
|
93
102
|
// Validate that all env values are strings
|
|
94
103
|
for (const [, value] of Object.entries(serverConfig.headers)) {
|
|
95
|
-
if (typeof value !==
|
|
96
|
-
throw new Error(
|
|
104
|
+
if (typeof value !== "string") {
|
|
105
|
+
throw new Error("All MCP server headers values must be strings");
|
|
97
106
|
}
|
|
98
107
|
}
|
|
99
108
|
}
|
|
100
|
-
if (
|
|
101
|
-
throw new Error(
|
|
109
|
+
if ("command" in serverConfig && typeof serverConfig.command !== "string") {
|
|
110
|
+
throw new Error("MCP server command must be a string");
|
|
102
111
|
}
|
|
103
|
-
if (
|
|
112
|
+
if ("args" in serverConfig) {
|
|
104
113
|
if (!Array.isArray(serverConfig.args)) {
|
|
105
|
-
throw new Error(
|
|
114
|
+
throw new Error("MCP server args must be an array");
|
|
106
115
|
}
|
|
107
|
-
if (serverConfig.args.some((arg) => typeof arg !==
|
|
108
|
-
throw new Error(
|
|
116
|
+
if (serverConfig.args.some((arg) => typeof arg !== "string")) {
|
|
117
|
+
throw new Error("All MCP server args must be strings");
|
|
109
118
|
}
|
|
110
119
|
}
|
|
111
|
-
if (
|
|
112
|
-
if (typeof serverConfig.env !==
|
|
113
|
-
throw new Error(
|
|
120
|
+
if ("env" in serverConfig && serverConfig.env !== undefined) {
|
|
121
|
+
if (typeof serverConfig.env !== "object" || serverConfig.env === null) {
|
|
122
|
+
throw new Error("MCP server env must be an object if provided");
|
|
114
123
|
}
|
|
115
124
|
// Validate that all env values are strings
|
|
116
125
|
for (const [, value] of Object.entries(serverConfig.env)) {
|
|
117
|
-
if (typeof value !==
|
|
118
|
-
throw new Error(
|
|
126
|
+
if (typeof value !== "string") {
|
|
127
|
+
throw new Error("All MCP server env values must be strings");
|
|
119
128
|
}
|
|
120
129
|
}
|
|
121
130
|
}
|
package/dist/load-config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-config.js","sourceRoot":"","sources":["../src/load-config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"load-config.js","sourceRoot":"","sources":["../src/load-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as child_process from
|
|
1
|
+
import * as child_process from "child_process";
|
|
2
2
|
/**
|
|
3
3
|
* Find and return a free port on localhost.
|
|
4
4
|
* @returns A Promise resolving to an available port number
|
|
@@ -10,7 +10,7 @@ export declare function findFreePort(): Promise<number>;
|
|
|
10
10
|
* and is used here to run local SSE/WS servers for connection testing.
|
|
11
11
|
* Ref: https://github.com/supercorp-ai/supergateway
|
|
12
12
|
*
|
|
13
|
-
* @param transportType - The transport type, either
|
|
13
|
+
* @param transportType - The transport type, either "SSE" or "WS"
|
|
14
14
|
* @param mcpServerRunCommand - The command to run the MCP server
|
|
15
15
|
* @returns A Promise resolving to [serverProcess, serverPort]
|
|
16
16
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as child_process from
|
|
2
|
-
import * as net from
|
|
1
|
+
import * as child_process from "child_process";
|
|
2
|
+
import * as net from "net";
|
|
3
3
|
// NOTE: Hard-coded dependency on the Supergateway message
|
|
4
4
|
// to easily identify the end of initialization.
|
|
5
5
|
const SUPERGATEWAY_READY_MESSAGE = "[supergateway] Listening on port";
|
|
@@ -11,7 +11,7 @@ export async function findFreePort() {
|
|
|
11
11
|
return new Promise((resolve, reject) => {
|
|
12
12
|
const server = net.createServer();
|
|
13
13
|
server.unref();
|
|
14
|
-
server.on(
|
|
14
|
+
server.on("error", reject);
|
|
15
15
|
server.listen(0, () => {
|
|
16
16
|
const port = server.address().port;
|
|
17
17
|
server.close(() => {
|
|
@@ -26,7 +26,7 @@ export async function findFreePort() {
|
|
|
26
26
|
* and is used here to run local SSE/WS servers for connection testing.
|
|
27
27
|
* Ref: https://github.com/supercorp-ai/supergateway
|
|
28
28
|
*
|
|
29
|
-
* @param transportType - The transport type, either
|
|
29
|
+
* @param transportType - The transport type, either "SSE" or "WS"
|
|
30
30
|
* @param mcpServerRunCommand - The command to run the MCP server
|
|
31
31
|
* @returns A Promise resolving to [serverProcess, serverPort]
|
|
32
32
|
*/
|
|
@@ -42,10 +42,10 @@ export async function startRemoteMcpServerLocally(transportType, mcpServerRunCom
|
|
|
42
42
|
"--port", serverPort.toString(),
|
|
43
43
|
];
|
|
44
44
|
// Add transport-specific arguments
|
|
45
|
-
if (transportType.toLowerCase() ===
|
|
45
|
+
if (transportType.toLowerCase() === "sse") {
|
|
46
46
|
command.push("--baseUrl", `http://localhost:${serverPort}`, "--ssePath", "/sse", "--messagePath", "/message");
|
|
47
47
|
}
|
|
48
|
-
else if (transportType.toLowerCase() ===
|
|
48
|
+
else if (transportType.toLowerCase() === "ws") {
|
|
49
49
|
command.push("--outputTransport", "ws", "--messagePath", "/message");
|
|
50
50
|
}
|
|
51
51
|
else {
|
|
@@ -53,7 +53,7 @@ export async function startRemoteMcpServerLocally(transportType, mcpServerRunCom
|
|
|
53
53
|
}
|
|
54
54
|
// Start the server process with stdout/stderr piped
|
|
55
55
|
const serverProcess = child_process.spawn(command[0], command.slice(1), {
|
|
56
|
-
stdio: [
|
|
56
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
57
57
|
});
|
|
58
58
|
console.log(`Starting ${transportType.toUpperCase()} MCP Server Process with PID: ${serverProcess.pid}`);
|
|
59
59
|
// Return a promise that resolves when the server is ready
|
|
@@ -63,7 +63,7 @@ export async function startRemoteMcpServerLocally(transportType, mcpServerRunCom
|
|
|
63
63
|
reject(new Error(`Timed out waiting for ${transportType.toUpperCase()} server to start`));
|
|
64
64
|
}, 30000);
|
|
65
65
|
// Listen for the specific log message that indicates server is ready
|
|
66
|
-
serverProcess.stdout?.on(
|
|
66
|
+
serverProcess.stdout?.on("data", (data) => {
|
|
67
67
|
const output = data.toString();
|
|
68
68
|
console.log(output); // Still log the output to console
|
|
69
69
|
if (output.includes(SUPERGATEWAY_READY_MESSAGE)) {
|
|
@@ -73,14 +73,14 @@ export async function startRemoteMcpServerLocally(transportType, mcpServerRunCom
|
|
|
73
73
|
}
|
|
74
74
|
});
|
|
75
75
|
// Handle errors
|
|
76
|
-
serverProcess.stderr?.on(
|
|
76
|
+
serverProcess.stderr?.on("data", (data) => {
|
|
77
77
|
console.error(`Server error: ${data}`);
|
|
78
78
|
});
|
|
79
|
-
serverProcess.on(
|
|
79
|
+
serverProcess.on("error", (err) => {
|
|
80
80
|
clearTimeout(timeoutId);
|
|
81
81
|
reject(new Error(`Failed to start server: ${err.message}`));
|
|
82
82
|
});
|
|
83
|
-
serverProcess.on(
|
|
83
|
+
serverProcess.on("exit", (code) => {
|
|
84
84
|
if (code !== 0 && code !== null) {
|
|
85
85
|
clearTimeout(timeoutId);
|
|
86
86
|
reject(new Error(`Server process exited with code ${code}`));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@h1deya/mcp-client-cli",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"description": "Simple MCP Client to quickly test and explore MCP servers from the command line",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -52,10 +52,12 @@
|
|
|
52
52
|
"publish:do": "npm run publish:prepare && npm publish --access=public"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@h1deya/langchain-mcp-tools": "^0.3.
|
|
55
|
+
"@h1deya/langchain-mcp-tools": "^0.3.5",
|
|
56
56
|
"@langchain/anthropic": "^0.3.11",
|
|
57
|
+
"@langchain/cerebras": "^0.0.3",
|
|
57
58
|
"@langchain/core": "^0.3.61",
|
|
58
59
|
"@langchain/google-genai": "^0.2.12",
|
|
60
|
+
"@langchain/groq": "^0.2.3",
|
|
59
61
|
"@langchain/langgraph": "^0.3.6",
|
|
60
62
|
"@langchain/openai": "^0.3.16",
|
|
61
63
|
"@langchain/xai": "^0.1.0",
|