@mithung/vunet-mcp-server 2.0.8 → 2.1.1
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 +145 -507
- package/index.js +3 -4
- package/package.json +5 -13
- 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.
|
|
11
|
+
> **Latest Version:** 2.1.1 - Updated repository URLs, 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
|
|
125
|
-
|
|
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
|
|
80
|
+
### Multiple Tenants
|
|
143
81
|
|
|
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,190 @@ 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:**
|
|
258
|
-
|
|
259
|
-
| Parameter | Type | Required | Description | Example |
|
|
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"` |
|
|
135
|
+
## 📊 Available MCP Tools
|
|
272
136
|
|
|
273
|
-
|
|
137
|
+
### 1. `vunet_get_status`
|
|
138
|
+
Check authentication status and session validity.
|
|
274
139
|
|
|
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
|
-
|
|
311
|
-
|
|
312
|
-
#### Example 1: Get Traces (Last 2 Days)
|
|
165
|
+
## 💬 Usage Examples
|
|
313
166
|
|
|
167
|
+
### Check Connection Status
|
|
314
168
|
```
|
|
315
|
-
|
|
169
|
+
"Is the Vunet MCP server connected?"
|
|
316
170
|
```
|
|
317
171
|
|
|
318
|
-
|
|
319
|
-
```json
|
|
320
|
-
{
|
|
321
|
-
"metric_name": "Trace Map Data",
|
|
322
|
-
"relative_time": "2d"
|
|
323
|
-
}
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
#### Example 2: Filter Slow Traces
|
|
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
|
-
}
|
|
177
|
+
### Query Journey Metrics
|
|
338
178
|
```
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
#### Example 3: Kubernetes Metrics
|
|
342
|
-
|
|
343
|
-
```
|
|
344
|
-
Get Kubernetes pod metrics for the last 15 minutes
|
|
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
|
-
|
|
356
|
-
```
|
|
357
|
-
Show transaction volume by service for last hour
|
|
182
|
+
### Query Alerts
|
|
358
183
|
```
|
|
359
|
-
|
|
360
|
-
```json
|
|
361
|
-
{
|
|
362
|
-
"metric_name": "Traces Transaction Volume",
|
|
363
|
-
"relative_time": "1h",
|
|
364
|
-
"filters": {
|
|
365
|
-
"service": "ibmb"
|
|
366
|
-
}
|
|
367
|
-
}
|
|
184
|
+
"Get all critical alerts from the last 1 hour"
|
|
368
185
|
```
|
|
369
186
|
|
|
370
|
-
|
|
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:**
|
|
421
|
-
```
|
|
422
|
-
# List all categories
|
|
423
|
-
vunet_list_data_models
|
|
424
|
-
|
|
425
|
-
# Filter by category
|
|
426
|
-
vunet_list_data_models --category apm
|
|
427
|
-
vunet_list_data_models --category infrastructure
|
|
194
|
+
"Show CPU utilization for IBMB servers in the last hour"
|
|
428
195
|
```
|
|
429
196
|
|
|
430
|
-
|
|
197
|
+
### RCA Analysis
|
|
431
198
|
```
|
|
432
|
-
"
|
|
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"
|
|
501
|
-
|
|
502
|
-
**Solution:** For self-signed certificates or internal environments:
|
|
216
|
+
## 📈 Common Data Models
|
|
503
217
|
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
}
|
|
510
|
-
```
|
|
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
|
|
511
223
|
|
|
512
|
-
|
|
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
|
|
513
229
|
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
3. Check VS Code output panel for errors
|
|
518
|
-
4. Verify package is installed: `npm list -g @mithung/vunet-mcp-server`
|
|
230
|
+
### Alerts
|
|
231
|
+
- `Alert data` - All active alerts with severity
|
|
232
|
+
- `IBMB Exceptions` - Application exceptions
|
|
519
233
|
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
-
|
|
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
|
|
543
|
-
|
|
544
|
-
### Example 2: Multi-Tenant Monitoring
|
|
241
|
+
## 🔥 Troubleshooting
|
|
545
242
|
|
|
546
|
-
|
|
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
|
-
```
|
|
249
|
+
### Session Expired
|
|
250
|
+
The server automatically refreshes sessions. If issues persist, restart the MCP server.
|
|
555
251
|
|
|
556
|
-
###
|
|
557
|
-
|
|
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
|
|
574
|
-
|
|
575
|
-
# Set environment variables
|
|
576
|
-
export VUNET_TENANT_URL="https://your-tenant.com"
|
|
577
|
-
export VUNET_USERNAME="your-username"
|
|
578
|
-
export VUNET_PASSWORD="your-password"
|
|
579
|
-
|
|
580
|
-
# Run
|
|
581
|
-
npm start
|
|
582
|
-
```
|
|
266
|
+
# Install globally
|
|
267
|
+
npm install -g @mithung/vunet-mcp-server
|
|
583
268
|
|
|
584
|
-
|
|
269
|
+
# Or run directly with npx
|
|
270
|
+
npx @mithung/vunet-mcp-server
|
|
585
271
|
|
|
586
|
-
|
|
587
|
-
npm
|
|
272
|
+
# Check installed version
|
|
273
|
+
npm list -g @mithung/vunet-mcp-server
|
|
588
274
|
```
|
|
589
275
|
|
|
590
|
-
|
|
276
|
+
---
|
|
591
277
|
|
|
592
|
-
|
|
593
|
-
npm pack
|
|
594
|
-
```
|
|
278
|
+
## 📄 Changelog
|
|
595
279
|
|
|
596
|
-
|
|
280
|
+
### v2.1.1 (2026-02-18)
|
|
281
|
+
- ✅ Updated repository URLs to correct GitHub organization
|
|
282
|
+
- ✅ Fixed package metadata
|
|
597
283
|
|
|
598
|
-
|
|
284
|
+
### v2.1.0 (2026-02-17)
|
|
285
|
+
- ✅ Authentication improvements with proxy support
|
|
286
|
+
- ✅ Auto-reconnect on session expiry
|
|
287
|
+
- ✅ Better error handling
|
|
599
288
|
|
|
600
|
-
###
|
|
289
|
+
### v2.0.8
|
|
290
|
+
- Initial stable release
|
|
291
|
+
- Multi-tenant support
|
|
292
|
+
- Comprehensive data model access
|
|
601
293
|
|
|
602
|
-
|
|
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
|
-
```
|
|
294
|
+
---
|
|
613
295
|
|
|
614
|
-
|
|
296
|
+
## 📝 License
|
|
615
297
|
|
|
616
|
-
|
|
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
|
-
```
|
|
298
|
+
MIT License - see [LICENSE](LICENSE) file.
|
|
634
299
|
|
|
635
300
|
---
|
|
636
301
|
|
|
637
302
|
## 🤝 Contributing
|
|
638
303
|
|
|
639
|
-
Contributions are welcome! Please follow these steps:
|
|
640
|
-
|
|
641
304
|
1. Fork the repository
|
|
642
|
-
2. Create
|
|
643
|
-
3. Commit changes
|
|
644
|
-
4. Push to branch
|
|
305
|
+
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
306
|
+
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
307
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
645
308
|
5. Open a Pull Request
|
|
646
309
|
|
|
647
310
|
---
|
|
648
311
|
|
|
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
|
|
312
|
+
## 📧 Support
|
|
674
313
|
|
|
675
|
-
- **
|
|
676
|
-
- **
|
|
677
|
-
- **Email:** support@vunetsystems.com
|
|
314
|
+
- **GitHub Issues:** [https://github.com/mithung-vunet/vunet-mcp-server/issues](https://github.com/mithung-vunet/vunet-mcp-server/issues)
|
|
315
|
+
- **npm Package:** [https://www.npmjs.com/package/@mithung/vunet-mcp-server](https://www.npmjs.com/package/@mithung/vunet-mcp-server)
|
|
678
316
|
|
|
679
317
|
---
|
|
680
318
|
|
|
681
|
-
|
|
319
|
+
Made with ❤️ by [Vunet Systems](https://vunetsystems.com)
|