rlymbur_amazon-vpc-lattice-mcp-server

rlymbur_amazon-vpc-lattice-mcp-server

3.1

If you are the rightful owner of rlymbur_amazon-vpc-lattice-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A Model Context Protocol (MCP) server for source listing, providing tools for accessing and managing AWS VPC Lattice resources and related documentation.

Amazon VPC Lattice MCP Server

A Model Context Protocol (MCP) server for source listing, providing tools for accessing and managing AWS VPC Lattice resources and related documentation.

Features

The server provides five main tools:

  1. list_sources: Lists all available sources with their URLs and sample prompts
  2. get_source_prompts: Gets sample prompts for a specific source
  3. list_amazon_vpc_lattice_prompts: Lists all available prompt templates
  4. get_amazon_vpc_lattice_prompts: Gets details of a specific prompt template
  5. vpc_lattice_cli: Execute AWS CLI VPC Lattice commands for managing VPC Lattice resources

Installation

  1. Clone the repository:
git clone https://github.com/awslabs/amazon-vpc-lattice-mcp-server.git
cd amazon-vpc-lattice-mcp-server
  1. Install dependencies:
npm install
  1. Build the server:
npm run build

Configuration

Add the server to your MCP settings file (located at ~/Library/Application Support/Code/User/globalStorage/asbx.amzn-cline/settings/cline_mcp_settings.json):

{
  "mcpServers": {
    "amazon-vpc-lattice-mcp": {
      "command": "node",
      "args": ["/path/to/amazon-vpc-lattice-mcp-server/build/index.js"],
      "disabled": false,
      "autoApprove": [],
      "env": {}
    }
  }
}

Usage

Once configured, you can use the MCP tools in your conversations. Note that you should use list_amazon_vpc_lattice_prompts to discover available prompts as these are not automatically discoverable like tools.

List Sources

use_mcp_tool({
  server_name: "amazon-vpc-lattice-mcp",
  tool_name: "list_sources",
  arguments: {}
})

Get Source Prompts

use_mcp_tool({
  server_name: "amazon-vpc-lattice-mcp",
  tool_name: "get_source_prompts",
  arguments: {
    source_name: "AWS Documentation"
  }
})

List Amazon VPC Lattice Prompts

use_mcp_tool({
  server_name: "amazon-vpc-lattice-mcp",
  tool_name: "list_amazon_vpc_lattice_prompts",
  arguments: {}
})

Get Amazon VPC Lattice Prompt Details

use_mcp_tool({
  server_name: "amazon-vpc-lattice-mcp",
  tool_name: "get_amazon_vpc_lattice_prompts",
  arguments: {
    prompt_name: "setup_eks_controller"
  }
})

VPC Lattice CLI

The vpc_lattice_cli tool provides a programmatic interface to AWS VPC Lattice operations through the AWS CLI.

Features
  • Supports all major VPC Lattice CLI operations
  • Accepts command arguments as JavaScript objects
  • Automatically converts camelCase parameters to CLI-style kebab-case
  • Handles boolean flags, arrays, and complex values
  • Supports AWS profiles and region configuration
  • Returns parsed JSON responses
Available Commands
  • Service Network: create-service-network, delete-service-network, get-service-network, list-service-networks, update-service-network
  • Service: create-service, delete-service, get-service, list-services, update-service
  • Listener: create-listener, delete-listener, get-listener, list-listeners, update-listener
  • Rule: create-rule, delete-rule, get-rule, list-rules, update-rule
  • Target Group: create-target-group, delete-target-group, get-target-group, list-target-groups, update-target-group
  • Target Management: register-targets, deregister-targets, list-targets
  • Resource Tags: list-tags-for-resource, tag-resource, untag-resource
Examples

List service networks:

use_mcp_tool({
  server_name: "amazon-vpc-lattice-mcp",
  tool_name: "vpc_lattice_cli",
  arguments: {
    command: "list-service-networks",
    region: "us-west-2"
  }
})

Create a service network:

use_mcp_tool({
  server_name: "amazon-vpc-lattice-mcp",
  tool_name: "vpc_lattice_cli",
  arguments: {
    command: "create-service-network",
    args: {
      name: "my-network",
      authType: "NONE"
    }
  }
})

Create a service with tags:

use_mcp_tool({
  server_name: "amazon-vpc-lattice-mcp",
  tool_name: "vpc_lattice_cli",
  arguments: {
    command: "create-service",
    args: {
      name: "my-service",
      serviceNetworkIdentifier: "sn-12345",
      tags: [
        { key: "Environment", value: "Production" }
      ]
    }
  }
})

Create a target group:

use_mcp_tool({
  server_name: "amazon-vpc-lattice-mcp",
  tool_name: "vpc_lattice_cli",
  arguments: {
    command: "create-target-group",
    args: {
      name: "my-target-group",
      type: "INSTANCE",
      config: {
        port: 80,
        protocol: "HTTP",
        healthCheck: {
          enabled: true,
          protocol: "HTTP",
          path: "/health"
        }
      }
    }
  }
})

Available Sources

The server includes these sources:

  1. AWS Documentation (docs.aws.amazon.com)

    • Key features queries
    • Configuration guidance
    • Best practices
  2. AWS Gateway API Controller for VPC Lattice (aws/aws-application-networking-k8s)

    • Feature support queries
    • Issue tracking
  3. Kubernetes Gateway API (gateway-api.sigs.k8s.io)

    • Error resolution
    • Best practices guidance

Development

Project Structure

The project is organized into several modules:

  • src/index.ts: Main server setup and initialization
  • src/tools.ts: Tool definitions and handlers
  • src/data/
    • sources.ts: Source definitions and their prompts
    • prompts.ts: Prompt templates and parameters
  • package.json: Project configuration and dependencies
  • tsconfig.json: TypeScript configuration
  • .gitignore: Git ignore rules

Available Prompts

The server includes these prompt templates:

  1. Setup EKS Controller

    • Guide for setting up the AWS Application Networking Controller for Kubernetes
    • Parameters: cluster_name, region, k8s_version
  2. Run EKS Controller Tests

    • Run unit and integration tests
    • Parameters: test_type, test_focus
  3. EKS Controller Issue Solution

    • Create solutions for GitHub issues
    • Parameters: issue_number
  4. Review GitHub PR

    • Comprehensive code review of pull requests
    • Parameters: pr_url
  5. Bug Analysis

    • Analyze error messages and suggest fixes
    • Parameters: error, context
  6. Review Architecture

    • Review system architecture and provide recommendations
    • Parameters: design
  7. Generate Documentation

    • Generate documentation for code or APIs
    • Parameters: code
  8. Review Security

    • Review code or architecture for security concerns
    • Parameters: target
  9. Create GitHub PR

    • Push current branch and create PR to main branch
    • Automatically uses PULL_REQUEST_TEMPLATE.md
    • Parameters: none

Adding New Sources

To add new sources, modify the sources array in src/data/sources.ts:

export const sources = [
  {
    name: 'Your Source',
    url: 'https://your-source-url.com',
    prompts: [
      'Sample prompt 1 {placeholder}',
      'Sample prompt 2 {placeholder}'
    ]
  }
  // ... existing sources
];

Adding New Prompts

To add new prompt templates, modify the prompts array in src/data/prompts.ts:

export const prompts = [
  {
    name: 'Your Prompt Template',
    description: 'Description of what the prompt does',
    template: 'Your prompt template with {parameter} placeholders',
    parameters: ['parameter']
  }
  // ... existing prompts
];

Scripts

  • npm run build: Build the server and set executable permissions
  • npm run watch: Watch mode for development
  • npm test: Run tests (currently not implemented)