mcp-instana 0.1.1__py3-none-any.whl → 0.2.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.1.dist-info → mcp_instana-0.2.0.dist-info}/METADATA +459 -138
- mcp_instana-0.2.0.dist-info/RECORD +59 -0
- src/application/application_analyze.py +373 -160
- src/application/application_catalog.py +3 -1
- src/application/application_global_alert_config.py +653 -0
- src/application/application_metrics.py +6 -2
- src/application/application_resources.py +3 -1
- src/application/application_settings.py +966 -370
- src/application/application_topology.py +6 -2
- src/automation/action_catalog.py +416 -0
- src/automation/action_history.py +338 -0
- src/core/server.py +159 -9
- src/core/utils.py +2 -2
- src/event/events_tools.py +602 -275
- src/infrastructure/infrastructure_analyze.py +7 -3
- src/infrastructure/infrastructure_catalog.py +3 -1
- src/infrastructure/infrastructure_metrics.py +6 -2
- src/infrastructure/infrastructure_resources.py +7 -5
- src/infrastructure/infrastructure_topology.py +5 -3
- src/prompts/__init__.py +16 -0
- src/prompts/application/__init__.py +1 -0
- src/prompts/application/application_alerts.py +54 -0
- src/prompts/application/application_catalog.py +26 -0
- src/prompts/application/application_metrics.py +57 -0
- src/prompts/application/application_resources.py +26 -0
- src/prompts/application/application_settings.py +75 -0
- src/prompts/application/application_topology.py +30 -0
- src/prompts/events/__init__.py +1 -0
- src/prompts/events/events_tools.py +161 -0
- src/prompts/infrastructure/infrastructure_analyze.py +72 -0
- src/prompts/infrastructure/infrastructure_catalog.py +53 -0
- src/prompts/infrastructure/infrastructure_metrics.py +45 -0
- src/prompts/infrastructure/infrastructure_resources.py +74 -0
- src/prompts/infrastructure/infrastructure_topology.py +38 -0
- src/prompts/settings/__init__.py +0 -0
- src/prompts/settings/custom_dashboard.py +157 -0
- src/prompts/website/__init__.py +1 -0
- src/prompts/website/website_analyze.py +35 -0
- src/prompts/website/website_catalog.py +40 -0
- src/prompts/website/website_configuration.py +105 -0
- src/prompts/website/website_metrics.py +34 -0
- src/settings/__init__.py +1 -0
- src/settings/custom_dashboard_tools.py +417 -0
- src/website/__init__.py +0 -0
- src/website/website_analyze.py +433 -0
- src/website/website_catalog.py +171 -0
- src/website/website_configuration.py +770 -0
- src/website/website_metrics.py +241 -0
- mcp_instana-0.1.1.dist-info/RECORD +0 -30
- src/prompts/mcp_prompts.py +0 -900
- src/prompts/prompt_loader.py +0 -29
- src/prompts/prompt_registry.json +0 -21
- {mcp_instana-0.1.1.dist-info → mcp_instana-0.2.0.dist-info}/WHEEL +0 -0
- {mcp_instana-0.1.1.dist-info → mcp_instana-0.2.0.dist-info}/entry_points.txt +0 -0
- {mcp_instana-0.1.1.dist-info → mcp_instana-0.2.0.dist-info}/licenses/LICENSE.md +0 -0
|
@@ -1,124 +1,24 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcp-instana
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: MCP server for Instana
|
|
5
5
|
Author-email: Elina Priyadarshinee <Elina.priyadarshinee1@ibm.com>, Guangya Liu <gyliu@ibm.com>, Isabell Sippli <ischwert@de.ibm.com>, Jay Sharma <Jay.Sharma3@ibm.com>, Madhu Tadiparthi <madhu.tadiparthi@ibm.com>, Riya Kumari <Riya.Kumari3@ibm.com>
|
|
6
6
|
License: Apache-2.0
|
|
7
7
|
License-File: LICENSE.md
|
|
8
8
|
Requires-Python: >=3.11
|
|
9
|
-
Requires-Dist: accelerate==1.6.0
|
|
10
|
-
Requires-Dist: aiohappyeyeballs==2.6.1
|
|
11
|
-
Requires-Dist: aiohttp==3.12.14
|
|
12
|
-
Requires-Dist: aiosignal==1.4.0
|
|
13
|
-
Requires-Dist: altair==5.5.0
|
|
14
|
-
Requires-Dist: annotated-types==0.7.0
|
|
15
|
-
Requires-Dist: anyio==4.9.0
|
|
16
|
-
Requires-Dist: attrs==25.3.0
|
|
17
|
-
Requires-Dist: blinker==1.9.0
|
|
18
|
-
Requires-Dist: cachetools==5.5.2
|
|
19
|
-
Requires-Dist: certifi==2025.1.31
|
|
20
|
-
Requires-Dist: charset-normalizer==3.4.1
|
|
21
|
-
Requires-Dist: click==8.1.8
|
|
22
|
-
Requires-Dist: coverage>=7.10.1
|
|
23
|
-
Requires-Dist: dataclasses-json==0.6.7
|
|
24
|
-
Requires-Dist: fastapi==0.116.1
|
|
25
9
|
Requires-Dist: fastmcp==2.10.3
|
|
26
|
-
Requires-Dist: filelock==3.18.0
|
|
27
|
-
Requires-Dist: frozenlist==1.5.0
|
|
28
|
-
Requires-Dist: fsspec==2025.3.2
|
|
29
|
-
Requires-Dist: gitdb==4.0.12
|
|
30
|
-
Requires-Dist: gitpython==3.1.44
|
|
31
|
-
Requires-Dist: h11==0.16.0
|
|
32
|
-
Requires-Dist: httpcore==1.0.9
|
|
33
|
-
Requires-Dist: httpx-sse==0.4.0
|
|
34
|
-
Requires-Dist: httpx==0.28.1
|
|
35
|
-
Requires-Dist: huggingface-hub==0.33.2
|
|
36
|
-
Requires-Dist: ibm-cos-sdk-core==2.14.2
|
|
37
|
-
Requires-Dist: ibm-cos-sdk-s3transfer==2.14.2
|
|
38
|
-
Requires-Dist: ibm-cos-sdk==2.14.2
|
|
39
|
-
Requires-Dist: ibm-watsonx-ai==1.3.26
|
|
40
|
-
Requires-Dist: idna==3.10
|
|
41
10
|
Requires-Dist: instana-client==1.0.0
|
|
42
|
-
Requires-Dist: jinja2==3.1.6
|
|
43
|
-
Requires-Dist: jmespath==1.0.1
|
|
44
|
-
Requires-Dist: jsonpatch==1.33
|
|
45
|
-
Requires-Dist: jsonpointer==3.0.0
|
|
46
|
-
Requires-Dist: jsonschema-pydantic==0.6
|
|
47
|
-
Requires-Dist: jsonschema-specifications==2024.10.1
|
|
48
|
-
Requires-Dist: jsonschema==4.24.0
|
|
49
|
-
Requires-Dist: langchain-community==0.3.21
|
|
50
|
-
Requires-Dist: langchain-core==0.3.51
|
|
51
|
-
Requires-Dist: langchain-ibm==0.3.13
|
|
52
|
-
Requires-Dist: langchain-text-splitters==0.3.8
|
|
53
|
-
Requires-Dist: langchain==0.3.23
|
|
54
|
-
Requires-Dist: langsmith==0.3.30
|
|
55
|
-
Requires-Dist: lomond==0.3.3
|
|
56
|
-
Requires-Dist: markdown-it-py==3.0.0
|
|
57
|
-
Requires-Dist: markupsafe==3.0.2
|
|
58
|
-
Requires-Dist: marshmallow==3.26.1
|
|
59
|
-
Requires-Dist: mcp==1.10.1
|
|
60
|
-
Requires-Dist: mdurl==0.1.2
|
|
61
|
-
Requires-Dist: mpmath==1.3.0
|
|
62
|
-
Requires-Dist: multidict==6.4.3
|
|
63
|
-
Requires-Dist: mypy-extensions==1.0.0
|
|
64
|
-
Requires-Dist: narwhals==1.34.1
|
|
65
|
-
Requires-Dist: nest-asyncio==1.6.0
|
|
66
|
-
Requires-Dist: networkx==3.4.2
|
|
67
|
-
Requires-Dist: numpy==2.2.4
|
|
68
|
-
Requires-Dist: orjson==3.10.16
|
|
69
|
-
Requires-Dist: packaging==24.2
|
|
70
|
-
Requires-Dist: pandas==2.2.3
|
|
71
|
-
Requires-Dist: propcache==0.3.1
|
|
72
|
-
Requires-Dist: protobuf==5.29.5
|
|
73
|
-
Requires-Dist: psutil==7.0.0
|
|
74
|
-
Requires-Dist: pyarrow==19.0.1
|
|
75
|
-
Requires-Dist: pydantic-core==2.33.2
|
|
76
|
-
Requires-Dist: pydantic-settings==2.10.1
|
|
77
11
|
Requires-Dist: pydantic==2.11.7
|
|
78
|
-
Requires-Dist: pydeck==0.9.1
|
|
79
|
-
Requires-Dist: pygments==2.19.1
|
|
80
|
-
Requires-Dist: pytest-asyncio>=1.1.0
|
|
81
|
-
Requires-Dist: pytest-cov>=6.2.1
|
|
82
|
-
Requires-Dist: pytest-mock>=3.14.1
|
|
83
|
-
Requires-Dist: pytest>=8.4.1
|
|
84
|
-
Requires-Dist: python-dateutil==2.9.0.post0
|
|
85
12
|
Requires-Dist: python-dotenv==1.1.0
|
|
86
|
-
Requires-Dist: pytz==2025.2
|
|
87
|
-
Requires-Dist: pyyaml==6.0.2
|
|
88
|
-
Requires-Dist: referencing==0.36.2
|
|
89
|
-
Requires-Dist: regex==2024.11.6
|
|
90
|
-
Requires-Dist: requests-toolbelt==1.0.0
|
|
91
13
|
Requires-Dist: requests==2.32.4
|
|
92
|
-
|
|
93
|
-
Requires-Dist:
|
|
94
|
-
Requires-Dist:
|
|
95
|
-
Requires-Dist:
|
|
96
|
-
Requires-Dist:
|
|
97
|
-
Requires-Dist:
|
|
98
|
-
Requires-Dist:
|
|
99
|
-
Requires-Dist:
|
|
100
|
-
Requires-Dist: sqlalchemy==2.0.40
|
|
101
|
-
Requires-Dist: sse-starlette==2.2.1
|
|
102
|
-
Requires-Dist: starlette==0.47.2
|
|
103
|
-
Requires-Dist: streamlit==1.44.1
|
|
104
|
-
Requires-Dist: sympy==1.13.1
|
|
105
|
-
Requires-Dist: tabulate==0.9.0
|
|
106
|
-
Requires-Dist: tenacity==9.1.2
|
|
107
|
-
Requires-Dist: tokenizers==0.21.1
|
|
108
|
-
Requires-Dist: toml==0.10.2
|
|
109
|
-
Requires-Dist: tornado==6.5
|
|
110
|
-
Requires-Dist: tqdm==4.67.1
|
|
111
|
-
Requires-Dist: transformers==4.53.1
|
|
112
|
-
Requires-Dist: typer==0.15.2
|
|
113
|
-
Requires-Dist: typing-extensions==4.13.2
|
|
114
|
-
Requires-Dist: typing-inspect==0.9.0
|
|
115
|
-
Requires-Dist: typing-inspection==0.4.0
|
|
116
|
-
Requires-Dist: tzdata==2025.2
|
|
117
|
-
Requires-Dist: urllib3==2.5.0
|
|
118
|
-
Requires-Dist: uv==0.8.6
|
|
119
|
-
Requires-Dist: uvicorn==0.35.0
|
|
120
|
-
Requires-Dist: yarl==1.19.0
|
|
121
|
-
Requires-Dist: zstandard==0.23.0
|
|
14
|
+
Provides-Extra: dev
|
|
15
|
+
Requires-Dist: coverage>=7.10.1; extra == 'dev'
|
|
16
|
+
Requires-Dist: pytest-asyncio>=1.1.0; extra == 'dev'
|
|
17
|
+
Requires-Dist: pytest-cov>=6.2.1; extra == 'dev'
|
|
18
|
+
Requires-Dist: pytest-mock>=3.14.1; extra == 'dev'
|
|
19
|
+
Requires-Dist: pytest>=8.4.1; extra == 'dev'
|
|
20
|
+
Requires-Dist: ruff==0.5.0; extra == 'dev'
|
|
21
|
+
Requires-Dist: uv==0.8.6; extra == 'dev'
|
|
122
22
|
Description-Content-Type: text/markdown
|
|
123
23
|
|
|
124
24
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
|
@@ -129,14 +29,24 @@ Description-Content-Type: text/markdown
|
|
|
129
29
|
- [Architecture Overview](#architecture-overview)
|
|
130
30
|
- [Workflow](#workflow)
|
|
131
31
|
- [Prerequisites](#prerequisites)
|
|
132
|
-
- [
|
|
133
|
-
- [
|
|
32
|
+
- [Option 1: Install from PyPI (Recommended)](#option-1-install-from-pypi-recommended)
|
|
33
|
+
- [Option 2: Development Installation](#option-2-development-installation)
|
|
34
|
+
- [Installing uv](#installing-uv)
|
|
35
|
+
- [Setting Up the Environment](#setting-up-the-environment)
|
|
134
36
|
- [Header-Based Authentication for Streamable HTTP Mode](#header-based-authentication-for-streamable-http-mode)
|
|
135
37
|
- [Starting the Local MCP Server](#starting-the-local-mcp-server)
|
|
136
38
|
- [Server Command Options](#server-command-options)
|
|
39
|
+
- [Using the CLI (PyPI Installation)](#using-the-cli-pypi-installation)
|
|
40
|
+
- [Using Development Installation](#using-development-installation)
|
|
137
41
|
- [Starting in Streamable HTTP Mode](#starting-in-streamable-http-mode)
|
|
42
|
+
- [Using CLI (PyPI Installation)](#using-cli-pypi-installation)
|
|
43
|
+
- [Using Development Installation](#using-development-installation-1)
|
|
138
44
|
- [Starting in Stdio Mode](#starting-in-stdio-mode)
|
|
45
|
+
- [Using CLI (PyPI Installation)](#using-cli-pypi-installation-1)
|
|
46
|
+
- [Using Development Installation](#using-development-installation-2)
|
|
139
47
|
- [Tool Categories](#tool-categories)
|
|
48
|
+
- [Using CLI (PyPI Installation)](#using-cli-pypi-installation-2)
|
|
49
|
+
- [Using Development Installation](#using-development-installation-3)
|
|
140
50
|
- [Verifying Server Status](#verifying-server-status)
|
|
141
51
|
- [Common Startup Issues](#common-startup-issues)
|
|
142
52
|
- [Setup and Usage](#setup-and-usage)
|
|
@@ -151,9 +61,38 @@ Description-Content-Type: text/markdown
|
|
|
151
61
|
- [Tool Filtering](#tool-filtering)
|
|
152
62
|
- [Available Tool Categories](#available-tool-categories)
|
|
153
63
|
- [Usage Examples](#usage-examples)
|
|
64
|
+
- [Using CLI (PyPI Installation)](#using-cli-pypi-installation-3)
|
|
65
|
+
- [Using Development Installation](#using-development-installation-4)
|
|
154
66
|
- [Benefits of Tool Filtering](#benefits-of-tool-filtering)
|
|
155
67
|
- [Example Prompts](#example-prompts)
|
|
68
|
+
- [Docker Deployment](#docker-deployment)
|
|
69
|
+
- [Docker Architecture](#docker-architecture)
|
|
70
|
+
- [**pyproject.toml** (Development)](#pyprojecttoml-development)
|
|
71
|
+
- [**pyproject-runtime.toml** (Production)](#pyproject-runtimetoml-production)
|
|
72
|
+
- [Building the Docker Image](#building-the-docker-image)
|
|
73
|
+
- [**Prerequisites**](#prerequisites-1)
|
|
74
|
+
- [**Build Command**](#build-command)
|
|
75
|
+
- [**What the Build Does**](#what-the-build-does)
|
|
76
|
+
- [Running the Docker Container](#running-the-docker-container)
|
|
77
|
+
- [**Basic Usage**](#basic-usage)
|
|
78
|
+
- [**Environment Variables**](#environment-variables)
|
|
79
|
+
- [**Docker Compose Example**](#docker-compose-example)
|
|
80
|
+
- [Docker Security Features](#docker-security-features)
|
|
81
|
+
- [**Security Best Practices Implemented**](#security-best-practices-implemented)
|
|
82
|
+
- [**Image Size Optimization**](#image-size-optimization)
|
|
83
|
+
- [Testing the Docker Container](#testing-the-docker-container)
|
|
84
|
+
- [**Health Check**](#health-check)
|
|
85
|
+
- [**MCP Inspector Testing**](#mcp-inspector-testing)
|
|
86
|
+
- [**Logs and Debugging**](#logs-and-debugging)
|
|
87
|
+
- [Production Deployment](#production-deployment)
|
|
88
|
+
- [**Recommended Production Setup**](#recommended-production-setup)
|
|
89
|
+
- [**Kubernetes Example**](#kubernetes-example)
|
|
156
90
|
- [Troubleshooting](#troubleshooting)
|
|
91
|
+
- [**Docker Issues**](#docker-issues)
|
|
92
|
+
- [**Container Won't Start**](#container-wont-start)
|
|
93
|
+
- [**Connection Issues**](#connection-issues)
|
|
94
|
+
- [**Performance Issues**](#performance-issues)
|
|
95
|
+
- [**General Issues**](#general-issues)
|
|
157
96
|
|
|
158
97
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
|
159
98
|
|
|
@@ -234,7 +173,21 @@ sequenceDiagram
|
|
|
234
173
|
|
|
235
174
|
## Prerequisites
|
|
236
175
|
|
|
237
|
-
###
|
|
176
|
+
### Option 1: Install from PyPI (Recommended)
|
|
177
|
+
|
|
178
|
+
The easiest way to use mcp-instana is to install it directly from PyPI:
|
|
179
|
+
|
|
180
|
+
```shell
|
|
181
|
+
pip install mcp-instana
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
After installation, you can run the server using the `mcp-instana` command directly.
|
|
185
|
+
|
|
186
|
+
### Option 2: Development Installation
|
|
187
|
+
|
|
188
|
+
For development or local customization, you can clone and set up the project locally.
|
|
189
|
+
|
|
190
|
+
#### Installing uv
|
|
238
191
|
|
|
239
192
|
This project uses `uv`, a fast Python package installer and resolver. To install `uv`, you have several options:
|
|
240
193
|
|
|
@@ -250,7 +203,7 @@ brew install uv
|
|
|
250
203
|
|
|
251
204
|
For more installation options and detailed instructions, visit the [uv documentation](https://github.com/astral-sh/uv).
|
|
252
205
|
|
|
253
|
-
|
|
206
|
+
#### Setting Up the Environment
|
|
254
207
|
|
|
255
208
|
After installing `uv`, set up the project environment by running:
|
|
256
209
|
|
|
@@ -282,7 +235,17 @@ Before configuring any MCP client (Claude Desktop, GitHub Copilot, or custom MCP
|
|
|
282
235
|
|
|
283
236
|
### Server Command Options
|
|
284
237
|
|
|
285
|
-
|
|
238
|
+
#### Using the CLI (PyPI Installation)
|
|
239
|
+
|
|
240
|
+
If you installed mcp-instana from PyPI, use the `mcp-instana` command:
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
mcp-instana [OPTIONS]
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
#### Using Development Installation
|
|
247
|
+
|
|
248
|
+
For local development, use the `uv run` command:
|
|
286
249
|
|
|
287
250
|
```bash
|
|
288
251
|
uv run src/core/server.py [OPTIONS]
|
|
@@ -292,14 +255,35 @@ uv run src/core/server.py [OPTIONS]
|
|
|
292
255
|
- `--transport <mode>`: Transport mode (choices: `streamable-http`, `stdio`)
|
|
293
256
|
- `--debug`: Enable debug mode with additional logging
|
|
294
257
|
- `--log-level <level>`: Set the logging level (choices: `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL`)
|
|
295
|
-
- `--tools <categories>`: Comma-separated list of tool categories to enable (e.g.,
|
|
258
|
+
- `--tools <categories>`: Comma-separated list of tool categories to enable (e.g., infra,app,events,automation,website). Enabling a category will also enable its related prompts. For example: `--tools infra` enables the infra tools and all infra-related prompts.
|
|
296
259
|
- `--list-tools`: List all available tool categories and exit
|
|
297
|
-
- `--port <port>`: Port to listen on (default:
|
|
260
|
+
- `--port <port>`: Port to listen on (default: 8080)
|
|
298
261
|
- `--help`: Show help message and exit
|
|
299
262
|
|
|
300
263
|
### Starting in Streamable HTTP Mode
|
|
301
264
|
|
|
302
|
-
**Streamable HTTP mode** provides a REST API interface and is recommended for most use cases
|
|
265
|
+
**Streamable HTTP mode** provides a REST API interface and is recommended for most use cases.
|
|
266
|
+
|
|
267
|
+
#### Using CLI (PyPI Installation)
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
# Start with all tools enabled (default)
|
|
271
|
+
mcp-instana --transport streamable-http
|
|
272
|
+
|
|
273
|
+
# Start with debug logging
|
|
274
|
+
mcp-instana --transport streamable-http --debug
|
|
275
|
+
|
|
276
|
+
# Start with a specific log level
|
|
277
|
+
mcp-instana --transport streamable-http --log-level WARNING
|
|
278
|
+
|
|
279
|
+
# Start with specific tool categories only
|
|
280
|
+
mcp-instana --transport streamable-http --tools infra,events
|
|
281
|
+
|
|
282
|
+
# Combine options (specific log level, custom tools)
|
|
283
|
+
mcp-instana --transport streamable-http --log-level DEBUG --tools app,events
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
#### Using Development Installation
|
|
303
287
|
|
|
304
288
|
```bash
|
|
305
289
|
# Start with all tools enabled (default)
|
|
@@ -311,10 +295,10 @@ uv run src/core/server.py --transport streamable-http --debug
|
|
|
311
295
|
# Start with a specific log level
|
|
312
296
|
uv run src/core/server.py --transport streamable-http --log-level WARNING
|
|
313
297
|
|
|
314
|
-
# Start with specific tool categories only
|
|
298
|
+
# Start with specific tool and prompts categories only
|
|
315
299
|
uv run src/core/server.py --transport streamable-http --tools infra,events
|
|
316
300
|
|
|
317
|
-
# Combine options (specific log level, custom tools)
|
|
301
|
+
# Combine options (specific log level, custom tools and prompts)
|
|
318
302
|
uv run src/core/server.py --transport streamable-http --log-level DEBUG --tools app,events
|
|
319
303
|
```
|
|
320
304
|
|
|
@@ -322,12 +306,28 @@ uv run src/core/server.py --transport streamable-http --log-level DEBUG --tools
|
|
|
322
306
|
- Uses HTTP headers for authentication (no environment variables needed)
|
|
323
307
|
- Supports different credentials per request
|
|
324
308
|
- Better suited for shared environments
|
|
325
|
-
- Default port:
|
|
326
|
-
- Endpoint: `http://0.0.0.0:
|
|
309
|
+
- Default port: 8080
|
|
310
|
+
- Endpoint: `http://0.0.0.0:8080/mcp/`
|
|
327
311
|
|
|
328
312
|
### Starting in Stdio Mode
|
|
329
313
|
|
|
330
|
-
**Stdio mode** uses standard input/output for communication and requires environment variables for authentication
|
|
314
|
+
**Stdio mode** uses standard input/output for communication and requires environment variables for authentication.
|
|
315
|
+
|
|
316
|
+
#### Using CLI (PyPI Installation)
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
# Set environment variables first
|
|
320
|
+
export INSTANA_BASE_URL="https://your-instana-instance.instana.io"
|
|
321
|
+
export INSTANA_API_TOKEN="your_instana_api_token"
|
|
322
|
+
|
|
323
|
+
# Start the server (stdio is the default if no transport specified)
|
|
324
|
+
mcp-instana
|
|
325
|
+
|
|
326
|
+
# Or explicitly specify stdio mode
|
|
327
|
+
mcp-instana --transport stdio
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
#### Using Development Installation
|
|
331
331
|
|
|
332
332
|
```bash
|
|
333
333
|
# Set environment variables first
|
|
@@ -348,7 +348,20 @@ uv run src/core/server.py --transport stdio
|
|
|
348
348
|
|
|
349
349
|
### Tool Categories
|
|
350
350
|
|
|
351
|
-
You can optimize server performance by enabling only the
|
|
351
|
+
You can optimize server performance by enabling only the tools and prompts categories you need:
|
|
352
|
+
|
|
353
|
+
#### Using CLI (PyPI Installation)
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
# List all available categories
|
|
357
|
+
mcp-instana --list-tools
|
|
358
|
+
|
|
359
|
+
# Enable specific categories
|
|
360
|
+
mcp-instana --transport streamable-http --tools infra,app
|
|
361
|
+
mcp-instana --transport streamable-http --tools events
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
#### Using Development Installation
|
|
352
365
|
|
|
353
366
|
```bash
|
|
354
367
|
# List all available categories
|
|
@@ -360,9 +373,11 @@ uv run src/core/server.py --transport streamable-http --tools events
|
|
|
360
373
|
```
|
|
361
374
|
|
|
362
375
|
**Available Categories:**
|
|
363
|
-
- **`infra`**: Infrastructure monitoring tools (resources, catalog, topology, analyze, metrics)
|
|
364
|
-
- **`app`**: Application performance tools (resources, metrics, alerts, catalog, topology, analyze)
|
|
365
|
-
- **`events`**: Event monitoring tools (Kubernetes events, agent monitoring)
|
|
376
|
+
- **`infra`**: Infrastructure monitoring tools and prompts (resources, catalog, topology, analyze, metrics)
|
|
377
|
+
- **`app`**: Application performance tools and prompts (resources, metrics, alerts, catalog, topology, analyze, settings, global alerts)
|
|
378
|
+
- **`events`**: Event monitoring tools and prompts (Kubernetes events, agent monitoring)
|
|
379
|
+
- **`automation`**: Automation-related tools and prompts (action catalog, action history)
|
|
380
|
+
- **`website`**: Website monitoring tools and prompts (metrics, catalog, analyze, configuration)
|
|
366
381
|
|
|
367
382
|
### Verifying Server Status
|
|
368
383
|
|
|
@@ -371,7 +386,7 @@ Once started, you can verify the server is running:
|
|
|
371
386
|
**For Streamable HTTP mode:**
|
|
372
387
|
```bash
|
|
373
388
|
# Check server health
|
|
374
|
-
curl http://0.0.0.0:
|
|
389
|
+
curl http://0.0.0.0:8080/mcp/
|
|
375
390
|
|
|
376
391
|
# Or with custom port
|
|
377
392
|
curl http://0.0.0.0:9000/mcp/
|
|
@@ -390,7 +405,7 @@ If you encounter SSL certificate errors, ensure your Python environment has acce
|
|
|
390
405
|
```
|
|
391
406
|
|
|
392
407
|
**Port Already in Use:**
|
|
393
|
-
If port
|
|
408
|
+
If port 8080 is already in use, specify a different port:
|
|
394
409
|
```bash
|
|
395
410
|
uv run src/core/server.py --transport streamable-http --port 9000
|
|
396
411
|
```
|
|
@@ -431,7 +446,8 @@ Configure Claude Desktop to pass Instana credentials via headers:
|
|
|
431
446
|
"Instana MCP Server": {
|
|
432
447
|
"command": "npx",
|
|
433
448
|
"args": [
|
|
434
|
-
|
|
449
|
+
"mcp-remote", "http://0.0.0.0:8080/mcp/",
|
|
450
|
+
"--allow-http",
|
|
435
451
|
"--header", "instana-base-url: https://your-instana-instance.instana.io",
|
|
436
452
|
"--header", "instana-api-token: your_instana_api_token"
|
|
437
453
|
]
|
|
@@ -458,7 +474,26 @@ get me all endpoints from Instana
|
|
|
458
474
|
|
|
459
475
|
#### Stdio Mode
|
|
460
476
|
|
|
461
|
-
**Configuration:**
|
|
477
|
+
**Configuration using CLI (PyPI Installation - Recommended):**
|
|
478
|
+
|
|
479
|
+
```json
|
|
480
|
+
{
|
|
481
|
+
"mcpServers": {
|
|
482
|
+
"Instana MCP Server": {
|
|
483
|
+
"command": "mcp-instana",
|
|
484
|
+
"args": ["--transport", "stdio"],
|
|
485
|
+
"env": {
|
|
486
|
+
"INSTANA_BASE_URL": "https://your-instana-instance.instana.io",
|
|
487
|
+
"INSTANA_API_TOKEN": "your_instana_api_token"
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
**Note:** If you encounter "command not found" errors, use the full path to mcp-instana. Find it with `which mcp-instana` and use that path instead.
|
|
495
|
+
|
|
496
|
+
**Configuration using Development Installation:**
|
|
462
497
|
|
|
463
498
|
```json
|
|
464
499
|
{
|
|
@@ -503,7 +538,8 @@ You can directly create or update `.vscode/mcp.json` with the following configur
|
|
|
503
538
|
"Instana MCP Server": {
|
|
504
539
|
"command": "npx",
|
|
505
540
|
"args": [
|
|
506
|
-
"mcp-remote", "http://0.0.0.0:
|
|
541
|
+
"mcp-remote", "http://0.0.0.0:8080/mcp/",
|
|
542
|
+
"--allow-http",
|
|
507
543
|
"--header", "instana-base-url: https://your-instana-instance.instana.io",
|
|
508
544
|
"--header", "instana-api-token: your_instana_api_token"
|
|
509
545
|
],
|
|
@@ -527,6 +563,27 @@ You can directly create or update `.vscode/mcp.json` with the following configur
|
|
|
527
563
|
|
|
528
564
|
**Step 1: Create VS Code MCP Configuration**
|
|
529
565
|
|
|
566
|
+
**Using CLI (PyPI Installation - Recommended):**
|
|
567
|
+
|
|
568
|
+
Create `.vscode/mcp.json` in your project root:
|
|
569
|
+
|
|
570
|
+
```json:.vscode/mcp.json
|
|
571
|
+
{
|
|
572
|
+
"servers": {
|
|
573
|
+
"Instana MCP Server": {
|
|
574
|
+
"command": "mcp-instana",
|
|
575
|
+
"args": ["--transport", "stdio"],
|
|
576
|
+
"env": {
|
|
577
|
+
"INSTANA_BASE_URL": "https://your-instana-instance.instana.io",
|
|
578
|
+
"INSTANA_API_TOKEN": "your_instana_api_token"
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
```
|
|
584
|
+
|
|
585
|
+
**Using Development Installation:**
|
|
586
|
+
|
|
530
587
|
Create `.vscode/mcp.json` in your project root:
|
|
531
588
|
|
|
532
589
|
```json:.vscode/mcp.json
|
|
@@ -550,8 +607,10 @@ Create `.vscode/mcp.json` in your project root:
|
|
|
550
607
|
```
|
|
551
608
|
|
|
552
609
|
**Note:** Replace the following values with your actual configuration:
|
|
553
|
-
-
|
|
554
|
-
-
|
|
610
|
+
- For CLI installation: Ensure `mcp-instana` is in your PATH
|
|
611
|
+
- For development installation:
|
|
612
|
+
- `command`: Update the uv path to match your system's uv installation (e.g., `/path/to/your/uv/bin/uv` or `/usr/local/bin/uv`)
|
|
613
|
+
- `--directory`: Update with the absolute path to your mcp-instana project directory
|
|
555
614
|
- `INSTANA_BASE_URL`: Your Instana instance URL
|
|
556
615
|
- `INSTANA_API_TOKEN`: Your Instana API token
|
|
557
616
|
|
|
@@ -617,12 +676,15 @@ Here is an example of a GitHub Copilot response:
|
|
|
617
676
|
- [x] Infrastructure Topology
|
|
618
677
|
- [x] Get Hosts for Snapshot
|
|
619
678
|
- [x] Get Topology
|
|
620
|
-
- [
|
|
621
|
-
- [
|
|
622
|
-
- [
|
|
679
|
+
- [x] Events
|
|
680
|
+
- [x] Events
|
|
681
|
+
- [x] Get Event
|
|
623
682
|
- [x] Get Events by IDs
|
|
624
683
|
- [x] Get Agent Monitoring Events
|
|
625
684
|
- [x] Get Kubernetes Info Events
|
|
685
|
+
- [x] Get Issues
|
|
686
|
+
- [x] Get Incidents
|
|
687
|
+
- [x] Get Changes
|
|
626
688
|
|
|
627
689
|
## Available Tools
|
|
628
690
|
|
|
@@ -665,9 +727,14 @@ Here is an example of a GitHub Copilot response:
|
|
|
665
727
|
| `enable_application_alert_config` | Application Alert Configuration| Enable Application Alert Config |
|
|
666
728
|
| `disable_application_alert_config` | Application Alert Configuration| Disable Smart Alert Config |
|
|
667
729
|
| `restore_application_alert_config` | Application Alert Configuration| Restore Smart Alert Config |
|
|
668
|
-
| `get_event` | Events | Get
|
|
730
|
+
| `get_event` | Events | Get Specific Event by ID |
|
|
669
731
|
| `get_kubernetes_info_events` | Events | Get Kubernetes Info Events |
|
|
670
732
|
| `get_agent_monitoring_events` | Events | Get Agent Monitoring Events |
|
|
733
|
+
| `get_issues` | Events | Get Issues |
|
|
734
|
+
| `get_incidents` | Events | Get Incidents |
|
|
735
|
+
| `get_changes` | Events | Get Changes |
|
|
736
|
+
| `get_events_by_ids` | Events | Get Events by IDs |
|
|
737
|
+
|
|
671
738
|
|
|
672
739
|
## Tool Filtering
|
|
673
740
|
|
|
@@ -689,12 +756,45 @@ The MCP server supports selective tool loading to optimize performance and reduc
|
|
|
689
756
|
- Application Catalog: Metadata and definitions
|
|
690
757
|
- Application Topology: Service dependency mapping
|
|
691
758
|
- Application Analyze: Application performance analysis
|
|
759
|
+
- Application Settings: Configuration management
|
|
760
|
+
- Application Global Alert: Global alert management
|
|
692
761
|
|
|
693
762
|
- **`events`**: Event monitoring tools
|
|
694
|
-
- Events: Kubernetes events, agent monitoring, and system event tracking
|
|
763
|
+
- Events: Kubernetes events, agent monitoring, incidents, issues, changes and system event tracking
|
|
764
|
+
|
|
765
|
+
- **`automation`**: Automation-related tools
|
|
766
|
+
- Action Catalog: Automation action discovery and management
|
|
767
|
+
- Action History: Tracking and managing automation action history
|
|
768
|
+
|
|
769
|
+
- **`website`**: Website monitoring tools
|
|
770
|
+
- Website Metrics: Performance measurement for websites
|
|
771
|
+
- Website Catalog: Website metadata and definitions
|
|
772
|
+
- Website Analyze: Website performance analysis
|
|
773
|
+
- Website Configuration: Website configuration management
|
|
695
774
|
|
|
696
775
|
### Usage Examples
|
|
697
776
|
|
|
777
|
+
#### Using CLI (PyPI Installation)
|
|
778
|
+
|
|
779
|
+
```bash
|
|
780
|
+
# Enable only infrastructure and events tools
|
|
781
|
+
mcp-instana --tools infra,events --transport streamable-http
|
|
782
|
+
|
|
783
|
+
# Enable only application tools
|
|
784
|
+
mcp-instana --tools app --transport streamable-http
|
|
785
|
+
|
|
786
|
+
# Enable automation and website tools
|
|
787
|
+
mcp-instana --tools automation,website --transport streamable-http
|
|
788
|
+
|
|
789
|
+
# Enable all tools (default behavior)
|
|
790
|
+
mcp-instana --transport streamable-http
|
|
791
|
+
|
|
792
|
+
# List all available tool categories and their tools
|
|
793
|
+
mcp-instana --list-tools
|
|
794
|
+
```
|
|
795
|
+
|
|
796
|
+
#### Using Development Installation
|
|
797
|
+
|
|
698
798
|
```bash
|
|
699
799
|
# Enable only infrastructure and events tools
|
|
700
800
|
uv run src/core/server.py --tools infra,events --transport streamable-http
|
|
@@ -702,6 +802,9 @@ uv run src/core/server.py --tools infra,events --transport streamable-http
|
|
|
702
802
|
# Enable only application tools
|
|
703
803
|
uv run src/core/server.py --tools app --transport streamable-http
|
|
704
804
|
|
|
805
|
+
# Enable automation and website tools
|
|
806
|
+
uv run src/core/server.py --tools automation,website --transport streamable-http
|
|
807
|
+
|
|
705
808
|
# Enable all tools (default behavior)
|
|
706
809
|
uv run src/core/server.py --transport streamable-http
|
|
707
810
|
|
|
@@ -895,8 +998,226 @@ The azureManagedHSM plugin provides three metrics that can help monitor service
|
|
|
895
998
|
3. Overall Service Availability: This metric measures the availability of the service.
|
|
896
999
|
```
|
|
897
1000
|
|
|
1001
|
+
## Docker Deployment
|
|
1002
|
+
|
|
1003
|
+
The MCP Instana server can be deployed using Docker for production environments. The Docker setup is optimized for security, performance, and minimal resource usage.
|
|
1004
|
+
|
|
1005
|
+
### Docker Architecture
|
|
1006
|
+
|
|
1007
|
+
The project uses a **two-file dependency management strategy**:
|
|
1008
|
+
|
|
1009
|
+
#### **pyproject.toml** (Development)
|
|
1010
|
+
- **Purpose**: Full development environment with all tools
|
|
1011
|
+
- **Dependencies**: 20 essential + 8 development dependencies (pytest, ruff, coverage, etc.)
|
|
1012
|
+
- **Usage**: Local development, testing, and CI/CD
|
|
1013
|
+
- **Size**: Larger but includes all development tools
|
|
1014
|
+
|
|
1015
|
+
#### **pyproject-runtime.toml** (Production)
|
|
1016
|
+
- **Purpose**: Minimal production runtime dependencies only
|
|
1017
|
+
- **Dependencies**: 20 essential dependencies only
|
|
1018
|
+
- **Usage**: Docker production builds
|
|
1019
|
+
- **Size**: Optimized for minimal image size and security
|
|
1020
|
+
|
|
1021
|
+
### Building the Docker Image
|
|
1022
|
+
|
|
1023
|
+
#### **Prerequisites**
|
|
1024
|
+
- Docker installed and running
|
|
1025
|
+
- Access to the project source code
|
|
1026
|
+
|
|
1027
|
+
#### **Build Command**
|
|
1028
|
+
```bash
|
|
1029
|
+
# Build the optimized production image
|
|
1030
|
+
docker build -t mcp-instana .
|
|
1031
|
+
|
|
1032
|
+
# Build with a specific tag
|
|
1033
|
+
docker build -t mcp-instana:v1.0.0 .
|
|
1034
|
+
```
|
|
1035
|
+
|
|
1036
|
+
#### **What the Build Does**
|
|
1037
|
+
1. **Multi-stage build** for optimal size and security
|
|
1038
|
+
2. **Builder stage**: Installs only runtime dependencies from `pyproject-runtime.toml`
|
|
1039
|
+
3. **Runtime stage**: Creates minimal production image with non-root user
|
|
1040
|
+
4. **Security**: No hardcoded secrets, proper user permissions
|
|
1041
|
+
5. **Optimization**: Only essential dependencies (20 vs 95+ in development)
|
|
1042
|
+
|
|
1043
|
+
### Running the Docker Container
|
|
1044
|
+
|
|
1045
|
+
#### **Basic Usage**
|
|
1046
|
+
```bash
|
|
1047
|
+
# Run with environment variables (recommended)
|
|
1048
|
+
docker run -p 8080:8080 \
|
|
1049
|
+
-e INSTANA_API_TOKEN=your_instana_token \
|
|
1050
|
+
-e INSTANA_BASE_URL=https://your-instana-instance.instana.io \
|
|
1051
|
+
mcp-instana
|
|
1052
|
+
|
|
1053
|
+
# Run with custom port
|
|
1054
|
+
docker run -p 8081:8080 \
|
|
1055
|
+
-e INSTANA_API_TOKEN=your_instana_token \
|
|
1056
|
+
-e INSTANA_BASE_URL=https://your-instana-instance.instana.io \
|
|
1057
|
+
mcp-instana
|
|
1058
|
+
```
|
|
1059
|
+
|
|
1060
|
+
#### **Environment Variables**
|
|
1061
|
+
The container requires the following environment variables:
|
|
1062
|
+
|
|
1063
|
+
| Variable | Description | Example |
|
|
1064
|
+
|----------|-------------|---------|
|
|
1065
|
+
| `INSTANA_API_TOKEN` | Your Instana API token | `your_instana_token` |
|
|
1066
|
+
| `INSTANA_BASE_URL` | Your Instana instance URL | `https://your-instana-instance.instana.io` |
|
|
1067
|
+
| `PORT` | Server port (optional, defaults to 8080) | `8080` |
|
|
1068
|
+
|
|
1069
|
+
#### **Docker Compose Example**
|
|
1070
|
+
```yaml
|
|
1071
|
+
version: '3.8'
|
|
1072
|
+
services:
|
|
1073
|
+
mcp-instana:
|
|
1074
|
+
build: .
|
|
1075
|
+
ports:
|
|
1076
|
+
- "8080:8080"
|
|
1077
|
+
environment:
|
|
1078
|
+
- INSTANA_API_TOKEN=${INSTANA_API_TOKEN}
|
|
1079
|
+
- INSTANA_BASE_URL=${INSTANA_BASE_URL}
|
|
1080
|
+
restart: unless-stopped
|
|
1081
|
+
healthcheck:
|
|
1082
|
+
test: ["CMD", "python", "-c", "import requests; requests.get('http://127.0.0.1:8080/health', timeout=5)"]
|
|
1083
|
+
interval: 30s
|
|
1084
|
+
timeout: 10s
|
|
1085
|
+
retries: 3
|
|
1086
|
+
start_period: 40s
|
|
1087
|
+
```
|
|
1088
|
+
|
|
1089
|
+
### Docker Security Features
|
|
1090
|
+
|
|
1091
|
+
#### **Security Best Practices Implemented**
|
|
1092
|
+
- ✅ **Non-root user**: Container runs as `mcpuser` (not root)
|
|
1093
|
+
- ✅ **No hardcoded secrets**: All credentials passed via environment variables
|
|
1094
|
+
- ✅ **Minimal dependencies**: Only 20 essential runtime dependencies
|
|
1095
|
+
- ✅ **Multi-stage build**: Build tools don't make it to final image
|
|
1096
|
+
- ✅ **Health checks**: Built-in container health monitoring
|
|
1097
|
+
- ✅ **Optimized base image**: Uses `python:3.11-slim`
|
|
1098
|
+
|
|
1099
|
+
#### **Image Size Optimization**
|
|
1100
|
+
- **Original approach**: 95+ dependencies → ~1-2GB+ image
|
|
1101
|
+
- **Optimized approach**: 20 dependencies → ~266MB image
|
|
1102
|
+
- **Size reduction**: ~70-80% smaller images
|
|
1103
|
+
- **Benefits**: Faster deployments, lower storage costs, reduced attack surface
|
|
1104
|
+
|
|
1105
|
+
### Testing the Docker Container
|
|
1106
|
+
|
|
1107
|
+
#### **Health Check**
|
|
1108
|
+
```bash
|
|
1109
|
+
# Check if container is healthy
|
|
1110
|
+
docker ps
|
|
1111
|
+
|
|
1112
|
+
# Test the MCP endpoint
|
|
1113
|
+
curl http://localhost:8080/mcp/
|
|
1114
|
+
```
|
|
1115
|
+
|
|
1116
|
+
#### **MCP Inspector Testing**
|
|
1117
|
+
```bash
|
|
1118
|
+
# Test with MCP Inspector
|
|
1119
|
+
npx @modelcontextprotocol/inspector http://localhost:8080/mcp/
|
|
1120
|
+
```
|
|
1121
|
+
|
|
1122
|
+
#### **Logs and Debugging**
|
|
1123
|
+
```bash
|
|
1124
|
+
# View container logs
|
|
1125
|
+
docker logs <container_id>
|
|
1126
|
+
|
|
1127
|
+
# Follow logs in real-time
|
|
1128
|
+
docker logs -f <container_id>
|
|
1129
|
+
|
|
1130
|
+
# Execute commands in running container
|
|
1131
|
+
docker exec -it <container_id> /bin/bash
|
|
1132
|
+
```
|
|
1133
|
+
|
|
1134
|
+
### Production Deployment
|
|
1135
|
+
|
|
1136
|
+
#### **Recommended Production Setup**
|
|
1137
|
+
1. **Use environment variables** for all secrets
|
|
1138
|
+
2. **Set up proper logging** and monitoring
|
|
1139
|
+
3. **Configure health checks** for container orchestration
|
|
1140
|
+
4. **Use container orchestration** (Kubernetes, Docker Swarm, etc.)
|
|
1141
|
+
5. **Implement proper backup** and disaster recovery
|
|
1142
|
+
|
|
1143
|
+
#### **Kubernetes Example**
|
|
1144
|
+
```yaml
|
|
1145
|
+
apiVersion: apps/v1
|
|
1146
|
+
kind: Deployment
|
|
1147
|
+
metadata:
|
|
1148
|
+
name: mcp-instana
|
|
1149
|
+
spec:
|
|
1150
|
+
replicas: 2
|
|
1151
|
+
selector:
|
|
1152
|
+
matchLabels:
|
|
1153
|
+
app: mcp-instana
|
|
1154
|
+
template:
|
|
1155
|
+
metadata:
|
|
1156
|
+
labels:
|
|
1157
|
+
app: mcp-instana
|
|
1158
|
+
spec:
|
|
1159
|
+
containers:
|
|
1160
|
+
- name: mcp-instana
|
|
1161
|
+
image: mcp-instana:latest
|
|
1162
|
+
ports:
|
|
1163
|
+
- containerPort: 8080
|
|
1164
|
+
env:
|
|
1165
|
+
- name: INSTANA_API_TOKEN
|
|
1166
|
+
valueFrom:
|
|
1167
|
+
secretKeyRef:
|
|
1168
|
+
name: instana-secrets
|
|
1169
|
+
key: api-token
|
|
1170
|
+
- name: INSTANA_BASE_URL
|
|
1171
|
+
value: "https://your-instana-instance.instana.io"
|
|
1172
|
+
livenessProbe:
|
|
1173
|
+
httpGet:
|
|
1174
|
+
path: /health
|
|
1175
|
+
port: 8080
|
|
1176
|
+
initialDelaySeconds: 30
|
|
1177
|
+
periodSeconds: 10
|
|
1178
|
+
readinessProbe:
|
|
1179
|
+
httpGet:
|
|
1180
|
+
path: /health
|
|
1181
|
+
port: 8080
|
|
1182
|
+
initialDelaySeconds: 5
|
|
1183
|
+
periodSeconds: 5
|
|
1184
|
+
```
|
|
1185
|
+
|
|
898
1186
|
## Troubleshooting
|
|
899
1187
|
|
|
1188
|
+
### **Docker Issues**
|
|
1189
|
+
|
|
1190
|
+
#### **Container Won't Start**
|
|
1191
|
+
```bash
|
|
1192
|
+
# Check container logs
|
|
1193
|
+
docker logs <container_id>
|
|
1194
|
+
|
|
1195
|
+
# Common issues:
|
|
1196
|
+
# 1. Missing environment variables
|
|
1197
|
+
# 2. Port already in use
|
|
1198
|
+
# 3. Invalid Instana credentials
|
|
1199
|
+
```
|
|
1200
|
+
|
|
1201
|
+
#### **Connection Issues**
|
|
1202
|
+
```bash
|
|
1203
|
+
# Test container connectivity
|
|
1204
|
+
docker exec -it <container_id> curl http://127.0.0.1:8080/health
|
|
1205
|
+
|
|
1206
|
+
# Check port mapping
|
|
1207
|
+
docker port <container_id>
|
|
1208
|
+
```
|
|
1209
|
+
|
|
1210
|
+
#### **Performance Issues**
|
|
1211
|
+
```bash
|
|
1212
|
+
# Check container resource usage
|
|
1213
|
+
docker stats <container_id>
|
|
1214
|
+
|
|
1215
|
+
# Monitor container health
|
|
1216
|
+
docker inspect <container_id> | grep -A 10 Health
|
|
1217
|
+
```
|
|
1218
|
+
|
|
1219
|
+
### **General Issues**
|
|
1220
|
+
|
|
900
1221
|
- **GitHub Copilot**
|
|
901
1222
|
- If you encounter issues with GitHub Copilot, try starting/stopping/restarting the server in the `mcp.json` file and keep only one server running at a time.
|
|
902
1223
|
|