Provides integration with AWS QuickSight API, enabling management and interaction with QuickSight dashboards, analyses, datasets, and other business intelligence resources.
Click on "Install 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., "@QuickSight MCP Serverlist all dashboards in my account"
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.
QuickSight MCP Server
A Model Context Protocol (MCP) server for Amazon QuickSight that enables AI assistants to create and manage QuickSight dashboards, analyses, datasets, and data sources.
Features
π Discovery Tools (9 Read Operations)
quicksight_overview- Get account-wide QuickSight statisticslist_*- List all datasets, data sources, analyses, dashboardsdescribe_*- Get detailed information about any resource
π Write Operations (19 Tools)
Data Sources (3 tools)
Create and update data sources (RDS, Redshift, S3, Athena, etc.)
Manage data source permissions
Datasets (3 tools)
Create datasets with physical/logical tables
Update schemas and transformations
Manage dataset permissions
Analyses (3 tools)
Build analyses with visuals, filters, parameters
Update analysis definitions
Control analysis access
Dashboards (4 tools)
Create dashboards from analyses
Update and publish dashboard versions
Manage viewer/editor permissions
Data Ingestion (6 tools)
Trigger SPICE data refresh
Monitor ingestion jobs
Create and manage refresh schedules
Total: 28 tools for complete QuickSight management
Installation
Prerequisites
Python 3.11 or higher
AWS credentials configured
Amazon QuickSight account
Setup
Install dependencies:
pip install -e .
# For HTTP/SSE server support:
pip install -e ".[server]"Configure environment:
cp .env.example .env
# Edit .env with your AWS credentialsRequired .env variables:
AWS_ACCOUNT_ID=123456789012
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_keyUsage
STDIO Transport (for Claude Desktop)
python main.pyAdd to Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"quicksight": {
"command": "python",
"args": ["/path/to/quicksight-mcp/main.py"],
"env": {
"AWS_ACCOUNT_ID": "123456789012",
"AWS_REGION": "us-east-1"
}
}
}
}SSE Transport (for web clients)
python main.py --transport sse --host 0.0.0.0 --port 8080HTTP Transport (RESTful API)
python main.py --transport http --port 3000Debug Mode
python main.py --debugAvailable Tools
Discovery Tools
Tool | Description |
| Get overview statistics of all resources |
| List all dashboards with IDs and names |
| List all analyses with IDs and names |
| List all datasets with IDs and names |
| List all data sources with IDs and names |
| Get detailed dashboard information |
| Get detailed analysis definition |
| Get dataset schema and configuration |
| Get data source connection details |
Example Prompts for Claude
"Show me all my QuickSight dashboards"
"What datasets are available in my account?"
"Describe the schema of dataset xyz-123"
"Give me an overview of my QuickSight resources"Project Structure
quicksight-mcp/
βββ main.py # Entry point with CLI
βββ pyproject.toml # Project configuration
βββ .env.example # Environment template
β
βββ quicksight_mcp/ # Main package
β βββ __init__.py
β βββ config.py # Configuration management
β βββ server.py # MCP server setup
β βββ service.py # QuickSight API wrapper
β β
β βββ tools/ # MCP tools
β β βββ __init__.py
β β βββ discovery.py # Read operations
β β βββ datasource.py # Data source tools (coming)
β β βββ dataset.py # Dataset tools (coming)
β β βββ analysis.py # Analysis tools (coming)
β β βββ dashboard.py # Dashboard tools (coming)
β β
β βββ models/ # Data models
β βββ __init__.pyDevelopment
Adding New Tools
Create a new file in
quicksight_mcp/tools/Define your tool functions
Register them in the tool module
Import and register in
main.py
Example:
# quicksight_mcp/tools/my_tools.py
def register_my_tools(mcp):
@mcp.tool(name="my_tool")
async def my_tool(param: str) -> dict:
config = mcp.config
service = QuickSightService(config.aws_account_id, config.aws_region)
# Your logic here
return {}Architecture
Multi-Transport Support
STDIO: For Claude Desktop integration
SSE: For streaming web clients
HTTP: For RESTful API access
Configuration Management
Environment variables from
.envfileCLI argument overrides
AWS credentials support
QuickSight Service Layer
Clean boto3 wrapper
Error handling and logging
Pagination support for large results
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
License
This project is open source and available under the MIT License.
Roadmap
Basic read operations
Multi-transport support
Environment configuration
Data source write operations
Dataset creation and updates
Analysis generation
Dashboard publishing
Permission management
Template support
Theme management
Support
For questions or issues, please open an issue on GitHub.
quicksight_overview
Provides a comprehensive overview of QuickSight resources in the account.
Parameters:
- account_id (required): AWS account ID
- region (optional): AWS region (default: us-east-1)Usage Examples
Basic Resource Listing
# List all dashboards
q chat "List all QuickSight dashboards in account 123456789012"
# List analyses in a specific region
q chat "Show me all analyses in us-west-2 for account 123456789012"Account Overview
# Get comprehensive QuickSight statistics
q chat "Give me an overview of QuickSight resources in account 123456789012"Prerequisites
AWS credentials configured with appropriate QuickSight permissions
Access to the target AWS account and regions
QuickSight service activated in the target regions
Required AWS Permissions
The MCP server requires the following QuickSight permissions:
quicksight:ListDashboardsquicksight:ListAnalysesquicksight:ListDataSetsquicksight:ListDataSourcesquicksight:DescribeDashboardquicksight:DescribeAnalysisquicksight:DescribeDataSetquicksight:DescribeDataSource
Installation and Configuration
Install UV on macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | shcreate venv and
% git clone https://github.com/heisenbergye/quicksight-mcp.git
% cd quicksight-mcp
% uv venv .venv
% source .venv/bin/activate
% uv add "mcp[cli]" boto3Install Q CLI and Ensure the MCP server is properly configured in your Q CLI environment, or you can use CLINE in IDE etc.
$ cat ~/.aws/amazonq/mcp.json
{
"mcpServers": {
"quicksight-mcp": {
"command": "/Users/xxxxx/xxxxx/Cline/MCP/quicksight-mcp/.venv/bin/python3",
"args": [
"/Users/xxxxx/xxxxx/Cline/MCP/quicksight-mcp/main.py"
],
"disabled": false,
"alwaysAllow": []
}
}
}Configue AWS CLi with AWS credentials have the necessary QuickSight permissions
Test connectivity with a simple resource listing command
Common Use Cases
Data Governance
Identify impact of data source changes
Audit data dependencies across your organization
Resource Management
Inventory all QuickSight resources
Identify unused or orphaned resources
Plan resource migrations or cleanup
Troubleshooting
Diagnose dashboard or analysis issues by examining dependencies
Understand data flow when reports show unexpected results
Validate data source configurations
Error Handling
The server provides detailed error messages for common issues:
Invalid account IDs or resource IDs
Insufficient permissions
Resources not found
Region-specific access issues
Support
For issues or questions about this MCP server, please refer to the MCP documentation or contact your system administrator.