@mithung/vunet-mcp-server 2.0.8 → 2.1.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/README.md +141 -507
- package/index.js +3 -4
- package/package.json +2 -10
- package/BUILD_GUIDE.md +0 -293
- package/CHANGELOG.md +0 -176
- package/DATA_MODELS.md +0 -467
- package/QUICKSTART.md +0 -213
- package/SETUP.md +0 -325
- package/USE_CASE_RCA.md +0 -373
- package/config.example.json +0 -90
- package/mcp-config.example.json +0 -42
package/README.md
CHANGED
|
@@ -1,93 +1,67 @@
|
|
|
1
1
|
# @mithung/vunet-mcp-server
|
|
2
2
|
|
|
3
|
-
[](https://
|
|
3
|
+
[](https://www.npmjs.com/package/@mithung/vunet-mcp-server)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
[](https://nodejs.org)
|
|
6
6
|
|
|
7
|
-
**Model Context Protocol (MCP) Server for Vunet vuSmartMaps** - A multi-tenant observability platform integration
|
|
7
|
+
**Model Context Protocol (MCP) Server for Vunet vuSmartMaps** - A multi-tenant observability platform integration.
|
|
8
8
|
|
|
9
|
-
Query metrics, traces, logs, and data models from your Vunet tenants using natural language through AI assistants like Claude,
|
|
9
|
+
Query metrics, traces, logs, and data models from your Vunet tenants using natural language through AI assistants like Claude, GitHub Copilot, or any MCP-compatible client.
|
|
10
10
|
|
|
11
|
-
> **Latest Version:** 2.0
|
|
11
|
+
> **Latest Version:** 2.1.0 - Authentication improvements with proxy support.
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
## 🚀 Features
|
|
16
16
|
|
|
17
17
|
- ✅ **Multi-Tenant Support** - Connect to multiple Vunet tenants simultaneously
|
|
18
|
-
- 🔐 **Secure Authentication** - Session-based
|
|
19
|
-
- 📊 **Comprehensive Data Access** - Query
|
|
18
|
+
- 🔐 **Secure Authentication** - Session-based auth with automatic token refresh
|
|
19
|
+
- 📊 **Comprehensive Data Access** - Query 600+ data models including:
|
|
20
|
+
- Journey Metrics (IBMB, UPI, CBS, FRM)
|
|
21
|
+
- Application traces and exceptions
|
|
22
|
+
- Infrastructure metrics (CPU, Memory, Disk)
|
|
20
23
|
- Kubernetes metrics
|
|
21
|
-
-
|
|
22
|
-
- Transaction volumes
|
|
23
|
-
- Infrastructure metrics
|
|
24
|
-
- Custom data models
|
|
24
|
+
- Alert data and RCA metrics
|
|
25
25
|
- ⚡ **Flexible Querying** - Support for:
|
|
26
|
-
- Relative time ranges (`15m`, `1h`, `1d`, `1w`, `1M
|
|
26
|
+
- Relative time ranges (`5m`, `15m`, `1h`, `2h`, `1d`, `1w`, `1M`)
|
|
27
27
|
- Absolute time ranges (epoch timestamps)
|
|
28
28
|
- Dynamic filters and field selection
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- 🔄 **Automatic Session Management** - Handles login, token refresh, and logout
|
|
32
|
-
- 🌐 **SSL/TLS Support** - Configurable SSL certificate verification
|
|
33
|
-
- 📦 **Easy Installation** - npm package ready for global or local use
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## 📋 Table of Contents
|
|
38
|
-
|
|
39
|
-
- [Installation](#installation)
|
|
40
|
-
- [Quick Start](#quick-start)
|
|
41
|
-
- [Configuration](#configuration)
|
|
42
|
-
- [VS Code Configuration](#vs-code-configuration)
|
|
43
|
-
- [Multiple Tenants](#multiple-tenants)
|
|
44
|
-
- [Usage](#usage)
|
|
45
|
-
- [Available Tools](#available-tools)
|
|
46
|
-
- [Query Examples](#query-examples)
|
|
47
|
-
- [Data Models](#data-models)
|
|
48
|
-
- [Environment Variables](#environment-variables)
|
|
49
|
-
- [Troubleshooting](#troubleshooting)
|
|
50
|
-
- [Examples](#examples)
|
|
51
|
-
- [Contributing](#contributing)
|
|
52
|
-
- [License](#license)
|
|
29
|
+
- 🔄 **Auto Session Management** - Handles login, token refresh, and logout
|
|
30
|
+
- 🌐 **Proxy Support** - Works with Traefik and other reverse proxies
|
|
53
31
|
|
|
54
32
|
---
|
|
55
33
|
|
|
56
34
|
## 📦 Installation
|
|
57
35
|
|
|
58
|
-
###
|
|
36
|
+
### Using npx (Recommended - No Installation Required)
|
|
59
37
|
|
|
60
38
|
```bash
|
|
61
|
-
|
|
39
|
+
npx @mithung/vunet-mcp-server
|
|
62
40
|
```
|
|
63
41
|
|
|
64
|
-
###
|
|
42
|
+
### Global Installation
|
|
65
43
|
|
|
66
44
|
```bash
|
|
67
|
-
npm install @mithung/vunet-mcp-server
|
|
45
|
+
npm install -g @mithung/vunet-mcp-server
|
|
68
46
|
```
|
|
69
47
|
|
|
70
|
-
###
|
|
48
|
+
### Local Installation
|
|
71
49
|
|
|
72
50
|
```bash
|
|
73
|
-
|
|
74
|
-
cd vunet-mcp-server
|
|
75
|
-
npm install
|
|
76
|
-
npm link
|
|
51
|
+
npm install @mithung/vunet-mcp-server
|
|
77
52
|
```
|
|
78
53
|
|
|
79
54
|
---
|
|
80
55
|
|
|
81
|
-
##
|
|
56
|
+
## 🛠️ Configuration
|
|
82
57
|
|
|
83
|
-
###
|
|
58
|
+
### VS Code / GitHub Copilot Setup
|
|
84
59
|
|
|
85
|
-
|
|
60
|
+
Create `.vscode/mcp.json` in your workspace:
|
|
86
61
|
|
|
87
|
-
**Option A: Username/Password Authentication**
|
|
88
62
|
```json
|
|
89
63
|
{
|
|
90
|
-
"
|
|
64
|
+
"servers": {
|
|
91
65
|
"vunet": {
|
|
92
66
|
"command": "npx",
|
|
93
67
|
"args": ["@mithung/vunet-mcp-server"],
|
|
@@ -103,119 +77,51 @@ Add to your `settings.json` or `.vscode/mcp.json`:
|
|
|
103
77
|
}
|
|
104
78
|
```
|
|
105
79
|
|
|
106
|
-
|
|
107
|
-
```json
|
|
108
|
-
{
|
|
109
|
-
"mcpServers": {
|
|
110
|
-
"vunet": {
|
|
111
|
-
"command": "npx",
|
|
112
|
-
"args": ["@mithung/vunet-mcp-server"],
|
|
113
|
-
"env": {
|
|
114
|
-
"VUNET_TENANT_URL": "https://your-tenant.vunetsystems.com",
|
|
115
|
-
"VUNET_BEARER_TOKEN": "your-bearer-token-here",
|
|
116
|
-
"VUNET_BU_ID": "1",
|
|
117
|
-
"VUNET_VERIFY_SSL": "true"
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
### 2. Reload VS Code
|
|
80
|
+
### Multiple Tenants
|
|
125
81
|
|
|
126
|
-
Press `Ctrl+Shift+P` (Windows/Linux) or `Cmd+Shift+P` (Mac), then run:
|
|
127
|
-
```
|
|
128
|
-
Developer: Reload Window
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### 3. Start Using!
|
|
132
|
-
|
|
133
|
-
Open GitHub Copilot Chat or any MCP client and ask:
|
|
134
|
-
- "Show me Kubernetes metrics for the last 15 minutes"
|
|
135
|
-
- "What traces are taking more than 5 seconds?"
|
|
136
|
-
- "Get transaction volume for the last 24 hours"
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
## ⚙️ Configuration
|
|
141
|
-
|
|
142
|
-
### VS Code Configuration
|
|
143
|
-
|
|
144
|
-
#### Single Tenant
|
|
145
|
-
|
|
146
|
-
Create or edit `.vscode/mcp.json` in your workspace:
|
|
147
|
-
|
|
148
|
-
**Using Username/Password:**
|
|
149
82
|
```json
|
|
150
83
|
{
|
|
151
|
-
"
|
|
152
|
-
"vunet": {
|
|
84
|
+
"servers": {
|
|
85
|
+
"vunet-prod": {
|
|
153
86
|
"command": "npx",
|
|
154
87
|
"args": ["@mithung/vunet-mcp-server"],
|
|
155
88
|
"env": {
|
|
156
|
-
"VUNET_TENANT_URL": "https://
|
|
157
|
-
"VUNET_USERNAME": "
|
|
158
|
-
"VUNET_PASSWORD": "
|
|
89
|
+
"VUNET_TENANT_URL": "https://prod.vunetsystems.com",
|
|
90
|
+
"VUNET_USERNAME": "prod-user",
|
|
91
|
+
"VUNET_PASSWORD": "prod-password",
|
|
159
92
|
"VUNET_BU_ID": "1",
|
|
160
93
|
"VUNET_VERIFY_SSL": "true"
|
|
161
94
|
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
}
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
**Using Bearer Token:**
|
|
168
|
-
```json
|
|
169
|
-
{
|
|
170
|
-
"mcpServers": {
|
|
171
|
-
"vunet": {
|
|
95
|
+
},
|
|
96
|
+
"vunet-uat": {
|
|
172
97
|
"command": "npx",
|
|
173
98
|
"args": ["@mithung/vunet-mcp-server"],
|
|
174
99
|
"env": {
|
|
175
|
-
"VUNET_TENANT_URL": "https://
|
|
176
|
-
"
|
|
100
|
+
"VUNET_TENANT_URL": "https://uat.vunetsystems.com",
|
|
101
|
+
"VUNET_USERNAME": "uat-user",
|
|
102
|
+
"VUNET_PASSWORD": "uat-password",
|
|
177
103
|
"VUNET_BU_ID": "1",
|
|
178
|
-
"VUNET_VERIFY_SSL": "
|
|
104
|
+
"VUNET_VERIFY_SSL": "false"
|
|
179
105
|
}
|
|
180
106
|
}
|
|
181
107
|
}
|
|
182
108
|
}
|
|
183
109
|
```
|
|
184
110
|
|
|
185
|
-
|
|
111
|
+
### Running from Source
|
|
112
|
+
|
|
113
|
+
If you've cloned the repository:
|
|
186
114
|
|
|
187
115
|
```json
|
|
188
116
|
{
|
|
189
|
-
"
|
|
190
|
-
"vunet
|
|
191
|
-
"command": "npx",
|
|
192
|
-
"args": ["@mithung/vunet-mcp-server"],
|
|
193
|
-
"env": {
|
|
194
|
-
"VUNET_TENANT_URL": "https://prod.company.com",
|
|
195
|
-
"VUNET_USERNAME": "prod-user",
|
|
196
|
-
"VUNET_PASSWORD": "prod-password",
|
|
197
|
-
"VUNET_BU_ID": "1",
|
|
198
|
-
"VUNET_VERIFY_SSL": "true"
|
|
199
|
-
}
|
|
200
|
-
},
|
|
201
|
-
"vunet-staging": {
|
|
202
|
-
"command": "npx",
|
|
203
|
-
"args": ["@mithung/vunet-mcp-server"],
|
|
204
|
-
"env": {
|
|
205
|
-
"VUNET_TENANT_URL": "https://staging.company.com",
|
|
206
|
-
"VUNET_USERNAME": "staging-user",
|
|
207
|
-
"VUNET_PASSWORD": "staging-password",
|
|
208
|
-
"VUNET_BU_ID": "1",
|
|
209
|
-
"VUNET_VERIFY_SSL": "true"
|
|
210
|
-
}
|
|
211
|
-
},
|
|
212
|
-
"vunet-dev": {
|
|
117
|
+
"servers": {
|
|
118
|
+
"vunet": {
|
|
213
119
|
"command": "node",
|
|
214
|
-
"args": ["
|
|
120
|
+
"args": ["c:\\path\\to\\vunet-mcp-server\\index.js"],
|
|
215
121
|
"env": {
|
|
216
|
-
"VUNET_TENANT_URL": "https://
|
|
217
|
-
"VUNET_USERNAME": "
|
|
218
|
-
"VUNET_PASSWORD": "
|
|
122
|
+
"VUNET_TENANT_URL": "https://your-tenant.vunetsystems.com",
|
|
123
|
+
"VUNET_USERNAME": "your-username",
|
|
124
|
+
"VUNET_PASSWORD": "your-password",
|
|
219
125
|
"VUNET_BU_ID": "1",
|
|
220
126
|
"VUNET_VERIFY_SSL": "false"
|
|
221
127
|
}
|
|
@@ -224,458 +130,186 @@ Create or edit `.vscode/mcp.json` in your workspace:
|
|
|
224
130
|
}
|
|
225
131
|
```
|
|
226
132
|
|
|
227
|
-
### Windows Path Format
|
|
228
|
-
|
|
229
|
-
For local installations on Windows, use double backslashes or forward slashes:
|
|
230
|
-
|
|
231
|
-
```json
|
|
232
|
-
{
|
|
233
|
-
"command": "C:\\Program Files\\nodejs\\node.exe",
|
|
234
|
-
"args": ["C:\\Projects\\vunet-mcp-server\\index.js"]
|
|
235
|
-
}
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
Or:
|
|
239
|
-
|
|
240
|
-
```json
|
|
241
|
-
{
|
|
242
|
-
"command": "C:/Program Files/nodejs/node.exe",
|
|
243
|
-
"args": ["C:/Projects/vunet-mcp-server/index.js"]
|
|
244
|
-
}
|
|
245
|
-
```
|
|
246
|
-
|
|
247
133
|
---
|
|
248
134
|
|
|
249
|
-
##
|
|
250
|
-
|
|
251
|
-
### Available Tools
|
|
252
|
-
|
|
253
|
-
#### 1. `vunet_query_metric`
|
|
254
|
-
|
|
255
|
-
Query any Vunet data model with flexible time ranges and filters.
|
|
256
|
-
|
|
257
|
-
**Parameters:**
|
|
135
|
+
## 📊 Available MCP Tools
|
|
258
136
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
| `metric_name` | string | ✅ | Data model name | `"Trace Map Data"` |
|
|
262
|
-
| `relative_time` | string | ❌ | Relative time range | `"1h"`, `"24h"`, `"7d"` |
|
|
263
|
-
| `start_time` | string | ❌ | Start timestamp | `"1770886639"`, `"now-1h"` |
|
|
264
|
-
| `end_time` | string | ❌ | End timestamp | `"1770973039"`, `"now"` |
|
|
265
|
-
| `filters` | object | ❌ | Dynamic filters | `{"service": "ibmb"}` |
|
|
266
|
-
| `include` | string | ❌ | Include specific fields | `"timestamp,duration"` |
|
|
267
|
-
| `exclude` | string | ❌ | Exclude specific fields | `"raw_data"` |
|
|
268
|
-
| `thresholds` | boolean | ❌ | Include thresholds | `true` |
|
|
269
|
-
| `formatting` | string | ❌ | Response format | `"lama"` |
|
|
270
|
-
| `add_on_time_intervals` | array | ❌ | Additional time comparisons | `["1h_ago", "1d_ago"]` |
|
|
271
|
-
| `time_shift` | string | ❌ | Time shift for comparison | `"1d"` |
|
|
137
|
+
### 1. `vunet_get_status`
|
|
138
|
+
Check authentication status and session validity.
|
|
272
139
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
140
|
+
```
|
|
141
|
+
Example: "Check if Vunet connection is working"
|
|
142
|
+
```
|
|
276
143
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
- Tenant URL
|
|
280
|
-
- Authentication status
|
|
281
|
-
- Session expiry
|
|
144
|
+
### 2. `vunet_list_data_models`
|
|
145
|
+
List all available data models/metrics in the tenant.
|
|
282
146
|
|
|
283
|
-
|
|
147
|
+
```
|
|
148
|
+
Example: "List all available Vunet data models"
|
|
149
|
+
```
|
|
284
150
|
|
|
285
|
-
|
|
151
|
+
### 3. `vunet_query_metric`
|
|
152
|
+
Query a specific metric with time range and filters.
|
|
286
153
|
|
|
287
154
|
**Parameters:**
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
| `
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
- `apm` - Application Performance Monitoring
|
|
296
|
-
- `infrastructure` - Kubernetes, servers, system resources
|
|
297
|
-
- `database` - Database performance metrics
|
|
298
|
-
- `network` - Network monitoring
|
|
299
|
-
- `business` - Business KPIs
|
|
300
|
-
- `logs` - Log analytics
|
|
301
|
-
- `security` - Security events
|
|
302
|
-
|
|
303
|
-
**Returns:**
|
|
304
|
-
- List of common data models by category
|
|
305
|
-
- Total count of listed models
|
|
306
|
-
- Usage instructions
|
|
155
|
+
| Parameter | Required | Description |
|
|
156
|
+
|-----------|----------|-------------|
|
|
157
|
+
| `metric_name` | Yes | Name of the data model to query |
|
|
158
|
+
| `relative_time` | No | Time range: `5m`, `15m`, `1h`, `2h`, `1d`, `1w`, `1M` |
|
|
159
|
+
| `start_time` | No | Start epoch timestamp (for absolute range) |
|
|
160
|
+
| `end_time` | No | End epoch timestamp (for absolute range) |
|
|
161
|
+
| `filters` | No | JSON object with field:value filters |
|
|
307
162
|
|
|
308
163
|
---
|
|
309
164
|
|
|
310
|
-
|
|
165
|
+
## 💬 Usage Examples
|
|
311
166
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
```
|
|
315
|
-
Show me all traces from the last 2 days
|
|
167
|
+
### Check Connection Status
|
|
316
168
|
```
|
|
317
|
-
|
|
318
|
-
**Behind the scenes:**
|
|
319
|
-
```json
|
|
320
|
-
{
|
|
321
|
-
"metric_name": "Trace Map Data",
|
|
322
|
-
"relative_time": "2d"
|
|
323
|
-
}
|
|
169
|
+
"Is the Vunet MCP server connected?"
|
|
324
170
|
```
|
|
325
171
|
|
|
326
|
-
|
|
327
|
-
|
|
172
|
+
### List Available Metrics
|
|
328
173
|
```
|
|
329
|
-
|
|
174
|
+
"What data models are available in Vunet?"
|
|
330
175
|
```
|
|
331
176
|
|
|
332
|
-
|
|
333
|
-
```json
|
|
334
|
-
{
|
|
335
|
-
"metric_name": "Trace Map Data",
|
|
336
|
-
"relative_time": "24h"
|
|
337
|
-
}
|
|
338
|
-
```
|
|
339
|
-
Then filter where `duration > 5000` (milliseconds)
|
|
340
|
-
|
|
341
|
-
#### Example 3: Kubernetes Metrics
|
|
342
|
-
|
|
177
|
+
### Query Journey Metrics
|
|
343
178
|
```
|
|
344
|
-
|
|
179
|
+
"Show me IBMB Journey Metrics for the last 2 hours"
|
|
345
180
|
```
|
|
346
181
|
|
|
347
|
-
|
|
348
|
-
{
|
|
349
|
-
"metric_name": "Kubernetes Pod Metrics",
|
|
350
|
-
"relative_time": "15m"
|
|
351
|
-
}
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
#### Example 4: Transaction Volume by Service
|
|
355
|
-
|
|
182
|
+
### Query Alerts
|
|
356
183
|
```
|
|
357
|
-
|
|
184
|
+
"Get all critical alerts from the last 1 hour"
|
|
358
185
|
```
|
|
359
186
|
|
|
360
|
-
|
|
361
|
-
{
|
|
362
|
-
"metric_name": "Traces Transaction Volume",
|
|
363
|
-
"relative_time": "1h",
|
|
364
|
-
"filters": {
|
|
365
|
-
"service": "ibmb"
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
```
|
|
369
|
-
|
|
370
|
-
#### Example 5: Compare Performance (Time Shift)
|
|
371
|
-
|
|
187
|
+
### Query with Filters
|
|
372
188
|
```
|
|
373
|
-
|
|
189
|
+
"Query IBMB Journey Metrics where name equals CBS for the last 30 minutes"
|
|
374
190
|
```
|
|
375
191
|
|
|
376
|
-
|
|
377
|
-
{
|
|
378
|
-
"metric_name": "Trace Map Data",
|
|
379
|
-
"relative_time": "1h",
|
|
380
|
-
"time_shift": "1d"
|
|
381
|
-
}
|
|
192
|
+
### Infrastructure Monitoring
|
|
382
193
|
```
|
|
383
|
-
|
|
384
|
-
---
|
|
385
|
-
|
|
386
|
-
## 📊 Data Models
|
|
387
|
-
|
|
388
|
-
Common data models available (80+ total).
|
|
389
|
-
|
|
390
|
-
> **📖 Complete Reference:** See [DATA_MODELS.md](DATA_MODELS.md) for comprehensive list and examples.
|
|
391
|
-
|
|
392
|
-
> **🔧 Programmatic Access:** Use the `vunet_list_data_models` tool to get the curated list with category filtering.
|
|
393
|
-
|
|
394
|
-
### Application Performance
|
|
395
|
-
- `Trace Map Data` - Individual trace spans with duration
|
|
396
|
-
- `Traces Transaction Volume` - Aggregated transaction counts
|
|
397
|
-
- `Application Response Time` - Response time metrics
|
|
398
|
-
- `Error Rate` - Error tracking and analysis
|
|
399
|
-
|
|
400
|
-
### Infrastructure
|
|
401
|
-
- `Kubernetes Pod Metrics` - Pod-level metrics
|
|
402
|
-
- `Kubernetes Node Metrics` - Node-level metrics
|
|
403
|
-
- `Kubernetes Deployment Metrics` - Deployment tracking
|
|
404
|
-
- `CPU Usage` - CPU utilization
|
|
405
|
-
- `Memory Usage` - Memory consumption
|
|
406
|
-
- `Disk I/O` - Disk operations
|
|
407
|
-
|
|
408
|
-
### Business Metrics
|
|
409
|
-
- `VuBank Metrics` - Custom business metrics
|
|
410
|
-
- `Transaction Success Rate` - Success/failure tracking
|
|
411
|
-
- `User Sessions` - Session analytics
|
|
412
|
-
|
|
413
|
-
### Database
|
|
414
|
-
- `MySQL Performance` - MySQL metrics
|
|
415
|
-
- `Hibernate Query Performance` - ORM performance
|
|
416
|
-
|
|
417
|
-
### Custom
|
|
418
|
-
- Custom data models defined in your tenant
|
|
419
|
-
|
|
420
|
-
**Quick Discovery:**
|
|
194
|
+
"Show CPU utilization for IBMB servers in the last hour"
|
|
421
195
|
```
|
|
422
|
-
# List all categories
|
|
423
|
-
vunet_list_data_models
|
|
424
196
|
|
|
425
|
-
|
|
426
|
-
vunet_list_data_models --category apm
|
|
427
|
-
vunet_list_data_models --category infrastructure
|
|
197
|
+
### RCA Analysis
|
|
428
198
|
```
|
|
429
|
-
|
|
430
|
-
**Natural Language:**
|
|
431
|
-
```
|
|
432
|
-
"What data models are available for APM?"
|
|
433
|
-
"Show me infrastructure metrics"
|
|
434
|
-
"List database performance models"
|
|
199
|
+
"Get Technical Decline data for IBMB in the last 2 hours"
|
|
435
200
|
```
|
|
436
201
|
|
|
437
202
|
---
|
|
438
203
|
|
|
439
|
-
##
|
|
204
|
+
## 🔧 Environment Variables
|
|
440
205
|
|
|
441
206
|
| Variable | Required | Default | Description |
|
|
442
207
|
|----------|----------|---------|-------------|
|
|
443
|
-
| `VUNET_TENANT_URL` |
|
|
444
|
-
| `VUNET_USERNAME` |
|
|
445
|
-
| `VUNET_PASSWORD` |
|
|
446
|
-
| `
|
|
447
|
-
| `
|
|
448
|
-
| `VUNET_VERIFY_SSL` | ❌ | `"true"` | Enable SSL verification (`"true"` or `"false"`) |
|
|
449
|
-
|
|
450
|
-
**Security Note:** Never commit credentials to version control. Use environment variables or secure credential stores.
|
|
451
|
-
|
|
452
|
-
### Authentication Methods
|
|
453
|
-
|
|
454
|
-
**Method 1: Username/Password** (Auto-managed sessions)
|
|
455
|
-
- The server automatically logs in and manages session tokens
|
|
456
|
-
- Session tokens are refreshed automatically on expiry
|
|
457
|
-
- Ideal for interactive use
|
|
458
|
-
|
|
459
|
-
**Method 2: Bearer Token** (Long-lived API tokens)
|
|
460
|
-
- Use pre-generated API tokens from Vunet
|
|
461
|
-
- No session management needed
|
|
462
|
-
- Ideal for CI/CD, automation, and service accounts
|
|
463
|
-
- **How to get:** Generate from Vunet UI → Settings → API Tokens
|
|
464
|
-
|
|
465
|
-
**Note:** Provide either `VUNET_USERNAME`+`VUNET_PASSWORD` **OR** `VUNET_BEARER_TOKEN`, not both.
|
|
208
|
+
| `VUNET_TENANT_URL` | Yes | - | Vunet tenant URL |
|
|
209
|
+
| `VUNET_USERNAME` | Yes | - | Username for authentication |
|
|
210
|
+
| `VUNET_PASSWORD` | Yes | - | Password for authentication |
|
|
211
|
+
| `VUNET_BU_ID` | Yes | `1` | Business Unit ID |
|
|
212
|
+
| `VUNET_VERIFY_SSL` | No | `true` | Verify SSL certificates |
|
|
466
213
|
|
|
467
214
|
---
|
|
468
215
|
|
|
469
|
-
##
|
|
470
|
-
|
|
471
|
-
### Common Issues
|
|
472
|
-
|
|
473
|
-
#### 1. "Node is not recognized as internal or external command"
|
|
474
|
-
|
|
475
|
-
**Solution:** Add Node.js to your system PATH or use full path:
|
|
476
|
-
|
|
477
|
-
```json
|
|
478
|
-
{
|
|
479
|
-
"command": "C:\\Program Files\\nodejs\\node.exe",
|
|
480
|
-
"args": ["path\\to\\index.js"]
|
|
481
|
-
}
|
|
482
|
-
```
|
|
483
|
-
|
|
484
|
-
#### 2. "Failed to authenticate to Vunet"
|
|
485
|
-
|
|
486
|
-
**Check:**
|
|
487
|
-
- ✅ Credentials are correct
|
|
488
|
-
- ✅ Tenant URL is accessible
|
|
489
|
-
- ✅ SSL verification settings match your environment
|
|
490
|
-
- ✅ Business Unit ID is correct
|
|
491
|
-
|
|
492
|
-
**Debug:**
|
|
493
|
-
```bash
|
|
494
|
-
# Test authentication manually
|
|
495
|
-
curl -X POST https://your-tenant.com/api/login/ \
|
|
496
|
-
-H "Content-Type: application/json" \
|
|
497
|
-
-d '{"username":"your-user","password":"your-pass","bu_id":"1"}'
|
|
498
|
-
```
|
|
499
|
-
|
|
500
|
-
#### 3. "SSL Certificate Verification Failed"
|
|
216
|
+
## 📈 Common Data Models
|
|
501
217
|
|
|
502
|
-
|
|
218
|
+
### Journey Metrics
|
|
219
|
+
- `IBMB Journey Metrics` - Internet/Mobile Banking metrics
|
|
220
|
+
- `UPI Journey Metrics` - UPI payment metrics
|
|
221
|
+
- `CBS Journey Metrics` - Core Banking metrics
|
|
222
|
+
- `FRM Journey Metrics` - Fraud Risk Management
|
|
503
223
|
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
}
|
|
510
|
-
```
|
|
224
|
+
### RCA (Root Cause Analysis)
|
|
225
|
+
- `RCA IBMB TD` - Technical Decline breakdown
|
|
226
|
+
- `RCA CPU Utilization IBMB` - Server CPU metrics
|
|
227
|
+
- `RCA Memory Utilization IBMB` - Server memory metrics
|
|
228
|
+
- `Linux Disk Utilization IBMB` - Disk usage
|
|
511
229
|
|
|
512
|
-
|
|
230
|
+
### Alerts
|
|
231
|
+
- `Alert data` - All active alerts with severity
|
|
232
|
+
- `IBMB Exceptions` - Application exceptions
|
|
513
233
|
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
4. Verify package is installed: `npm list -g @mithung/vunet-mcp-server`
|
|
519
|
-
|
|
520
|
-
#### 5. Empty or Missing Data
|
|
521
|
-
|
|
522
|
-
**Check:**
|
|
523
|
-
- ✅ Data model name is correct (case-sensitive)
|
|
524
|
-
- ✅ Time range has data
|
|
525
|
-
- ✅ Filters are not too restrictive
|
|
526
|
-
- ✅ Fields exist in the data model
|
|
234
|
+
### Infrastructure
|
|
235
|
+
- `Kubernetes Pod Metrics`
|
|
236
|
+
- `Linux Host Metrics`
|
|
237
|
+
- `Network Metrics`
|
|
527
238
|
|
|
528
239
|
---
|
|
529
240
|
|
|
530
|
-
##
|
|
531
|
-
|
|
532
|
-
### Example 1: Performance Analysis
|
|
533
|
-
|
|
534
|
-
```
|
|
535
|
-
Create a report of all traces taking more than 5 seconds in the last 2 days
|
|
536
|
-
```
|
|
537
|
-
|
|
538
|
-
**Result:** HTML report with:
|
|
539
|
-
- Slowest traces ranked
|
|
540
|
-
- Performance percentiles
|
|
541
|
-
- Error analysis
|
|
542
|
-
- Recommendations
|
|
241
|
+
## 🔥 Troubleshooting
|
|
543
242
|
|
|
544
|
-
###
|
|
545
|
-
|
|
546
|
-
**Production:**
|
|
243
|
+
### Authentication Failed (401)
|
|
547
244
|
```
|
|
548
|
-
|
|
245
|
+
Error: www-authenticate: Basic realm="traefik"
|
|
549
246
|
```
|
|
247
|
+
**Solution:** Your environment may have a Traefik proxy. The MCP server v2.1.0+ handles this automatically.
|
|
550
248
|
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
@vunet-staging compare current performance with 1 day ago
|
|
554
|
-
```
|
|
555
|
-
|
|
556
|
-
### Example 3: Kubernetes Dashboard
|
|
249
|
+
### Session Expired
|
|
250
|
+
The server automatically refreshes sessions. If issues persist, restart the MCP server.
|
|
557
251
|
|
|
558
|
-
|
|
559
|
-
|
|
252
|
+
### SSL Certificate Errors
|
|
253
|
+
Set `VUNET_VERIFY_SSL` to `false` for self-signed certificates:
|
|
254
|
+
```json
|
|
255
|
+
"VUNET_VERIFY_SSL": "false"
|
|
560
256
|
```
|
|
561
257
|
|
|
562
|
-
|
|
258
|
+
### Data Model Not Found
|
|
259
|
+
Use `vunet_list_data_models` to see available metrics. Names are case-sensitive.
|
|
563
260
|
|
|
564
261
|
---
|
|
565
262
|
|
|
566
|
-
##
|
|
567
|
-
|
|
568
|
-
### Run Locally
|
|
263
|
+
## 🚀 Quick Start Commands
|
|
569
264
|
|
|
570
265
|
```bash
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
npm install
|
|
266
|
+
# Install globally
|
|
267
|
+
npm install -g @mithung/vunet-mcp-server
|
|
574
268
|
|
|
575
|
-
#
|
|
576
|
-
|
|
577
|
-
export VUNET_USERNAME="your-username"
|
|
578
|
-
export VUNET_PASSWORD="your-password"
|
|
269
|
+
# Or run directly with npx
|
|
270
|
+
npx @mithung/vunet-mcp-server
|
|
579
271
|
|
|
580
|
-
#
|
|
581
|
-
npm
|
|
272
|
+
# Check installed version
|
|
273
|
+
npm list -g @mithung/vunet-mcp-server
|
|
582
274
|
```
|
|
583
275
|
|
|
584
|
-
|
|
276
|
+
---
|
|
585
277
|
|
|
586
|
-
|
|
587
|
-
npm run dev
|
|
588
|
-
```
|
|
278
|
+
## 📄 Changelog
|
|
589
279
|
|
|
590
|
-
###
|
|
280
|
+
### v2.1.0 (2026-02-17)
|
|
281
|
+
- ✅ Authentication improvements with proxy support
|
|
282
|
+
- ✅ Auto-reconnect on session expiry
|
|
283
|
+
- ✅ Better error handling
|
|
591
284
|
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
285
|
+
### v2.0.8
|
|
286
|
+
- Initial stable release
|
|
287
|
+
- Multi-tenant support
|
|
288
|
+
- Comprehensive data model access
|
|
595
289
|
|
|
596
290
|
---
|
|
597
291
|
|
|
598
|
-
## 📝
|
|
292
|
+
## 📝 License
|
|
599
293
|
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
```javascript
|
|
603
|
-
class VunetMCPServer {
|
|
604
|
-
constructor()
|
|
605
|
-
async login()
|
|
606
|
-
async logout()
|
|
607
|
-
async ensureAuthenticated()
|
|
608
|
-
async queryMetric(metricName, queryParams)
|
|
609
|
-
buildQueryParams(args)
|
|
610
|
-
normalizeTenantUrl(url)
|
|
611
|
-
}
|
|
612
|
-
```
|
|
613
|
-
|
|
614
|
-
### Query Response Format
|
|
615
|
-
|
|
616
|
-
```json
|
|
617
|
-
{
|
|
618
|
-
"metricData": [
|
|
619
|
-
{
|
|
620
|
-
"start_time": 1770886639,
|
|
621
|
-
"end_time": 1770973039,
|
|
622
|
-
"label": "Primary relative time",
|
|
623
|
-
"data": [
|
|
624
|
-
{
|
|
625
|
-
"timestamp": "2026-02-13 07:02:18.494",
|
|
626
|
-
"field1": "value1",
|
|
627
|
-
"field2": "value2"
|
|
628
|
-
}
|
|
629
|
-
]
|
|
630
|
-
}
|
|
631
|
-
]
|
|
632
|
-
}
|
|
633
|
-
```
|
|
294
|
+
MIT License - see [LICENSE](LICENSE) file.
|
|
634
295
|
|
|
635
296
|
---
|
|
636
297
|
|
|
637
298
|
## 🤝 Contributing
|
|
638
299
|
|
|
639
|
-
Contributions are welcome! Please follow these steps:
|
|
640
|
-
|
|
641
300
|
1. Fork the repository
|
|
642
|
-
2. Create
|
|
643
|
-
3. Commit changes
|
|
644
|
-
4. Push to branch
|
|
301
|
+
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
302
|
+
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
303
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
645
304
|
5. Open a Pull Request
|
|
646
305
|
|
|
647
306
|
---
|
|
648
307
|
|
|
649
|
-
##
|
|
650
|
-
|
|
651
|
-
MIT License - see [LICENSE](LICENSE) file for details
|
|
652
|
-
|
|
653
|
-
---
|
|
654
|
-
|
|
655
|
-
## 🙏 Acknowledgments
|
|
656
|
-
|
|
657
|
-
- Built with [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/sdk)
|
|
658
|
-
- Inspired by [Dynatrace MCP Server](https://github.com/dynatrace/mcp-server)
|
|
659
|
-
- Powered by [Vunet vuSmartMaps](https://vunetsystems.com)
|
|
660
|
-
|
|
661
|
-
---
|
|
662
|
-
|
|
663
|
-
## 🔗 Links
|
|
664
|
-
|
|
665
|
-
- **Vunet Systems:** https://vunetsystems.com
|
|
666
|
-
- **MCP Protocol:** https://modelcontextprotocol.io
|
|
667
|
-
- **npm Package:** https://www.npmjs.com/package/@mithung/vunet-mcp-server
|
|
668
|
-
- **GitHub:** https://github.com/mithung/vunet-mcp-server
|
|
669
|
-
- **Issues:** https://github.com/mithung/vunet-mcp-server/issues
|
|
670
|
-
|
|
671
|
-
---
|
|
672
|
-
|
|
673
|
-
## 📞 Support
|
|
308
|
+
## 📧 Support
|
|
674
309
|
|
|
675
|
-
- **
|
|
676
|
-
- **
|
|
677
|
-
- **Email:** support@vunetsystems.com
|
|
310
|
+
- **GitHub Issues:** [https://github.com/mithung/vunet-mcp-server/issues](https://github.com/mithung/vunet-mcp-server/issues)
|
|
311
|
+
- **npm Package:** [https://www.npmjs.com/package/@mithung/vunet-mcp-server](https://www.npmjs.com/package/@mithung/vunet-mcp-server)
|
|
678
312
|
|
|
679
313
|
---
|
|
680
314
|
|
|
681
|
-
|
|
315
|
+
Made with ❤️ by [Vunet Systems](https://vunetsystems.com)
|