amazon vpc lattice mcp server
A Model Context Protocol server that provides tools for accessing and managing AWS VPC Lattice information, allowing users to list sources and retrieve sample prompts related to AWS networking documentation.
A Model Context Protocol server that provides tools for accessing and managing AWS VPC Lattice information, allowing users to list sources and retrieve sample prompts related to AWS networking documentation.
A Model Context Protocol (MCP) server that provides tools for accessing and managing source information.
The server provides five main tools:
list_sources
: Lists all available sources with their URLsget_source_prompts
: Gets sample prompts for a specific sourcelist_prompts
: Lists all available prompt templatesget_prompts
: Gets details of a specific prompt templatevpc_lattice_cli
: Execute AWS CLI VPC Lattice commands for managing VPC Lattice resourcesClone the repository:
git clone https://github.com/yourusername/amazon-vpc-lattice-mcp-server.git
cd amazon-vpc-lattice-mcp-server
Install dependencies:
npm install
Build the server:
npm run build
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": {}
}
}
}
Once configured, you can use the MCP tools in your conversations:
use_mcp_tool({
server_name: "amazon-vpc-lattice-mcp",
tool_name: "list_sources",
arguments: {}
})
use_mcp_tool({
server_name: "amazon-vpc-lattice-mcp",
tool_name: "get_source_prompts",
arguments: {
source_name: "AWS Documentation"
}
})
use_mcp_tool({
server_name: "amazon-vpc-lattice-mcp",
tool_name: "list_prompts",
arguments: {}
})
use_mcp_tool({
server_name: "amazon-vpc-lattice-mcp",
tool_name: "get_prompts",
arguments: {
prompt_name: "EKS Controller Setup"
}
})
The vpc_lattice_cli
tool provides a programmatic interface to AWS VPC Lattice operations through the AWS CLI.
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"
}
}
}
}
})
Register targets:
use_mcp_tool({
server_name: "amazon-vpc-lattice-mcp",
tool_name: "vpc_lattice_cli",
arguments: {
command: "register-targets",
args: {
targetGroupIdentifier: "tg-12345",
targets: [
{ id: "i-1234567890abcdef0", port: 80 }
]
}
}
})
The server includes these sources:
src/index.ts
: Main server implementationpackage.json
: Project configuration and dependenciestsconfig.json
: TypeScript configuration.gitignore
: Git ignore rulesThe server includes these prompt templates:
Parameters: cluster_name, region, k8s_version
EKS Controller Tests
Supports both unit tests and integration tests with e2e-clean
EKS Controller Issue Solution
Includes presubmit checks and draft PR creation
Code Review
Parameters: code
Bug Analysis
Parameters: error, context
Architecture Review
Parameters: design
Documentation Generator
Parameters: code
Security Review
To add new sources, modify the sources
array in src/index.ts
:
const sources = [
{
name: Your Source ,
url: https://your-source-url.com ,
prompts: [
Sample prompt 1 {placeholder} ,
Sample prompt 2 {placeholder}
]
}
// ... existing sources
];
To add new prompt templates, modify the prompts
array in src/index.ts
:
const prompts = [
{
name: Your Prompt Template ,
description: Description of what the prompt does ,
template: Your prompt template with {parameter} placeholders ,
parameters: [ parameter ]
}
// ... existing prompts
];
npm run build
: Build the servernpm run watch
: Watch mode for development[Add your license information here]
[
{
"description": "List all available sources with their URLs and sample prompts",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_sources"
},
{
"description": "Get sample prompts for a specific source",
"inputSchema": {
"additionalProperties": false,
"properties": {
"source_name": {
"description": "Name of the source to get prompts for",
"type": "string"
}
},
"required": [
"source_name"
],
"type": "object"
},
"name": "get_source_prompts"
}
]