Skip to main content

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:

  1. Accepts objects from WatsonX (after auto-parsing)
  2. Converts them back to JSON strings
  3. Forwards to official mcp-instana server
  4. Returns results to WatsonX

✨ Features

  • ✅ All 46 Tools: Full access to official mcp-instana tools
  • ✅ Zero Configuration: Automatically starts and manages mcp-instana server
  • ✅ Transparent Proxy: No changes needed to tool calls
  • ✅ WatsonX Compatible: Fixes JSON stringification bug
  • ✅ Easy Installation: Single package install

📦 Installation

Prerequisites

  1. Install mcp-instana (the official server):
pip install mcp-instana
  1. 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 analysis
  • get_action_matches - Get automation action matches
  • get_actions - List automation actions
  • get_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 event
  • get_issues - Get issue events
  • get_incidents - Get incident events
  • get_changes - Get change events
  • get_kubernetes_info_events - Get K8s events

Dashboard Tools

  • manage_custom_dashboards - CRUD operations
  • get_custom_dashboards - List dashboards
  • get_custom_dashboard - Get specific dashboard

Website Monitoring Tools

  • get_websites - List websites
  • get_website - Get specific website
  • get_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-instana server 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)

Source distribution for instana-proxy-wrapper 1.0.2
File Size Uploaded Provenance
instana_proxy_wrapper-1.0.2.tar.gz 10.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for instana-proxy-wrapper 1.0.2
File Interpreter ABI Platform
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page