@tunnelhub/mcp 1.0.3 → 1.0.4

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # TunnelHub MCP
2
2
 
3
- Conecte clientes MCP ao TunnelHub para investigar automações, execuções, logs e traces usando o mesmo fluxo de autenticação do frontend.
3
+ Conecte clientes MCP ao TunnelHub para investigar automações, execuções, logs, traces, sistemas e pacotes usando o mesmo fluxo de autenticação do frontend.
4
4
 
5
5
  Este MCP é especialmente útil para:
6
6
 
@@ -15,6 +15,9 @@ Este MCP é especialmente útil para:
15
15
  - Autenticar no TunnelHub pelo navegador
16
16
  - Listar ambientes disponíveis
17
17
  - Listar e inspecionar automações
18
+ - Consultar sistemas do ambiente atual
19
+ - Consultar pacotes do ambiente atual
20
+ - Consultar tabelas de de/para do ambiente atual
18
21
  - Localizar execuções por intervalo de tempo
19
22
  - Resumir uma execução completa
20
23
  - Consultar logs e traces de uma execução
@@ -224,6 +227,14 @@ Você pode pedir coisas como:
224
227
  - `Qual sessão está ativa?`
225
228
  - `Liste os ambientes disponíveis`
226
229
  - `Liste as automações ativas`
230
+ - `Liste os sistemas HTTP do ambiente atual`
231
+ - `Mostre o system 1234`
232
+ - `Liste os pacotes do ambiente atual`
233
+ - `Mostre o package abc`
234
+ - `Liste as tabelas de de/para do ambiente atual`
235
+ - `Busque a tabela de de/para CFOP`
236
+ - `Liste os itens da tabela de de/para 1234`
237
+ - `Me mostre o item abc da tabela de de/para 1234`
227
238
  - `Ache a execução 9b696080439f no dia 2026-03-13`
228
239
  - `Resuma a execução 019ce7f3-2707-740c-8692-9b696080439f`
229
240
  - `Me mostre os traces com ERROR dessa execução`
@@ -248,6 +259,23 @@ Você pode pedir coisas como:
248
259
  - `list_tenants_tunnelhub`
249
260
  - `get_tenant_tunnelhub`
250
261
 
262
+ ### Tabelas de de/para
263
+
264
+ - `list_data_stores_tunnelhub`
265
+ - `get_data_store_tunnelhub`
266
+ - `list_data_store_items_tunnelhub`
267
+ - `get_data_store_item_tunnelhub`
268
+
269
+ ### Sistemas
270
+
271
+ - `list_systems_tunnelhub`
272
+ - `get_system_tunnelhub`
273
+
274
+ ### Pacotes
275
+
276
+ - `list_packages_tunnelhub`
277
+ - `get_package_tunnelhub`
278
+
251
279
  ### Automações
252
280
 
253
281
  - `list_automations_tunnelhub`
@@ -289,6 +317,8 @@ Observações:
289
317
  ## ⚠️ Limitações atuais
290
318
 
291
319
  - O foco atual está em automações e monitoramento
320
+ - Sistemas e pacotes estão disponíveis em modo somente leitura
321
+ - Tabelas de de/para estão disponíveis em modo somente leitura
292
322
  - Algumas APIs do backend têm comportamentos específicos de filtro e paginação
293
323
  - A listagem de execuções depende de intervalo de tempo obrigatório
294
324
 
@@ -6,9 +6,5 @@ export declare class CognitoClient {
6
6
  * Refresh tokens using refresh token
7
7
  */
8
8
  refreshTokens(clientId: string, refreshToken: string): Promise<BrowserAuthTokens>;
9
- /**
10
- * Initiate password auth (for future use if needed)
11
- */
12
- authenticateWithPassword(clientId: string, username: string, password: string): Promise<BrowserAuthTokens>;
13
9
  }
14
10
  //# sourceMappingURL=cognito-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cognito-client.d.ts","sourceRoot":"","sources":["../../src/auth/cognito-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgC;;IAQ9C;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6BvF;;OAEG;IACG,wBAAwB,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,CAAC;CA6B9B"}
1
+ {"version":3,"file":"cognito-client.d.ts","sourceRoot":"","sources":["../../src/auth/cognito-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgC;;IAQ9C;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA4BxF"}
@@ -35,35 +35,5 @@ export class CognitoClient {
35
35
  throw error;
36
36
  }
37
37
  }
38
- /**
39
- * Initiate password auth (for future use if needed)
40
- */
41
- async authenticateWithPassword(clientId, username, password) {
42
- const input = {
43
- AuthFlow: 'USER_PASSWORD_AUTH',
44
- ClientId: clientId,
45
- AuthParameters: {
46
- USERNAME: username,
47
- PASSWORD: password,
48
- },
49
- };
50
- try {
51
- const command = new InitiateAuthCommand(input);
52
- const response = await this.client.send(command);
53
- if (!response.AuthenticationResult) {
54
- throw new Error('No authentication result received');
55
- }
56
- return {
57
- idToken: response.AuthenticationResult.IdToken,
58
- accessToken: response.AuthenticationResult.AccessToken,
59
- refreshToken: response.AuthenticationResult.RefreshToken,
60
- expiresIn: response.AuthenticationResult.ExpiresIn,
61
- };
62
- }
63
- catch (error) {
64
- console.error('Failed to authenticate:', error);
65
- throw error;
66
- }
67
- }
68
38
  }
69
39
  //# sourceMappingURL=cognito-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cognito-client.js","sourceRoot":"","sources":["../../src/auth/cognito-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,mBAAmB,GAEpB,MAAM,2CAA2C,CAAC;AAGnD,MAAM,OAAO,aAAa;IAChB,MAAM,CAAgC;IAE9C;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,6BAA6B,CAAC;YAC9C,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,YAAoB;QACxD,MAAM,KAAK,GAA6B;YACtC,QAAQ,EAAE,oBAAoB;YAC9B,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE;gBACd,aAAa,EAAE,YAAY;aAC5B;SACF,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjD,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACvD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,OAAQ;gBAC/C,WAAW,EAAE,QAAQ,CAAC,oBAAoB,CAAC,WAAY;gBACvD,YAAY,EAAE,YAAY,EAAE,+BAA+B;gBAC3D,SAAS,EAAE,QAAQ,CAAC,oBAAoB,CAAC,SAAU;aACpD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,wBAAwB,CAC5B,QAAgB,EAChB,QAAgB,EAChB,QAAgB;QAEhB,MAAM,KAAK,GAA6B;YACtC,QAAQ,EAAE,oBAAoB;YAC9B,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE;gBACd,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,QAAQ;aACnB;SACF,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjD,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACvD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,OAAQ;gBAC/C,WAAW,EAAE,QAAQ,CAAC,oBAAoB,CAAC,WAAY;gBACvD,YAAY,EAAE,QAAQ,CAAC,oBAAoB,CAAC,YAAa;gBACzD,SAAS,EAAE,QAAQ,CAAC,oBAAoB,CAAC,SAAU;aACpD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAChD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"cognito-client.js","sourceRoot":"","sources":["../../src/auth/cognito-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,mBAAmB,GAEpB,MAAM,2CAA2C,CAAC;AAGnD,MAAM,OAAO,aAAa;IAChB,MAAM,CAAgC;IAE9C;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,6BAA6B,CAAC;YAC9C,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,YAAoB;QACxD,MAAM,KAAK,GAA6B;YACtC,QAAQ,EAAE,oBAAoB;YAC9B,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE;gBACd,aAAa,EAAE,YAAY;aAC5B;SACF,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjD,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACvD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,OAAQ;gBAC/C,WAAW,EAAE,QAAQ,CAAC,oBAAoB,CAAC,WAAY;gBACvD,YAAY,EAAE,YAAY,EAAE,+BAA+B;gBAC3D,SAAS,EAAE,QAAQ,CAAC,oBAAoB,CAAC,SAAU;aACpD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUpE,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IAEnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEhD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;;IAYtC,OAAO,CAAC,WAAW;IAqBnB,SAAS,IAAI,SAAS;CAGvB;;AAID,wBAA2C"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAcpE,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IAEnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEhD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;;IAYtC,OAAO,CAAC,WAAW;IAwBnB,SAAS,IAAI,SAAS;CAGvB;;AAID,wBAA2C"}
package/dist/server.js CHANGED
@@ -1,8 +1,12 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import packageJson from '../package.json' with { type: 'json' };
2
3
  import { SessionManager } from './auth/session-manager.js';
4
+ import { registerDataStoreTools } from './tools/data-stores/index.js';
3
5
  import { registerAutomationTools } from './tools/automations/index.js';
4
6
  import { registerMonitoringTools } from './tools/monitoring/index.js';
7
+ import { registerPackageTools } from './tools/packages/index.js';
5
8
  import { registerSessionTools } from './tools/session/index.js';
9
+ import { registerSystemTools } from './tools/systems/index.js';
6
10
  import { registerTenantTools } from './tools/tenants/index.js';
7
11
  import { ApiClient } from './utils/api-client.js';
8
12
  import { MCPError } from './utils/error-handler.js';
@@ -13,7 +17,7 @@ export class TunnelHubMCPServer {
13
17
  constructor() {
14
18
  this.server = new McpServer({
15
19
  name: 'tunnelhub-mcp-server',
16
- version: '1.0.0',
20
+ version: packageJson.version,
17
21
  });
18
22
  this.sessionManager = new SessionManager();
19
23
  this.apiClient = new ApiClient();
@@ -34,6 +38,9 @@ export class TunnelHubMCPServer {
34
38
  };
35
39
  registerSessionTools(this.server, context);
36
40
  registerTenantTools(this.server, context);
41
+ registerPackageTools(this.server, context);
42
+ registerSystemTools(this.server, context);
43
+ registerDataStoreTools(this.server, context);
37
44
  registerAutomationTools(this.server, context);
38
45
  registerMonitoringTools(this.server, context);
39
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,MAAM,OAAO,kBAAkB;IACZ,MAAM,CAAY;IAElB,cAAc,CAAiB;IAE/B,SAAS,CAAY;IAEtC;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC1B,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,WAAW;QACjB,MAAM,OAAO,GAAgB;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,KAAK,IAAI,EAAE;gBACrB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;gBAClE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;oBAC1B,MAAM,IAAI,QAAQ,CAAC,+CAA+C,EAAE,eAAe,CAAC,CAAC;gBACvF,CAAC;gBAED,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC/C,OAAO,WAAW,CAAC,OAAO,CAAC;YAC7B,CAAC;SACF,CAAC;QAEF,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAED,MAAM,eAAe,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAEjD,eAAe,eAAe,CAAC,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,MAAM,OAAO,kBAAkB;IACZ,MAAM,CAAY;IAElB,cAAc,CAAiB;IAE/B,SAAS,CAAY;IAEtC;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC1B,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,WAAW;QACjB,MAAM,OAAO,GAAgB;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,KAAK,IAAI,EAAE;gBACrB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;gBAClE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;oBAC1B,MAAM,IAAI,QAAQ,CAAC,+CAA+C,EAAE,eAAe,CAAC,CAAC;gBACvF,CAAC;gBAED,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC/C,OAAO,WAAW,CAAC,OAAO,CAAC;YAC7B,CAAC;SACF,CAAC;QAEF,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7C,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAED,MAAM,eAAe,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAEjD,eAAe,eAAe,CAAC,SAAS,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function registerDataStoreTools(server: McpServer, context: unknown): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/data-stores/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgMzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAMhF"}
@@ -0,0 +1,171 @@
1
+ import { DataStoreIdParamsSchema, DataStoreItemIdParamsSchema, DataStoreItemListParamsSchema, DataStoreListParamsSchema, } from '../../types/mcp.js';
2
+ import { errorResult, requireSession, textResult } from '../../utils/error-handler.js';
3
+ function extractListItems(response) {
4
+ if (Array.isArray(response)) {
5
+ return response;
6
+ }
7
+ if (response && typeof response === 'object' && Array.isArray(response.data)) {
8
+ return (response.data || []);
9
+ }
10
+ return [];
11
+ }
12
+ function summarizeDataStore(item) {
13
+ return [
14
+ `Data Store ID: ${item.uuid}`,
15
+ `External Code: ${item.externalCode || 'n/a'}`,
16
+ `Description: ${item.description || 'n/a'}`,
17
+ `Package ID: ${item.packageId || 'n/a'}`,
18
+ `Created At: ${item.createdAt || 'n/a'}`,
19
+ `Updated At: ${item.updatedAt || 'n/a'}`,
20
+ ].join('\n');
21
+ }
22
+ function summarizeDataStoreList(items) {
23
+ if (items.length === 0) {
24
+ return 'No conversion tables found.';
25
+ }
26
+ return items
27
+ .slice(0, 15)
28
+ .map((item) => `${item.externalCode || item.uuid} | ${item.description || 'n/a'} | ${item.uuid}`)
29
+ .join('\n');
30
+ }
31
+ function summarizeDataStoreItem(item) {
32
+ return [
33
+ `Item ID: ${item.uuid}`,
34
+ `Table ID: ${item.dataStoreId}`,
35
+ `From: ${item.fromValue}`,
36
+ `To: ${item.toValue}`,
37
+ `Created At: ${item.createdAt || 'n/a'}`,
38
+ `Updated At: ${item.updatedAt || 'n/a'}`,
39
+ ].join('\n');
40
+ }
41
+ function summarizeDataStoreItems(items) {
42
+ if (items.length === 0) {
43
+ return 'No conversion table items found.';
44
+ }
45
+ return items
46
+ .slice(0, 20)
47
+ .map((item) => `${item.fromValue} -> ${item.toValue} | ${item.uuid}`)
48
+ .join('\n');
49
+ }
50
+ const listDataStoresTool = {
51
+ name: 'list_data_stores_tunnelhub',
52
+ schema: {
53
+ title: 'List TunnelHub Conversion Tables',
54
+ description: 'List conversion tables (data stores) from platform-service using the current environment.',
55
+ inputSchema: DataStoreListParamsSchema,
56
+ annotations: {
57
+ readOnlyHint: true,
58
+ destructiveHint: false,
59
+ idempotentHint: true,
60
+ openWorldHint: false,
61
+ },
62
+ },
63
+ handler: async (params, context) => {
64
+ try {
65
+ const session = await requireSession(context);
66
+ context.apiClient.setSession(session);
67
+ const apiClient = context.apiClient;
68
+ const response = await apiClient.listDataStores(params);
69
+ const items = extractListItems(response);
70
+ const summary = summarizeDataStoreList(items);
71
+ return textResult(`Conversion tables:\n\n${summary}\n\nReturned: ${items.length}`, {
72
+ dataStores: items,
73
+ rawResponse: response,
74
+ });
75
+ }
76
+ catch (error) {
77
+ return errorResult(error);
78
+ }
79
+ },
80
+ };
81
+ const getDataStoreTool = {
82
+ name: 'get_data_store_tunnelhub',
83
+ schema: {
84
+ title: 'Get TunnelHub Conversion Table',
85
+ description: 'Get read-only details for one conversion table by id.',
86
+ inputSchema: DataStoreIdParamsSchema,
87
+ annotations: {
88
+ readOnlyHint: true,
89
+ destructiveHint: false,
90
+ idempotentHint: true,
91
+ openWorldHint: false,
92
+ },
93
+ },
94
+ handler: async (params, context) => {
95
+ try {
96
+ const session = await requireSession(context);
97
+ context.apiClient.setSession(session);
98
+ const apiClient = context.apiClient;
99
+ const dataStore = await apiClient.getDataStore(params.dataStoreId);
100
+ return textResult(`Conversion table details:\n\n${summarizeDataStore(dataStore)}`, dataStore);
101
+ }
102
+ catch (error) {
103
+ return errorResult(error);
104
+ }
105
+ },
106
+ };
107
+ const listDataStoreItemsTool = {
108
+ name: 'list_data_store_items_tunnelhub',
109
+ schema: {
110
+ title: 'List Conversion Table Items',
111
+ description: 'List de/para rows for one conversion table.',
112
+ inputSchema: DataStoreItemListParamsSchema,
113
+ annotations: {
114
+ readOnlyHint: true,
115
+ destructiveHint: false,
116
+ idempotentHint: true,
117
+ openWorldHint: false,
118
+ },
119
+ },
120
+ handler: async (params, context) => {
121
+ try {
122
+ const session = await requireSession(context);
123
+ context.apiClient.setSession(session);
124
+ const apiClient = context.apiClient;
125
+ const response = await apiClient.listDataStoreItems(params.dataStoreId, params);
126
+ const items = extractListItems(response);
127
+ const summary = summarizeDataStoreItems(items);
128
+ return textResult(`Conversion table items for ${params.dataStoreId}:\n\n${summary}\n\nReturned: ${items.length}`, {
129
+ items,
130
+ rawResponse: response,
131
+ });
132
+ }
133
+ catch (error) {
134
+ return errorResult(error);
135
+ }
136
+ },
137
+ };
138
+ const getDataStoreItemTool = {
139
+ name: 'get_data_store_item_tunnelhub',
140
+ schema: {
141
+ title: 'Get Conversion Table Item',
142
+ description: 'Get read-only details for one de/para row by id.',
143
+ inputSchema: DataStoreItemIdParamsSchema,
144
+ annotations: {
145
+ readOnlyHint: true,
146
+ destructiveHint: false,
147
+ idempotentHint: true,
148
+ openWorldHint: false,
149
+ },
150
+ },
151
+ handler: async (params, context) => {
152
+ try {
153
+ const session = await requireSession(context);
154
+ context.apiClient.setSession(session);
155
+ const apiClient = context.apiClient;
156
+ const item = await apiClient.getDataStoreItem(params.dataStoreId, params.itemId);
157
+ return textResult(`Conversion table item details:\n\n${summarizeDataStoreItem(item)}`, item);
158
+ }
159
+ catch (error) {
160
+ return errorResult(error);
161
+ }
162
+ },
163
+ };
164
+ export function registerDataStoreTools(server, context) {
165
+ const toolContext = context;
166
+ server.registerTool(listDataStoresTool.name, listDataStoresTool.schema, (params) => listDataStoresTool.handler(params, toolContext));
167
+ server.registerTool(getDataStoreTool.name, getDataStoreTool.schema, (params) => getDataStoreTool.handler(params, toolContext));
168
+ server.registerTool(listDataStoreItemsTool.name, listDataStoreItemsTool.schema, (params) => listDataStoreItemsTool.handler(params, toolContext));
169
+ server.registerTool(getDataStoreItemTool.name, getDataStoreItemTool.schema, (params) => getDataStoreItemTool.handler(params, toolContext));
170
+ }
171
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/data-stores/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- export declare function registerPackageTools(_server: McpServer, _context: unknown): void;
2
+ export declare function registerPackageTools(server: McpServer, context: unknown): void;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/packages/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAKhF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/packages/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuGzE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAI9E"}
@@ -1,7 +1,93 @@
1
- export function registerPackageTools(_server, _context) {
2
- // TODO: Implement package tools
3
- // - list_packages
4
- // - deploy_package
5
- // - get_package_info
1
+ import { PackageIdParamsSchema, PackageListParamsSchema } from '../../types/mcp.js';
2
+ import { errorResult, requireSession, textResult } from '../../utils/error-handler.js';
3
+ function extractPackages(response) {
4
+ if (Array.isArray(response)) {
5
+ return response;
6
+ }
7
+ if (response && typeof response === 'object' && Array.isArray(response.data)) {
8
+ return (response.data || []);
9
+ }
10
+ return [];
11
+ }
12
+ function summarizePackage(item) {
13
+ return [
14
+ `Package ID: ${item.uuid}`,
15
+ `Name: ${item.name || 'n/a'}`,
16
+ `Description: ${item.description || 'n/a'}`,
17
+ `Parameters: ${item.parameters?.length ?? 0}`,
18
+ `Created At: ${item.createdAt || 'n/a'}`,
19
+ `Updated At: ${item.updatedAt || 'n/a'}`,
20
+ ].join('\n');
21
+ }
22
+ function summarizePackageList(items) {
23
+ if (items.length === 0) {
24
+ return 'No packages found.';
25
+ }
26
+ return items
27
+ .slice(0, 15)
28
+ .map((item) => `${item.name || item.uuid} | ${item.description || 'n/a'} | ${item.uuid}`)
29
+ .join('\n');
30
+ }
31
+ const listPackagesTool = {
32
+ name: 'list_packages_tunnelhub',
33
+ schema: {
34
+ title: 'List TunnelHub Packages',
35
+ description: 'List integration packages from integrations-service using the current environment.',
36
+ inputSchema: PackageListParamsSchema,
37
+ annotations: {
38
+ readOnlyHint: true,
39
+ destructiveHint: false,
40
+ idempotentHint: true,
41
+ openWorldHint: false,
42
+ },
43
+ },
44
+ handler: async (params, context) => {
45
+ try {
46
+ const session = await requireSession(context);
47
+ context.apiClient.setSession(session);
48
+ const apiClient = context.apiClient;
49
+ const response = await apiClient.listPackages(params);
50
+ const items = extractPackages(response);
51
+ const summary = summarizePackageList(items);
52
+ return textResult(`Packages:\n\n${summary}\n\nReturned: ${items.length}`, {
53
+ packages: items,
54
+ rawResponse: response,
55
+ });
56
+ }
57
+ catch (error) {
58
+ return errorResult(error);
59
+ }
60
+ },
61
+ };
62
+ const getPackageTool = {
63
+ name: 'get_package_tunnelhub',
64
+ schema: {
65
+ title: 'Get TunnelHub Package',
66
+ description: 'Get read-only details for one package by id.',
67
+ inputSchema: PackageIdParamsSchema,
68
+ annotations: {
69
+ readOnlyHint: true,
70
+ destructiveHint: false,
71
+ idempotentHint: true,
72
+ openWorldHint: false,
73
+ },
74
+ },
75
+ handler: async (params, context) => {
76
+ try {
77
+ const session = await requireSession(context);
78
+ context.apiClient.setSession(session);
79
+ const apiClient = context.apiClient;
80
+ const item = await apiClient.getPackage(params.packageId);
81
+ return textResult(`Package details:\n\n${summarizePackage(item)}`, item);
82
+ }
83
+ catch (error) {
84
+ return errorResult(error);
85
+ }
86
+ },
87
+ };
88
+ export function registerPackageTools(server, context) {
89
+ const toolContext = context;
90
+ server.registerTool(listPackagesTool.name, listPackagesTool.schema, (params) => listPackagesTool.handler(params, toolContext));
91
+ server.registerTool(getPackageTool.name, getPackageTool.schema, (params) => getPackageTool.handler(params, toolContext));
6
92
  }
7
93
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/packages/index.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,OAAkB,EAAE,QAAiB;IACxE,gCAAgC;IAChC,kBAAkB;IAClB,mBAAmB;IACnB,qBAAqB;AACvB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/packages/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function registerSystemTools(server: McpServer, context: unknown): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/systems/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0GzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAI7E"}
@@ -0,0 +1,96 @@
1
+ import { SystemIdParamsSchema, SystemListParamsSchema } from '../../types/mcp.js';
2
+ import { errorResult, requireSession, textResult } from '../../utils/error-handler.js';
3
+ function extractSystems(response) {
4
+ if (Array.isArray(response)) {
5
+ return response;
6
+ }
7
+ if (response && typeof response === 'object' && Array.isArray(response.data)) {
8
+ return (response.data || []);
9
+ }
10
+ return [];
11
+ }
12
+ function summarizeSystem(item) {
13
+ return [
14
+ `System ID: ${item.uuid}`,
15
+ `Name: ${item.name || 'n/a'}`,
16
+ `Internal Name: ${item.internalName || 'n/a'}`,
17
+ `Type: ${item.type || 'n/a'}`,
18
+ `Status: ${item.status || 'n/a'}`,
19
+ `Environment: ${item.environment || 'n/a'}`,
20
+ `Description: ${item.description || 'n/a'}`,
21
+ `Created At: ${item.createdAt || 'n/a'}`,
22
+ `Updated At: ${item.updatedAt || 'n/a'}`,
23
+ ].join('\n');
24
+ }
25
+ function summarizeSystemList(items) {
26
+ if (items.length === 0) {
27
+ return 'No systems found.';
28
+ }
29
+ return items
30
+ .slice(0, 15)
31
+ .map((item) => `${item.name || item.uuid} | ${item.type || 'n/a'} | ${item.status || 'n/a'} | ${item.uuid}`)
32
+ .join('\n');
33
+ }
34
+ const listSystemsTool = {
35
+ name: 'list_systems_tunnelhub',
36
+ schema: {
37
+ title: 'List TunnelHub Systems',
38
+ description: 'List systems from integrations-service using the current environment.',
39
+ inputSchema: SystemListParamsSchema,
40
+ annotations: {
41
+ readOnlyHint: true,
42
+ destructiveHint: false,
43
+ idempotentHint: true,
44
+ openWorldHint: false,
45
+ },
46
+ },
47
+ handler: async (params, context) => {
48
+ try {
49
+ const session = await requireSession(context);
50
+ context.apiClient.setSession(session);
51
+ const apiClient = context.apiClient;
52
+ const response = await apiClient.listSystems(params);
53
+ const items = extractSystems(response);
54
+ const summary = summarizeSystemList(items);
55
+ return textResult(`Systems:\n\n${summary}\n\nReturned: ${items.length}`, {
56
+ systems: items,
57
+ rawResponse: response,
58
+ });
59
+ }
60
+ catch (error) {
61
+ return errorResult(error);
62
+ }
63
+ },
64
+ };
65
+ const getSystemTool = {
66
+ name: 'get_system_tunnelhub',
67
+ schema: {
68
+ title: 'Get TunnelHub System',
69
+ description: 'Get read-only details for one system by id.',
70
+ inputSchema: SystemIdParamsSchema,
71
+ annotations: {
72
+ readOnlyHint: true,
73
+ destructiveHint: false,
74
+ idempotentHint: true,
75
+ openWorldHint: false,
76
+ },
77
+ },
78
+ handler: async (params, context) => {
79
+ try {
80
+ const session = await requireSession(context);
81
+ context.apiClient.setSession(session);
82
+ const apiClient = context.apiClient;
83
+ const item = await apiClient.getSystem(params.systemId);
84
+ return textResult(`System details:\n\n${summarizeSystem(item)}`, item);
85
+ }
86
+ catch (error) {
87
+ return errorResult(error);
88
+ }
89
+ },
90
+ };
91
+ export function registerSystemTools(server, context) {
92
+ const toolContext = context;
93
+ server.registerTool(listSystemsTool.name, listSystemsTool.schema, (params) => listSystemsTool.handler(params, toolContext));
94
+ server.registerTool(getSystemTool.name, getSystemTool.schema, (params) => getSystemTool.handler(params, toolContext));
95
+ }
96
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/systems/index.ts"],"names":[],"mappings":"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"}