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