Amazon VPC Lattice MCP Server

by MCP-Mirror

286 downloads
Not rated
GitHub

About

Amazon VPC Lattice MCP Server is a Model Context Protocol (MCP) server that provides tools for accessing, managing, and querying documentation for AWS VPC Lattice resources. It is intended for developers and operators who manage VPC Lattice infrastructure through an…

Details

Author
MCP-Mirror
Downloads
286
Categories
Cloud Service

- Lists available documentation sources and their sample prompts.
- Retrieves sample prompts for a specific documentation source.
- Lists all prompt templates for VPC Lattice operations.
- Gets details of a specific prompt template.
- Executes AWS CLI VPC Lattice commands programmatically with parameter conversion.

Clone the repository, install dependencies (npm install), and build (npm run build). Add the server configuration to your MCP settings file (e.g., cline_mcp_settings.json), specifying the path to the built index.js. Once configured, invoke tools such as list_sources, get_source_prompts, list_amazon_vpc_lattice_prompts, get_amazon_vpc_lattice_prompts, or vpc_lattice_cli via the MCP client’s use_mcp_tool function.

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

2. Install dependencies:

npm install

3. 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)

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.