Skip to main content
Glama
Amazon VPC Lattice MCP Server

Amazon VPC Lattice MCP Server

by rlymbur

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

Related MCP server: Log Analyzer with MCP

Installation

This project is built with TypeScript and uses ES modules. Note that installing github-mcp-server is also strongly recommended to assist with development prompts.

  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

The build script will compile the TypeScript code and set the appropriate executable permissions.

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": {
      "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",
  tool_name: "list_sources",
  arguments: {}
})

Get Source Prompts

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

List Amazon VPC Lattice Prompts

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

Get Amazon VPC Lattice Prompt Details

use_mcp_tool({
  server_name: "amazon-vpc-lattice",
  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",
  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",
  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",
  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",
  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 as follows:

  • src/index.ts: Main server setup and initialization

  • src/tools.ts: Tool definitions and handlers

  • src/data/: Data files

    • prompts.ts: Prompt templates and parameters

    • sources.ts: Source definitions and their prompts

  • package.json: Project configuration and dependencies

  • tsconfig.json: TypeScript configuration

  • .gitignore: Git ignore rules

  • build/: Compiled JavaScript output

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)

Available Tools

5 tools
get_amazon_vpc_lattice_promptsC

Get details of a specific prompt template

Inputs: prompt_name (required).

get_source_promptsB

Get sample prompts for a specific source

Inputs: source_name (required).

list_amazon_vpc_lattice_promptsB

List all available prompt templates

Inputs: no named parameters.

list_sourcesB

List all available sources with their URLs and sample prompts

Inputs: no named parameters.

vpc_lattice_cliC

Execute AWS CLI VPC Lattice commands

Inputs: command (required), args, profile, region.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    C2.9/5.0

    Scored across 5 tools

    Disambiguation3/5

    The tools have some overlap but descriptions help clarify distinctions. 'get_amazon_vpc_lattice_prompts' and 'get_source_prompts' both retrieve prompts but target different entities (templates vs. sources), while 'list_amazon_vpc_lattice_prompts' and 'list_sources' similarly list different items. The 'vpc_lattice_cli' tool stands apart for CLI execution, but the prompt-related tools could cause mild confusion without careful reading.

    Naming Consistency4/5

    The naming is mostly consistent with a verb_noun pattern, using 'get_' and 'list_' prefixes clearly. However, 'vpc_lattice_cli' deviates by omitting a verb and using a compound noun, breaking the pattern. The other four tools follow a predictable convention, making this a minor inconsistency.

    Tool Count3/5

    With 5 tools, the count is borderline for the server's purpose of managing Amazon VPC Lattice prompts and sources. It feels slightly thin, as it covers listing and getting prompts/sources and CLI execution, but might lack operations like creating, updating, or deleting prompts, which could limit functionality. The scope is reasonable but not fully fleshed out.

    Completeness2/5

    There are significant gaps in the tool surface for managing Amazon VPC Lattice prompts. The server only provides read operations (get and list) for prompts and sources, along with CLI execution, but lacks create, update, or delete tools. This incomplete CRUD coverage will likely cause agent failures when full lifecycle management is needed, as agents cannot modify or add new prompts or sources.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that provides AI assistants access to AWS CloudWatch Logs, enabling browsing, searching, summarizing, and correlating logs across multiple AWS services.
      170
      Apache 2.0
    • A
      license
      Not graded
      quality
      Not graded
      maintenance
      Serves as a Model Context Protocol server that provides tools to look up Amazon Leadership Principles and access video transcripts for integration with Amazon Q CLI.
      MIT
    • A
      license
      D
      quality
      D
      maintenance
      A Model Context Protocol server that enables LLMs to explore and interact with API specifications by providing tools for loading, browsing, and getting detailed information about API endpoints.
      4
      15 npm
      14
      ISC