Servidor MCP de Lattice de Amazon VPC
Un servidor de protocolo de contexto de modelo (MCP) para el listado de fuentes, que proporciona herramientas para obtener acceso y administrar los recursos de AWS VPC Lattice y la documentación relacionada.
Características
El servidor proporciona cinco herramientas principales:
list_sources
: Enumera todas las fuentes disponibles con sus URL y ejemplos de indicacionesget_source_prompts
: Obtiene ejemplos de avisos para una fuente específicalist_amazon_vpc_lattice_prompts
: Lista todas las plantillas de avisos disponiblesget_amazon_vpc_lattice_prompts
: Obtiene los detalles de una plantilla específicavpc_lattice_cli
: Ejecuta comandos VPC Lattice de la CLI de AWS para administrar recursos VPC Lattice
Instalación
Este proyecto está construido con TypeScript y utiliza módulos ES. Tenga en cuenta que la instalación de github-mcp-server también es muy recomendable para ayudar con los avisos de desarrollo.
- Clona el repositorio:
git clone https://github.com/awslabs/amazon-vpc-lattice-mcp-server.git cd amazon-vpc-lattice-mcp-server
- Instala las dependencias:
npm install
- Construye el servidor:
npm run build
El script de compilación compilará el código TypeScript y establecerá los permisos de ejecución adecuados.
Configuración
Añada el servidor a su archivo de configuración MCP (ubicado en ~/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": {} } } }
Uso
Una vez configurado, puede utilizar las herramientas MCP en sus conversaciones. Ten en cuenta que debes utilizar list_amazon_vpc_lattice_prompts
para descubrir los avisos disponibles, ya que éstos no se descubren automáticamente como las herramientas.
Listar fuentes
use_mcp_tool({ nombre_servidor: "amazon-vpc-lattice", nombre_herramienta: "list_sources", arguments: {} })
Obtener fuentes
use_mcp_tool({ nombre_servidor: "amazon-vpc-lattice", nombre_herramienta: "get_source_prompts", argumentos: { source_name: "Documentación de AWS" })
Lista de avisos de Amazon VPC Lattice
use_mcp_tool({ nombre_servidor: "amazon-vpc-lattice", nombre_herramienta: "list_amazon_vpc_lattice_prompts", arguments: {} })
Obtener detalles de Amazon VPC Lattice Prompt
use_mcp_tool({ nombre_servidor: "amazon-vpc-lattice", nombre_herramienta: "get_amazon_vpc_lattice_prompts", argumentos: { prompt_name: "setup_eks_controller" } })
VPC Lattice CLI
La herramienta vpc_lattice_cli
proporciona una interfaz programática para las operaciones de AWS VPC Lattice a través de la CLI de AWS.
Características
- Admite todas las operaciones principales de la CLI de VPC Lattice
- Acepta argumentos de comandos como objetos JavaScript
- Convierte automáticamente los parámetros camelCase a kebab-case estilo CLI
- Maneja indicadores booleanos, matrices y valores complejos
- Admite perfiles de AWS y configuración regional
- Devuelve respuestas JSON analizadas
Comandos disponibles
- Red de servicios: create-service-network, delete-service-network, get-service-network, list-service-networks, update-service-network
- Servicio: create-service, delete-service, get-service, list-services, update-service
- Escucha: create-listener, delete-listener, get-listener, list-listeners, update-listener
- Regla: create-rule, delete-rule, get-rule, list-rules, update-rule
- Grupo de destino: create-target-group, delete-target-group, get-target-group, list-target-groups, update-target-group
- Gestión de objetivos: register-targets, deregister-targets, list-targets
- Etiquetas de recursos: list-tags-for-resource, tag-resource, untag-resource
Ejemplos
Listar redes de servicio:
use_mcp_tool({ nombre_servidor: "amazon-vpc-lattice", nombre_herramienta: "vpc_lattice_cli", argumentos: { comando: "list-service-networks", region: "us-west-2" } })
Crear una red de servicios:
use_mcp_tool({ nombre_servidor: "amazon-vpc-lattice", nombre_herramienta: "vpc_lattice_cli", argumentos: { comando: "crear-servicio-red", args: { nombre: "mi-red", authType: "NONE" } } })
Crear un servicio con etiquetas:
use_mcp_tool({ nombre_servidor: "amazon-vpc-lattice", nombre_herramienta: "vpc_lattice_cli", argumentos: { command: "create-service", args: { name: "my-service", serviceNetworkIdentifier: "sn-12345", tags: [ { key: "Environment", value: "Production" } } })
Crear un grupo de destino:
use_mcp_tool({ nombre_servidor: "amazon-vpc-lattice", nombre_herramienta: "vpc_lattice_cli", argumentos: { comando: "create-target-group", args: { name: "my-target-group", type: "INSTANCE", config: { puerto: 80, protocolo: "HTTP", healthCheck: { enabled: true, protocol: "HTTP", ruta: "/health" } } } } })
Fuentes disponibles
El servidor incluye estas fuentes:
Documentación de AWS (docs.aws.amazon.com)
- Consultas sobre características clave
- Guía de configuración
- Prácticas recomendadas
Controlador de API de AWS Gateway para VPC Lattice (aws/aws-application-networking-k8s)
- Consultas de soporte de características
- Seguimiento de problemas
API de gateway de Kubernetes (gateway-api.sigs.k8s.io)
- Resolución de errores
- Guía de mejores prácticas
Desarrollo
Estructura del proyecto
El proyecto está organizado de la siguiente manera:
src/index.ts
: Configuración e inicialización del servidor principalsrc/tools.ts
: Definiciones de herramientas y manejadoressrc/data/
: Archivos de datosprompts.ts
: Prompt templates and parameterssources.ts
: Definiciones de fuentes y sus prompts
package.json
: Configuración del proyecto y dependenciastsconfig.json
: Configuración de TypeScript.gitignore
: Reglas de ignorar de Gitbuild/
: Salida JavaScript compilada
Añadir nuevas fuentes
Para añadir nuevas fuentes, modifica el array sources
en src/data/sources.ts
:
export const sources = [ { name: 'Tu fuente', url: 'https://your-source-url.com', prompts: [ 'Ejemplo de pregunta 1 {placeholder}', 'Ejemplo de pregunta 2 {placeholder}' ] } // ... fuentes existentes ]
Añadir nuevas instrucciones
Para añadir nuevas plantillas de avisos, modifica el array prompts
en src/data/prompts.ts
:
export const prompts = [ { name: 'Tu plantilla de prompt', description: 'Descripción de lo que hace el prompt', template: 'Tu plantilla de prompt con marcadores de posición {parameter}', parameters: ['parameter'] } // ... prompts existentes ]
Scripts
npm run build
: Construye el servidor y establece los permisos de ejecuciónnpm run watch
: Modo de vigilancia para el desarrollonpm test
: Ejecutar pruebas (actualmente no implementado)