mcp-instana 0.1.0__py3-none-any.whl
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.
- mcp_instana-0.1.0.dist-info/LICENSE +201 -0
- mcp_instana-0.1.0.dist-info/METADATA +649 -0
- mcp_instana-0.1.0.dist-info/RECORD +19 -0
- mcp_instana-0.1.0.dist-info/WHEEL +4 -0
- mcp_instana-0.1.0.dist-info/entry_points.txt +3 -0
- src/__init__.py +0 -0
- src/client/What is the sum of queue depth for all q +55 -0
- src/client/application_alert_config_mcp_tools.py +680 -0
- src/client/application_metrics_mcp_tools.py +377 -0
- src/client/application_resources_mcp_tools.py +391 -0
- src/client/events_mcp_tools.py +531 -0
- src/client/infrastructure_analyze_mcp_tools.py +634 -0
- src/client/infrastructure_catalog_mcp_tools.py +624 -0
- src/client/infrastructure_resources_mcp_tools.py +653 -0
- src/client/infrastructure_topology_mcp_tools.py +319 -0
- src/client/instana_client_base.py +93 -0
- src/client/log_alert_configuration_mcp_tools.py +316 -0
- src/client/show the top 5 services with the highest +28 -0
- src/mcp_server.py +343 -0
|
@@ -0,0 +1,649 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: mcp-instana
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: MCP server for Instana
|
|
5
|
+
License: Apache-2.0
|
|
6
|
+
Author: Guangya Liu
|
|
7
|
+
Author-email: gyliu@ibm.com
|
|
8
|
+
Requires-Python: >=3.11
|
|
9
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
14
|
+
Requires-Dist: instana-client (>=1.0.0)
|
|
15
|
+
Requires-Dist: mcp (>=0.1.0)
|
|
16
|
+
Requires-Dist: pydantic (>=2.0.0)
|
|
17
|
+
Requires-Dist: python-dotenv (>=1.0.0)
|
|
18
|
+
Requires-Dist: requests (>=2.31.0)
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
|
|
21
|
+
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
|
22
|
+
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
|
23
|
+
**Table of Contents**
|
|
24
|
+
|
|
25
|
+
- [MCP Server for IBM Instana](#mcp-server-for-ibm-instana)
|
|
26
|
+
- [Architecture Diagram](#architecture-diagram)
|
|
27
|
+
- [WorkFlow Diagram](#workflow-diagram)
|
|
28
|
+
- [Pre-Reqs](#pre-reqs)
|
|
29
|
+
- [Install dependencies](#install-dependencies)
|
|
30
|
+
- [Environment Configuration](#environment-configuration)
|
|
31
|
+
- [Run and Test](#run-and-test)
|
|
32
|
+
- [Claude Desktop](#claude-desktop)
|
|
33
|
+
- [Streamable HTTP Mode](#streamable-http-mode)
|
|
34
|
+
- [Stdio Mode](#stdio-mode)
|
|
35
|
+
- [GitHub Copilot](#github-copilot)
|
|
36
|
+
- [Streamable HTTP Mode](#streamable-http-mode-1)
|
|
37
|
+
- [Stdio Mode](#stdio-mode-1)
|
|
38
|
+
- [mcpclient](#mcpclient)
|
|
39
|
+
- [Streamable HTTP Mode](#streamable-http-mode-2)
|
|
40
|
+
- [Stdio Mode](#stdio-mode-2)
|
|
41
|
+
- [Features](#features)
|
|
42
|
+
- [Tools](#tools)
|
|
43
|
+
- [Example Prompts](#example-prompts)
|
|
44
|
+
- [Troubleshooting](#troubleshooting)
|
|
45
|
+
|
|
46
|
+
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
|
47
|
+
|
|
48
|
+
# MCP Server for IBM Instana
|
|
49
|
+
|
|
50
|
+
The Instana MCP server allows interaction with the Instana observability platform helps fetching real-time observability data directly into development workflow.
|
|
51
|
+
|
|
52
|
+
It acts as a bridge between clients (like AI agents or custom tools) and the Instana REST APIs , converts user queries into Instana API requests and formats/summarizes the API responses into structured formats.
|
|
53
|
+
|
|
54
|
+
The server supports **Streamable HTTP** and **Stdio** transport modes for maximum compatibility with different MCP clients. For more Details refer to [MCP Transport Modes](https://modelcontextprotocol.io/specification/2025-06-18/basic/transports) .
|
|
55
|
+
|
|
56
|
+
## Architecture Diagram
|
|
57
|
+
|
|
58
|
+
```mermaid
|
|
59
|
+
graph LR
|
|
60
|
+
subgraph "Application Host Process"
|
|
61
|
+
MH[MCP Host]
|
|
62
|
+
MSI[Instana MCP Server]
|
|
63
|
+
MST[ProductA MCP Server]
|
|
64
|
+
MSC[ProductB MCP Server]
|
|
65
|
+
|
|
66
|
+
MH <--> MSI
|
|
67
|
+
MH <--> MSC
|
|
68
|
+
MH <--> MST
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
subgraph "Remote Service"
|
|
72
|
+
II[Instana Instance]
|
|
73
|
+
TI[ProductA Instance]
|
|
74
|
+
CI[ProductB Instance]
|
|
75
|
+
|
|
76
|
+
MSI <--> II
|
|
77
|
+
MST <--> TI
|
|
78
|
+
MSC <--> CI
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
subgraph "LLM"
|
|
82
|
+
L[LLM]
|
|
83
|
+
MH <--> L
|
|
84
|
+
end
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## WorkFlow Diagram
|
|
88
|
+
|
|
89
|
+
Let’s take a simple example. Assume you are using a MCP Host, it can be Claude Desktop, VS Code or some others, and it connected to a MCP server of Instana. Here I will ask for the Instana MCP Server to show me some alerts. Here is what happens:
|
|
90
|
+
|
|
91
|
+
- The MCP client gets the list of available tools from the Instana MCP server.
|
|
92
|
+
- Your query is sent to LLM along with tool descriptions.
|
|
93
|
+
- LLM analyzes the available tools and decides which one(s) to use. In this case some tools related to getting instana alerts and application are returned to Instana MCP client.
|
|
94
|
+
- The client executes the chosen tool(s) through the Instana MCP server, since tools is in the server.
|
|
95
|
+
- Results (latest alerts) are sent back to LLM.
|
|
96
|
+
- LLM formulates a natural language response.
|
|
97
|
+
- The response is displayed to you.
|
|
98
|
+
|
|
99
|
+
```mermaid
|
|
100
|
+
sequenceDiagram
|
|
101
|
+
participant User
|
|
102
|
+
participant ChatBot as MCP Host
|
|
103
|
+
participant MCPClient as MCP Client
|
|
104
|
+
participant MCPServer as Instana MCP Server
|
|
105
|
+
participant LLM
|
|
106
|
+
participant Instana as Instana Instance
|
|
107
|
+
|
|
108
|
+
ChatBot->>MCPClient: Load available tools from MCP Server
|
|
109
|
+
MCPClient->>MCPServer: Request available tool list
|
|
110
|
+
MCPServer->>MCPClient: Return list of available tools
|
|
111
|
+
User->>ChatBot: Ask "Show me the latest alerts from Instana for application robot-shop"
|
|
112
|
+
ChatBot->>MCPClient: Forward query
|
|
113
|
+
MCPClient->>LLM: Send query and tool description
|
|
114
|
+
LLM->>MCPClient: Select appropriate tool(s) for Instana alert query
|
|
115
|
+
MCPClient->>MCPServer: Execute selected tool(s)
|
|
116
|
+
MCPServer->>Instana: Retrieve alerts for application robot-shop
|
|
117
|
+
MCPServer->>MCPClient: Send alerts of Instana result
|
|
118
|
+
MCPClient->>LLM: Forward alerts of Instana
|
|
119
|
+
LLM->>ChatBot: Generate natural language response for Instana alerts
|
|
120
|
+
ChatBot->>User: Show Instana alert response
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Pre-Reqs
|
|
124
|
+
|
|
125
|
+
To create a virtual environment and activate it, run the following command:
|
|
126
|
+
|
|
127
|
+
```shell
|
|
128
|
+
python -m venv .mcp-instana
|
|
129
|
+
source .mcp-instana/bin/activate
|
|
130
|
+
```
|
|
131
|
+
### Install dependencies
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
pip install -r requirements.txt
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Environment Configuration
|
|
138
|
+
|
|
139
|
+
Create a `.env` file in your project root:
|
|
140
|
+
|
|
141
|
+
```bash:.env
|
|
142
|
+
INSTANA_BASE_URL=https://your-instana-instance.instana.io
|
|
143
|
+
INSTANA_API_TOKEN=your_instana_api_token_here
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Run and Test
|
|
147
|
+
|
|
148
|
+
### Claude Desktop
|
|
149
|
+
|
|
150
|
+
Claude Desktop supports all modes - Streamable HTTP and Stdio for MCP integration.
|
|
151
|
+
|
|
152
|
+
Configure Claude Desktop by editing the configuration file:
|
|
153
|
+
|
|
154
|
+
**File Locations:**
|
|
155
|
+
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
156
|
+
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
157
|
+
|
|
158
|
+
#### Streamable HTTP Mode
|
|
159
|
+
|
|
160
|
+
The Streamable HTTP mode provides a REST API interface for MCP communication using JSON-RPC over HTTP.
|
|
161
|
+
|
|
162
|
+
**Step 1: Start the MCP Server in Streamable HTTP Mode**
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
python src/mcp_server.py --transport streamable-http --debug
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Note:** debug flag is optional , set `--debug` for getting additional logs. Provide --transport streamable-http to start the server in streamable-http mode.
|
|
169
|
+
|
|
170
|
+
**Step 2: Configure Claude Desktop**
|
|
171
|
+
|
|
172
|
+
```json:claude_desktop_config.json
|
|
173
|
+
{
|
|
174
|
+
"mcpServers": {
|
|
175
|
+
"Instana Tools": {
|
|
176
|
+
"command": "npx",
|
|
177
|
+
"args": ["mcp-remote", "http://127.0.0.1:8000/mcp"],
|
|
178
|
+
"env": {
|
|
179
|
+
"INSTANA_BASE_URL": "<INSTANA_BASE_URL>",
|
|
180
|
+
"INSTANA_API_TOKEN": "<INSTANA_API_TOKEN>"
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Step 3: Test the Connection**
|
|
188
|
+
|
|
189
|
+
Restart Claud Desktop, now you will be able to see instana tools in claude desktop as shown below .
|
|
190
|
+
|
|
191
|
+

|
|
192
|
+
|
|
193
|
+
You can now run the query in Claud Desktop.
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
get me all endpoints from Instana
|
|
197
|
+
```
|
|
198
|
+

|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
#### Stdio Mode
|
|
202
|
+
|
|
203
|
+
**Configuration:**
|
|
204
|
+
|
|
205
|
+
```json
|
|
206
|
+
{
|
|
207
|
+
"mcpServers": {
|
|
208
|
+
"Instana Tools": {
|
|
209
|
+
"command": "<path-to-mcp-instana-virtual-env-folder>/bin/uv",
|
|
210
|
+
"args": [
|
|
211
|
+
"--directory",
|
|
212
|
+
"<path-to-mcp-instana-folder>"
|
|
213
|
+
"run",
|
|
214
|
+
"src/mcp_server.py"
|
|
215
|
+
],
|
|
216
|
+
"env": {
|
|
217
|
+
"INSTANA_BASE_URL": "<INSTANA_BASE_URL>",
|
|
218
|
+
"INSTANA_API_TOKEN": "<INSTANA_API_TOKEN>"
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
### GitHub Copilot
|
|
227
|
+
|
|
228
|
+
GitHub Copilot supports MCP integration through VS Code configuration.
|
|
229
|
+
For GitHub Copilot integration with VScode refer this [link](#https://code.visualstudio.com/docs/copilot/setup).
|
|
230
|
+
|
|
231
|
+
#### Streamable HTTP Mode
|
|
232
|
+
|
|
233
|
+
**Step 1: Start the MCP Server in Streamable HTTP Mode**
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
python src/mcp_server.py --transport streamable-http --debug
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**Step 2: Configure VS Code**
|
|
240
|
+
|
|
241
|
+
Check [Use MCP servers in VS Code](https://code.visualstudio.com/docs/copilot/chat/mcp-servers) for detailed configuration.
|
|
242
|
+
|
|
243
|
+
1. In the `mcp.json` file click on Add Server .
|
|
244
|
+
2. From the list, select HTTP (HTTP or Server-Sent Events).
|
|
245
|
+
|
|
246
|
+

|
|
247
|
+
3. In the Server URL field, enter http://127.0.0.1:8000/mcp and press Enter.
|
|
248
|
+
4. Under Enter Server ID, press Enter to use the default server ID, or enter a custom server ID( here I was using default name as `my-mcp-server-http`), post which it will add `my-mcp-server-http` to `mcp.json` file as shown below.
|
|
249
|
+
|
|
250
|
+

|
|
251
|
+
|
|
252
|
+
In the above picture we have server configuration for all modes (Steamable HTTP, Stdio) . Based on the particular mode we want to use, we can keep the configuration in mcp.json file.
|
|
253
|
+
|
|
254
|
+
#### Stdio Mode
|
|
255
|
+
|
|
256
|
+
**Step 1: Create VS Code MCP Configuration**
|
|
257
|
+
Create `.vscode/mcp.json` in your project root:
|
|
258
|
+
|
|
259
|
+
```json:.vscode/mcp.json
|
|
260
|
+
{
|
|
261
|
+
"servers": {
|
|
262
|
+
"Instana Tools": {
|
|
263
|
+
"command": "/absolute/path/to/your/project/.mcp-instana/bin/uv",
|
|
264
|
+
"args": [
|
|
265
|
+
"--directory",
|
|
266
|
+
"/absolute/path/to/your/project/mcp-instana",
|
|
267
|
+
"run",
|
|
268
|
+
"src/mcp_server.py"
|
|
269
|
+
],
|
|
270
|
+
"env": {
|
|
271
|
+
"INSTANA_BASE_URL": "https://your-instana-instance.instana.io",
|
|
272
|
+
"INSTANA_API_TOKEN": "your_instana_api_token"
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
**Step 2: Manage Server in VS Code**
|
|
280
|
+
|
|
281
|
+
1. **Open `.vscode/mcp.json`** - you'll see server management controls at the top
|
|
282
|
+
2. **Click `Start`** next to `Instana Tools` to start the server
|
|
283
|
+
3. Running status along with no. of tools shows the server is running
|
|
284
|
+
|
|
285
|
+
**Step 3: Test Integration**
|
|
286
|
+
|
|
287
|
+
Switch to Agent Mode in Github CoPilot and reload tools.
|
|
288
|
+
Here is the example of GitHub Copilot response:
|
|
289
|
+
|
|
290
|
+

|
|
291
|
+
|
|
292
|
+
### mcpclient
|
|
293
|
+
|
|
294
|
+
The MCP Client(`mcpclient/mcp_client.py`) is a Streamlit-based web application that provides a user-friendly interface for testing and interacting with the Instana MCP server. It supports all modes - Streamable HTTP and stdio allowing users to execute queries against Instana's monitoring data through an intuitive web interface.
|
|
295
|
+
|
|
296
|
+
#### Streamable HTTP Mode
|
|
297
|
+
|
|
298
|
+
**Step 1: Start the MCP Server with Streamable HTTP Mode**
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
source .mcp-instana/bin/activate
|
|
302
|
+
cd mcp-instana
|
|
303
|
+
python src/mcp_server.py --transport streamable-http --debug
|
|
304
|
+
```
|
|
305
|
+
**Step 2: Run the Client**
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
cd mcp-instana
|
|
309
|
+
streamlit run mcpclient/mcp_client.py
|
|
310
|
+
```
|
|
311
|
+
**Step 3: Configure Streamable HTTP Mode**
|
|
312
|
+
|
|
313
|
+
1. Access the client at http://localhost:8501
|
|
314
|
+
2. In the sidebar, select **"streamable-http"** as the transport mode
|
|
315
|
+
3. Configure the server settings:
|
|
316
|
+
- **Server Host**: `localhost`
|
|
317
|
+
- **Server Port**: `8000`
|
|
318
|
+
4. The http URL will be automatically set to `http://localhost:8000/mcp/`
|
|
319
|
+
|
|
320
|
+

|
|
321
|
+
|
|
322
|
+
#### Stdio Mode
|
|
323
|
+
|
|
324
|
+
**Step 1: Configure Environment**
|
|
325
|
+
|
|
326
|
+
Create/Update `.env` file in in your project root and configure watsonx environment variables:
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
```bash:.env
|
|
330
|
+
WATSONX_URL=your_watsonx_url
|
|
331
|
+
WATSONX_API_KEY=your_watsonx_api_key
|
|
332
|
+
WATSONX_PROJECT_ID=your_watsonx_project_id
|
|
333
|
+
INSTANA_BASE_URL=https://your-instana-instance.instana.io
|
|
334
|
+
INSTANA_API_TOKEN=your_instana_api_token
|
|
335
|
+
```
|
|
336
|
+
**Step 2: Update MCP Configuration**
|
|
337
|
+
|
|
338
|
+
Update `mcpclient/mcp-instana.json` file with your working directory path.
|
|
339
|
+
|
|
340
|
+
```json:mcpclient/mcp-instana.json
|
|
341
|
+
{
|
|
342
|
+
"mcpServers": {
|
|
343
|
+
"instana": {
|
|
344
|
+
"command": "/absolute/path/to/your/project/.mcp-instana/bin/python",
|
|
345
|
+
"args": ["/absolute/path/to/your/project/src/mcp_server.py"],
|
|
346
|
+
"cwd": "/absolute/path/to/your/project",
|
|
347
|
+
"env": {
|
|
348
|
+
"INSTANA_BASE_URL": "https://your-instana-instance.instana.io",
|
|
349
|
+
"INSTANA_API_TOKEN": "your_instana_api_token"
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
```
|
|
355
|
+
**Step 3: Run the Client**
|
|
356
|
+
|
|
357
|
+
```
|
|
358
|
+
cd mcp-instana
|
|
359
|
+
streamlit run mcpclient/mcp_client.py
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
Access the client at http://localhost:8501 and select **"stdio"** as the transport mode.
|
|
363
|
+
|
|
364
|
+

|
|
365
|
+
|
|
366
|
+
## Features
|
|
367
|
+
|
|
368
|
+
- [ ] Application
|
|
369
|
+
- [ ] Application Metrics
|
|
370
|
+
- [ ] Application Metrics
|
|
371
|
+
- [ ] Endpoint Metrics
|
|
372
|
+
- [ ] Service Metrics
|
|
373
|
+
- [ ] Data Metrics
|
|
374
|
+
- [x] Application Resources
|
|
375
|
+
- [x] Get Applications Endpoints
|
|
376
|
+
- [x] Get Applications
|
|
377
|
+
- [x] Get Services
|
|
378
|
+
- [x] Get Application Services
|
|
379
|
+
- [x] Application Alert Configuration
|
|
380
|
+
- [x] Get All Smart Alert Configurations
|
|
381
|
+
- [x] Get Smart Alert Configuration
|
|
382
|
+
- [x] Get Smart Alert Config Versions
|
|
383
|
+
- [ ] Create Smart Alert Configuration
|
|
384
|
+
- [ ] Update Smart Alert Configuration
|
|
385
|
+
- [x] Delete Smart Alert Configuration
|
|
386
|
+
- [ ] Recalculate Smart Alert Config Baseline
|
|
387
|
+
- [x] Enable Application Alert Config
|
|
388
|
+
- [x] Disable Smart Alert Config
|
|
389
|
+
- [x] Restore Smart Alert Config
|
|
390
|
+
- [ ] Infrastructure
|
|
391
|
+
- [ ] Infrastructure Analyze
|
|
392
|
+
- [x] Get Available Metrics
|
|
393
|
+
- [ ] Get infrastructure entities
|
|
394
|
+
- [ ] Get grouped entities with aggregated metrics
|
|
395
|
+
- [x] Get available plugins/entity types
|
|
396
|
+
- [x] Infrastructure Catalog
|
|
397
|
+
- [x] Get Payload Keys By plugin ID
|
|
398
|
+
- [x] Get Infrastructure Catalog Metrics
|
|
399
|
+
- [x] Get Infrastructure Catalog Plugins
|
|
400
|
+
- [x] Get Infrastructure Catalog Plugins with Custom Metrics
|
|
401
|
+
- [x] Get Infrastructure Catalog Search Fields
|
|
402
|
+
- [x] Get Infrastructure Catalog Search Fields with Custom Metrics
|
|
403
|
+
- [x] Get Tag Catalog
|
|
404
|
+
- [x] Get Tag Catalog ALL
|
|
405
|
+
- [ ] Infrastructure Resources
|
|
406
|
+
- [x] Get Monitoring State
|
|
407
|
+
- [ ] Get plugin Payload
|
|
408
|
+
- [x] Search Snapshots
|
|
409
|
+
- [x] Get Snapshot Details for single Snapshot ID
|
|
410
|
+
- [x] Get Details for Multiple Snapshot IDs
|
|
411
|
+
- [x] Software Versions
|
|
412
|
+
- [x] Infrastructure Topology
|
|
413
|
+
- [x] Get Hosts for Snapshot
|
|
414
|
+
- [x] Get Topology
|
|
415
|
+
- [ ] Events
|
|
416
|
+
- [ ] Events
|
|
417
|
+
- [ ] Get all Events
|
|
418
|
+
- [x] Get Events by IDs
|
|
419
|
+
- [x] Get Agent Monitoring Events
|
|
420
|
+
- [x] Get Kubernetes Info Events
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
## Tools
|
|
424
|
+
|
|
425
|
+
| Tool | Category | Description |
|
|
426
|
+
|---------------------------------------------------------------|--------------------------|------------------------------------------------------- |
|
|
427
|
+
| `get_application_metrics` | Application Metrics | Get ApplicationMetrics |
|
|
428
|
+
| `get_endpoints_metrics` | Application Metrics | Get Endpoint metrics |
|
|
429
|
+
| `get_services_metrics` | Application Metrics | Get Service metrics |
|
|
430
|
+
| `get_application_data_metrics_v2` | Application Metrics | Get Application Data Metrics |
|
|
431
|
+
| `get_applications` | Application Resources | Get applications |
|
|
432
|
+
| `get_application_services` | Application Resources | Get applications/services |
|
|
433
|
+
| `get_application_endpoints` | Application Resources | Get endpoints |
|
|
434
|
+
| `get_services` | Application Resources | Get services |
|
|
435
|
+
| `get_monitoring_state` | Infrastructure Resources | Monitored host count |
|
|
436
|
+
| `get_plugin_payload` | Infrastructure Resources | Get a payload for a snapshot |
|
|
437
|
+
| `get_snapshots` | Infrastructure Resources | Search snapshots |
|
|
438
|
+
| `post_snapshots` | Infrastructure Resources | Get snapshot details for multiple snapshots |
|
|
439
|
+
| `get_snapshot` | Infrastructure Resources | Get snapshot details |
|
|
440
|
+
| `software_versions` | Infrastructure Resources | Get installed software |
|
|
441
|
+
| `get_available_payload_keys_by_plugin_id` | Infrastructure Catalog | Get Payload Keys By plugin ID |
|
|
442
|
+
| `get_infrastructure_catalog_metrics` | Infrastructure Catalog | Get Infrastructure Catalog Metrics |
|
|
443
|
+
| `get_infrastructure_catalog_plugins` | Infrastructure Catalog | Get Infrastructure Catalog Plugins |
|
|
444
|
+
| `get_infrastructure_catalog_plugins_with_custom_metrics` | Infrastructure Catalog | Get Infrastructure Catalog Plugins with Custom Metrics |
|
|
445
|
+
| `get_infrastructure_catalog_search_fields` | Infrastructure Catalog | Get Infrastructure Catalog Search Fields |
|
|
446
|
+
| `get_tag_catalog` | Infrastructure Catalog | Get Tag Catalog |
|
|
447
|
+
| `get_tag_catalog_all` | Infrastructure Catalog | Get Tag Catalog ALL |
|
|
448
|
+
| `get_related_hosts` | Infrastructure Topology | Get Related Hosts |
|
|
449
|
+
| `get_topology` | Infrastructure Topology | Get Topology |
|
|
450
|
+
| `get_available_metrics` | Infrastructure Analyze | Get Available Metrics |
|
|
451
|
+
| `get_entities` | Infrastructure Analyze | Get infrastructure entities |
|
|
452
|
+
| `get_aggregated_entity_groups` | Infrastructure Analyze | Get grouped entities with aggregated metrics |
|
|
453
|
+
| `get_available_plugins` | Infrastructure Analyze | Get available entity types |
|
|
454
|
+
| `get_application_alert_configs` | Application Alert Configuration | Get All Smart Alert Configurations |
|
|
455
|
+
| `find_application_alert_config` | Application Alert Configuration | Get Smart Alert Configuration |
|
|
456
|
+
| `find_application_alert_config_versions` | Application Alert Configuration | Get Smart Alert Config Versions |
|
|
457
|
+
| `create_application_alert_config` | Application Alert Configuration | Create Smart Alert Configuration |
|
|
458
|
+
| `update_application_alert_config` | Application Alert Configuration | Update Smart Alert Configuration |
|
|
459
|
+
| `delete_application_alert_config` | Application Alert Configuration | Delete Smart Alert Configuration |
|
|
460
|
+
| `update_application_historic_baseline` | Application Alert Configuration | Recalculate Smart Alert Config Baseline |
|
|
461
|
+
| `enable_application_alert_config` | Application Alert Configuration | Enable Application Alert Config |
|
|
462
|
+
| `disable_application_alert_config` | Application Alert Configuration | Disable Smart Alert Config |
|
|
463
|
+
| `restore_application_alert_config` | Application Alert Configuration | Restore Smart Alert Config |
|
|
464
|
+
| `get_event` | Events | Get Events by IDs |
|
|
465
|
+
| `get_kubernetes_info_events` | Events | Get Kubernetes Info Events |
|
|
466
|
+
| `get_agent_monitoring_events` | Events | Get Agent Monitoring Events |
|
|
467
|
+
|
|
468
|
+
## Example Prompts
|
|
469
|
+
|
|
470
|
+
Here are some example prompts (contains the query and results) that you can use to get started with the Instana Observability Platform API:
|
|
471
|
+
|
|
472
|
+
- Query 1
|
|
473
|
+
```
|
|
474
|
+
we want to understand what all search criteria are available in Instana so that
|
|
475
|
+
we can find out correct search tags for specific entities and
|
|
476
|
+
build complex queries to filter entities in Instana . can you help with this?
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
- Result 1
|
|
480
|
+
|
|
481
|
+
```shell
|
|
482
|
+
|
|
483
|
+
Here is the list of search criteria available in Instana:
|
|
484
|
+
|
|
485
|
+
entity.jvm.dropwizard.timer
|
|
486
|
+
entity.otel
|
|
487
|
+
host.name
|
|
488
|
+
entity.dropwizard.meter
|
|
489
|
+
entity.springboot.name
|
|
490
|
+
entity.kubernetes.node.name
|
|
491
|
+
entity.tuxedoapp.tuxedoService.name
|
|
492
|
+
entity.ace.integrationServer.name
|
|
493
|
+
entity.containerd.containerIdentity.tuxedo.domain.tuxconfig
|
|
494
|
+
entity.host.mac
|
|
495
|
+
```
|
|
496
|
+
- Query 2
|
|
497
|
+
```shell
|
|
498
|
+
Our application deployments seem to be failing intermittently.
|
|
499
|
+
Can you fetch recent Kubernetes info events events from Instana for last 1 day
|
|
500
|
+
to help identify what might be causing these deployment issues?
|
|
501
|
+
```
|
|
502
|
+
- Result 2
|
|
503
|
+

|
|
504
|
+
|
|
505
|
+
- Query 3
|
|
506
|
+
```shell
|
|
507
|
+
we are seeing errors in agent logs and experiencing some issue with agent behavior
|
|
508
|
+
Can you fetch recent agent monitoring events from Instana
|
|
509
|
+
to help figure out what might be causing these issues?
|
|
510
|
+
```
|
|
511
|
+
- Result 3
|
|
512
|
+
```shell
|
|
513
|
+
The recent agent monitoring events from Instana indicate that there are several issues with the agent behavior, including:
|
|
514
|
+
|
|
515
|
+
JVM attach generic issues: There are 36 events related to JVM attach generic issues, affecting multiple entities such as Process (/etc/java-8-64bit-jdk/jdk8u402-b06/bin/java), Process (/etc/java-16-64bit-jdk/jdk-16.0.2+7/bin/java), and others.
|
|
516
|
+
Python sensor not installed: There are 7 events related to Python sensor not installed issues, affecting entities such as Process (/usr/bin/python3), Process (/usr/libexec/platform-python), and others.
|
|
517
|
+
PostgreSQL authentication failed: There are 2 events related to PostgreSQL authentication failed issues, affecting entities such as PostgreSQL DB (PostgreSQL) and PostgreSQL DB (PostgreSQL @5432).
|
|
518
|
+
PostgreSQL connection failed: There is 1 event related to PostgreSQL connection failed issues, affecting the entity PostgreSQL DB (PostgreSQL @5432).
|
|
519
|
+
Spring Boot actuator not configured: There is 1 event related to Spring Boot actuator not configured issues, affecting the entity Spring Boot App (sqs-demo-application 0.0.1).
|
|
520
|
+
These issues may be causing the errors in the agent logs and affecting the agent behavior. It is recommended to investigate and resolve these issues to ensure proper agent functionality.
|
|
521
|
+
```
|
|
522
|
+
- Query 4
|
|
523
|
+
```shell
|
|
524
|
+
We're setting up comprehensive application performance monitoring across our entire infrastructure.
|
|
525
|
+
Can you retrieve all the applications that Instana has discovered? I need to see which applications are available
|
|
526
|
+
so I can configure monitoring dashboards, set up alerts, and establish performance baselines for each service in our environment.
|
|
527
|
+
```
|
|
528
|
+
- Result 4
|
|
529
|
+
|
|
530
|
+
```shell
|
|
531
|
+
The discovered applications are:
|
|
532
|
+
|
|
533
|
+
Ovcharov
|
|
534
|
+
AWS Resources
|
|
535
|
+
Cedric OTel
|
|
536
|
+
Cedric Sein Otel
|
|
537
|
+
Col
|
|
538
|
+
Damian - Sample Go App
|
|
539
|
+
Fofo
|
|
540
|
+
INSTANA-ECOSYSTEM-SAP-CF
|
|
541
|
+
Kate
|
|
542
|
+
```
|
|
543
|
+
- Query 5
|
|
544
|
+
```shell
|
|
545
|
+
We're investigating an issue for the snapshot id "qjNuS6pmtYkxCBKwqsfxvHylisU" and
|
|
546
|
+
want to see which hosts might be affected for this . Can you get the hosts for this snapshot id?
|
|
547
|
+
```
|
|
548
|
+
- Result 5
|
|
549
|
+
```shell
|
|
550
|
+
The hosts related to the snapshot with ID "qjNuS6pmtYkxCBKwqsfxvHylisU" are:
|
|
551
|
+
|
|
552
|
+
XDrSHZ5iq0BV_bPxQ6FFGsbxqv4
|
|
553
|
+
There is 1 host related to this snapshot.
|
|
554
|
+
```
|
|
555
|
+
- Query 6
|
|
556
|
+
```shell
|
|
557
|
+
We want to get specific metrics for Amazon MQ in INstana, Can you Show all possible tags
|
|
558
|
+
I can use for the plugin awsMq ?
|
|
559
|
+
```
|
|
560
|
+
- Result 6
|
|
561
|
+
|
|
562
|
+
```shell
|
|
563
|
+
|
|
564
|
+
The following tags are available for the plugin "awsMq":
|
|
565
|
+
|
|
566
|
+
aws.accountId
|
|
567
|
+
aws.arn
|
|
568
|
+
aws.mq.brokerName
|
|
569
|
+
aws.mq.deploymentMode
|
|
570
|
+
aws.mq.engineVersion
|
|
571
|
+
aws.mq.instanceType
|
|
572
|
+
dfq.selftype
|
|
573
|
+
dfq.type
|
|
574
|
+
label
|
|
575
|
+
metricId
|
|
576
|
+
type
|
|
577
|
+
zone
|
|
578
|
+
These tags can be used to filter and group metrics for Amazon MQ in Instana.
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
- Query 7
|
|
582
|
+
```shell
|
|
583
|
+
we want to troubleshoot issues with custom metric collection, hence need details of the
|
|
584
|
+
plugins which are configured with custom metrics in Instana,Can you help us get the details ?
|
|
585
|
+
```
|
|
586
|
+
- Result 7
|
|
587
|
+
|
|
588
|
+
```shell
|
|
589
|
+
JVM and OpenTelemetry SDK. The JVM plugin is identified by the label "JVM" and the plugin ID "jvmRuntimePlatform".
|
|
590
|
+
The OpenTelemetry SDK plugin is identified by the label "OpenTelemetry SDK" and the plugin ID "openTelemetry".
|
|
591
|
+
```
|
|
592
|
+
|
|
593
|
+
- Query 8
|
|
594
|
+
```shell
|
|
595
|
+
we want to see what kind of systems Instana is tracking , want to explore the monitoring
|
|
596
|
+
capabilities of our Instana installation, please give me the list of monitored entity types
|
|
597
|
+
```
|
|
598
|
+
- Result 8
|
|
599
|
+
```shell
|
|
600
|
+
The list includes various plugins such as businessActivity, azureManagedHSM, kafkaConnectWorker, and many more.
|
|
601
|
+
The total number of available plugins is 395, but only the first 50 are shown in the output.
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
- Query 9
|
|
605
|
+
```shell
|
|
606
|
+
We're having performance issues with our db2Database. What payload keys are available for the
|
|
607
|
+
db2Database plugin so I can access detailed monitoring data?
|
|
608
|
+
```
|
|
609
|
+
- Result 9
|
|
610
|
+
|
|
611
|
+
```shell
|
|
612
|
+
The available payload keys for the db2Database plugin are:
|
|
613
|
+
|
|
614
|
+
tableSpaceNamesSense
|
|
615
|
+
topqueries
|
|
616
|
+
diaglogentries
|
|
617
|
+
dbConfig
|
|
618
|
+
dbmConfig
|
|
619
|
+
lockWaits
|
|
620
|
+
runstats
|
|
621
|
+
dbutilities
|
|
622
|
+
toptotalstmts
|
|
623
|
+
idlogdiskwait
|
|
624
|
+
idhadrstats
|
|
625
|
+
reorgtablesize
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
- Query 10
|
|
629
|
+
```shell
|
|
630
|
+
We have SLAs for our cryptographic services. What Azure Managed HSM metrics can help
|
|
631
|
+
monitor service levels using azureManagedHSM plugin?
|
|
632
|
+
```
|
|
633
|
+
- Result 10
|
|
634
|
+
|
|
635
|
+
```shell
|
|
636
|
+
The azureManagedHSM plugin provides three metrics that can help monitor service levels for cryptographic services:
|
|
637
|
+
1. Total Service Api Hits: This metric measures the total number of API hits for the service.
|
|
638
|
+
2. Overall Service Api Latency: This metric measures the overall latency of service API requests.
|
|
639
|
+
3. Overall Service Availability: This metric measures the availability of the service.
|
|
640
|
+
```
|
|
641
|
+
|
|
642
|
+
## Troubleshooting
|
|
643
|
+
|
|
644
|
+
- Dependency Version Conflicts
|
|
645
|
+
- If you encounter version conflicts during `pip install -r requirements.txt` for any of the packages try updating to latest versions via `pip install --upgrade -r requirements.txt` or manually update conflicting package versions in requirements.txt
|
|
646
|
+
|
|
647
|
+
- Github Copilot
|
|
648
|
+
- If you encounter any issues with Github Copilot, try start/stop/restart the server in `mcp.json` file and try to keep any one server at a time.
|
|
649
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
src/client/What is the sum of queue depth for all q,sha256=Ya_mffnaM8lWf5S54GObgeelp-iPtPGaU5eknT94x64,5564
|
|
3
|
+
src/client/application_alert_config_mcp_tools.py,sha256=OwAE7JXD-Nf2TWy5Y9XoIZPXqcZK0j-Xy4DA57BxlEM,31316
|
|
4
|
+
src/client/application_metrics_mcp_tools.py,sha256=rKPOZ12rHBtCqJUr8E5URM5_DOnb1yeGtkYRE2dvICc,16294
|
|
5
|
+
src/client/application_resources_mcp_tools.py,sha256=lJe1JL70sS0FOvB2RMiRU_Y9F2QX_GRQVNgWeWWBq1U,19076
|
|
6
|
+
src/client/events_mcp_tools.py,sha256=U9Ltkavjflz7LWaItODZYDeSrtUycwgYXVWDLLxmH5Y,26663
|
|
7
|
+
src/client/infrastructure_analyze_mcp_tools.py,sha256=EbpKCOh3P36iClyb2p3qyg5xiJR2EKyHtXxElGGjMgs,30326
|
|
8
|
+
src/client/infrastructure_catalog_mcp_tools.py,sha256=rwokyguCa_5pGDue_aNhobBlNTcvQO99QyXbP__K3uU,31502
|
|
9
|
+
src/client/infrastructure_resources_mcp_tools.py,sha256=TWjUE9PaSPotUuMWzUllbFkBO3b-XbiFo680pq8LirA,30735
|
|
10
|
+
src/client/infrastructure_topology_mcp_tools.py,sha256=_lc9H6JbJO3qOG64jFtfdm6sFfaEsUCEheCMlw1n1kw,15334
|
|
11
|
+
src/client/instana_client_base.py,sha256=Grc8rLq0ZA7pbhczZfH6NNsKS3KAyhVXThDUXkGC5dc,3620
|
|
12
|
+
src/client/log_alert_configuration_mcp_tools.py,sha256=R1v_pEMKCNryHynLovcNh-z4OBmZRIwGxe3x8vg29Jo,13267
|
|
13
|
+
src/client/show the top 5 services with the highest,sha256=lKQ2ULcBtP1K4DxZYrzfySgA-5cTy5Ng0eiDV9raYZM,3433
|
|
14
|
+
src/mcp_server.py,sha256=qFfTTULjxzNk4Ryii3QQK6FivRlX_5wDC3yvtxVYB3I,13497
|
|
15
|
+
mcp_instana-0.1.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
16
|
+
mcp_instana-0.1.0.dist-info/METADATA,sha256=UWfRyf5JuMdyIoNEhTUO0y75IzdHX_AmWUuu6nJStxA,25907
|
|
17
|
+
mcp_instana-0.1.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
18
|
+
mcp_instana-0.1.0.dist-info/entry_points.txt,sha256=Ct-3wKWErkkx8mXN3_ZmdyUx9qap9hYoWv2dfAAFu00,51
|
|
19
|
+
mcp_instana-0.1.0.dist-info/RECORD,,
|
src/__init__.py
ADDED
|
File without changes
|