diff --git a/scripts/verify_package_name.py b/scripts/verify_package_name.py index 79c1c29bc7..f20a663e44 100755 --- a/scripts/verify_package_name.py +++ b/scripts/verify_package_name.py @@ -59,17 +59,24 @@ def extract_package_name(pyproject_path: Path) -> str: def extract_dependencies(pyproject_path: Path) -> List[str]: - """Extract dependency names from pyproject.toml file.""" + """Extract dependency names from pyproject.toml file, including optional dependencies.""" try: with open(pyproject_path, 'rb') as f: data = tomllib.load(f) - dependencies = data.get('project', {}).get('dependencies', []) + + # Combine regular dependencies and optional dependencies + all_deps = data.get('project', {}).get('dependencies', []) + optional_deps = data.get('project', {}).get('optional-dependencies', {}) + for group_deps in optional_deps.values(): + all_deps.extend(group_deps) + # Extract just the package names (remove version constraints) dep_names = [] - for dep in dependencies: + for dep in all_deps: # Remove version constraints (>=, ==, etc.) and extract just the package name dep_name = re.split(r'[>= **Note**: The hosted Amazon EKS MCP Server is in preview and subject to change. + ## Key features * Enables users of AI code assistants to create new EKS clusters, complete with prerequisites such as dedicated VPCs, networking, and EKS Auto Mode node pools, by translating requests into the appropriate AWS CloudFormation actions. @@ -21,6 +25,56 @@ Integrating the EKS MCP server into AI code assistants enhances development work ## Setup +### Option 1 (Recommended): Hosted MCP Server + +Use the AWS-managed EKS MCP Server for simplified setup and automatic updates. The hosted service eliminates local installation requirements and provides enterprise-grade security through AWS IAM integration. + +#### Prerequisites + +- [Python 3.10+](https://www.python.org/downloads/release/python-3100/) and [uv package manager](https://docs.astral.sh/uv/getting-started/installation/) +- [AWS CLI configured](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) with valid credentials +- IAM permissions for EKS MCP (see below) + +#### Configuration + +The hosted EKS MCP Server uses the [MCP Proxy for AWS](https://github.com/aws/mcp-proxy-for-aws) to provide secure, authenticated access. Add the following to your MCP client configuration file: + +**For Mac/Linux:** +```json +{ + "mcpServers": { + "eks-mcp": { + "disabled": false, + "type": "stdio", + "command": "uvx", + "args": [ + "mcp-proxy-for-aws@latest", + "https://eks-mcp.us-east-1.api.aws/mcp", + "--profile", + "default", + "--region", + "us-east-1" + ] + } + } +} +``` + +Replace `us-east-1` with your desired AWS region and `default` with your AWS CLI profile name. Add `--read-only` flag to restrict to read-only operations. + +#### IAM Permissions + +Your IAM role or user must have the following managed policies attached: + +- **For read-only operations**: [AmazonEKSMCPReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSMCPReadOnlyAccess.html) +- **For write operations**: Create a custom policy following the [write policy guide](https://docs.aws.amazon.com/eks/latest/userguide/eks-mcp-getting-started.html#_step_2_optional_create_a_write_policy) + +For complete setup instructions and additional configuration options, see the [Amazon EKS MCP Server documentation](https://docs.aws.amazon.com/eks/latest/userguide/eks-mcp-getting-started.html). + +### Option 2: Local MCP Server (Legacy) + +> **Note**: This is the legacy local installation method that will no longer receive updates. We recommend using [Option 1 (Hosted MCP Server)](#option-1-recommended-hosted-mcp-server) instead. + Add these IAM policies to the IAM role or user that you use to manage your EKS cluster resources. ### Read-Only Operations Policy diff --git a/src/eks-mcp-server/pyproject.toml b/src/eks-mcp-server/pyproject.toml index 34b5bef0d5..a314ac5876 100644 --- a/src/eks-mcp-server/pyproject.toml +++ b/src/eks-mcp-server/pyproject.toml @@ -33,6 +33,9 @@ classifiers = [ "Programming Language :: Python :: 3.13", ] +[project.optional-dependencies] +hosted = ["mcp-proxy-for-aws>=1.1.1"] + [project.urls] homepage = "https://awslabs.github.io/mcp/" docs = "https://awslabs.github.io/mcp/servers/eks-mcp-server/" diff --git a/src/eks-mcp-server/server.json b/src/eks-mcp-server/server.json new file mode 100644 index 0000000000..280847b3ee --- /dev/null +++ b/src/eks-mcp-server/server.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", + "description": "AI-powered Amazon EKS cluster management and troubleshooting", + "name": "io.github.awslabs/eks-mcp-server", + "packages": [ + { + "identifier": "mcp-proxy-for-aws", + "packageArguments": [ + { + "type": "positional", + "value": "https://eks-mcp.{region}.api.aws/mcp", + "variables": { + "region": { + "default": "us-east-1", + "description": "AWS region for EKS MCP service", + "isRequired": true + } + } + }, + { + "default": "default", + "description": "AWS CLI profile to use for credentials", + "name": "--profile", + "type": "named" + }, + { + "name": "--region", + "type": "named", + "value": "{region}", + "variables": { + "region": { + "default": "us-east-1", + "description": "AWS region" + } + } + } + ], + "registryBaseUrl": "https://pypi.org", + "registryType": "pypi", + "runtimeHint": "uvx", + "transport": { + "type": "stdio" + }, + "version": "1.1.1" + } + ], + "repository": { + "source": "github", + "subfolder": "src/eks-mcp-server", + "url": "https://github.com/awslabs/mcp" + }, + "title": "Amazon EKS MCP Server", + "version": "1.0.0", + "websiteUrl": "https://docs.aws.amazon.com/eks/latest/userguide/eks-mcp-getting-started.html" +}