Instana Proxy Wrapper for WatsonX
A transparent proxy that sits between WatsonX Orchestrator and the official mcp-instana server, fixing WatsonX's JSON stringification bug while providing access to all 46 Instana tools.
🎯 Problem Solved
WatsonX Bug: WatsonX's MCP client auto-parses JSON string parameters, breaking the official mcp-instana server which expects JSON strings.
Solution: This proxy:
- Accepts objects from WatsonX (after auto-parsing)
- Converts them back to JSON strings
- Forwards to official
mcp-instanaserver - Returns results to WatsonX
✨ Features
- ✅ All 46 Tools: Full access to official
mcp-instanatools - ✅ Zero Configuration: Automatically starts and manages
mcp-instanaserver - ✅ Transparent Proxy: No changes needed to tool calls
- ✅ WatsonX Compatible: Fixes JSON stringification bug
- ✅ Easy Installation: Single package install
📦 Installation
Prerequisites
- Install
mcp-instana(the official server):
pip install mcp-instana
- Set environment variables:
export INSTANA_BASE_URL="https://your-tenant.instana.io"
export INSTANA_API_TOKEN="your_api_token"
Install Proxy
pip install instana-proxy-wrapper
🚀 Usage
Import to WatsonX Cloud
1. Go to Skills → Import
2. Select "MCP Server"
3. Package name: instana-proxy-wrapper
4. Version: 1.0.0
5. Click Import
Environment Variables
The proxy requires the same environment variables as mcp-instana:
INSTANA_BASE_URL=https://your-tenant.instana.io
INSTANA_API_TOKEN=your_api_token
Set these in your WatsonX Cloud environment.
Local Testing
# Set credentials
export INSTANA_BASE_URL="https://your-tenant.instana.io"
export INSTANA_API_TOKEN="your_api_token"
# Run the proxy
python -m instana_proxy_wrapper.server
🔧 How It Works
Architecture
WatsonX → Proxy Wrapper → Official mcp-instana → Instana API
(Fixes JSON) (46 tools)
JSON Fix Example
WatsonX sends (after auto-parsing):
{
"payload": {
"metrics": ["cpu.utilization"],
"timeFrame": {"windowSize": 3600000}
}
}
Proxy converts to:
{
"payload": '{"metrics": ["cpu.utilization"], "timeFrame": {"windowSize": 3600000}}'
}
Official server receives: JSON string (as expected)
📋 Available Tools
All 46 tools from mcp-instana are available:
Infrastructure Tools
analyze_infrastructure_elicitation- Two-pass infrastructure analysisget_action_matches- Get automation action matchesget_actions- List automation actionsget_action_details- Get action details- And 42 more...
Application Tools
manage_instana_resources- Unified resource manager- Application metrics, alerts, configurations
Event Tools
get_event- Get specific eventget_issues- Get issue eventsget_incidents- Get incident eventsget_changes- Get change eventsget_kubernetes_info_events- Get K8s events
Dashboard Tools
manage_custom_dashboards- CRUD operationsget_custom_dashboards- List dashboardsget_custom_dashboard- Get specific dashboard
Website Monitoring Tools
get_websites- List websitesget_website- Get specific websiteget_website_beacons- Get website beacons- And more...
🧪 Testing
Test Infrastructure Query
# Query DB2 databases
{
"entity_type": "db2Database",
"metrics": ["db2.name"],
"aggregation": "sum",
"filters": [
{
"name": "host.name",
"value": "your-hostname"
}
],
"group_by": ["db2.name"],
"time_range": "7d"
}
Test Two-Pass Analysis
Pass 1 - Get schema:
{
"intent": "maximum heap size of JVM on host galactica1",
"entity": "jvm"
}
Pass 2 - Get results:
{
"selections": {
"entity_type": "jvmRuntimePlatform",
"metrics": ["jvm.heap.maxSize"],
"aggregation": "max",
"filters": [{"name": "host.name", "value": "galactica1"}]
}
}
🐛 Troubleshooting
Issue: Proxy won't start
Error: "Missing required environment variables"
Solution:
export INSTANA_BASE_URL="https://your-tenant.instana.io"
export INSTANA_API_TOKEN="your_api_token"
Issue: Tools not working
Error: Tool calls fail
Solution: Ensure mcp-instana is installed:
pip install mcp-instana
Issue: Import fails in WatsonX
Error: "Package not found"
Solution: Wait 5-10 minutes for PyPI CDN propagation
📊 Comparison
| Feature | instana-proxy-wrapper | instana-watsonx-wrapper |
|---|---|---|
| Tools | 46 (all from mcp-instana) | 11 (custom subset) |
| Metric Discovery | ✅ Yes | ❌ No |
| Two-Pass Analysis | ✅ Yes | ❌ No |
| Complexity | Low (transparent proxy) | Medium (custom implementation) |
| Maintenance | Low (follows mcp-instana) | High (manual updates) |
| Use Case | Full Instana access | Simple queries only |
🎯 When to Use
Use Proxy Wrapper When:
- ✅ Need all 46 Instana tools
- ✅ Need metric discovery
- ✅ Need two-pass infrastructure analysis
- ✅ Want automatic updates with mcp-instana
- ✅ Need complex queries
Use Direct Wrapper When:
- ✅ Only need 11 basic tools
- ✅ Know exact metrics to query
- ✅ Want simpler implementation
- ✅ Don't need advanced features
📚 Documentation
🤝 Contributing
This is a simple proxy wrapper. For tool improvements, contribute to the official mcp-instana project.
📝 License
MIT License - See LICENSE file for details
🙏 Acknowledgments
- Official
mcp-instanaserver by Instana team - Model Context Protocol by Anthropic
- WatsonX Orchestrator by IBM
Made with Bob - Your AI Software Engineer
Metadata
Release files for instana-proxy-wrapper 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| instana_proxy_wrapper-1.0.2.tar.gz | 10.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| instana_proxy_wrapper-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.1 kB
Release files / instana_proxy_wrapper-1.0.2.tar.gz
| Download URL | instana_proxy_wrapper-1.0.2.tar.gz |
|---|---|
| Size | 10.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fb629f65003ae7fc132e1aebeac4801b1aa16df72686882ebb82e010714ee261
|
|
BLAKE2b-256 checksum How to use checksums |
e5e22482efb9a961353ec711555d1dd2b2066a298732c6059391d614636c4389
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.0b1
|
Release files / instana_proxy_wrapper-1.0.2-py3-none-any.whl
| Download URL | instana_proxy_wrapper-1.0.2-py3-none-any.whl |
|---|---|
| Size | 6.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
28e13dddd2a6ffd002e5be6d6f3c79a26633ae7eba682a51a5f704d18df55871
|
|
BLAKE2b-256 checksum How to use checksums |
1c3ac62700881dcc02c632afa7e1f54abe5c0c8ddb4328bac33894afde3a6c43
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.0b1
|
Security for instana-proxy-wrapper 1.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.