Watsonx Visualization MCP Server
Provides automated data visualization and analysis tools that intelligently select from over 40 chart types based on data structure and patterns. It enables users to generate statistical insights, interactive dashboards, and professional reports in HTML, PNG, and Word formats.
README
Watsonx Visualization MCP Server
A comprehensive Model Context Protocol (MCP) server for automated data visualization and analysis, designed for seamless integration with IBM Watsonx Orchestrate.
๐ฏ Overview
This MCP server provides intelligent data visualization tools that automatically:
- Select the most appropriate chart type based on data structure
- Generate comprehensive data analysis and insights
- Create visualizations in multiple formats (HTML, PNG, Word)
- Support 40+ chart types including advanced visualizations
- Provide statistical analysis, trend detection, and recommendations
โจ Features
Intelligent Chart Selection
Automatically determines the best visualization type based on:
- Data structure and dimensions
- Temporal patterns
- Hierarchical relationships
- Statistical distributions
- Correlation patterns
Supported Chart Types
- Basic: bar, column, line, area, pie
- Stacked: stacked bar, stacked column
- Statistical: boxplot, scatter, bubble, heatmap
- Hierarchical: sunburst, tree map, hierarchy bubble, packed bubble
- Temporal: line, area, dual axes lines, dual axes column
- Specialized: waterfall, gantt chart, radar, wordcloud, network, tornado
- KPI: kpi, bullet
- Tabular: table, crosstab
- Geographic: map, legacy map
- Advanced: marimekko, radial, spiral, decision tree
Comprehensive Analysis
- Statistical measures (mean, median, std dev, quartiles, etc.)
- Trend detection and forecasting indicators
- Correlation analysis
- Outlier detection
- Pattern recognition
- Actionable recommendations
Multiple Output Formats
- HTML: Interactive, responsive visualizations
- PNG: High-quality static images
- Word: Professional documents with analysis
๐ Quick Start
Prerequisites
- Node.js 18+
- npm or yarn
- IBM Watsonx Orchestrate account
Installation
Note: The package is not yet published on npm. Use local installation:
- Clone the repository:
git clone https://github.com/tdognin/watsonx-visualization-mcp.git
cd watsonx-visualization-mcp
- Install dependencies:
npm install
- Run tests to verify installation:
npm test
- Start the MCP server:
npm start
๐ Detailed installation guide: INSTALLATION_LOCALE.md
๐ง Configuration
MCP Server Configuration
The MCP server needs to be configured in your system configuration file (not in this project).
๐ For detailed step-by-step instructions, see GUIDE_CONFIGURATION_MCP.md
Quick configuration example for ~/.config/mcp/settings.json:
{
"mcpServers": {
"watsonx-visualization": {
"command": "node",
"args": ["/FULL/PATH/TO/watsonx-visualization-mcp/src/mcp-server/index.js"],
"env": {}
}
}
}
โ ๏ธ Important: Replace /FULL/PATH/TO/ with the actual path to your project directory.
Watsonx Orchestrate Integration
๐ Quick Setup Guide: SETUP_WATSONX_ORCHESTRATE.md - Step-by-step guide to connect your local MCP server to Watsonx Orchestrate
๐ Complete Documentation: WATSONX_INTEGRATION.md - Detailed integration guide with advanced options
๐ Usage
Tool 1: generate_visualization
Generate a single visualization with automatic chart type selection and analysis.
Parameters:
data(required): JSON data to visualizechartType(optional): Specific chart type (auto-selected if not provided)outputFormat(optional): 'html', 'png', or 'word' (default: 'html')includeAnalysis(optional): Include data analysis (default: true)title(optional): Chart titleoptions(optional): Additional chart configuration
Example:
{
"data": [
{"month": "Jan", "sales": 1200, "profit": 300},
{"month": "Feb", "sales": 1500, "profit": 450},
{"month": "Mar", "sales": 1800, "profit": 600}
],
"title": "Q1 Sales Performance",
"outputFormat": "html",
"includeAnalysis": true
}
Tool 2: analyze_data
Perform comprehensive data analysis without visualization.
Parameters:
data(required): JSON data to analyzeanalysisType(optional): 'statistical', 'trend', 'correlation', or 'summary'
Example:
{
"data": [
{"product": "A", "sales": 1200, "cost": 800},
{"product": "B", "sales": 1500, "cost": 900}
],
"analysisType": "statistical"
}
Tool 3: create_dashboard
Create a comprehensive dashboard with multiple visualizations.
Parameters:
datasets(required): Array of dataset configurationsoutputFormat(optional): 'html' or 'word' (default: 'html')dashboardTitle(optional): Dashboard title
Example:
{
"datasets": [
{
"data": [{"category": "A", "value": 100}],
"chartType": "pie",
"title": "Distribution"
},
{
"data": [{"month": "Jan", "sales": 1200}],
"chartType": "line",
"title": "Trend"
}
],
"dashboardTitle": "Sales Dashboard",
"outputFormat": "html"
}
๐ Data Format Examples
Simple Object Format
{
"Category A": 100,
"Category B": 200,
"Category C": 150
}
Array of Objects Format
[
{"category": "A", "value": 100, "target": 120},
{"category": "B", "value": 200, "target": 180},
{"category": "C", "value": 150, "target": 160}
]
Time Series Format
[
{"date": "2024-01-01", "sales": 1200, "expenses": 800},
{"date": "2024-02-01", "sales": 1500, "expenses": 900},
{"date": "2024-03-01", "sales": 1800, "expenses": 1000}
]
Network Format
[
{"source": "A", "target": "B", "value": 10},
{"source": "B", "target": "C", "value": 20},
{"source": "A", "target": "C", "value": 15}
]
Gantt Chart Format
[
{"task": "Planning", "start": "2024-01-01", "end": "2024-01-15"},
{"task": "Development", "start": "2024-01-16", "end": "2024-02-28"},
{"task": "Testing", "start": "2024-03-01", "end": "2024-03-15"}
]
๐๏ธ Architecture
watsonx-visualization-mcp/
โโโ src/
โ โโโ mcp-server/ # MCP server implementation
โ โโโ visualization-engine/ # Chart generation
โ โโโ analysis-engine/ # Data analysis
โ โโโ output-generators/ # Format converters
โ โโโ utils/ # Helper utilities
โโโ docs/ # Documentation
โโโ examples/ # Usage examples
โโโ tests/ # Test suites
โโโ config/ # Configuration files
๐จ Styling
All visualizations follow IBM Carbon Design System guidelines:
- IBM Plex Sans font family
- Carbon color palette
- Accessible color contrasts
- Responsive layouts
- Professional styling
๐งช Testing
Run tests:
npm test
Run with coverage:
npm run test:coverage
๐ Documentation
- API Reference - Complete API documentation
- Watsonx Integration Guide - Setup and integration instructions
- Examples Guide - How to use the examples and MCP server
- Usage Examples - Practical usage scenarios
- Contributing Guide - How to contribute to the project
- Changelog - Version history and updates
๐ค Contributing
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
๐ License
MIT License - see LICENSE file for details
๐ Support
For issues and questions:
๐ Version History
v1.0.0 (Current)
- Initial release
- 40+ chart types supported
- Intelligent chart selection
- Comprehensive analysis engine
- Multiple output formats
- Watsonx Orchestrate integration
๐ Acknowledgments
- Built with Model Context Protocol
- Visualizations powered by Plotly.js
- Styling based on IBM Carbon Design System
- Document generation with docx
Made with โค๏ธ for IBM Watsonx Orchestrate
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.