diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..99281eb --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +# Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile +FROM python:3.13-slim + +WORKDIR /app + +# Install apt packages (AWS CLI and dependencies) +RUN apt-get update && apt-get install -y awscli && rm -rf /var/lib/apt/lists/* + +# Upgrade pip +RUN pip install --no-cache-dir --upgrade pip + +# Copy project files +COPY . . + +# Install the AWS MCP Server package +RUN pip install --no-cache-dir . + +# Set default environment variables +ENV AWS_MCP_TIMEOUT=300 \ + AWS_MCP_MAX_OUTPUT=100000 \ + AWS_MCP_TRANSPORT=stdio \ + AWS_PROFILE=default \ + AWS_REGION=us-east-1 + +# Run the AWS MCP Server +CMD ["python", "-m", "aws_mcp_server"] diff --git a/README.md b/README.md index e7e4b90..8a94200 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ [](https://github.com/alexei-led/aws-mcp-server) [](https://github.com/alexei-led/aws-mcp-server/pkgs/container/aws-mcp-server/versions) [](https://github.com/alexei-led/aws-mcp-server/pkgs/container/aws-mcp-server) +[](https://smithery.ai/server/@alexei-led/aws-mcp-server) A lightweight service that enables AI assistants to execute AWS CLI commands through the Model Context Protocol (MCP). @@ -44,6 +45,14 @@ The video demonstrates using Claude Desktop with AWS MCP Server to create a new ## Getting Started +### Installing via Smithery + +To install AWS MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@alexei-led/aws-mcp-server): + +```bash +npx -y @smithery/cli install @alexei-led/aws-mcp-server --client claude +``` + ### Option 1: Using Docker (Recommended) ```bash diff --git a/smithery.yaml b/smithery.yaml new file mode 100644 index 0000000..0dc99f5 --- /dev/null +++ b/smithery.yaml @@ -0,0 +1,48 @@ +# Smithery configuration file: https://smithery.ai/docs/config#smitheryyaml + +startCommand: + type: stdio + configSchema: + # JSON Schema defining the configuration options for the MCP. + type: object + properties: + awsMcpTimeout: + type: number + default: 300 + description: Command execution timeout in seconds. + awsMcpMaxOutput: + type: number + default: 100000 + description: Maximum output size in characters. + awsMcpTransport: + type: string + default: stdio + description: Transport protocol to use ('stdio' or 'sse'). + awsProfile: + type: string + default: default + description: AWS profile to use. + awsRegion: + type: string + default: us-east-1 + description: AWS region to use. + commandFunction: + # A JS function that produces the CLI command based on the given config to start the MCP on stdio. + |- + (config) => ({ + command: 'python', + args: ['-m', 'aws_mcp_server'], + env: { + AWS_MCP_TIMEOUT: String(config.awsMcpTimeout || 300), + AWS_MCP_MAX_OUTPUT: String(config.awsMcpMaxOutput || 100000), + AWS_MCP_TRANSPORT: config.awsMcpTransport || 'stdio', + AWS_PROFILE: config.awsProfile || 'default', + AWS_REGION: config.awsRegion || 'us-east-1' + } + }) + exampleConfig: + awsMcpTimeout: 300 + awsMcpMaxOutput: 100000 + awsMcpTransport: stdio + awsProfile: default + awsRegion: us-east-1