mcp-prompt-engine
MCP Prompt Engine
Сервер протокола управления моделями (MCP) для управления и предоставления динамических шаблонов промптов с использованием элегантного и мощного движка текстовых шаблонов. Создавайте повторно используемые промпты на основе логики с переменными, частичными шаблонами и условиями, которые можно передать любому совместимому MCP-клиенту, такому как Claude Code, Claude Desktop, Gemini CLI, VSCode с Copilot и другим.
Основные возможности
Совместимость с MCP: Работает «из коробки» с любым MCP-клиентом, поддерживающим промпты.
Мощные шаблоны Go: Использует всю мощь синтаксиса text/template языка Go, включая переменные, условия, циклы и многое другое.
Повторно используемые частичные шаблоны: Определяйте общие компоненты в частичных шаблонах (например,
_header.tmpl) и используйте их повторно в своих промптах.Аргументы промптов: Все переменные шаблона автоматически предоставляются как аргументы MCP-промпта, что позволяет передавать динамические входные данные от клиентов.
Горячая перезагрузка: Автоматически обнаруживает изменения в файлах промптов и перезагружает их без перезапуска сервера.
Богатый CLI: Современный интерфейс командной строки для перечисления, проверки и рендеринга шаблонов для удобной разработки и тестирования.
Умная обработка аргументов:
Автоматически анализирует JSON-аргументы (логические значения, числа, массивы, объекты).
Внедряет переменные окружения в качестве резервных значений для аргументов шаблона.
Контейнеризация: Полная поддержка Docker для простого развертывания и интеграции.
Related MCP server: MCP-YNU FastMCP Server
Хостинг
Развернутая версия доступна на Fronteir AI.
Начало работы
1. Установка
Установите с помощью Go:
go install github.com/vasayxtx/mcp-prompt-engine@latest(Для других методов, таких как Docker или готовые бинарные файлы, см. раздел Установка ниже.)
2. Создание промпта
Создайте каталог prompts и добавьте файл шаблона. Давайте создадим промпт для помощи в написании сообщения коммита Git.
Сначала создайте повторно используемый частичный шаблон с именем 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 }}
```Теперь создайте основной промпт prompts/git_stage_commit.tmpl, который использует этот частичный шаблон:
{{- /* Коммит текущих подготовленных изменений */ -}}
GXP3
### 3. Проверка промпта
Проверьте свой промпт, чтобы убедиться в отсутствии синтаксических ошибок:
GXP4
### 4. Подключение MCP-сервера к клиенту
Добавьте MCP-сервер в свой MCP-клиент. См. [Подключение к клиентам](#connecting-to-clients) для примеров конфигурации.
### 5. Использование промпта
Ваш промпт `git_stage_commit` теперь будет доступен в вашем клиенте!
Например, в Claude Desktop вы можете выбрать промпт `git_stage_commit`, предоставить аргумент MCP-промпта `type` и получить сгенерированный промпт, который поможет вам сделать коммит с идеальным сообщением.
В Claude Code или Gemini CLI вы можете начать вводить `/git_stage_commit`, и он предложит промпт с предоставленными аргументами, который будет выполнен после выбора.
***
## Установка
### Готовые бинарные файлы
Скачайте последний релиз для вашей ОС со [страницы релизов GitHub](https://github.com/vasayxtx/mcp-prompt-engine/releases).
### Сборка из исходного кода
GXP5
### Docker
Доступен готовый Docker-образ. Примонтируйте локальные каталоги `prompts` и `logs` к контейнеру.
GXP6
Вы также можете собрать образ локально с помощью `make docker-build`.
***
## Использование
### Создание шаблонов промптов
Создайте каталог для хранения шаблонов промптов. Каждый шаблон должен быть файлом `.tmpl`, использующим синтаксис [text/template](https://pkg.go.dev/text/template) языка Go в следующем формате:
GXP7
Комментарий в первой строке (`{{/* описание */}}`) используется как описание промпта, а остальная часть файла — это шаблон промпта.
Частичные шаблоны должны иметь префикс в виде подчеркивания (например, `_header.tmpl`) и могут быть включены в другие шаблоны с помощью `{{template "partial_name" .}}`.
### Синтаксис шаблонов
Сервер использует движок `text/template` языка Go, который предоставляет мощные возможности шаблонизации:
* **Переменные**: `{{.variable_name}}` — доступ к переменным шаблона
* **Встроенные переменные**:
* `{{.date}}` — текущая дата и время
* **Условия**: `{{if .condition}}...{{end}}`, `{{if .condition}}...{{else}}...{{end}}`
* **Логические операторы**: `{{if and .condition1 .condition2}}...{{end}}`, `{{if or .condition1 .condition2}}...{{end}}`
* **Циклы**: `{{range .items}}...{{end}}`
* **Включение шаблонов**: `{{template "partial_name" .}}` или `{{template "partial_name" dict "key" "value"}}`
См. [документацию Go text/template](https://pkg.go.dev/text/template) для получения дополнительной информации о синтаксисе и функциях.
### Разбор JSON-аргументов
Сервер автоматически анализирует значения аргументов как JSON, когда это возможно, что позволяет использовать сложные типы данных в шаблонах:
* **Логические значения**: `true`, `false` → логические значения Go
* **Числа**: `42`, `3.14` → числовые значения Go
* **Массивы**: `["item1", "item2"]` → срезы Go для использования с `{{range}}`
* **Объекты**: `{"key": "value"}` → карты Go для структурированных данных
* **Строки**: Некорректный JSON остается строкой
Это позволяет выполнять расширенные операции с шаблонами, такие как:
GXP8
Чтобы отключить разбор JSON и обрабатывать все аргументы как строки, используйте флаг `--disable-json-args` для команд `serve` и `render`.
### Команды CLI
CLI — ваш основной инструмент для управления и тестирования шаблонов.
По умолчанию он ищет шаблоны в каталоге `./prompts`, но вы можете указать другой каталог с помощью флага `--prompts`.
**1. Список шаблонов**
GXP9
**2. Рендеринг шаблона**
Отрендерите промпт прямо в терминале, предоставив аргументы с помощью флага `-a` или `--arg`.
Он автоматически внедрит переменные окружения в качестве резервных значений для любых отсутствующих аргументов. Например, если у вас есть переменная окружения `TYPE=fix`, она будет внедрена в шаблон как `{{.type}}`.
GXP10
**3. Проверка шаблонов**
Проверьте все свои шаблоны на наличие синтаксических ошибок. Команда вернет ошибку, если какой-либо шаблон недействителен.
GXP11
**4. Запуск сервера**
Запустите MCP-сервер, чтобы сделать ваши промпты доступными для клиентов.
GXP12
***
## Подключение к клиентам
Чтобы использовать этот движок с любым клиентом, поддерживающим MCP Prompts, добавьте новую запись в конфигурацию MCP-серверов.
Расположение глобальной конфигурации (MacOS):
* Claude Code: `~/.claude.json` (раздел `mcpServers`)
* Claude Desktop: `~/Library/Application Support/Claude/claude_desktop_config.json` (раздел `mcpServers`)
* Gemini CLI: `~/.gemini/settings.json` (раздел `mcpServers`)
**Пример для локального бинарного файла:**
GXP13
**Пример для Docker:**
GXP14
## Лицензия
Этот проект лицензирован по лицензии MIT — подробности см. в файле [LICENSE](./LICENSE).This server cannot be installed
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