Skip to main content
Glama
Amazon Q CLI MCP Server

Amazon Q CLI MCP Server

by yanggf8

Amazon Q CLI MCP Server

A Model Context Protocol (MCP) server that wraps the Amazon Q CLI, enabling MCP hosts (Claude Desktop, VS Code, Rovo Dev CLI, etc.) to interact with Amazon Q's AI capabilities.

Features

  • ask_q / take_q: Chat with Amazon Q CLI for AI assistance

  • q_translate: Convert natural language to shell commands

  • q_status: Check Amazon Q CLI installation and configuration

  • fetch_chunk: Fetch byte ranges from HTTP URLs

  • Session Management: Automatic session persistence with conversation history

  • Error Recovery: Intelligent retry logic with exponential backoff

  • Security: Input validation, command whitelisting, and resource limits

Related MCP server: AWS MCP Infrastructure

Prerequisites

  • Amazon Q CLI: Install from AWS documentation

  • AWS Credentials: Configure via aws configure or environment variables

  • Node.js: Version 18 or higher

Installation

From npm

npm install -g amazon-q-cli-mcp-server

From source

git clone <repository>
cd amazon-q-cli-mcp-server
npm install
npm run build
npm install -g .

Usage

Claude Desktop

Add to claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "amazon-q-cli": {
      "command": "amazon-q-mcp-server",
      "args": []
    }
  }
}

Rovo Dev CLI

Add to ~/.rovodev/mcp.json:

{
  "mcpServers": {
    "amazon-q-cli": {
      "command": "amazon-q-mcp-server",
      "args": [],
      "transport": "stdio"
    }
  }
}

Note: If you encounter GLIBC version conflicts with Rovo Dev CLI, create a wrapper script:

#!/bin/bash
# Clear LD_LIBRARY_PATH to avoid conflicts
unset LD_LIBRARY_PATH
exec amazon-q-mcp-server "$@"

Then use the wrapper script path in your configuration.

Claude Code CLI

claude mcp add -s user amazon-q-cli amazon-q-mcp-server

Available Tools

ask_q / take_q

Chat with Amazon Q CLI for AI assistance.

Parameters:

  • prompt (required): Question or prompt for Amazon Q

  • model (optional): Model to use

  • agent (optional): Agent/context profile

q_translate

Convert natural language to shell commands.

Parameters:

  • task (required): Natural language description

q_status

Check Amazon Q CLI installation and configuration.

Parameters: None

fetch_chunk

Fetch byte ranges from HTTP URLs.

Parameters:

  • url (required): HTTP/HTTPS URL

  • start (optional): Start byte offset (default: 0)

  • length (optional): Bytes to fetch (default: 65536, max: 10MB)

  • headers (optional): Request headers

Troubleshooting

Normal Startup Messages

[Amazon Q MCP] init Amazon Q CLI MCP Server
[Amazon Q MCP] Amazon Q CLI MCP Server listening on stdio

Common Issues

Q CLI not found:

which q
q --version

AWS credentials:

aws configure
# or set environment variables
export AWS_ACCESS_KEY_ID=your-key
export AWS_SECRET_ACCESS_KEY=your-secret
export AWS_DEFAULT_REGION=us-west-2

GLIBC version conflicts (Rovo Dev CLI): Create a wrapper script that clears LD_LIBRARY_PATH before executing the server.

MCP server not starting:

  • Check that the command path is correct

  • Verify Node.js is accessible

  • Ensure proper permissions on executable files

Development

npm run build    # Build TypeScript
npm run dev      # Watch mode
npm test         # Run tests

Architecture

MCP Host (Claude Desktop, Rovo Dev CLI, etc.)
    ↓ (MCP Protocol)
Amazon Q CLI MCP Server
    ↓ (Process execution with security)
Amazon Q CLI (`q` command)
    ↓ (AWS API calls)
Amazon Q Service

License

Apache License 2.0 - see LICENSE file for details.

Available Tools

5 tools
ask_qB

Execute Amazon Q CLI with a prompt to get AI assistance

Inputs: prompt (required), agent, model.

fetch_chunkB

Fetch a byte range from a URL (chunked HTTP fetch)

Inputs: url (required), start, length, headers.

q_statusA

Check Amazon Q CLI installation and configuration status

Inputs: no named parameters.

q_translateA

Convert natural language to shell commands using Amazon Q

Inputs: task (required).

take_qA

Execute Amazon Q CLI with a prompt to get AI assistance (alias for ask_q)

Inputs: prompt (required), agent, model.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 5 tools

    Disambiguation1/5

    ask_q and take_q are explicitly identical aliases, and q_translate also executes Amazon Q CLI with a prompt. This creates multiple tools that appear to do the same thing, with only q_status and fetch_chunk being clearly distinct.

    Naming Consistency2/5

    Naming is inconsistent: q_status and q_translate use a q_ prefix, ask_q and take_q use a verb_q suffix pattern, and fetch_chunk follows neither convention. The alias pair also introduces an unnecessary naming divergence.

    Tool Count3/5

    Five tools is numerically reasonable, but one tool is a redundant alias and fetch_chunk is unrelated to Amazon Q CLI management. The effective tool surface is smaller and less coherent than the count suggests.

    Completeness3/5

    The server covers status checking, general Q&A, and shell command translation, but lacks setup or configuration workflows that would complete the CLI lifecycle. fetch_chunk feels disconnected and does not fill an obvious gap in the Amazon Q domain.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers