@tunnelhub/mcp 1.0.2 → 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 +37 -19
- package/dist/auth/cognito-client.d.ts +0 -4
- package/dist/auth/cognito-client.d.ts.map +1 -1
- package/dist/auth/cognito-client.js +0 -30
- package/dist/auth/cognito-client.js.map +1 -1
- package/dist/auth/session-manager.d.ts +4 -2
- package/dist/auth/session-manager.d.ts.map +1 -1
- package/dist/auth/session-manager.js +37 -3
- package/dist/auth/session-manager.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +8 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/data-stores/index.d.ts +3 -0
- package/dist/tools/data-stores/index.d.ts.map +1 -0
- package/dist/tools/data-stores/index.js +171 -0
- package/dist/tools/data-stores/index.js.map +1 -0
- package/dist/tools/packages/index.d.ts +1 -1
- package/dist/tools/packages/index.d.ts.map +1 -1
- package/dist/tools/packages/index.js +91 -5
- package/dist/tools/packages/index.js.map +1 -1
- package/dist/tools/session/login.d.ts +13 -2
- package/dist/tools/session/login.d.ts.map +1 -1
- package/dist/tools/session/login.js +3 -3
- package/dist/tools/session/login.js.map +1 -1
- package/dist/tools/systems/index.d.ts +3 -0
- package/dist/tools/systems/index.d.ts.map +1 -0
- package/dist/tools/systems/index.js +96 -0
- package/dist/tools/systems/index.js.map +1 -0
- package/dist/types/api.d.ts +59 -0
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/mcp.d.ts +128 -3
- package/dist/types/mcp.d.ts.map +1 -1
- package/dist/types/mcp.js +39 -2
- package/dist/types/mcp.js.map +1 -1
- package/dist/utils/api-client.d.ts +15 -2
- package/dist/utils/api-client.d.ts.map +1 -1
- package/dist/utils/api-client.js +110 -0
- package/dist/utils/api-client.js.map +1 -1
- package/package.json +2 -5
- package/dist/types/dynamodb.d.ts +0 -54
- package/dist/types/dynamodb.d.ts.map +0 -1
- package/dist/types/dynamodb.js +0 -55
- package/dist/types/dynamodb.js.map +0 -1
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
|
|
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
|
|
@@ -54,6 +57,7 @@ node dist/index.js
|
|
|
54
57
|
Se esta for sua primeira vez usando o MCP do TunnelHub, siga este fluxo:
|
|
55
58
|
|
|
56
59
|
1. Faça login no TunnelHub
|
|
60
|
+
- se for o primeiro login, informe o `accountName` da empresa
|
|
57
61
|
2. Qual sessão está ativa?
|
|
58
62
|
3. Liste os ambientes disponíveis
|
|
59
63
|
4. Liste as automações ativas
|
|
@@ -62,27 +66,13 @@ Você não precisa decorar o nome das tools. Pode pedir em linguagem natural, e
|
|
|
62
66
|
|
|
63
67
|
## 🔌 Configuração oficial por cliente
|
|
64
68
|
|
|
65
|
-
### OpenCode
|
|
69
|
+
### OpenCode
|
|
66
70
|
|
|
67
|
-
|
|
71
|
+
A forma mais estável de configurar no OpenCode é via `opencode.json`.
|
|
68
72
|
|
|
69
|
-
|
|
70
|
-
opencode mcp add tunnelhub -- npx -y @tunnelhub/mcp@latest
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
Para desenvolvimento local:
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
opencode mcp add tunnelhub -- node /caminho/para/mcp/dist/index.js
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
Depois confirme:
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
opencode mcp list
|
|
83
|
-
```
|
|
73
|
+
Se preferir, você também pode usar `opencode mcp add`, que abre um fluxo interativo para adicionar o servidor MCP.
|
|
84
74
|
|
|
85
|
-
|
|
75
|
+
Exemplo usando `opencode.json`:
|
|
86
76
|
|
|
87
77
|
Exemplo completo:
|
|
88
78
|
|
|
@@ -233,9 +223,18 @@ Ferramentas básicas de sessão:
|
|
|
233
223
|
Você pode pedir coisas como:
|
|
234
224
|
|
|
235
225
|
- `Faça login no TunnelHub`
|
|
226
|
+
- `Faça login no TunnelHub para a empresa 4success`
|
|
236
227
|
- `Qual sessão está ativa?`
|
|
237
228
|
- `Liste os ambientes disponíveis`
|
|
238
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`
|
|
239
238
|
- `Ache a execução 9b696080439f no dia 2026-03-13`
|
|
240
239
|
- `Resuma a execução 019ce7f3-2707-740c-8692-9b696080439f`
|
|
241
240
|
- `Me mostre os traces com ERROR dessa execução`
|
|
@@ -260,6 +259,23 @@ Você pode pedir coisas como:
|
|
|
260
259
|
- `list_tenants_tunnelhub`
|
|
261
260
|
- `get_tenant_tunnelhub`
|
|
262
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
|
+
|
|
263
279
|
### Automações
|
|
264
280
|
|
|
265
281
|
- `list_automations_tunnelhub`
|
|
@@ -301,6 +317,8 @@ Observações:
|
|
|
301
317
|
## ⚠️ Limitações atuais
|
|
302
318
|
|
|
303
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
|
|
304
322
|
- Algumas APIs do backend têm comportamentos específicos de filtro e paginação
|
|
305
323
|
- A listagem de execuções depende de intervalo de tempo obrigatório
|
|
306
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;
|
|
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;
|
|
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,12 +1,14 @@
|
|
|
1
|
-
import type { AuthContext, Session } from '../types/mcp.js';
|
|
1
|
+
import type { AuthContext, LoginParams, Session } from '../types/mcp.js';
|
|
2
2
|
export declare class SessionManager {
|
|
3
3
|
private readonly tokenManager;
|
|
4
4
|
private readonly cognitoClient;
|
|
5
5
|
private readonly apiClient;
|
|
6
6
|
constructor();
|
|
7
|
-
createSession(): Promise<Session>;
|
|
7
|
+
createSession(params?: LoginParams): Promise<Session>;
|
|
8
8
|
switchEnvironment(environmentId: string): Promise<Session>;
|
|
9
9
|
private resolveFrontendUrl;
|
|
10
|
+
private resolveTenantForLogin;
|
|
11
|
+
private pickTenantForLogin;
|
|
10
12
|
getCurrentContext(): Promise<AuthContext | null>;
|
|
11
13
|
getAllSessions(): Session[];
|
|
12
14
|
getCurrentSession(): Session | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/auth/session-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/auth/session-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAKzE,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAE5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;;IAQhC,aAAa,CAAC,MAAM,GAAE,WAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAiEzD,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBhE,OAAO,CAAC,kBAAkB;YAQZ,qBAAqB;IAoBnC,OAAO,CAAC,kBAAkB;IA8BpB,iBAAiB,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA2BtD,cAAc,IAAI,OAAO,EAAE;IAI3B,iBAAiB,IAAI,OAAO,GAAG,IAAI;IAInC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;YAYlB,cAAc;YAed,kBAAkB;CAQjC"}
|
|
@@ -12,11 +12,12 @@ export class SessionManager {
|
|
|
12
12
|
this.cognitoClient = new CognitoClient();
|
|
13
13
|
this.apiClient = new ApiClient();
|
|
14
14
|
}
|
|
15
|
-
async createSession() {
|
|
15
|
+
async createSession(params = {}) {
|
|
16
16
|
const apiHost = this.apiClient.getDefaultApiHost();
|
|
17
17
|
const preferredSession = this.getCurrentSession() || this.getAllSessions()[0] || null;
|
|
18
|
-
const
|
|
19
|
-
const
|
|
18
|
+
const resolvedTenant = await this.resolveTenantForLogin(params, preferredSession?.tenantId || undefined);
|
|
19
|
+
const frontendUrl = resolvedTenant ? this.resolveFrontendUrl(resolvedTenant) : preferredSession?.frontendUrl || this.apiClient.getDefaultFrontendUrl();
|
|
20
|
+
const preferredTenantId = resolvedTenant?.id || preferredSession?.tenantId;
|
|
20
21
|
const browserAuth = new BrowserAuthFlow();
|
|
21
22
|
const tokens = await browserAuth.authenticate(frontendUrl, preferredTenantId);
|
|
22
23
|
const currentUser = await this.apiClient.getCurrentUser(tokens.idToken);
|
|
@@ -90,6 +91,39 @@ export class SessionManager {
|
|
|
90
91
|
}
|
|
91
92
|
return this.apiClient.getDefaultFrontendUrl();
|
|
92
93
|
}
|
|
94
|
+
async resolveTenantForLogin(params, fallbackTenantId) {
|
|
95
|
+
if (params.tenantId || params.accountName) {
|
|
96
|
+
const tenants = await this.apiClient.searchTenantsPublic(params);
|
|
97
|
+
return this.pickTenantForLogin(tenants, params);
|
|
98
|
+
}
|
|
99
|
+
if (fallbackTenantId) {
|
|
100
|
+
try {
|
|
101
|
+
return await this.apiClient.getTenantPublic(fallbackTenantId);
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
throw new MCPError('No company provided for first login. Inform accountName first. If not found, retry with tenantId.', 'COMPANY_REQUIRED');
|
|
108
|
+
}
|
|
109
|
+
pickTenantForLogin(tenants, params) {
|
|
110
|
+
if (tenants.length === 1) {
|
|
111
|
+
return tenants[0];
|
|
112
|
+
}
|
|
113
|
+
if (tenants.length === 0) {
|
|
114
|
+
if (params.accountName && !params.tenantId) {
|
|
115
|
+
throw new MCPError(`No company found for accountName "${params.accountName}". Retry with tenantId.`, 'COMPANY_NOT_FOUND');
|
|
116
|
+
}
|
|
117
|
+
throw new MCPError('No company found for the provided tenantId.', 'COMPANY_NOT_FOUND');
|
|
118
|
+
}
|
|
119
|
+
const options = tenants.slice(0, 10).map((tenant, index) => ({
|
|
120
|
+
option: index + 1,
|
|
121
|
+
tenantId: tenant.id,
|
|
122
|
+
accountName: tenant.accountName,
|
|
123
|
+
domain: tenant.domain,
|
|
124
|
+
}));
|
|
125
|
+
throw new MCPError(`Multiple companies found for accountName "${params.accountName}". Choose one and retry with tenantId.`, 'COMPANY_AMBIGUOUS', { options });
|
|
126
|
+
}
|
|
93
127
|
async getCurrentContext() {
|
|
94
128
|
const session = this.tokenManager.getCurrentSession();
|
|
95
129
|
if (!session) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/auth/session-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/auth/session-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
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:
|
|
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
|
}
|
package/dist/server.js.map
CHANGED
|
@@ -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;
|
|
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 @@
|
|
|
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(
|
|
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;
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/packages/index.ts"],"names":[],"mappings":"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"}
|