@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.
- package/dist/client.d.ts +269 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +493 -0
- package/dist/client.js.map +1 -0
- package/dist/hummingbot-api.d.ts +99 -0
- package/dist/hummingbot-api.d.ts.map +1 -0
- package/dist/hummingbot-api.js +217 -0
- package/dist/hummingbot-api.js.map +1 -0
- package/dist/index.d.ts +94 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +177 -0
- package/dist/index.js.map +1 -0
- package/dist/tool-utils.d.ts +18 -0
- package/dist/tool-utils.d.ts.map +1 -0
- package/dist/tool-utils.js +36 -0
- package/dist/tool-utils.js.map +1 -0
- package/dist/types.d.ts +834 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/package.json +52 -0
- package/src/client.ts +780 -0
- package/src/hummingbot-api.ts +323 -0
- package/src/index.ts +208 -0
- package/src/tool-utils.ts +48 -0
- package/src/types.ts +972 -0
|
@@ -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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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|