mcp-use 0.1.20 → 0.3.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.
Files changed (140) hide show
  1. package/dist/chunk-2HFIPY7C.js +429 -0
  2. package/dist/chunk-4DEFXVWT.js +680 -0
  3. package/dist/chunk-JXLQRAW2.js +532 -0
  4. package/dist/chunk-SHUYVCID.js +6 -0
  5. package/dist/chunk-YUSC6R6V.js +299 -0
  6. package/dist/index.cjs +5762 -0
  7. package/dist/index.d.ts +7 -0
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +3767 -22
  10. package/dist/langfuse-YA2S23SM.js +13 -0
  11. package/dist/src/agents/remote.d.ts.map +1 -1
  12. package/dist/src/agents/utils/ai_sdk.d.ts.map +1 -1
  13. package/dist/src/auth/browser-provider.d.ts +52 -0
  14. package/dist/src/auth/browser-provider.d.ts.map +1 -0
  15. package/dist/src/auth/callback.d.ts +6 -0
  16. package/dist/src/auth/callback.d.ts.map +1 -0
  17. package/dist/src/auth/index.d.ts +7 -0
  18. package/dist/src/auth/index.d.ts.map +1 -0
  19. package/dist/src/auth/types.d.ts +18 -0
  20. package/dist/src/auth/types.d.ts.map +1 -0
  21. package/dist/src/browser.cjs +323 -0
  22. package/dist/src/browser.d.ts +8 -0
  23. package/dist/src/browser.d.ts.map +1 -0
  24. package/dist/src/browser.js +9 -0
  25. package/dist/src/client/base.d.ts +32 -0
  26. package/dist/src/client/base.d.ts.map +1 -0
  27. package/dist/src/client.d.ts +19 -16
  28. package/dist/src/client.d.ts.map +1 -1
  29. package/dist/src/logging.d.ts +1 -1
  30. package/dist/src/logging.d.ts.map +1 -1
  31. package/dist/src/oauth-helper.d.ts +125 -0
  32. package/dist/src/oauth-helper.d.ts.map +1 -0
  33. package/dist/src/react/index.cjs +986 -0
  34. package/dist/src/react/index.d.ts +9 -0
  35. package/dist/src/react/index.d.ts.map +1 -0
  36. package/dist/src/react/index.js +11 -0
  37. package/dist/src/react/types.d.ts +139 -0
  38. package/dist/src/react/types.d.ts.map +1 -0
  39. package/dist/src/react/useMcp.d.ts +3 -0
  40. package/dist/src/react/useMcp.d.ts.map +1 -0
  41. package/dist/src/server/index.cjs +566 -0
  42. package/dist/src/server/index.d.ts +3 -0
  43. package/dist/src/server/index.d.ts.map +1 -0
  44. package/dist/src/server/index.js +9 -0
  45. package/dist/src/server/logging.d.ts +16 -0
  46. package/dist/src/server/logging.d.ts.map +1 -0
  47. package/dist/src/server/mcp-server.d.ts +282 -0
  48. package/dist/src/server/mcp-server.d.ts.map +1 -0
  49. package/dist/src/server/types.d.ts +47 -0
  50. package/dist/src/server/types.d.ts.map +1 -0
  51. package/dist/src/utils/assert.d.ts +8 -0
  52. package/dist/src/utils/assert.d.ts.map +1 -0
  53. package/dist/tsconfig.tsbuildinfo +1 -0
  54. package/package.json +72 -40
  55. package/dist/examples/add_server_tool.d.ts +0 -8
  56. package/dist/examples/add_server_tool.d.ts.map +0 -1
  57. package/dist/examples/add_server_tool.js +0 -79
  58. package/dist/examples/ai_sdk_example.d.ts +0 -23
  59. package/dist/examples/ai_sdk_example.d.ts.map +0 -1
  60. package/dist/examples/ai_sdk_example.js +0 -213
  61. package/dist/examples/airbnb_use.d.ts +0 -10
  62. package/dist/examples/airbnb_use.d.ts.map +0 -1
  63. package/dist/examples/airbnb_use.js +0 -43
  64. package/dist/examples/blender_use.d.ts +0 -15
  65. package/dist/examples/blender_use.d.ts.map +0 -1
  66. package/dist/examples/blender_use.js +0 -39
  67. package/dist/examples/browser_use.d.ts +0 -10
  68. package/dist/examples/browser_use.d.ts.map +0 -1
  69. package/dist/examples/browser_use.js +0 -46
  70. package/dist/examples/chat_example.d.ts +0 -10
  71. package/dist/examples/chat_example.d.ts.map +0 -1
  72. package/dist/examples/chat_example.js +0 -86
  73. package/dist/examples/filesystem_use.d.ts +0 -11
  74. package/dist/examples/filesystem_use.d.ts.map +0 -1
  75. package/dist/examples/filesystem_use.js +0 -43
  76. package/dist/examples/http_example.d.ts +0 -18
  77. package/dist/examples/http_example.d.ts.map +0 -1
  78. package/dist/examples/http_example.js +0 -37
  79. package/dist/examples/mcp_everything.d.ts +0 -6
  80. package/dist/examples/mcp_everything.d.ts.map +0 -1
  81. package/dist/examples/mcp_everything.js +0 -25
  82. package/dist/examples/multi_server_example.d.ts +0 -10
  83. package/dist/examples/multi_server_example.d.ts.map +0 -1
  84. package/dist/examples/multi_server_example.js +0 -51
  85. package/dist/examples/observability.d.ts +0 -6
  86. package/dist/examples/observability.d.ts.map +0 -1
  87. package/dist/examples/observability.js +0 -50
  88. package/dist/examples/stream_example.d.ts +0 -12
  89. package/dist/examples/stream_example.d.ts.map +0 -1
  90. package/dist/examples/stream_example.js +0 -198
  91. package/dist/examples/structured_output.d.ts +0 -9
  92. package/dist/examples/structured_output.d.ts.map +0 -1
  93. package/dist/examples/structured_output.js +0 -95
  94. package/dist/src/adapters/base.js +0 -124
  95. package/dist/src/adapters/index.js +0 -2
  96. package/dist/src/adapters/langchain_adapter.js +0 -49
  97. package/dist/src/agents/base.js +0 -9
  98. package/dist/src/agents/index.js +0 -3
  99. package/dist/src/agents/mcp_agent.js +0 -1002
  100. package/dist/src/agents/prompts/system_prompt_builder.js +0 -40
  101. package/dist/src/agents/prompts/templates.js +0 -39
  102. package/dist/src/agents/remote.js +0 -264
  103. package/dist/src/agents/utils/ai_sdk.js +0 -62
  104. package/dist/src/agents/utils/index.js +0 -1
  105. package/dist/src/client.js +0 -133
  106. package/dist/src/config.js +0 -34
  107. package/dist/src/connectors/base.js +0 -143
  108. package/dist/src/connectors/http.js +0 -150
  109. package/dist/src/connectors/index.js +0 -4
  110. package/dist/src/connectors/stdio.js +0 -68
  111. package/dist/src/connectors/websocket.js +0 -157
  112. package/dist/src/logging.js +0 -217
  113. package/dist/src/managers/index.js +0 -2
  114. package/dist/src/managers/server_manager.js +0 -106
  115. package/dist/src/managers/tools/acquire_active_mcp_server.js +0 -17
  116. package/dist/src/managers/tools/add_server_from_config.js +0 -40
  117. package/dist/src/managers/tools/base.js +0 -17
  118. package/dist/src/managers/tools/connect_mcp_server.js +0 -46
  119. package/dist/src/managers/tools/index.js +0 -5
  120. package/dist/src/managers/tools/list_mcp_servers.js +0 -33
  121. package/dist/src/managers/tools/release_mcp_server_connection.js +0 -19
  122. package/dist/src/observability/index.js +0 -12
  123. package/dist/src/observability/langfuse.js +0 -211
  124. package/dist/src/observability/manager.js +0 -199
  125. package/dist/src/observability/types.js +0 -4
  126. package/dist/src/session.js +0 -23
  127. package/dist/src/task_managers/base.js +0 -127
  128. package/dist/src/task_managers/index.js +0 -5
  129. package/dist/src/task_managers/sse.js +0 -43
  130. package/dist/src/task_managers/stdio.js +0 -51
  131. package/dist/src/task_managers/streamable_http.js +0 -50
  132. package/dist/src/task_managers/websocket.js +0 -67
  133. package/dist/src/telemetry/events.js +0 -44
  134. package/dist/src/telemetry/index.js +0 -8
  135. package/dist/src/telemetry/telemetry.js +0 -324
  136. package/dist/src/telemetry/utils.js +0 -39
  137. package/dist/tests/ai_sdk_compatibility.test.js +0 -214
  138. package/dist/tests/stream_events.test.js +0 -307
  139. package/dist/tests/stream_events_simple.test.js +0 -179
  140. package/dist/vitest.config.js +0 -21
@@ -0,0 +1,429 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-SHUYVCID.js";
4
+
5
+ // src/observability/langfuse.ts
6
+ import { config } from "dotenv";
7
+
8
+ // src/logging.ts
9
+ import { createLogger, format, transports } from "winston";
10
+ async function getNodeModules() {
11
+ if (typeof process !== "undefined" && process.platform) {
12
+ try {
13
+ const fs = await import("fs");
14
+ const path = await import("path");
15
+ return { fs: fs.default, path: path.default };
16
+ } catch {
17
+ return { fs: null, path: null };
18
+ }
19
+ }
20
+ return { fs: null, path: null };
21
+ }
22
+ __name(getNodeModules, "getNodeModules");
23
+ var { combine, timestamp, label, printf, colorize, splat } = format;
24
+ var DEFAULT_LOGGER_NAME = "mcp-use";
25
+ function isNodeJSEnvironment() {
26
+ try {
27
+ if (typeof navigator !== "undefined" && navigator.userAgent?.includes("Cloudflare-Workers")) {
28
+ return false;
29
+ }
30
+ if (typeof globalThis.EdgeRuntime !== "undefined" || typeof globalThis.Deno !== "undefined") {
31
+ return false;
32
+ }
33
+ const hasNodeGlobals = typeof process !== "undefined" && typeof process.platform !== "undefined" && typeof __dirname !== "undefined";
34
+ const hasNodeModules = typeof createLogger === "function";
35
+ return hasNodeGlobals && hasNodeModules;
36
+ } catch {
37
+ return false;
38
+ }
39
+ }
40
+ __name(isNodeJSEnvironment, "isNodeJSEnvironment");
41
+ var SimpleConsoleLogger = class {
42
+ static {
43
+ __name(this, "SimpleConsoleLogger");
44
+ }
45
+ _level;
46
+ name;
47
+ constructor(name = DEFAULT_LOGGER_NAME, level = "info") {
48
+ this.name = name;
49
+ this._level = level;
50
+ }
51
+ shouldLog(level) {
52
+ const levels = ["error", "warn", "info", "http", "verbose", "debug", "silly"];
53
+ const currentIndex = levels.indexOf(this._level);
54
+ const messageIndex = levels.indexOf(level);
55
+ return messageIndex <= currentIndex;
56
+ }
57
+ formatMessage(level, message) {
58
+ const timestamp2 = (/* @__PURE__ */ new Date()).toLocaleTimeString("en-US", { hour12: false });
59
+ return `${timestamp2} [${this.name}] ${level}: ${message}`;
60
+ }
61
+ error(message) {
62
+ if (this.shouldLog("error")) {
63
+ console.error(this.formatMessage("error", message));
64
+ }
65
+ }
66
+ warn(message) {
67
+ if (this.shouldLog("warn")) {
68
+ console.warn(this.formatMessage("warn", message));
69
+ }
70
+ }
71
+ info(message) {
72
+ if (this.shouldLog("info")) {
73
+ console.info(this.formatMessage("info", message));
74
+ }
75
+ }
76
+ debug(message) {
77
+ if (this.shouldLog("debug")) {
78
+ console.debug(this.formatMessage("debug", message));
79
+ }
80
+ }
81
+ http(message) {
82
+ if (this.shouldLog("http")) {
83
+ console.log(this.formatMessage("http", message));
84
+ }
85
+ }
86
+ verbose(message) {
87
+ if (this.shouldLog("verbose")) {
88
+ console.log(this.formatMessage("verbose", message));
89
+ }
90
+ }
91
+ silly(message) {
92
+ if (this.shouldLog("silly")) {
93
+ console.log(this.formatMessage("silly", message));
94
+ }
95
+ }
96
+ // Make it compatible with Winston interface
97
+ get level() {
98
+ return this._level;
99
+ }
100
+ set level(newLevel) {
101
+ this._level = newLevel;
102
+ }
103
+ };
104
+ function resolveLevel(env) {
105
+ const envValue = typeof process !== "undefined" && process.env ? env : void 0;
106
+ switch (envValue?.trim()) {
107
+ case "2":
108
+ return "debug";
109
+ case "1":
110
+ return "info";
111
+ default:
112
+ return "info";
113
+ }
114
+ }
115
+ __name(resolveLevel, "resolveLevel");
116
+ var minimalFormatter = printf(({ level, message, label: label2, timestamp: timestamp2 }) => {
117
+ return `${timestamp2} [${label2}] ${level}: ${message}`;
118
+ });
119
+ var detailedFormatter = printf(({ level, message, label: label2, timestamp: timestamp2 }) => {
120
+ return `${timestamp2} [${label2}] ${level.toUpperCase()}: ${message}`;
121
+ });
122
+ var emojiFormatter = printf(({ level, message, label: label2, timestamp: timestamp2 }) => {
123
+ return `${timestamp2} [${label2}] ${level.toUpperCase()}: ${message}`;
124
+ });
125
+ var Logger = class {
126
+ static {
127
+ __name(this, "Logger");
128
+ }
129
+ static instances = {};
130
+ static simpleInstances = {};
131
+ static currentFormat = "minimal";
132
+ static get(name = DEFAULT_LOGGER_NAME) {
133
+ if (!isNodeJSEnvironment()) {
134
+ if (!this.simpleInstances[name]) {
135
+ const debugEnv = typeof process !== "undefined" && process.env?.DEBUG || void 0;
136
+ this.simpleInstances[name] = new SimpleConsoleLogger(name, resolveLevel(debugEnv));
137
+ }
138
+ return this.simpleInstances[name];
139
+ }
140
+ if (!this.instances[name]) {
141
+ this.instances[name] = createLogger({
142
+ level: resolveLevel(process.env.DEBUG),
143
+ format: combine(
144
+ colorize(),
145
+ splat(),
146
+ label({ label: name }),
147
+ timestamp({ format: "HH:mm:ss" }),
148
+ this.getFormatter()
149
+ ),
150
+ transports: []
151
+ });
152
+ }
153
+ return this.instances[name];
154
+ }
155
+ static getFormatter() {
156
+ switch (this.currentFormat) {
157
+ case "minimal":
158
+ return minimalFormatter;
159
+ case "detailed":
160
+ return detailedFormatter;
161
+ case "emoji":
162
+ return emojiFormatter;
163
+ default:
164
+ return minimalFormatter;
165
+ }
166
+ }
167
+ static async configure(options = {}) {
168
+ const { level, console: console2 = true, file, format: format2 = "minimal" } = options;
169
+ const debugEnv = typeof process !== "undefined" && process.env?.DEBUG || void 0;
170
+ const resolvedLevel = level ?? resolveLevel(debugEnv);
171
+ this.currentFormat = format2;
172
+ const root = this.get();
173
+ root.level = resolvedLevel;
174
+ const winstonRoot = root;
175
+ if (!isNodeJSEnvironment()) {
176
+ Object.values(this.simpleInstances).forEach((logger2) => {
177
+ logger2.level = resolvedLevel;
178
+ });
179
+ return;
180
+ }
181
+ winstonRoot.clear();
182
+ if (console2) {
183
+ winstonRoot.add(new transports.Console());
184
+ }
185
+ if (file) {
186
+ const { fs: nodeFs, path: nodePath } = await getNodeModules();
187
+ if (nodeFs && nodePath) {
188
+ const dir = nodePath.dirname(nodePath.resolve(file));
189
+ if (!nodeFs.existsSync(dir)) {
190
+ nodeFs.mkdirSync(dir, { recursive: true });
191
+ }
192
+ winstonRoot.add(new transports.File({ filename: file }));
193
+ }
194
+ }
195
+ Object.values(this.instances).forEach((logger2) => {
196
+ if (logger2 && "format" in logger2) {
197
+ logger2.level = resolvedLevel;
198
+ logger2.format = combine(
199
+ colorize(),
200
+ splat(),
201
+ label({ label: DEFAULT_LOGGER_NAME }),
202
+ timestamp({ format: "HH:mm:ss" }),
203
+ this.getFormatter()
204
+ );
205
+ }
206
+ });
207
+ }
208
+ static setDebug(enabled) {
209
+ let level;
210
+ if (enabled === 2 || enabled === true)
211
+ level = "debug";
212
+ else if (enabled === 1)
213
+ level = "info";
214
+ else level = "info";
215
+ Object.values(this.simpleInstances).forEach((logger2) => {
216
+ logger2.level = level;
217
+ });
218
+ Object.values(this.instances).forEach((logger2) => {
219
+ if (logger2) {
220
+ logger2.level = level;
221
+ }
222
+ });
223
+ if (typeof process !== "undefined" && process.env) {
224
+ process.env.DEBUG = enabled ? enabled === true ? "2" : String(enabled) : "0";
225
+ }
226
+ }
227
+ static setFormat(format2) {
228
+ this.currentFormat = format2;
229
+ this.configure({ format: format2 });
230
+ }
231
+ };
232
+ if (isNodeJSEnvironment()) {
233
+ Logger.configure();
234
+ } else {
235
+ Logger.configure({ console: true });
236
+ }
237
+ var logger = Logger.get();
238
+
239
+ // src/observability/langfuse.ts
240
+ config();
241
+ var langfuseDisabled = process.env.MCP_USE_LANGFUSE?.toLowerCase() === "false";
242
+ var langfuseState = {
243
+ handler: null,
244
+ client: null,
245
+ initPromise: null
246
+ };
247
+ async function initializeLangfuse(agentId, metadata, metadataProvider, tagsProvider) {
248
+ try {
249
+ const langfuseModule = await import("langfuse-langchain").catch(() => null);
250
+ if (!langfuseModule) {
251
+ logger.debug("Langfuse package not installed - tracing disabled. Install with: npm install langfuse-langchain");
252
+ return;
253
+ }
254
+ const { CallbackHandler } = langfuseModule;
255
+ class LoggingCallbackHandler extends CallbackHandler {
256
+ static {
257
+ __name(this, "LoggingCallbackHandler");
258
+ }
259
+ agentId;
260
+ metadata;
261
+ metadataProvider;
262
+ tagsProvider;
263
+ verbose;
264
+ constructor(config3, agentId2, metadata2, metadataProvider2, tagsProvider2) {
265
+ super(config3);
266
+ this.agentId = agentId2;
267
+ this.metadata = metadata2;
268
+ this.metadataProvider = metadataProvider2;
269
+ this.tagsProvider = tagsProvider2;
270
+ this.verbose = config3?.verbose ?? false;
271
+ }
272
+ // Override to add custom metadata to traces
273
+ async handleChainStart(chain, inputs, runId, parentRunId, tags, metadata2, name, kwargs) {
274
+ logger.debug("Langfuse: Chain start intercepted");
275
+ const customTags = this.getCustomTags();
276
+ const metadataToAdd = this.getMetadata();
277
+ const enhancedTags = [...tags || [], ...customTags];
278
+ const enhancedMetadata = { ...metadata2 || {}, ...metadataToAdd };
279
+ if (this.verbose) {
280
+ logger.debug(`Langfuse: Chain start with custom tags: ${JSON.stringify(enhancedTags)}`);
281
+ logger.debug(`Langfuse: Chain start with metadata: ${JSON.stringify(enhancedMetadata)}`);
282
+ }
283
+ return super.handleChainStart(chain, inputs, runId, parentRunId, enhancedTags, enhancedMetadata, name, kwargs);
284
+ }
285
+ // Get custom tags based on environment and agent configuration
286
+ getCustomTags() {
287
+ const tags = [];
288
+ const env = this.getEnvironmentTag();
289
+ if (env) {
290
+ tags.push(`env:${env}`);
291
+ }
292
+ if (this.agentId) {
293
+ tags.push(`agent_id:${this.agentId}`);
294
+ }
295
+ if (this.tagsProvider) {
296
+ const providerTags = this.tagsProvider();
297
+ if (providerTags && providerTags.length > 0) {
298
+ tags.push(...providerTags);
299
+ }
300
+ }
301
+ return tags;
302
+ }
303
+ // Get metadata
304
+ getMetadata() {
305
+ const metadata2 = {};
306
+ const env = this.getEnvironmentTag();
307
+ if (env) {
308
+ metadata2.env = env;
309
+ }
310
+ if (this.agentId) {
311
+ metadata2.agent_id = this.agentId;
312
+ }
313
+ if (this.metadata) {
314
+ Object.assign(metadata2, this.metadata);
315
+ }
316
+ if (this.metadataProvider) {
317
+ const dynamicMetadata = this.metadataProvider();
318
+ if (dynamicMetadata) {
319
+ Object.assign(metadata2, dynamicMetadata);
320
+ }
321
+ }
322
+ return metadata2;
323
+ }
324
+ // Determine environment tag based on MCP_USE_AGENT_ENV
325
+ getEnvironmentTag() {
326
+ const agentEnv = process.env.MCP_USE_AGENT_ENV;
327
+ if (!agentEnv) {
328
+ return "unknown";
329
+ }
330
+ const envLower = agentEnv.toLowerCase();
331
+ if (envLower === "local" || envLower === "development") {
332
+ return "local";
333
+ } else if (envLower === "production" || envLower === "prod") {
334
+ return "production";
335
+ } else if (envLower === "staging" || envLower === "stage") {
336
+ return "staging";
337
+ } else if (envLower === "hosted" || envLower === "cloud") {
338
+ return "hosted";
339
+ }
340
+ return envLower.replace(/[^a-z0-9_-]/g, "_");
341
+ }
342
+ async handleLLMStart(...args) {
343
+ logger.debug("Langfuse: LLM start intercepted");
344
+ if (this.verbose) {
345
+ logger.debug(`Langfuse: LLM start args: ${JSON.stringify(args)}`);
346
+ }
347
+ return super.handleLLMStart(...args);
348
+ }
349
+ async handleToolStart(...args) {
350
+ logger.debug("Langfuse: Tool start intercepted");
351
+ if (this.verbose) {
352
+ logger.debug(`Langfuse: Tool start args: ${JSON.stringify(args)}`);
353
+ }
354
+ return super.handleToolStart(...args);
355
+ }
356
+ async handleRetrieverStart(...args) {
357
+ logger.debug("Langfuse: Retriever start intercepted");
358
+ if (this.verbose) {
359
+ logger.debug(`Langfuse: Retriever start args: ${JSON.stringify(args)}`);
360
+ }
361
+ return super.handleRetrieverStart(...args);
362
+ }
363
+ async handleAgentAction(...args) {
364
+ logger.debug("Langfuse: Agent action intercepted");
365
+ if (this.verbose) {
366
+ logger.debug(`Langfuse: Agent action args: ${JSON.stringify(args)}`);
367
+ }
368
+ return super.handleAgentAction(...args);
369
+ }
370
+ async handleAgentEnd(...args) {
371
+ logger.debug("Langfuse: Agent end intercepted");
372
+ if (this.verbose) {
373
+ logger.debug(`Langfuse: Agent end args: ${JSON.stringify(args)}`);
374
+ }
375
+ return super.handleAgentEnd(...args);
376
+ }
377
+ }
378
+ const config2 = {
379
+ publicKey: process.env.LANGFUSE_PUBLIC_KEY,
380
+ secretKey: process.env.LANGFUSE_SECRET_KEY,
381
+ baseUrl: process.env.LANGFUSE_HOST || process.env.LANGFUSE_BASEURL || "https://cloud.langfuse.com",
382
+ flushAt: Number.parseInt(process.env.LANGFUSE_FLUSH_AT || "15"),
383
+ flushInterval: Number.parseInt(process.env.LANGFUSE_FLUSH_INTERVAL || "10000"),
384
+ release: process.env.LANGFUSE_RELEASE,
385
+ requestTimeout: Number.parseInt(process.env.LANGFUSE_REQUEST_TIMEOUT || "10000"),
386
+ enabled: process.env.LANGFUSE_ENABLED !== "false"
387
+ };
388
+ langfuseState.handler = new LoggingCallbackHandler(config2, agentId, metadata, metadataProvider, tagsProvider);
389
+ logger.debug("Langfuse observability initialized successfully with logging enabled");
390
+ try {
391
+ const langfuseCore = await import("langfuse").catch(() => null);
392
+ if (langfuseCore) {
393
+ const { Langfuse } = langfuseCore;
394
+ langfuseState.client = new Langfuse({
395
+ publicKey: process.env.LANGFUSE_PUBLIC_KEY,
396
+ secretKey: process.env.LANGFUSE_SECRET_KEY,
397
+ baseUrl: process.env.LANGFUSE_HOST || "https://cloud.langfuse.com"
398
+ });
399
+ logger.debug("Langfuse client initialized");
400
+ }
401
+ } catch (error) {
402
+ logger.debug(`Langfuse client initialization failed: ${error}`);
403
+ }
404
+ } catch (error) {
405
+ logger.debug(`Langfuse initialization error: ${error}`);
406
+ }
407
+ }
408
+ __name(initializeLangfuse, "initializeLangfuse");
409
+ if (langfuseDisabled) {
410
+ logger.debug("Langfuse tracing disabled via MCP_USE_LANGFUSE environment variable");
411
+ } else if (!process.env.LANGFUSE_PUBLIC_KEY || !process.env.LANGFUSE_SECRET_KEY) {
412
+ logger.debug(
413
+ "Langfuse API keys not found - tracing disabled. Set LANGFUSE_PUBLIC_KEY and LANGFUSE_SECRET_KEY to enable"
414
+ );
415
+ } else {
416
+ langfuseState.initPromise = initializeLangfuse();
417
+ }
418
+ var langfuseHandler = /* @__PURE__ */ __name(() => langfuseState.handler, "langfuseHandler");
419
+ var langfuseClient = /* @__PURE__ */ __name(() => langfuseState.client, "langfuseClient");
420
+ var langfuseInitPromise = /* @__PURE__ */ __name(() => langfuseState.initPromise, "langfuseInitPromise");
421
+
422
+ export {
423
+ Logger,
424
+ logger,
425
+ initializeLangfuse,
426
+ langfuseHandler,
427
+ langfuseClient,
428
+ langfuseInitPromise
429
+ };