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

Ein Model Control Protocol (MCP) Server zur Verwaltung und Bereitstellung dynamischer Prompt-Vorlagen unter Verwendung einer eleganten und leistungsstarken Text-Template-Engine. Erstellen Sie wiederverwendbare, logikgesteuerte Prompts mit Variablen, Partials und Bedingungen, die für jeden kompatiblen MCP-Client wie Claude Code, Claude Desktop, Gemini CLI, VSCode mit Copilot usw. bereitgestellt werden können.

Hauptfunktionen

  • MCP-kompatibel: Funktioniert sofort mit jedem MCP-Client, der Prompts unterstützt.

  • Leistungsstarke Go-Templates: Nutzt die volle Leistungsfähigkeit der Go text/template Syntax, einschließlich Variablen, Bedingungen, Schleifen und mehr.

  • Wiederverwendbare Partials: Definieren Sie gemeinsame Komponenten in Teilvorlagen (z. B. _header.tmpl) und verwenden Sie diese in Ihren Prompts wieder.

  • Prompt-Argumente: Alle Template-Variablen werden automatisch als MCP-Prompt-Argumente bereitgestellt, was dynamische Eingaben von Clients ermöglicht.

  • Hot-Reload: Erkennt automatisch Änderungen an Ihren Prompt-Dateien und lädt sie neu, ohne den Server neu starten zu müssen.

  • Umfangreiche CLI: Eine moderne Befehlszeilenschnittstelle zum Auflisten, Validieren und Rendern von Vorlagen für eine einfache Entwicklung und Prüfung.

  • Intelligente Argumentenbehandlung:

    • Analysiert automatisch JSON-Argumente (Booleans, Zahlen, Arrays, Objekte).

    • Injiziert Umgebungsvariablen als Fallbacks für Template-Argumente.

  • Containerisiert: Volle Docker-Unterstützung für einfache Bereitstellung und Integration.

Related MCP server: MCP-YNU FastMCP Server

Gehostete Bereitstellung

Eine gehostete Bereitstellung ist auf Fronteir AI verfügbar.

Erste Schritte

1. Installation

Installation mit Go:

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

(Für andere Methoden wie Docker oder vorgefertigte Binärdateien siehe den Abschnitt Installation weiter unten.)

2. Einen Prompt erstellen

Erstellen Sie ein prompts-Verzeichnis und fügen Sie eine Template-Datei hinzu. Erstellen wir einen Prompt, der beim Schreiben einer Git-Commit-Nachricht hilft.

Erstellen Sie zuerst ein wiederverwendbares Partial namens 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 }}
```

Erstellen Sie nun einen Haupt-Prompt prompts/git_stage_commit.tmpl, der dieses Partial verwendet:

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

GXP3

### 3. Validieren Sie Ihren Prompt

Validieren Sie Ihren Prompt, um sicherzustellen, dass er keine Syntaxfehler enthält:

GXP4

### 4. Verbinden Sie den MCP-Server mit Ihrem Client

Fügen Sie den MCP-Server zu Ihrem MCP-Client hinzu. Siehe [Verbindung zu Clients](#connecting-to-clients) für Konfigurationsbeispiele.

### 5. Verwenden Sie Ihren Prompt

Ihr `git_stage_commit`-Prompt ist nun in Ihrem Client verfügbar!

Zum Beispiel können Sie in Claude Desktop den `git_stage_commit`-Prompt auswählen, das `type` MCP-Prompt-Argument angeben und einen generierten Prompt erhalten, der Ihnen hilft, einen Commit mit einer perfekten Nachricht durchzuführen.

In Claude Code oder der Gemini CLI können Sie anfangen, `/git_stage_commit` einzugeben, und es wird der Prompt mit den bereitgestellten Argumenten vorgeschlagen, der nach der Auswahl ausgeführt wird.

***

## Installation

### Vorgefertigte Binärdateien

Laden Sie die neueste Version für Ihr Betriebssystem von der [GitHub Releases-Seite](https://github.com/vasayxtx/mcp-prompt-engine/releases) herunter.

### Aus dem Quellcode erstellen

GXP5

### Docker

Ein vorgefertigtes Docker-Image ist verfügbar. Mounten Sie Ihre lokalen `prompts`- und `logs`-Verzeichnisse in den Container.

GXP6

Sie können das Image auch lokal mit `make docker-build` erstellen.

***

## Verwendung

### Erstellen von Prompt-Vorlagen

Erstellen Sie ein Verzeichnis zum Speichern Ihrer Prompt-Vorlagen. Jede Vorlage sollte eine `.tmpl`-Datei sein, die die [text/template](https://pkg.go.dev/text/template) Syntax von Go verwendet, mit folgendem Format:

GXP7

Der Kommentar in der ersten Zeile (`{{/* description */}}`) wird als Prompt-Beschreibung verwendet, der Rest der Datei ist die Prompt-Vorlage.

Teilvorlagen (Partials) sollten mit einem Unterstrich beginnen (z. B. `_header.tmpl`) und können in anderen Vorlagen mit `{{template "partial_name" .}}` eingebunden werden.

### Template-Syntax

Der Server verwendet die `text/template`-Engine von Go, die leistungsstarke Template-Funktionen bietet:

* **Variablen**: `{{.variable_name}}` - Zugriff auf Template-Variablen
* **Eingebaute Variablen**:
  * `{{.date}}` - Aktuelles Datum und Uhrzeit
* **Bedingungen**: `{{if .condition}}...{{end}}`, `{{if .condition}}...{{else}}...{{end}}`
* **Logische Operatoren**: `{{if and .condition1 .condition2}}...{{end}}`, `{{if or .condition1 .condition2}}...{{end}}`
* **Schleifen**: `{{range .items}}...{{end}}`
* **Template-Einbindung**: `{{template "partial_name" .}}` oder `{{template "partial_name" dict "key" "value"}}`

Weitere Details zur Syntax und den Funktionen finden Sie in der [Go text/template Dokumentation](https://pkg.go.dev/text/template).

### JSON-Argumenten-Parsing

Der Server analysiert Argumentwerte nach Möglichkeit automatisch als JSON, was komplexe Datentypen in Vorlagen ermöglicht:

* **Booleans**: `true`, `false` → Go-Boolean-Werte
* **Zahlen**: `42`, `3.14` → Go-numerische Werte
* **Arrays**: `["item1", "item2"]` → Go-Slices zur Verwendung mit `{{range}}`
* **Objekte**: `{"key": "value"}` → Go-Maps für strukturierte Daten
* **Strings**: Ungültiges JSON wird als String-Wert behandelt

Dies ermöglicht fortgeschrittene Template-Operationen wie:

GXP8

Um das JSON-Parsing zu deaktivieren und alle Argumente als Strings zu behandeln, verwenden Sie das `--disable-json-args`-Flag für die `serve`- und `render`-Befehle.

### CLI-Befehle

Die CLI ist Ihr Hauptwerkzeug zur Verwaltung und zum Testen von Vorlagen.
Standardmäßig sucht sie nach Vorlagen im `./prompts`-Verzeichnis, Sie können jedoch mit dem `--prompts`-Flag ein anderes Verzeichnis angeben.

**1. Vorlagen auflisten**

GXP9

**2. Eine Vorlage rendern**

Renderen Sie einen Prompt direkt in Ihrem Terminal und geben Sie Argumente mit dem `-a` oder `--arg`-Flag an.
Es werden automatisch Umgebungsvariablen als Fallbacks für fehlende Argumente injiziert. Wenn Sie beispielsweise eine Umgebungsvariable `TYPE=fix` haben, wird diese als `{{.type}}` in das Template injiziert.

GXP10

**3. Vorlagen validieren**

Überprüfen Sie alle Ihre Vorlagen auf Syntaxfehler. Der Befehl gibt einen Fehler zurück, wenn eine Vorlage ungültig ist.

GXP11

**4. Den Server starten**

Führen Sie den MCP-Server aus, um Ihre Prompts für Clients verfügbar zu machen.

GXP12

***

## Verbindung zu Clients

Um diese Engine mit einem Client zu verwenden, der MCP-Prompts unterstützt, fügen Sie einen neuen Eintrag zur MCP-Server-Konfiguration hinzu.

Globale Konfigurationspfade (MacOS):

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

**Beispiel für eine lokale Binärdatei:**

GXP13

**Beispiel für Docker:**

GXP14

## Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert - siehe die [LICENSE](./LICENSE)-Datei für Details.
-
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