AWS SSO MCP Server

by aashari

14 stars
186 downloads
Not rated
GitHub

About

Node.js/TypeScript MCP server for AWS Single Sign-On (SSO). Enables AI systems (LLMs) with tools to initiate SSO login (device auth flow), list accounts/roles, and securely execute AWS CLI commands using temporary credentials. Streamlines AI interaction with AWS resources.

Details

Author
aashari
GitHub stars
14
Downloads
186
Categories
Cloud Service, Security, Infrastructure, Developer Tools

- Authenticate via AWS IAM Identity Center
- List accessible AWS accounts and roles
- Execute arbitrary AWS CLI commands
- Run shell commands on EC2 via SSM
- Supports multi‑account AWS environments
- Two transport modes: STDIO and HTTP/SSE

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name AWS SSO MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install via npx or npm install -g @aashari/mcp-server-aws-sso. Set environment variables AWS_SSO_START_URL and AWS_REGION. Run mcp-aws-sso login to authenticate. Then either use CLI commands (e.g., mcp-aws-sso exec-command) or add the server to an MCP client configuration (e.g., Claude Desktop’s claude_desktop_config.json) using the "aws-sso" key. The server exposes tools such as aws_sso_login, aws_sso_ls_accounts, aws_sso_exec_command, and aws_sso_ec2_exec_command.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "aws sso mcp server": {
            "mcp-server-aws-sso": {
                "command": "npx",
                "args": [
                    "-y",
                    "@aashari/mcp-server-aws-sso",
                    "login"
                ]
            }
        }
    }
}

McpServers

{
    "mcp-server-aws-sso": {
        "command": "npx",
        "args": [
            "-y",
            "@aashari/mcp-server-aws-sso",
            "login"
        ]
    }
}

Connect AI to Your AWS Resources

Transform how you manage and access your AWS infrastructure by connecting Claude, Cursor AI, and other AI assistants directly to your AWS accounts through AWS IAM Identity Center (formerly AWS SSO). Get instant access to your cloud resources, execute commands, and manage EC2 instances using natural language.

NPM Version
Node Version

What You Can Do

Ask AI about your AWS accounts: "Show me all my AWS accounts and available roles"
Execute AWS commands: "List all S3 buckets in my production account"
Manage EC2 instances: "Check the disk usage on server i-123456789"
Access multi-account setups: "Switch to the staging account and describe the VPCs"
Monitor resources: "Get the status of all running EC2 instances"
Run shell commands: "Execute 'df -h' on my web server via SSM"

Perfect For

- DevOps Engineers managing multi-account AWS environments and infrastructure automation
- Cloud Architects needing quick access to resource information across AWS accounts
- Developers who want to check deployments and run AWS CLI commands through AI
- SRE Teams monitoring and troubleshooting AWS resources using natural language
- IT Administrators managing EC2 instances and executing remote commands securely
- Anyone who wants to interact with AWS using conversational AI

Quick Start

Get up and running in 2 minutes:

1. Get Your AWS SSO Setup

Set up AWS IAM Identity Center:
1. Enable AWS IAM Identity Center in your AWS account
2. Configure your identity source (AWS directory, Active Directory, or external IdP)
3. Set up permission sets and assign users to AWS accounts
4. Note your AWS SSO Start URL (e.g., https://your-company.awsapps.com/start)

2. Try It Instantly

# Set your AWS SSO configuration
export AWS_SSO_START_URL="https://your-company.awsapps.com/start"
export AWS_REGION="us-east-1"

Start the authentication flow

npx -y @aashari/mcp-server-aws-sso login

List your accessible accounts and roles

npx -y @aashari/mcp-server-aws-sso ls-accounts

Execute an AWS command

npx -y @aashari/mcp-server-aws-sso exec-command \ --account-id 123456789012 \ --role-name ReadOnly \ --command "aws s3 ls"

Connect to AI Assistants

For Claude Desktop Users

Add this to your Claude configuration file (~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "aws-sso": {
      "command": "npx",
      "args": ["-y", "@aashari/mcp-server-aws-sso"],
      "env": {
        "AWS_SSO_START_URL": "https://your-company.awsapps.com/start",
        "AWS_REGION": "us-east-1"
      }
    }
  }
}

Restart Claude Desktop, and you'll see "🔗 aws-sso" in the status bar.

For Other AI Assistants

Most AI assistants support MCP. Install the server globally:

npm install -g @aashari/mcp-server-aws-sso

Then configure your AI assistant to use the MCP server with STDIO transport.

Alternative: Configuration File

Create ~/.mcp/configs.json for system-wide configuration:

{
  "aws-sso": {
    "environments": {
      "AWS_SSO_START_URL": "https://your-company.awsapps.com/start",
      "AWS_REGION": "us-east-1",
      "DEBUG": "false"
    }
  }
}

Alternative config keys: The system also accepts "@aashari/mcp-server-aws-sso" or "mcp-server-aws-sso" instead of "aws-sso".

Real-World Examples

🔐 Authenticate and Explore

Ask your AI assistant:
- "Log into AWS SSO and show me my authentication status"
- "List all my AWS accounts and the roles I can assume"
- "Check if I'm still authenticated to AWS"
- "Show me which AWS accounts I have access to"

🛠️ Execute AWS Commands

Ask your AI assistant:
- "List all S3 buckets in my production account using the ReadOnly role"
- "Show me all running EC2 instances in the us-west-2 region"
- "Describe the VPCs in my staging AWS account"
- "Get the status of my RDS databases in account 123456789012"

🖥️ Manage EC2 Instances

Ask your AI assistant:
- "Check the disk usage on EC2 instance i-1234567890abcdef0"
- "Run 'uptime' on my web server via Systems Manager"
- "Execute 'systemctl status nginx' on instance i-abc123 in production"
- "Get memory usage from all my application servers"

🔍 Infrastructure Monitoring

Ask your AI assistant:
- "List all Lambda functions in my development account"
- "Show me the CloudFormation stacks in us-east-1"
- "Check the health of my load balancers"
- "Get the latest CloudWatch alarms that are in ALARM state"

🔄 Multi-Account Operations

Ask your AI assistant:
- "Switch to account 987654321098 with AdminRole and list all security groups"
- "Compare the running instances between staging and production accounts"
- "Check backup policies across all my AWS accounts"
- "Audit IAM users in the security account"

<details>
<summary><b>MCP Tool Examples (Click to expand)</b></summary>

aws_sso_login

Basic Login:

{}

Custom Login Options:

{
"launchBrowser": false
}

aws_sso_status

Check Authentication Status:

{}

aws_sso_ls_accounts

List All Accounts and Roles:

{}

aws_sso_exec_command

List S3 Buckets:

{
"accountId": "123456789012",
"roleName": "ReadOnly",
"command": "aws s3 ls"
}

Describe EC2 Instances in a Specific Region:

{
"accountId": "123456789012",
"roleName": "AdminRole",
"command": "aws ec2 describe-instances --query 'Reservations[].Instances[].[InstanceId,State.Name,InstanceType]' --output table",
"region": "us-west-2"
}

aws_sso_ec2_exec_command

Check System Resources:

{
"instanceId": "i-0a69e80761897dcce",
"accountId": "123456789012",
"roleName": "InfraOps",
"command": "uptime && df -h && free -m"
}

</details>

Transport Modes

This server supports two transport modes for different integration scenarios:

STDIO Transport (Default for MCP Clients)

- Traditional subprocess communication via stdin/stdout - Ideal for local AI assistant integrations (Claude Desktop, Cursor AI) - Uses pipe-based communication for direct MCP protocol exchange
# Run with STDIO transport (default for AI assistants)
TRANSPORT_MODE=stdio npx @aashari/mcp-server-aws-sso

Using npm scripts (after installation)

npm run mcp:stdio

HTTP Transport (Default for Server Mode)

- Modern HTTP-based transport with Server-Sent Events (SSE) - Supports multiple concurrent connections - Better for web-based integrations and development - Runs on port 3000 by default (configurable via PORT env var) - Endpoint: http://localhost:3000/mcp - Health check: http://localhost:3000/
# Run with HTTP transport (default when no CLI args)
TRANSPORT_MODE=http npx @aashari/mcp-server-aws-sso

Using npm scripts (after installation)

npm run mcp:http

Test with MCP Inspector

npm run mcp:inspect

Environment Variables

Transport Configuration:
- TRANSPORT_MODE: Set to stdio or http (default: http for server mode, stdio for MCP clients)
- PORT: HTTP server port (default: 3000)
- DEBUG: Enable debug logging (default: false)

AWS Configuration:
- AWS_SSO_START_URL: Your AWS IAM Identity Center start URL (e.g., https://your-org.awsapps.com/start)
- AWS_SSO_REGION or AWS_REGION: AWS region for SSO authentication (e.g., us-east-1)
- AWS_PROFILE: AWS profile name (optional, for CLI compatibility)

Available Tools

When integrated with AI assistants via MCP, the following tools are available:

Authentication Tools

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.