Amazon VPC Lattice MCP Server
The Amazon VPC Lattice MCP Server allows you to discover documentation and manage VPC Lattice resources through several key functions:
List available documentation sources with their URLs and sample prompts
Retrieve sample prompts for specific sources
Access predefined VPC Lattice prompt templates and their details
Execute AWS CLI commands to manage VPC Lattice resources including Service Networks, Services, Listeners, Rules, Target Groups, Targets, and resource tags
Handle complex AWS configurations including boolean flags, arrays, and AWS profiles/region settings
Provides access to the AWS Gateway API Controller for VPC Lattice repository on GitHub, allowing users to retrieve source information and prompts related to this project.
Enables access to Kubernetes Gateway API documentation and resources, providing source information and sample prompts for working with VPC Lattice in Kubernetes environments.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Amazon VPC Lattice MCP Serverlist my service networks in us-west-2"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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:
list_sources: Lists all available sources with their URLs and sample promptsget_source_prompts: Gets sample prompts for a specific sourcelist_amazon_vpc_lattice_prompts: Lists all available prompt templatesget_amazon_vpc_lattice_prompts: Gets details of a specific prompt templatevpc_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.
Clone the repository:
git clone https://github.com/awslabs/amazon-vpc-lattice-mcp-server.git
cd amazon-vpc-lattice-mcp-serverInstall dependencies:
npm installBuild the server:
npm run buildThe 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:
AWS Documentation (docs.aws.amazon.com)
Key features queries
Configuration guidance
Best practices
AWS Gateway API Controller for VPC Lattice (aws/aws-application-networking-k8s)
Feature support queries
Issue tracking
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 initializationsrc/tools.ts: Tool definitions and handlerssrc/data/: Data filesprompts.ts: Prompt templates and parameterssources.ts: Source definitions and their prompts
package.json: Project configuration and dependenciestsconfig.json: TypeScript configuration.gitignore: Git ignore rulesbuild/: 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 permissionsnpm run watch: Watch mode for developmentnpm test: Run tests (currently not implemented)
Available Tools
5 toolsget_amazon_vpc_lattice_promptsC
Get details of a specific prompt template
| Name | Required | Description | Default |
|---|---|---|---|
| prompt_name | Yes | Name of the prompt template to get |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only states what the tool does ('Get details') without mentioning any behavioral traits such as permissions needed, rate limits, error handling, or what 'details' include. This is insufficient for a tool with no annotation coverage, as it leaves key operational aspects undefined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and efficiently communicates the core function, earning its place without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It does not explain what 'details' are returned, how errors are handled, or any behavioral context. For a tool that retrieves specific data, this leaves significant gaps in understanding its full operation and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'prompt_name' clearly documented as 'Name of the prompt template to get'. The description does not add any additional meaning beyond this, such as format examples or constraints. Given the high schema coverage, a baseline score of 3 is appropriate as the schema adequately handles parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Get details of a specific prompt template', which includes a specific verb ('Get') and resource ('prompt template'). However, it does not explicitly distinguish this from sibling tools like 'get_source_prompts' or 'list_amazon_vpc_lattice_prompts', which likely involve similar resources but different scopes or operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention sibling tools, prerequisites, or specific contexts for usage, leaving the agent to infer based on the tool name alone. This lack of explicit when-to-use or when-not-to-use information reduces clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_source_promptsB
Get sample prompts for a specific source
| Name | Required | Description | Default |
|---|---|---|---|
| source_name | Yes | Name of the source to get prompts for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe behavioral traits such as whether it's read-only, if it requires authentication, rate limits, error handling, or what format the 'sample prompts' are returned in. This leaves significant gaps for a tool that likely retrieves data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on usage guidelines, behavioral traits, and output format, which are important for effective tool invocation in a broader context with sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'source_name' clearly documented in the schema. The description adds minimal value beyond the schema by implying the parameter is used to identify a source, but it doesn't provide additional context like valid source names or examples. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get sample prompts') and the target resource ('for a specific source'), which provides a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'get_amazon_vpc_lattice_prompts' or 'list_sources', which appear to be related to similar domains but have different scopes or functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_sources' (which might list sources before selecting one) or 'get_amazon_vpc_lattice_prompts' (which seems source-specific), leaving the agent to infer usage context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_amazon_vpc_lattice_promptsB
List all available prompt templates
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'List all available prompt templates' implies a read-only operation, it doesn't specify whether this requires authentication, has rate limits, returns paginated results, or details the format of the output. For a tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 parameters, no annotations, and no output schema, the description is minimally adequate but lacks completeness. It doesn't explain what 'prompt templates' are, how they're structured, or what the output looks like, which could hinder an agent's ability to use this tool effectively in context with siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, earning a baseline score of 4 for not adding unnecessary information beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('all available prompt templates'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'get_amazon_vpc_lattice_prompts' or 'get_source_prompts', which likely retrieve specific prompts rather than listing all templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention sibling tools like 'get_amazon_vpc_lattice_prompts' (which might retrieve specific prompts) or 'list_sources' (which might list different resources), leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sourcesB
List all available sources with their URLs and sample prompts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions that the tool lists sources with URLs and sample prompts, which implies a read-only operation, but doesn't specify if this requires authentication, how data is returned (e.g., pagination, format), or any rate limits. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'List all available sources with their URLs and sample prompts.' It is front-loaded with the core action and includes no unnecessary words, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are no parameters and no output schema, the description provides a clear purpose but lacks details on behavioral aspects like authentication, return format, or error handling. For a simple list tool, this might be adequate, but without annotations or output schema, it doesn't fully prepare an agent for invocation, leaving room for improvement in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, meaning there are no parameters to document. The description doesn't need to add parameter details, so it appropriately focuses on the tool's purpose. A baseline of 4 is applied since no parameters exist, and the description doesn't attempt to explain non-existent inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List all available sources with their URLs and sample prompts.' It specifies the verb ('List'), resource ('available sources'), and what information is included ('URLs and sample prompts'). However, it doesn't explicitly distinguish this from sibling tools like 'get_source_prompts' or 'list_amazon_vpc_lattice_prompts', which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_source_prompts' and 'list_amazon_vpc_lattice_prompts' available, there is no indication of when this tool is appropriate, what prerequisites might be needed, or any exclusions for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vpc_lattice_cliC
Execute AWS CLI VPC Lattice commands
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Command arguments as key-value pairs | |
| command | Yes | The VPC Lattice subcommand to execute (e.g., create-service-network, list-service-networks) | |
| profile | No | AWS CLI profile to use | default |
| region | No | AWS region | us-east-1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'execute' which implies mutation, but doesn't disclose behavioral traits like which commands are destructive (e.g., delete-*), authentication needs, error handling, or output format. This is a significant gap for a CLI tool with potentially destructive operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, clearly stating the tool's function without unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, no annotations, no output schema, and a wide range of commands including destructive ones), the description is incomplete. It lacks context on safety, output, error cases, or how to interpret results, making it inadequate for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters. The description adds no meaning beyond the schema—it doesn't explain parameter relationships, command-argument mappings, or usage examples. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Execute AWS CLI VPC Lattice commands' states the action (execute) and target (AWS CLI VPC Lattice commands), but is vague about what VPC Lattice is and doesn't differentiate from sibling tools like get_amazon_vpc_lattice_prompts or list_amazon_vpc_lattice_prompts. It provides a basic purpose but lacks specificity about the resource domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention sibling tools, prerequisites like AWS credentials, or typical use cases. Usage is implied only through the command enum in the schema, not in the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- First observed
get_amazon_vpc_lattice_prompts - First observed
get_source_prompts - First observed
list_amazon_vpc_lattice_prompts - First observed
list_sources - First observed
vpc_lattice_cli
TDQS
Scored across 5 tools
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.
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.
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.
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.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The AWS Knowledge MCP server is a fully managed remote Model Context Protocol server that provides real-time access to official AWS content in an LLM-compatible format. It offers structured access to AWS documentation, code samples, blog posts, What's New announcements, Well-Architected best practices, and regional availability information for AWS APIs and CloudFormation resources. Key capabilities include searching and reading documentation in markdown format, getting content recommendations, listing AWS regions, and checking regional availability for services and features.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceProvides a scalable, containerized infrastructure for deploying and managing Model Context Protocol servers with monitoring, high availability, and secure configurations.-

Log Analyzer with MCPofficial
AlicenseNot gradedqualityFmaintenanceA Model Context Protocol server that provides AI assistants access to AWS CloudWatch Logs, enabling browsing, searching, summarizing, and correlating logs across multiple AWS services.167Apache 2.0- -licenseNot gradedqualityNot gradedmaintenanceServes 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.-
- AlicenseDqualityDmaintenanceA 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.41514ISC