Insight Digger MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Insight Digger MCP list all available data sources and show me the structure of the sales database"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Disclaimer: this project and documentation were created with active usage of AI with basic code and content review and are in the "beta" state as a part of POC project. There can be errors in documentation.
Insight Digger MCP
Enterprise-grade Model Context Protocol (MCP) system for data analysis with Claude Desktop integration.
Architecture Overview
This project provides a sophisticated 3-layer MCP architecture designed for enterprise environments:
MCP Bridge ā MCP Client Flask API (Custom HTTP REST endpoints)
MCP Client Flask API ā MCP Server subprocess (Standard MCP protocol)
MCP Server ā Backend Data API (HTTP calls to enterprise backend)
Key Enterprise Features
š Dynamic JWT Authentication: 14-day JWT tokens with session management
š§ Intelligent Caching: Parameter caching and auto-injection for efficient workflows
š Workflow Guidance: LLM-optimized tool orchestration with conversation management
š„ Multi-User Support: Centralized service with session isolation
š¢ Enterprise Integration: Compatible with existing authentication and monitoring systems
Related MCP server: MCP JSON Database Server
Setup Options
Option 1: Claude Desktop Integration (Recommended)
For end users who want to use Claude Desktop with Insight Digger:
1. Install the NPX Bridge
npx @sandsiv/data-narrator-mcp2. Configure Claude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"data-narrator": {
"command": "npx",
"args": ["-y", "@sandsiv/data-narrator-mcp@1.0.0"],
"env": {
"MCP_CLIENT_URL": "https://your-mcp-service.com"
}
}
}
}Note: The MCP_CLIENT_URL environment variable is optional. By default, the system will use Sandsiv's hosted MCP service. Only provide this variable if you're deploying your own version of the data-narrator-mcp service.
3. Usage in Claude Desktop
Authenticate first: Use the
setup_authenticationtool with your API URL and JWT tokenStart analysis: Begin with
list_sourcesto see available dataFollow the workflow: The system guides you through multi-step analysis processes
Option 2: Direct API Integration (For developers)
For custom integrations or testing:
1. Start the MCP Services
# Install dependencies
./scripts/setup/install_dependencies.sh
# Activate virtual environment
source venv/bin/activate
# Start the Flask API service
npm run dev:flask
# OR
python src/python/scripts/start_flask_api.py2. Use the REST API
# Initialize session
curl -X POST http://localhost:5000/init \
-H "Content-Type: application/json" \
-d '{"session_id": "test-session", "apiUrl": "https://your-api.com", "jwtToken": "your-jwt"}'
# Get available tools
curl -X POST http://localhost:5000/tools \
-H "Content-Type: application/json" \
-d '{"session_id": "test-session"}'
# Call a tool
curl -X POST http://localhost:5000/call-tool \
-H "Content-Type: application/json" \
-d '{"session_id": "test-session", "tool": "list_sources", "params": {}}'Development Setup
Prerequisites
Python 3.8+
Node.js 18+ (for NPX bridge)
Access to Insight Digger backend API
Local Development
# Clone the repository
git clone <repository-url>
cd insight_digger_mcp
# Install all dependencies
./scripts/setup/install_dependencies.sh --dev
# Activate virtual environment
source venv/bin/activate
# Run tests
npm test
# OR separately:
npm run test:python
npm run test:nodejsTesting the NPX Bridge Locally
# Start your MCP client service
npm run dev:flask
# In another terminal, test the bridge
npm run dev:bridge
# Use the MCP Inspector or Claude Desktop to testAuthentication Flow
JWT Token Management
Lifetime: 14 days
Refresh: Through the main platform web UI (outside MCP scope)
Validation: Bridge handles expired tokens by requesting re-authentication
Session Management
Single Session: One active session per bridge instance
Session ID: UUID generated for each bridge startup
Isolation: Multiple Claude Desktop instances use separate sessions
Tools & Workflow
Available Analysis Tools
The system provides LLM-optimized tools for:
š Data Source Discovery:
list_sources,get_source_structureāļø Analysis Configuration:
prepare_analysis_configurationš Execution:
execute_analysis_from_configš Results: Interactive dashboards and summaries
Intelligent Caching
Parameter Injection: Previously fetched data automatically included in subsequent calls
Workflow Memory: System remembers source selections, configurations, and analysis state
Efficiency: LLM doesn't need to repeat large data structures between steps
Error Handling
Authentication Errors: Clear guidance for JWT/URL validation failures
Tool Errors: Contextual error messages from backend systems
Session Errors: Automatic cleanup and re-authentication prompts
Configuration
Environment Variables
MCP_CLIENT_URL: URL of the MCP Client Flask API serviceINSIGHT_DIGGER_API_URL: Backend API URL (configured in MCP server layer)
Service Configuration
The MCP Server (mcp_server.py) connects to your backend API using configuration provided during the /init call.
Documentation
docs/mcp_bridge_implementation_guide.md- Detailed bridge architecturedocs/integration_guide.md- Integration patternsdocs/mcp_client_development_plan.md- Client development guidedocs/mcp_server_development_plan.md- Server development guide
Production Deployment
Service Deployment
# Install as systemd service (Linux)
sudo cp data-narrator-mcp.service /etc/systemd/system/
sudo systemctl enable data-narrator-mcp
sudo systemctl start data-narrator-mcpNPX Package Publishing
# Build and publish the bridge package
npm version patch
npm publish --access publicMonitoring
Service logs:
journalctl -u data-narrator-mcp -fBridge logs: Console output in Claude Desktop
Session tracking: All sessions logged with UUIDs
Security & Production Readiness
ā
Status: Ready for external publication
š Security: Comprehensive credential validation implemented
š Performance: Optimized with session reuse and direct validation
Security Features
Immediate credential validation during
/initendpointSession reuse optimization - no redundant validation calls
Proper HTTP status codes (401 for auth failures, 500 for server errors)
Input validation for API URLs and JWT tokens
Resource efficiency - MCP servers created only for valid credentials
5-second timeout for validation requests
Security Considerations
JWT Tokens: Never logged or stored permanently
Session Isolation: Proper cleanup prevents cross-session data leakage
HTTPS Required: All production communications must use HTTPS
Enterprise Auth: Integrates with existing authentication systems
Immediate Auth Feedback: Invalid credentials rejected in <5 seconds
Resource Protection: No MCP instances created for invalid credentials
See SECURITY.md for detailed security documentation.
Support
For issues or questions:
Check the documentation in the
docs/folderReview the service logs for error details
Verify JWT token validity and API connectivity
Ensure MCP Client service is running and accessible
License
MIT License - See LICENSE file for details.
Available Tools
10 toolsanalyze_chartsA
š [Requires Authentication] Analyzes data from all charts and returns detailed insights. This is the final analytical step. š Auto-Cached: 'chartData' is automatically provided from get_charts_data step, 'question' from the workflow, and 'apiUrl'/'jwtToken' from authentication. You typically don't need to provide any parameters for this tool. After receiving the insights, you MUST synthesize them into a final report for the user. Your report should:
Start with a brief summary that directly answers the user's original question.
Follow the previously generated analysis strategy, using insights to address each point.
Support findings with specific data points and note any limitations.
Present the full analysis in markdown format, and include the 'dashboardUrl' at the end.
ā ļø Please authenticate first by calling the setup_authentication tool above. This tool will become fully functional after authentication.
Inputs: chartData (required), question (required).
analyze_source_structureA
š [Requires Authentication] Fetches and analyzes the structure of a given data source. This is a key step after selecting a source. š Auto-Cached: apiUrl and jwtToken are automatically provided from authentication. Only provide the 'sourceId' parameter (from the previous list_sources step). Returns detailed column analysis to help formulate analytical questions.
ā ļø Please authenticate first by calling the setup_authentication tool above. This tool will become fully functional after authentication.
Inputs: sourceId (required).
create_configurationA
š [Requires Authentication] Create dashboard configuration from question, column analysis, and strategy. This is a granular step in the analysis workflow. š Auto-Cached: 'question', 'columnAnalysis', and 'strategy' are automatically provided from previous steps. You typically don't need to provide any parameters for this tool.
ā ļø Please authenticate first by calling the setup_authentication tool above. This tool will become fully functional after authentication.
Inputs: columnAnalysis (required), question (required), strategy (required).
create_dashboardA
š [Requires Authentication] Create a dashboard from config, source structure, and API settings. This is a granular step in the analysis workflow. š Auto-Cached: 'markdownConfig' is provided from create_configuration step, 'sourceStructure' from analyze_source_structure, and 'apiUrl'/'jwtToken' from authentication. You typically don't need to provide any parameters for this tool.
ā ļø Please authenticate first by calling the setup_authentication tool above. This tool will become fully functional after authentication.
Inputs: markdownConfig (required), sourceStructure (required).
generate_configA
š [Requires Authentication] Generate dashboard config (markdown) from question and source structure. š Auto-Cached: 'sourceStructure' is automatically provided from analyze_source_structure step. 'apiUrl' and 'jwtToken' are provided from authentication. Only provide the 'question' parameter from the user. Returns: dict (markdown configuration).
ā ļø Please authenticate first by calling the setup_authentication tool above. This tool will become fully functional after authentication.
Inputs: question (required), sourceStructure (required).
generate_strategyA
š [Requires Authentication] Generate analysis strategy for a question and column analysis. This is a granular step in the analysis workflow. š Auto-Cached: 'columnAnalysis' is automatically provided from the previous analyze_source_structure step. Only provide the 'question' parameter from the user.
ā ļø Please authenticate first by calling the setup_authentication tool above. This tool will become fully functional after authentication.
Inputs: columnAnalysis (required), question (required).
get_charts_dataA
š [Requires Authentication] Fetch data for multiple charts. This step is granular. š Auto-Cached: 'chartConfigs' is automatically provided from the create_dashboard step, and 'apiUrl'/'jwtToken' from authentication. You typically don't need to provide any parameters for this tool. Returns a summary of fetched charts (chart names). The full data is cached for the next step.
ā ļø Please authenticate first by calling the setup_authentication tool above. This tool will become fully functional after authentication.
Inputs: chartConfigs (required).
list_sourcesA
š [Requires Authentication] List available data sources. This is typically the FIRST interactive step in data analysis. Ask user to provide a search term to filter the sources. š Auto-Cached: apiUrl and jwtToken are automatically provided from your authentication session. Only provide 'search', 'page', and 'limit' parameters as needed. Ask the user for a source name to search first. Returns: {{'count': int, 'data': [{'id': str, 'title': str, 'type': str, 'updated': str, 'numberOfColumns': int}]}}.
ā ļø Please authenticate first by calling the setup_authentication tool above. This tool will become fully functional after authentication.
Inputs: limit, page, search.
setup_authenticationA
Setup authentication credentials for Sandsiv+ Insight Digger. This must be called FIRST before any analysis tools become available. Requires your API URL and JWT token.
About This System:
System: Sandsiv+ Insight Digger (Enterprise Data Analysis Platform)
Purpose: Transform business questions into interactive dashboards and AI-powered insights using Sandsiv+ data sources
When to Use This System:
User wants to analyze data from Sandsiv+ platform
User asks about business metrics, KPIs, or data trends
User needs to create dashboards or data visualizations
User mentions Sandsiv+, data analysis, or business intelligence
User wants to explore available data sources
User has analytical questions about their business data
Capabilities:
Connect to Sandsiv+ data sources securely
Analyze data structure and recommend visualization strategies
Generate interactive dashboards with multiple chart types
Extract AI-powered insights from data patterns
Support complex multi-step analytical workflows
Provide comprehensive analytical reports
Workflow: 7-step process: Authentication ā Source Discovery ā Structure Analysis ā Strategy Planning ā Configuration ā Dashboard Creation ā Insight Generation
Inputs: apiUrl (required), jwtToken (required).
validate_settingsA
š [Requires Authentication] Validate API settings by testing the connection to the external data API. š Auto-Cached: apiUrl and jwtToken are automatically provided from your authentication session - you typically don't need to provide these parameters. Args: apiUrl (str), jwtToken (str). Returns: {{'status': 'success'|'error', 'error': str (if status == 'error')}}.
ā ļø Please authenticate first by calling the setup_authentication tool above. This tool will become fully functional after authentication.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogā¦
TDQS
Scored across 10 tools
Most tools have distinct purposes aligned with a clear 7-step workflow, but there is some overlap between create_configuration and generate_config that could cause confusion. Both tools generate dashboard configurations, with create_configuration being described as a 'granular step' and generate_config as generating 'markdown configuration', making their boundaries unclear. Other tools like analyze_charts, analyze_source_structure, and list_sources are well-differentiated.
The naming follows a mostly consistent verb_noun pattern (e.g., analyze_charts, list_sources, generate_strategy), but there are inconsistencies like setup_authentication (verb_noun) vs. validate_settings (verb_noun, but 'settings' is plural and less specific) and create_configuration vs. generate_config (different verbs for similar actions). While readable, these deviations reduce overall consistency.
With 10 tools, the count is well-scoped for the server's purpose of transforming business questions into dashboards and insights. Each tool corresponds to a step in the described 7-step workflow, such as authentication, source discovery, and insight generation, ensuring that every tool earns its place without being excessive or insufficient.
The tool set provides complete coverage for the data analysis workflow, from authentication (setup_authentication) to insight generation (analyze_charts). It includes all necessary steps like source listing, structure analysis, strategy planning, configuration, dashboard creation, and data fetching, with no obvious gaps. The tools support the full lifecycle, enabling agents to execute end-to-end analyses without dead ends.
Maintenance
Related MCP Connectors
AI-powered corporate learning platform ā manage courses, users, and insights via Claude.
Company and industrial data for AI assistants: datasets, SQL, dashboards, alarms, with approvals.
Hosted BigQuery MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Query your warehouse or a CSV with Claude/ChatGPT over MCP, governed by table-level ACL + audit.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables secure chat-based interaction with PostgreSQL databases through Claude Desktop. Features GitHub OAuth authentication, role-based access control, and enterprise-grade security for database queries and operations.1MIT
- AlicenseBqualityNot gradedmaintenanceA JSON-based database MCP server with JWT authentication that enables user management, project tracking, department analysis, meeting management, and equipment tracking. Integrates with Claude Desktop to provide secure CRUD operations and analytics through natural language commands.21MIT
- AlicenseNot gradedqualityDmaintenanceConnects Claude Desktop to Tableau Server for natural language interactions with Tableau data, enabling data extraction, dashboard exports, and comprehensive administrative capabilities including user management, permission auditing, and usage analytics.4MIT
- AlicenseAqualityDmaintenanceA multi-agent orchestration system that enables multiple Claude instances to collaborate through a centralized hub with a shared workspace and real-time communication. It features integrated task management, role assignment, and persistent memory to facilitate complex, synchronized agent workflows.127 npm4MIT