mcp-instana 0.3.0__py3-none-any.whl → 0.3.1__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.3.0.dist-info → mcp_instana-0.3.1.dist-info}/METADATA +68 -40
- {mcp_instana-0.3.0.dist-info → mcp_instana-0.3.1.dist-info}/RECORD +5 -5
- {mcp_instana-0.3.0.dist-info → mcp_instana-0.3.1.dist-info}/WHEEL +0 -0
- {mcp_instana-0.3.0.dist-info → mcp_instana-0.3.1.dist-info}/entry_points.txt +0 -0
- {mcp_instana-0.3.0.dist-info → mcp_instana-0.3.1.dist-info}/licenses/LICENSE.md +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcp-instana
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.1
|
|
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.10
|
|
9
9
|
Requires-Dist: fastmcp==2.10.3
|
|
10
|
-
Requires-Dist: instana-client==1.0.
|
|
10
|
+
Requires-Dist: instana-client==1.0.1
|
|
11
11
|
Requires-Dist: mcp
|
|
12
12
|
Requires-Dist: pydantic==2.11.7
|
|
13
13
|
Requires-Dist: python-dotenv==1.1.0
|
|
@@ -24,6 +24,7 @@ Description-Content-Type: text/markdown
|
|
|
24
24
|
|
|
25
25
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
|
26
26
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
|
27
|
+
<!-- mcp-name: io.github.instana/mcp-instana -->
|
|
27
28
|
**Table of Contents**
|
|
28
29
|
|
|
29
30
|
- [MCP Server for IBM Instana](#mcp-server-for-ibm-instana)
|
|
@@ -78,6 +79,10 @@ Description-Content-Type: text/markdown
|
|
|
78
79
|
- [**Basic Usage**](#basic-usage)
|
|
79
80
|
- [**Environment Variables**](#environment-variables)
|
|
80
81
|
- [**Docker Compose Example**](#docker-compose-example)
|
|
82
|
+
- [Multi-Architecture Support](#multi-architecture-support)
|
|
83
|
+
- [**Supported Architectures**](#supported-architectures)
|
|
84
|
+
- [**Benefits of Multi-Architecture Images**](#benefits-of-multi-architecture-images)
|
|
85
|
+
- [**How It Works**](#how-it-works)
|
|
81
86
|
- [Docker Security Features](#docker-security-features)
|
|
82
87
|
- [**Security Best Practices Implemented**](#security-best-practices-implemented)
|
|
83
88
|
- [**Image Size Optimization**](#image-size-optimization)
|
|
@@ -1024,16 +1029,40 @@ The project uses a **two-file dependency management strategy**:
|
|
|
1024
1029
|
#### **Prerequisites**
|
|
1025
1030
|
- Docker installed and running
|
|
1026
1031
|
- Access to the project source code
|
|
1032
|
+
- Docker BuildKit for multi-architecture builds (enabled by default in recent Docker versions)
|
|
1027
1033
|
|
|
1028
1034
|
#### **Build Command**
|
|
1035
|
+
|
|
1036
|
+
**Single Architecture Build (Default):**
|
|
1029
1037
|
```bash
|
|
1030
|
-
# Build
|
|
1031
|
-
docker build -t mcp-instana .
|
|
1038
|
+
# Build for your local architecture (automatic detection)
|
|
1039
|
+
docker build -t mcp-instana:latest .
|
|
1032
1040
|
|
|
1033
1041
|
# Build with a specific tag
|
|
1034
1042
|
docker build -t mcp-instana:v1.0.0 .
|
|
1035
1043
|
```
|
|
1036
1044
|
|
|
1045
|
+
**Multi-Architecture Build:**
|
|
1046
|
+
```bash
|
|
1047
|
+
# Set up Docker BuildKit builder if you haven't already
|
|
1048
|
+
docker buildx create --name multiarch --driver docker-container --use
|
|
1049
|
+
|
|
1050
|
+
# Build and push a multi-architecture image to a registry
|
|
1051
|
+
docker buildx build --platform linux/amd64,linux/arm64 -t username/mcp-instana:latest --push .
|
|
1052
|
+
```
|
|
1053
|
+
|
|
1054
|
+
**Using the Helper Script:**
|
|
1055
|
+
```bash
|
|
1056
|
+
# Make the script executable
|
|
1057
|
+
chmod +x build_multiarch.sh
|
|
1058
|
+
|
|
1059
|
+
# Build for local architecture
|
|
1060
|
+
./build_multiarch.sh
|
|
1061
|
+
|
|
1062
|
+
# Build and push multi-architecture image
|
|
1063
|
+
./build_multiarch.sh --registry username/ --push
|
|
1064
|
+
```
|
|
1065
|
+
|
|
1037
1066
|
#### **What the Build Does**
|
|
1038
1067
|
1. **Multi-stage build** for optimal size and security
|
|
1039
1068
|
2. **Builder stage**: Installs only runtime dependencies from `pyproject-runtime.toml`
|
|
@@ -1045,27 +1074,14 @@ docker build -t mcp-instana:v1.0.0 .
|
|
|
1045
1074
|
|
|
1046
1075
|
#### **Basic Usage**
|
|
1047
1076
|
```bash
|
|
1048
|
-
# Run
|
|
1049
|
-
docker run -p 8080:8080
|
|
1050
|
-
-e INSTANA_API_TOKEN=your_instana_token \
|
|
1051
|
-
-e INSTANA_BASE_URL=https://your-instana-instance.instana.io \
|
|
1052
|
-
mcp-instana
|
|
1077
|
+
# Run the container (no credentials needed in the container)
|
|
1078
|
+
docker run -p 8080:8080 mcp-instana
|
|
1053
1079
|
|
|
1054
1080
|
# Run with custom port
|
|
1055
|
-
docker run -p 8081:8080
|
|
1056
|
-
-e INSTANA_API_TOKEN=your_instana_token \
|
|
1057
|
-
-e INSTANA_BASE_URL=https://your-instana-instance.instana.io \
|
|
1058
|
-
mcp-instana
|
|
1081
|
+
docker run -p 8081:8080 mcp-instana
|
|
1059
1082
|
```
|
|
1060
1083
|
|
|
1061
|
-
#### **Environment Variables**
|
|
1062
|
-
The container requires the following environment variables:
|
|
1063
1084
|
|
|
1064
|
-
| Variable | Description | Example |
|
|
1065
|
-
|----------|-------------|---------|
|
|
1066
|
-
| `INSTANA_API_TOKEN` | Your Instana API token | `your_instana_token` |
|
|
1067
|
-
| `INSTANA_BASE_URL` | Your Instana instance URL | `https://your-instana-instance.instana.io` |
|
|
1068
|
-
| `PORT` | Server port (optional, defaults to 8080) | `8080` |
|
|
1069
1085
|
|
|
1070
1086
|
#### **Docker Compose Example**
|
|
1071
1087
|
```yaml
|
|
@@ -1075,9 +1091,6 @@ services:
|
|
|
1075
1091
|
build: .
|
|
1076
1092
|
ports:
|
|
1077
1093
|
- "8080:8080"
|
|
1078
|
-
environment:
|
|
1079
|
-
- INSTANA_API_TOKEN=${INSTANA_API_TOKEN}
|
|
1080
|
-
- INSTANA_BASE_URL=${INSTANA_BASE_URL}
|
|
1081
1094
|
restart: unless-stopped
|
|
1082
1095
|
healthcheck:
|
|
1083
1096
|
test: ["CMD", "python", "-c", "import requests; requests.get('http://127.0.0.1:8080/health', timeout=5)"]
|
|
@@ -1087,15 +1100,35 @@ services:
|
|
|
1087
1100
|
start_period: 40s
|
|
1088
1101
|
```
|
|
1089
1102
|
|
|
1103
|
+
### Multi-Architecture Support
|
|
1104
|
+
|
|
1105
|
+
The Docker image supports multiple processor architectures, making it portable across different environments:
|
|
1106
|
+
|
|
1107
|
+
#### **Supported Architectures**
|
|
1108
|
+
- ✅ **amd64/x86_64**: Standard Intel/AMD processors (Windows, Linux, most cloud VMs)
|
|
1109
|
+
- ✅ **arm64/aarch64**: Apple Silicon (M1/M2/M3), AWS Graviton, Raspberry Pi 4, etc.
|
|
1110
|
+
|
|
1111
|
+
#### **Benefits of Multi-Architecture Images**
|
|
1112
|
+
- **Cross-Platform Compatibility**: Run the same image on any supported architecture
|
|
1113
|
+
- **Seamless Deployment**: No need to build different images for different environments
|
|
1114
|
+
- **CI/CD Simplification**: Build once, deploy anywhere
|
|
1115
|
+
- **Cloud Flexibility**: Switch between cloud providers and instance types without rebuilding images
|
|
1116
|
+
|
|
1117
|
+
#### **How It Works**
|
|
1118
|
+
1. The multi-architecture image is a "manifest list" containing images for each architecture
|
|
1119
|
+
2. When you pull the image, Docker automatically selects the correct architecture for your system
|
|
1120
|
+
3. The image runs natively on your architecture without emulation, ensuring optimal performance
|
|
1121
|
+
|
|
1090
1122
|
### Docker Security Features
|
|
1091
1123
|
|
|
1092
1124
|
#### **Security Best Practices Implemented**
|
|
1093
1125
|
- ✅ **Non-root user**: Container runs as `mcpuser` (not root)
|
|
1094
|
-
- ✅ **No
|
|
1126
|
+
- ✅ **No secrets in container**: Credentials are passed via HTTP headers from clients, not stored in the container
|
|
1095
1127
|
- ✅ **Minimal dependencies**: Only 20 essential runtime dependencies
|
|
1096
1128
|
- ✅ **Multi-stage build**: Build tools don't make it to final image
|
|
1097
1129
|
- ✅ **Health checks**: Built-in container health monitoring
|
|
1098
1130
|
- ✅ **Optimized base image**: Uses `python:3.11-slim`
|
|
1131
|
+
- ✅ **Multi-architecture support**: Run natively on any supported platform
|
|
1099
1132
|
|
|
1100
1133
|
#### **Image Size Optimization**
|
|
1101
1134
|
- **Original approach**: 95+ dependencies → ~1-2GB+ image
|
|
@@ -1135,11 +1168,12 @@ docker exec -it <container_id> /bin/bash
|
|
|
1135
1168
|
### Production Deployment
|
|
1136
1169
|
|
|
1137
1170
|
#### **Recommended Production Setup**
|
|
1138
|
-
1. **
|
|
1139
|
-
2. **
|
|
1140
|
-
3. **
|
|
1141
|
-
4. **
|
|
1142
|
-
5. **
|
|
1171
|
+
1. **Run container without credentials** - The container runs in Streamable HTTP mode, so no Instana credentials are needed in the container
|
|
1172
|
+
2. **Configure clients with credentials** - Pass Instana credentials via HTTP headers from MCP clients (Claude Desktop, GitHub Copilot, etc.)
|
|
1173
|
+
3. **Set up proper logging** and monitoring
|
|
1174
|
+
4. **Configure health checks** for container orchestration
|
|
1175
|
+
5. **Use container orchestration** (Kubernetes, Docker Swarm, etc.)
|
|
1176
|
+
6. **Implement proper backup** and disaster recovery
|
|
1143
1177
|
|
|
1144
1178
|
#### **Kubernetes Example**
|
|
1145
1179
|
```yaml
|
|
@@ -1162,14 +1196,6 @@ spec:
|
|
|
1162
1196
|
image: mcp-instana:latest
|
|
1163
1197
|
ports:
|
|
1164
1198
|
- containerPort: 8080
|
|
1165
|
-
env:
|
|
1166
|
-
- name: INSTANA_API_TOKEN
|
|
1167
|
-
valueFrom:
|
|
1168
|
-
secretKeyRef:
|
|
1169
|
-
name: instana-secrets
|
|
1170
|
-
key: api-token
|
|
1171
|
-
- name: INSTANA_BASE_URL
|
|
1172
|
-
value: "https://your-instana-instance.instana.io"
|
|
1173
1199
|
livenessProbe:
|
|
1174
1200
|
httpGet:
|
|
1175
1201
|
path: /health
|
|
@@ -1194,9 +1220,11 @@ spec:
|
|
|
1194
1220
|
docker logs <container_id>
|
|
1195
1221
|
|
|
1196
1222
|
# Common issues:
|
|
1197
|
-
# 1.
|
|
1198
|
-
# 2.
|
|
1199
|
-
# 3.
|
|
1223
|
+
# 1. Port already in use
|
|
1224
|
+
# 2. Invalid container image
|
|
1225
|
+
# 3. Missing dependencies
|
|
1226
|
+
|
|
1227
|
+
# Credentials are passed via HTTP headers from the MCP client
|
|
1200
1228
|
```
|
|
1201
1229
|
|
|
1202
1230
|
#### **Connection Issues**
|
|
@@ -52,8 +52,8 @@ src/website/website_analyze.py,sha256=0VyK8f-9vW1LzZ70b7IxKzwqSL2bWw8wDFSOCx2pEr
|
|
|
52
52
|
src/website/website_catalog.py,sha256=Z21urtdTf8sU2SZiCwGq5OyPLaswS9lw12TCD9pS__4,7127
|
|
53
53
|
src/website/website_configuration.py,sha256=hBHSFgj6GXOfLvlq8p-tBU4KFQc99uS167DBz4cjjK0,35926
|
|
54
54
|
src/website/website_metrics.py,sha256=6McxbVYZq5i61Ml3QcVeHS86y2rCIPzdDuUDOxNtnMM,10954
|
|
55
|
-
mcp_instana-0.3.
|
|
56
|
-
mcp_instana-0.3.
|
|
57
|
-
mcp_instana-0.3.
|
|
58
|
-
mcp_instana-0.3.
|
|
59
|
-
mcp_instana-0.3.
|
|
55
|
+
mcp_instana-0.3.1.dist-info/METADATA,sha256=ihXkPTCUrBqJJ_hqtIBfi7rSfb-3xuEiQLn_-LhSwL8,48596
|
|
56
|
+
mcp_instana-0.3.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
57
|
+
mcp_instana-0.3.1.dist-info/entry_points.txt,sha256=p1aZ9Ks0aJKpoIy6Mk-08cGYAfkXMNbwYIlokm513A4,140
|
|
58
|
+
mcp_instana-0.3.1.dist-info/licenses/LICENSE.md,sha256=Ox7lseFP2kBRXBjsLweW1jLmWiCyrKjwF8ZUvCbKd70,11310
|
|
59
|
+
mcp_instana-0.3.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|