Skip to main content
Glama
anhminhnguyen3110

QuickSight MCP Server

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 statistics

  • list_* - List all datasets, data sources, analyses, dashboards

  • describe_* - 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

  1. Install dependencies:

pip install -e . # For HTTP/SSE server support: pip install -e ".[server]"
  1. Configure environment:

cp .env.example .env # Edit .env with your AWS credentials

Required .env variables:

AWS_ACCOUNT_ID=123456789012 AWS_REGION=us-east-1 AWS_ACCESS_KEY_ID=your_access_key AWS_SECRET_ACCESS_KEY=your_secret_key

Usage

STDIO Transport (for Claude Desktop)

python main.py

Add 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 8080

HTTP Transport (RESTful API)

python main.py --transport http --port 3000

Debug Mode

python main.py --debug

Available Tools

Discovery Tools

Tool

Description

quicksight_overview

Get overview statistics of all resources

list_dashboards

List all dashboards with IDs and names

list_analyses

List all analyses with IDs and names

list_datasets

List all datasets with IDs and names

list_datasources

List all data sources with IDs and names

describe_dashboard

Get detailed dashboard information

describe_analysis

Get detailed analysis definition

describe_dataset

Get dataset schema and configuration

describe_datasource

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__.py

Development

Adding New Tools

  1. Create a new file in quicksight_mcp/tools/

  2. Define your tool functions

  3. Register them in the tool module

  4. 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 .env file

  • CLI 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:ListDashboards

  • quicksight:ListAnalyses

  • quicksight:ListDataSets

  • quicksight:ListDataSources

  • quicksight:DescribeDashboard

  • quicksight:DescribeAnalysis

  • quicksight:DescribeDataSet

  • quicksight:DescribeDataSource

Installation and Configuration

  1. Install UV on macOS/Linux

curl -LsSf https://astral.sh/uv/install.sh | sh
  1. create 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]" boto3
  1. Install 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": [] } } }
  1. Configue AWS CLi with AWS credentials have the necessary QuickSight permissions

  2. 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.

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/anhminhnguyen3110/quicksight-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server