Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deployment: Dockerfile and Smithery config #2

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -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"]
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
[![Linter: Ruff](https://img.shields.io/badge/Linter-Ruff-brightgreen?style=flat-square)](https://github.com/alexei-led/aws-mcp-server)
[![Image Tags](https://ghcr-badge.egpl.dev/alexei-led/aws-mcp-server/tags?color=%2344cc11&ignore=latest&n=4&label=image+tags&trim=)](https://github.com/alexei-led/aws-mcp-server/pkgs/container/aws-mcp-server/versions)
[![Image Size](https://ghcr-badge.egpl.dev/alexei-led/aws-mcp-server/size?color=%2344cc11&tag=latest&label=image+size&trim=)](https://github.com/alexei-led/aws-mcp-server/pkgs/container/aws-mcp-server)
[![smithery badge](https://smithery.ai/badge/@alexei-led/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).

Expand Down Expand Up @@ -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
Expand Down
48 changes: 48 additions & 0 deletions smithery.yaml
Original file line number Diff line number Diff line change
@@ -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