@autonomaai/mcp-client 1.0.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.
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ /**
3
+ * Hummingbot API Client
4
+ *
5
+ * Direct HTTP client for the official Hummingbot API (hummingbot/hummingbot-api)
6
+ * Uses Basic Auth and maps to real API endpoints
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.HummingbotAPIClient = void 0;
10
+ exports.createHummingbotAPIClient = createHummingbotAPIClient;
11
+ class HummingbotAPIClient {
12
+ constructor(config) {
13
+ this.config = {
14
+ timeout: 30000,
15
+ ...config
16
+ };
17
+ // Create Basic Auth header using btoa (universal)
18
+ const credentials = btoa(`${config.username}:${config.password}`);
19
+ this.authHeader = `Basic ${credentials}`;
20
+ }
21
+ async request(endpoint, options = {}) {
22
+ const { method = 'GET', body } = options;
23
+ const url = `${this.config.baseUrl}${endpoint}`;
24
+ const response = await fetch(url, {
25
+ method,
26
+ headers: {
27
+ 'Content-Type': 'application/json',
28
+ 'Authorization': this.authHeader
29
+ },
30
+ body: body ? JSON.stringify(body) : undefined
31
+ });
32
+ if (!response.ok) {
33
+ const errorText = await response.text();
34
+ throw new Error(`Hummingbot API error ${response.status}: ${errorText}`);
35
+ }
36
+ const contentType = response.headers.get('content-type');
37
+ if (contentType?.includes('application/json')) {
38
+ return await response.json();
39
+ }
40
+ return await response.text();
41
+ }
42
+ // =============================================================================
43
+ // Root & Health
44
+ // =============================================================================
45
+ async getInfo() {
46
+ return this.request('/');
47
+ }
48
+ // =============================================================================
49
+ // Accounts
50
+ // =============================================================================
51
+ async getAccounts() {
52
+ return this.request('/accounts/');
53
+ }
54
+ async addAccount(name) {
55
+ return this.request('/accounts/add-account', {
56
+ method: 'POST',
57
+ body: { account_name: name }
58
+ });
59
+ }
60
+ async getAccountCredentials(accountName) {
61
+ return this.request(`/accounts/${accountName}/credentials`);
62
+ }
63
+ async addCredential(accountName, connectorName, credentials) {
64
+ return this.request(`/accounts/add-credential/${accountName}/${connectorName}`, {
65
+ method: 'POST',
66
+ body: credentials
67
+ });
68
+ }
69
+ // =============================================================================
70
+ // Connectors
71
+ // =============================================================================
72
+ async getConnectors() {
73
+ return this.request('/connectors/');
74
+ }
75
+ async getConnectorConfigMap(connectorName) {
76
+ return this.request(`/connectors/${connectorName}/config-map`);
77
+ }
78
+ async getConnectorOrderTypes(connectorName) {
79
+ return this.request(`/connectors/${connectorName}/order-types`);
80
+ }
81
+ async getConnectorTradingRules(connectorName) {
82
+ return this.request(`/connectors/${connectorName}/trading-rules`);
83
+ }
84
+ // =============================================================================
85
+ // Bot Orchestration
86
+ // =============================================================================
87
+ async getBotOrchestrationStatus() {
88
+ return this.request('/bot-orchestration/status');
89
+ }
90
+ async getBotRuns() {
91
+ return this.request('/bot-orchestration/bot-runs');
92
+ }
93
+ async getBotRunsStats() {
94
+ return this.request('/bot-orchestration/bot-runs/stats');
95
+ }
96
+ async startBot(config) {
97
+ return this.request('/bot-orchestration/start-bot', {
98
+ method: 'POST',
99
+ body: config
100
+ });
101
+ }
102
+ async stopBot(botName) {
103
+ return this.request('/bot-orchestration/stop-bot', {
104
+ method: 'POST',
105
+ body: { bot_name: botName }
106
+ });
107
+ }
108
+ async getBotHistory(botName) {
109
+ return this.request(`/bot-orchestration/${botName}/history`);
110
+ }
111
+ async getBotStatus(botName) {
112
+ return this.request(`/bot-orchestration/${botName}/status`);
113
+ }
114
+ // =============================================================================
115
+ // Controllers
116
+ // =============================================================================
117
+ async getControllers() {
118
+ return this.request('/controllers/');
119
+ }
120
+ async getControllerConfigs() {
121
+ return this.request('/controllers/configs/');
122
+ }
123
+ async getControllerConfig(configName) {
124
+ return this.request(`/controllers/configs/${configName}`);
125
+ }
126
+ async getController(controllerType, controllerName) {
127
+ return this.request(`/controllers/${controllerType}/${controllerName}`);
128
+ }
129
+ async getControllerConfigTemplate(controllerType, controllerName) {
130
+ return this.request(`/controllers/${controllerType}/${controllerName}/config/template`);
131
+ }
132
+ async validateControllerConfig(controllerType, controllerName, config) {
133
+ return this.request(`/controllers/${controllerType}/${controllerName}/config/validate`, {
134
+ method: 'POST',
135
+ body: config
136
+ });
137
+ }
138
+ // =============================================================================
139
+ // Backtesting
140
+ // =============================================================================
141
+ async runBacktest(config) {
142
+ return this.request('/backtesting/run-backtesting', {
143
+ method: 'POST',
144
+ body: config
145
+ });
146
+ }
147
+ // =============================================================================
148
+ // Market Data
149
+ // =============================================================================
150
+ async getMarketData(config) {
151
+ return this.request('/market-data/', {
152
+ method: 'POST',
153
+ body: config
154
+ });
155
+ }
156
+ async getCandlesData(config) {
157
+ return this.request('/market-data/candles', {
158
+ method: 'POST',
159
+ body: config
160
+ });
161
+ }
162
+ // =============================================================================
163
+ // Docker Management
164
+ // =============================================================================
165
+ async getActiveContainers() {
166
+ return this.request('/docker/active-containers');
167
+ }
168
+ async getAvailableImages() {
169
+ return this.request('/docker/available-images/');
170
+ }
171
+ async isDockerRunning() {
172
+ return this.request('/docker/running');
173
+ }
174
+ // =============================================================================
175
+ // Archived Bots
176
+ // =============================================================================
177
+ async getArchivedBots() {
178
+ return this.request('/archived-bots/');
179
+ }
180
+ async getArchivedBotPerformance(dbPath) {
181
+ return this.request(`/archived-bots/${encodeURIComponent(dbPath)}/performance`);
182
+ }
183
+ async getArchivedBotSummary(dbPath) {
184
+ return this.request(`/archived-bots/${encodeURIComponent(dbPath)}/summary`);
185
+ }
186
+ async getArchivedBotTrades(dbPath) {
187
+ return this.request(`/archived-bots/${encodeURIComponent(dbPath)}/trades`);
188
+ }
189
+ async getArchivedBotOrders(dbPath) {
190
+ return this.request(`/archived-bots/${encodeURIComponent(dbPath)}/orders`);
191
+ }
192
+ }
193
+ exports.HummingbotAPIClient = HummingbotAPIClient;
194
+ // Helper to safely get env var
195
+ function getEnv(key, defaultValue) {
196
+ try {
197
+ return (typeof process !== 'undefined' && process?.env?.[key]) || defaultValue;
198
+ }
199
+ catch {
200
+ return defaultValue;
201
+ }
202
+ }
203
+ /**
204
+ * Factory function to create a Hummingbot API client
205
+ */
206
+ function createHummingbotAPIClient(config) {
207
+ const baseUrl = config?.baseUrl || getEnv('HUMMINGBOT_API_URL', 'http://localhost:8000');
208
+ const username = config?.username || getEnv('HUMMINGBOT_USERNAME', 'admin');
209
+ const password = config?.password || getEnv('HUMMINGBOT_PASSWORD', 'admin');
210
+ return new HummingbotAPIClient({
211
+ baseUrl,
212
+ username,
213
+ password,
214
+ timeout: config?.timeout || 30000
215
+ });
216
+ }
217
+ //# sourceMappingURL=hummingbot-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hummingbot-api.js","sourceRoot":"","sources":["../src/hummingbot-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * autonoma MCP Client Library
3
+ *
4
+ * Unified client library for interacting with MCP servers across the
5
+ * autonoma trading ecosystem.
6
+ */
7
+ export { MCPClient, MCPClientError } from './client';
8
+ export { HummingbotAPIClient, createHummingbotAPIClient } from './hummingbot-api';
9
+ export type { HummingbotAPIConfig, BotOrchestrationStatus, BotRunsStats } from './hummingbot-api';
10
+ export * from './types';
11
+ export * from './tool-utils';
12
+ import { MCPClient } from './client';
13
+ import { MCPClientConfig } from './types';
14
+ /**
15
+ * Create a new MCP client instance
16
+ */
17
+ export declare function createMCPClient(config: MCPClientConfig): MCPClient;
18
+ /**
19
+ * Create a new MCP client with common defaults for Hummingbot
20
+ */
21
+ export declare function createHummingbotClient(baseUrl?: string): MCPClient;
22
+ /**
23
+ * Create a new MCP client for the DexScreener Solana service
24
+ * Supports both HTTP and stdio-based MCP tools
25
+ */
26
+ export declare function createDexscreenerClient(baseUrl?: string): MCPClient;
27
+ /**
28
+ * Create a new MCP client for the RAG service
29
+ */
30
+ export declare function createRAGClient(baseUrl?: string): MCPClient;
31
+ /**
32
+ * Create a new MCP client for the APY Strategy service
33
+ * Supports comprehensive DeFi yield optimization tools
34
+ */
35
+ export declare function createAPYStrategyClient(baseUrl?: string): MCPClient;
36
+ /**
37
+ * Create a unified MCP client with access to all autonoma services
38
+ * Provides comprehensive access to RAG, Data Collector, DexScreener, and APY Strategy tools
39
+ */
40
+ export declare function createUnifiedMCPClient(config?: {
41
+ ragServerUrl?: string;
42
+ dexscreenerUrl?: string;
43
+ apyStrategyUrl?: string;
44
+ hummingbotUrl?: string;
45
+ }): {
46
+ ragClient: MCPClient;
47
+ dexscreenerClient: MCPClient;
48
+ apyStrategyClient: MCPClient;
49
+ hummingbotClient: MCPClient;
50
+ };
51
+ /**
52
+ * Create a unified MCP tools interface with all services
53
+ * Provides a single interface to access all 38+ MCP tools across services
54
+ */
55
+ export declare class UnifiedMCPTools {
56
+ ragTools: MCPClient;
57
+ dexscreenerTools: MCPClient;
58
+ apyStrategyTools: MCPClient;
59
+ hummingbotTools: MCPClient;
60
+ constructor(config?: {
61
+ ragServerUrl?: string;
62
+ dexscreenerUrl?: string;
63
+ apyStrategyUrl?: string;
64
+ hummingbotUrl?: string;
65
+ });
66
+ /**
67
+ * Get health status from all services
68
+ */
69
+ getHealthStatus(): Promise<{
70
+ rag: any;
71
+ dexscreener: any;
72
+ apyStrategy: any;
73
+ hummingbot: any;
74
+ }>;
75
+ /**
76
+ * List all available tools across all services
77
+ */
78
+ listAllTools(): Promise<{
79
+ rag: any;
80
+ dexscreener: any;
81
+ apyStrategy: any;
82
+ hummingbot: any;
83
+ }>;
84
+ }
85
+ /**
86
+ * Create a unified MCP tools instance
87
+ */
88
+ export declare function createUnifiedMCPTools(config?: {
89
+ ragServerUrl?: string;
90
+ dexscreenerUrl?: string;
91
+ apyStrategyUrl?: string;
92
+ hummingbotUrl?: string;
93
+ }): UnifiedMCPTools;
94
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAGrD,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAClF,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGlG,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAElE;AAYD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,MAAuE,GAAG,SAAS,CAQlI;AAID;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,MAAwE,GAAG,SAAS,CAQpI;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,MAAgE,GAAG,SAAS,CAQpH;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,MAAyE,GAAG,SAAS,CAQrI;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG;IACF,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,iBAAiB,EAAE,SAAS,CAAC;IAC7B,gBAAgB,EAAE,SAAS,CAAC;CAC7B,CAcA;AAED;;;GAGG;AACH,qBAAa,eAAe;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,eAAe,EAAE,SAAS,CAAC;gBAEtB,MAAM,CAAC,EAAE;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB;IAQD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC;QAC/B,GAAG,EAAE,GAAG,CAAC;QACT,WAAW,EAAE,GAAG,CAAC;QACjB,WAAW,EAAE,GAAG,CAAC;QACjB,UAAU,EAAE,GAAG,CAAC;KACjB,CAAC;IAgBF;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC;QAC5B,GAAG,EAAE,GAAG,CAAC;QACT,WAAW,EAAE,GAAG,CAAC;QACjB,WAAW,EAAE,GAAG,CAAC;QACjB,UAAU,EAAE,GAAG,CAAC;KACjB,CAAC;CAeH;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,eAAe,CAElB"}
package/dist/index.js ADDED
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ /**
3
+ * autonoma MCP Client Library
4
+ *
5
+ * Unified client library for interacting with MCP servers across the
6
+ * autonoma trading ecosystem.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.UnifiedMCPTools = exports.createHummingbotAPIClient = exports.HummingbotAPIClient = exports.MCPClientError = exports.MCPClient = void 0;
24
+ exports.createMCPClient = createMCPClient;
25
+ exports.createHummingbotClient = createHummingbotClient;
26
+ exports.createDexscreenerClient = createDexscreenerClient;
27
+ exports.createRAGClient = createRAGClient;
28
+ exports.createAPYStrategyClient = createAPYStrategyClient;
29
+ exports.createUnifiedMCPClient = createUnifiedMCPClient;
30
+ exports.createUnifiedMCPTools = createUnifiedMCPTools;
31
+ // Export the main client class and error
32
+ var client_1 = require("./client");
33
+ Object.defineProperty(exports, "MCPClient", { enumerable: true, get: function () { return client_1.MCPClient; } });
34
+ Object.defineProperty(exports, "MCPClientError", { enumerable: true, get: function () { return client_1.MCPClientError; } });
35
+ // Export the Hummingbot API client (direct HTTP with Basic Auth)
36
+ var hummingbot_api_1 = require("./hummingbot-api");
37
+ Object.defineProperty(exports, "HummingbotAPIClient", { enumerable: true, get: function () { return hummingbot_api_1.HummingbotAPIClient; } });
38
+ Object.defineProperty(exports, "createHummingbotAPIClient", { enumerable: true, get: function () { return hummingbot_api_1.createHummingbotAPIClient; } });
39
+ // Export all types
40
+ __exportStar(require("./types"), exports);
41
+ __exportStar(require("./tool-utils"), exports);
42
+ // Convenience factory function
43
+ const client_2 = require("./client");
44
+ /**
45
+ * Create a new MCP client instance
46
+ */
47
+ function createMCPClient(config) {
48
+ return new client_2.MCPClient(config);
49
+ }
50
+ // Configuration helper to safely access environment variables
51
+ function getEnvOrDefault(key, defaultValue) {
52
+ try {
53
+ // @ts-ignore - process may not be available in all environments
54
+ return typeof process !== 'undefined' && process.env?.[key] || defaultValue;
55
+ }
56
+ catch {
57
+ return defaultValue;
58
+ }
59
+ }
60
+ /**
61
+ * Create a new MCP client with common defaults for Hummingbot
62
+ */
63
+ function createHummingbotClient(baseUrl = getEnvOrDefault('HUMMINGBOT_MCP_URL', 'http://localhost:8000')) {
64
+ return new client_2.MCPClient({
65
+ baseUrl,
66
+ timeout: 30000,
67
+ retries: 3,
68
+ retryDelay: 1000,
69
+ enableLogging: false
70
+ });
71
+ }
72
+ /**
73
+ * Create a new MCP client for the DexScreener Solana service
74
+ * Supports both HTTP and stdio-based MCP tools
75
+ */
76
+ function createDexscreenerClient(baseUrl = getEnvOrDefault('DEXSCREENER_MCP_URL', 'http://localhost:3010')) {
77
+ return new client_2.MCPClient({
78
+ baseUrl,
79
+ timeout: 10000,
80
+ retries: 3,
81
+ retryDelay: 1000,
82
+ enableLogging: false
83
+ });
84
+ }
85
+ /**
86
+ * Create a new MCP client for the RAG service
87
+ */
88
+ function createRAGClient(baseUrl = getEnvOrDefault('RAG_MCP_URL', 'http://localhost:3002')) {
89
+ return new client_2.MCPClient({
90
+ baseUrl,
91
+ timeout: 20000,
92
+ retries: 2,
93
+ retryDelay: 1000,
94
+ enableLogging: false
95
+ });
96
+ }
97
+ /**
98
+ * Create a new MCP client for the APY Strategy service
99
+ * Supports comprehensive DeFi yield optimization tools
100
+ */
101
+ function createAPYStrategyClient(baseUrl = getEnvOrDefault('APY_STRATEGY_MCP_URL', 'http://localhost:3008')) {
102
+ return new client_2.MCPClient({
103
+ baseUrl,
104
+ timeout: 25000,
105
+ retries: 3,
106
+ retryDelay: 1500,
107
+ enableLogging: false
108
+ });
109
+ }
110
+ /**
111
+ * Create a unified MCP client with access to all autonoma services
112
+ * Provides comprehensive access to RAG, Data Collector, DexScreener, and APY Strategy tools
113
+ */
114
+ function createUnifiedMCPClient(config) {
115
+ const { ragServerUrl = 'http://localhost:8001', dexscreenerUrl = 'http://localhost:3000', apyStrategyUrl = 'http://localhost:8003', hummingbotUrl = 'http://localhost:8080' } = config || {};
116
+ return {
117
+ ragClient: createRAGClient(ragServerUrl),
118
+ dexscreenerClient: createDexscreenerClient(dexscreenerUrl),
119
+ apyStrategyClient: createAPYStrategyClient(apyStrategyUrl),
120
+ hummingbotClient: createHummingbotClient(hummingbotUrl)
121
+ };
122
+ }
123
+ /**
124
+ * Create a unified MCP tools interface with all services
125
+ * Provides a single interface to access all 38+ MCP tools across services
126
+ */
127
+ class UnifiedMCPTools {
128
+ constructor(config) {
129
+ const clients = createUnifiedMCPClient(config);
130
+ this.ragTools = clients.ragClient;
131
+ this.dexscreenerTools = clients.dexscreenerClient;
132
+ this.apyStrategyTools = clients.apyStrategyClient;
133
+ this.hummingbotTools = clients.hummingbotClient;
134
+ }
135
+ /**
136
+ * Get health status from all services
137
+ */
138
+ async getHealthStatus() {
139
+ const [rag, dexscreener, apyStrategy, hummingbot] = await Promise.allSettled([
140
+ this.ragTools.getHealth(),
141
+ this.dexscreenerTools.getHealth(),
142
+ this.apyStrategyTools.getHealth(),
143
+ this.hummingbotTools.getHealth()
144
+ ]);
145
+ return {
146
+ rag: rag.status === 'fulfilled' ? rag.value : { error: rag.reason?.message },
147
+ dexscreener: dexscreener.status === 'fulfilled' ? dexscreener.value : { error: dexscreener.reason?.message },
148
+ apyStrategy: apyStrategy.status === 'fulfilled' ? apyStrategy.value : { error: apyStrategy.reason?.message },
149
+ hummingbot: hummingbot.status === 'fulfilled' ? hummingbot.value : { error: hummingbot.reason?.message }
150
+ };
151
+ }
152
+ /**
153
+ * List all available tools across all services
154
+ */
155
+ async listAllTools() {
156
+ const [rag, dexscreener, apyStrategy, hummingbot] = await Promise.allSettled([
157
+ this.ragTools.listTools(),
158
+ this.dexscreenerTools.listTools(),
159
+ this.apyStrategyTools.listTools(),
160
+ this.hummingbotTools.listTools()
161
+ ]);
162
+ return {
163
+ rag: rag.status === 'fulfilled' ? rag.value : { error: rag.reason?.message },
164
+ dexscreener: dexscreener.status === 'fulfilled' ? dexscreener.value : { error: dexscreener.reason?.message },
165
+ apyStrategy: apyStrategy.status === 'fulfilled' ? apyStrategy.value : { error: apyStrategy.reason?.message },
166
+ hummingbot: hummingbot.status === 'fulfilled' ? hummingbot.value : { error: hummingbot.reason?.message }
167
+ };
168
+ }
169
+ }
170
+ exports.UnifiedMCPTools = UnifiedMCPTools;
171
+ /**
172
+ * Create a unified MCP tools instance
173
+ */
174
+ function createUnifiedMCPTools(config) {
175
+ return new UnifiedMCPTools(config);
176
+ }
177
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Utility helpers for MCP tool execution, exposed as part of the MCP client package.
3
+ * Provides consistent payload shaping and error/response normalization for any caller.
4
+ */
5
+ export interface MCPToolExecutionResult {
6
+ success: boolean;
7
+ response?: any;
8
+ error?: string;
9
+ }
10
+ interface MCPClientLike {
11
+ callTool(payload: {
12
+ name: string;
13
+ arguments?: Record<string, any>;
14
+ }): Promise<any>;
15
+ }
16
+ export declare function executeMCPTool(client: MCPClientLike | null | undefined, toolName: string, args?: Record<string, any>): Promise<MCPToolExecutionResult>;
17
+ export {};
18
+ //# sourceMappingURL=tool-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-utils.d.ts","sourceRoot":"","sources":["../src/tool-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,QAAQ,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACpF;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,EACxC,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACzB,OAAO,CAAC,sBAAsB,CAAC,CA4BjC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * Utility helpers for MCP tool execution, exposed as part of the MCP client package.
4
+ * Provides consistent payload shaping and error/response normalization for any caller.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.executeMCPTool = executeMCPTool;
8
+ async function executeMCPTool(client, toolName, args) {
9
+ if (!client) {
10
+ return {
11
+ success: false,
12
+ error: 'MCP client is not configured'
13
+ };
14
+ }
15
+ try {
16
+ const payload = await client.callTool({
17
+ name: toolName,
18
+ arguments: args || {}
19
+ });
20
+ const isError = payload?.isError || false;
21
+ return {
22
+ success: !isError,
23
+ response: payload,
24
+ error: isError
25
+ ? payload?.meta?.error || 'MCP tool reported an error'
26
+ : undefined
27
+ };
28
+ }
29
+ catch (error) {
30
+ return {
31
+ success: false,
32
+ error: error instanceof Error ? error.message : 'Unknown MCP error'
33
+ };
34
+ }
35
+ }
36
+ //# sourceMappingURL=tool-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-utils.js","sourceRoot":"","sources":["../src/tool-utils.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAYH,wCAgCC;AAhCM,KAAK,UAAU,cAAc,CAClC,MAAwC,EACxC,QAAgB,EAChB,IAA0B;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,8BAA8B;SACtC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;YACpC,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;QAC1C,OAAO;YACL,OAAO,EAAE,CAAC,OAAO;YACjB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,OAAO;gBACZ,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,4BAA4B;gBACtD,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB;SACpE,CAAC;IACJ,CAAC;AACH,CAAC"}