Skip to main content
Glama
vasayxtx

mcp-prompt-engine

by vasayxtx

MCP Prompt Engine

Go Report Card GitHub release (latest by date) License: MIT Go.Dev reference

Un servidor de Model Control Protocol (MCP) para gestionar y servir plantillas de prompts dinámicas utilizando un motor de plantillas de texto elegante y potente. Crea prompts reutilizables basados en lógica con variables, parciales y condicionales que pueden servirse a cualquier cliente MCP compatible como Claude Code, Claude Desktop, Gemini CLI, VSCode con Copilot, etc.

Características principales

  • Compatible con MCP: Funciona de forma inmediata con cualquier cliente MCP que soporte prompts.

  • Potentes plantillas de Go: Utiliza toda la potencia de la sintaxis text/template de Go, incluyendo variables, condicionales, bucles y más.

  • Parciales reutilizables: Define componentes comunes en plantillas parciales (p. ej., _header.tmpl) y reutilízalos en tus prompts.

  • Argumentos de prompt: Todas las variables de plantilla se exponen automáticamente como argumentos de prompt de MCP, permitiendo la entrada dinámica desde los clientes.

  • Recarga en caliente (Hot-Reload): Detecta automáticamente los cambios en tus archivos de prompt y los recarga sin reiniciar el servidor.

  • CLI enriquecida: Una interfaz de línea de comandos moderna para listar, validar y renderizar plantillas para facilitar el desarrollo y las pruebas.

  • Manejo inteligente de argumentos:

    • Analiza automáticamente argumentos JSON (booleanos, números, arrays, objetos).

    • Inyecta variables de entorno como alternativas (fallbacks) para los argumentos de la plantilla.

  • Contenedorizado: Soporte completo para Docker para facilitar el despliegue y la integración.

Related MCP server: MCP-YNU FastMCP Server

Despliegue alojado

Hay un despliegue alojado disponible en Fronteir AI.

Primeros pasos

1. Instalación

Instalar usando Go:

go install github.com/vasayxtx/mcp-prompt-engine@latest

(Para otros métodos como Docker o binarios precompilados, consulta la sección de Instalación a continuación).

2. Crear un prompt

Crea un directorio prompts y añade un archivo de plantilla. Vamos a crear un prompt para ayudar a escribir un mensaje de commit de Git.

Primero, crea un parcial reutilizable llamado prompts/_git_commit_role.tmpl:

```go
{{ define "_git_commit_role" }}
You are an expert programmer specializing in writing clear, concise, and conventional Git commit messages.
Commit message must strictly follow the Conventional Commits specification.

The final commit message you generate must be formatted exactly as follows:

```
<type>: A brief, imperative-tense summary of changes

[Optional longer description, explaining the "why" of the change. Use dash points for clarity.]
```
{{ if .type -}}
Use {{.type}} as a type.
{{ end }}
{{ end }}
```

Ahora, crea un prompt principal prompts/git_stage_commit.tmpl que utilice este parcial:

{{- /* Commit currently staged changes */ -}}

GXP3

### 3. Validar tu prompt

Valida tu prompt para asegurarte de que no tiene errores de sintaxis:

GXP4

### 4. Conectar el servidor MCP a tu cliente

Añade el servidor MCP a tu cliente MCP. Consulta [Conexión a clientes](#connecting-to-clients) para ver ejemplos de configuración.

### 5. Usar tu prompt

¡Tu prompt `git_stage_commit` estará ahora disponible en tu cliente!

Por ejemplo, en Claude Desktop, puedes seleccionar el prompt `git_stage_commit`, proporcionar el argumento de prompt MCP `type` y obtener un prompt generado que te ayudará a realizar un commit con un mensaje perfecto.

En Claude Code o Gemini CLI, puedes empezar a escribir `/git_stage_commit` y sugerirá el prompt con los argumentos proporcionados que se ejecutarán después de que lo selecciones.

***

## Instalación

### Binarios precompilados

Descarga la última versión para tu sistema operativo desde la [página de lanzamientos de GitHub](https://github.com/vasayxtx/mcp-prompt-engine/releases).

### Construir desde el código fuente

GXP5

### Docker

Hay una imagen de Docker precompilada disponible. Monta tus directorios locales `prompts` y `logs` en el contenedor.

GXP6

También puedes construir la imagen localmente con `make docker-build`.

***

## Uso

### Crear plantillas de prompt

Crea un directorio para almacenar tus plantillas de prompt. Cada plantilla debe ser un archivo `.tmpl` que utilice la sintaxis `text/template` de Go con el siguiente formato:

GXP7

El comentario de la primera línea (`{{/* descripción */}}`) se utiliza como descripción del prompt, y el resto del archivo es la plantilla del prompt.

Las plantillas parciales deben tener un prefijo de guion bajo (p. ej., `_header.tmpl`) y pueden incluirse en otras plantillas usando `{{template "partial_name" .}}`.

### Sintaxis de plantillas

El servidor utiliza el motor `text/template` de Go, que proporciona potentes capacidades de creación de plantillas:

* **Variables**: `{{.variable_name}}` - Accede a las variables de la plantilla
* **Variables integradas**:
  * `{{.date}}` - Fecha y hora actuales
* **Condicionales**: `{{if .condition}}...{{end}}`, `{{if .condition}}...{{else}}...{{end}}`
* **Operadores lógicos**: `{{if and .condition1 .condition2}}...{{end}}`, `{{if or .condition1 .condition2}}...{{end}}`
* **Bucles**: `{{range .items}}...{{end}}`
* **Inclusión de plantillas**: `{{template "partial_name" .}}` o `{{template "partial_name" dict "key" "value"}}`

Consulta la [documentación de text/template de Go](https://pkg.go.dev/text/template) para obtener más detalles sobre la sintaxis y las características.

### Análisis de argumentos JSON

El servidor analiza automáticamente los valores de los argumentos como JSON cuando es posible, permitiendo tipos de datos enriquecidos en las plantillas:

* **Booleanos**: `true`, `false` → Valores booleanos de Go
* **Números**: `42`, `3.14` → Valores numéricos de Go
* **Arrays**: `["item1", "item2"]` → Slices de Go para usar con `{{range}}`
* **Objetos**: `{"key": "value"}` → Mapas de Go para datos estructurados
* **Cadenas**: El JSON no válido vuelve a ser un valor de cadena

Esto permite operaciones de plantilla avanzadas como:

GXP8

Para desactivar el análisis JSON y tratar todos los argumentos como cadenas, utiliza la bandera `--disable-json-args` para los comandos `serve` y `render`.

### Comandos CLI

La CLI es tu herramienta principal para gestionar y probar plantillas.
Por defecto, busca plantillas en el directorio `./prompts`, pero puedes especificar un directorio diferente con la bandera `--prompts`.

**1. Listar plantillas**

GXP9

**2. Renderizar una plantilla**

Renderiza un prompt directamente en tu terminal, proporcionando argumentos con la bandera `-a` o `--arg`.
Inyectará automáticamente variables de entorno como alternativas para cualquier argumento faltante. Por ejemplo, si tienes una variable de entorno `TYPE=fix`, se inyectará en la plantilla como `{{.type}}`.

GXP10

**3. Validar plantillas**

Comprueba todas tus plantillas en busca de errores de sintaxis. El comando devolverá un error si alguna plantilla no es válida.

GXP11

**4. Iniciar el servidor**

Ejecuta el servidor MCP para que tus prompts estén disponibles para los clientes.

GXP12

***

## Conexión a clientes

Para usar este motor con cualquier cliente que soporte MCP Prompts, añade una nueva entrada a su configuración de servidores MCP.

Ubicaciones de configuración global (MacOS):

* Claude Code: `~/.claude.json` (sección `mcpServers`)
* Claude Desktop: `~/Library/Application\ Support/Claude/claude_desktop_config.json` (sección `mcpServers`)
* Gemini CLI: `~/.gemini/settings.json` (sección `mcpServers`)

**Ejemplo para un binario local:**

GXP13

**Ejemplo para Docker:**

GXP14

## Licencia

Este proyecto está bajo la Licencia MIT - consulta el archivo [LICENSE](./LICENSE) para más detalles.
-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vasayxtx/mcp-prompt-engine'

If you have feedback or need assistance with the MCP directory API, please join our Discord server