Willi-Mako
MCP Service - Model Context Protocol für Willi MaKo

Willi MaKo MCP Service

Managed Model Context Protocol Endpoint, der den kompletten Willi-MaKo API-Funktionsumfang als MCP-Tools für Copiloten, IDE-Integrationen und Automatisierungsagenten bereitstellt.
Hosted MCP Endpoint öffnenCode-Beispiele ansehen

Highlights

Vollständiges MCP-Protokoll

Streamable HTTP-Transport mit /initialize, /tools/list und /tools/call– kompatibel mit IDE-Copiloten, autonomen Agenten und Desktop-Clients.

Kuratierte Willi-MaKo Tools

Login, Session-Management, Chat, Retrieval, Reasoning und Artefakt-Verwaltung stehen als typisierte Tools mit konsistenten JSON-Schemata bereit.

Flexible Authentifizierung

Unterstützt Bearer-, Basic- und URL-Token-Flows mit optionaler Persistenz & Session-Caching für langlebige Workflows.

Konzeptueller Überblick

Das Model Context Protocol (MCP) ermöglicht einen standardisierten Zugriff auf Tools und Datenquellen für Copiloten, IDEs und Automatisierung. Der Willi-MaKo MCP Service bildet das gesamte API-Angebot der Plattform ab, verwaltet Authentifizierung automatisch und stellt strukturierte JSON-Antworten für nachgelagerte Agenten bereit.

  • Einheitlicher Zugang zu Willi-MaKo Workflows

    Login, Session-Erzeugung, Chat, Reasoning und Artefakte werden über konsistente Tool-Aufrufe orchestriert.

  • Streamfähiger HTTP-Transport

    Kompatibel mit MCP-fähigen IDEs und Desktop-Clients dank bidirektionaler Streaming-Verbindungen.

  • Stateful Sessions

    Token- und Session-Caches ermöglichen mehrschrittige Automationen ohne zusätzliche Authentifizierungsrunden.

Architektur

Der MCP Service nutzt einen streamfähigen HTTP-Transport (Standard-Port 7337) aus dem @modelcontextprotocol/sdk und integriert den typisierten WilliMakoClient. Token-Caches und Session-Tracker sichern den Zustand zwischen Aufrufen, bevor Anfragen an die Willi-MaKo API v2 weitergeleitet werden.

┌──────────────────────────────────────────────────────────────┐
│      MCP-aware Agent (IDE, CLI, Chat Client, Automation)      │
└───────────────▲───────────────────────────┬──────────────────┘
                │ HTTP/JSON (MCP protocol)  │
                │                           │
        ┌───────┴───────────────────────────▼──────────────────┐
        │           Willi-Mako MCP Service Transport           │
        │   (Streamable HTTP transport on port 7337 by default)│
        └───────▲───────────────────────────┬──────────────────┘
                │                           │
         ┌──────┴──────┐              ┌─────┴────────────────┐
         │ Token cache │              │  WilliMakoClient SDK │
         │ & session   │              │  (REST calls, retries │
         │ tracker     │              │   typed responses)    │
         └──────▲──────┘              └────────▲─────────────┘
                │                                │
          ┌─────┴────────────────────────────────▼──────┐
          │      Willi-Mako API v2 (stromhaltig.de)     │
          └─────────────────────────────────────────────┘

Authentifizierung & Autorisierung

Alle Flows benötigen ein gültiges Willi-MaKo Access-Token. Der Transport unterstützt mehrere Mechanismen und verwaltet die Persistenz pro Verbindung.

MechanismusNutzungHinweise
Bearer HeaderAuthorization: Bearer <token>Bevorzugt für Clients mit bestehendem Token (CI, Agenten, Desktop-Clients).
Basic HeaderAuthorization: Basic base64(email:password)Server tauscht die Credentials gegen ein JWT und cached es mit Ablaufsteuerung.
Ambient TokenWILLI_MAKO_TOKEN als UmgebungsvariableFallback, falls keine Header übermittelt werden.
URL-Segmenthttps://mcp.stromhaltig.de/<token>/mcpHosted Endpoint extrahiert Tokens und entfernt sie aus Logs.

Tokens werden pro MCP-Transport gespeichert, sodass mehrstufige Workflows ohne erneute Authentifizierung ausgeführt werden können. Der willi-mako-login-Tool-Aufruf kann Tokens persistieren oder mit{ persistToken: false } rein transient halten.

Wird keine sessionId übergeben, merkt sich der Dienst die zuletzt aktive Session und stellt sie den nachfolgenden Tool-Aufrufen bereit – ideal für Chat-, Reasoning- oder Retrieval-Ketten.

Verfügbare Tools & Ressourcen

  • willi-mako-login

    Authentifiziert neue Sessions und persistiert Tokens optional.

  • willi-mako-create-session

    Startet Workflows mit konfigurierbaren Präferenzen.

  • willi-mako-get-session

    Prüft Metadaten, Richtlinien und Ablaufzeiten.

  • willi-mako-delete-session

    Bereinigt Sessions und Artefakte nach Automationen.

  • willi-mako-chat

    Conversational Prompts mit Willi-MaKo Expertenwissen.

  • willi-mako-semantic-search

    Hybrid Retrieval in der Wissensbasis.

  • willi-mako-generate-reasoning

    Deterministischer Reasoning-Pipeline-Output.

  • willi-mako-resolve-context

    Kontextgerüste für Entscheidungen und Aktionen.

  • Artefakt-Tools

    Listen, abrufen und erzeugen von Artefakten wie UTILMD oder MSCONS.

  • willi-mako-generate-tool & willi-mako-repair-tool

    Generiert und verbessert deterministische Node.js-Utilities mit automatischen Retry-Strategien.

Weitere Helfer-Tools (z. B. Dokumentations- und Kontakt-Shortcuts) sind im Quellcode des MCP Servers unter src/demos/mcp-server.ts dokumentiert.

MCP Service lokal betreiben

Voraussetzungen: Node.js ≥ 18, installierter willi-mako-client (global oder via npx) sowie ein gültiges Willi-MaKo Token oder Credentials.

  • Schnellstart

    npx willi-mako-client mcp startet den lokalen MCP Server auf http://localhost:7337/mcp.

  • Global installieren

    npm install -g [email protected] && willi-mako mcp

  • Konfiguration

    Nutzen Sie --base-url, --token oder die Umgebungsvariable WILLI_MAKO_TOKEN für alternative Umgebungen und Tokens.

  • PM2 Wrapper

    Die CommonJS-Shim bin/willi-mako.cjs ermöglicht einen PM2-Start ohne ERR_REQUIRE_ESM (pm2 start --name willi-mako-mcp willi-mako -- mcp).

  • Docker

    docker run -e WILLI_MAKO_TOKEN=$WILLI_MAKO_TOKEN -p 7337:7337 ghcr.io/energychain/willi-mako-client:0.3.4 willi-mako mcp --port 7337

Deployment-Muster für die Produktion

PM2 / Forever

Zero-Downtime-Restarts, Log-Rotation und Prozess-Monitoring. Nutzen Sie den CommonJS-Wrapper, um ESM problemlos zu starten.

Empfohlen
systemd Service

Betriebssystem-native Kontrolle mit Restart-Policies. Ein Wrapper-Script exportiert Tokens und ruft willi-mako mcp auf.

Docker / Kubernetes

Immutable Deployments, horizontale Skalierung und Secret-Management via Environment oder Secrets-Store. Stellen Sie Port 7337 bereit und halten Sie Sticky Sessions vor.

Serverless Container

On-Demand Skalierung für Workloads mit wechselnder Auslastung. Beachten Sie, dass in-memory Token-Caches bei Kaltstarts zurückgesetzt werden.

Öffentlicher Hosted Endpoint

  • Basis-URL

    https://mcp.stromhaltig.de/ mit Transportpfad /mcp

  • Token-Injektion

    Per Header oder als erstes URL-Segment – Token wird aus Logs entfernt.

  • TLS & Rate-Limits

    HTTPS mit modernen Cipher Suites, Standard-Willi-MaKo Rate Limits.

  • Einsatzszenarien

    Für schnelle Experimente oder als dauerhaft verwalteter Integrationspunkt.

MCP Clients integrieren

Konfigurieren Sie MCP-fähige Clients in wenigen Schritten – unabhängig davon, ob Sie lokal oder über den Hosted Endpoint verbinden.

  • Transport definieren

    HTTP/streamable mit URL http://localhost:7337/mcp oder https://mcp.stromhaltig.de/mcp.

  • Credentials bereitstellen

    Per Bearer-Header oder via willi-mako-login Tool.

  • Tools entdecken

    Die meisten Clients bieten automatische Tool-Listen mit willi-mako-* Prefix.

  • Session aufbauen

    Einmal willi-mako-create-session ausführen und Folge-Calls auf derselben Verbindung nutzen.

  • Ergebnisse sichern

    Artefakt-Tools nutzen, um JSON/EDI-Ausgaben direkt in Willi-MaKo zu speichern.

Beispiel: VS Code MCP Client
{
  "mcpServers": {
    "willi-mako": {
      "transport": "streamable",
      "url": "https://mcp.stromhaltig.de/<WILLI_MAKO_TOKEN>/mcp"
    }
  }
}
Beispiel: Claude Desktop
  • Integrationen → MCP Servers öffnen

    Neuen Server mit URL https://mcp.stromhaltig.de/mcp anlegen.

  • Header setzen

    Authorization: Bearer <WILLI_MAKO_TOKEN> oder Token in der URL einbetten.

  • Tool Palette

    Mit /tool willi-mako-create-session eine Session initialisieren.

Observability & Troubleshooting

  • Strukturierte Logs

    Emoji-präfixierte Logs für Verbindungen und Tool-Aufrufe, einsehbar via pm2 logs.

  • Fehlerbehandlung

    API-Fehler werden als MCP Error Responses mit ErrorCode annotiert.

  • Token-Cache

    Basic-Auth Cache invalidiert abgelaufene Tokens automatisch; Login erneut ausführen bei Rotation.

  • Session-Reset

    Transport-Disconnect löscht In-Memory Sessions – willi-mako-create-session erneut aufrufen.

  • PM2 Shim

    Bei ERR_REQUIRE_ESM auf willi-mako-client ≥ 0.3.4 upgraden (enthält CommonJS Wrapper).

Security-Empfehlungen

  • Token schützen

    Tokens in URLs gelten als sensibel – Logs und History überprüfen.

  • Rotation

    WILLI_MAKO_TOKEN regelmäßig wechseln und least-privilege beachten.

  • Netzwerkabsicherung

    Eigene Deployments per Firewall/VPN eingrenzen, Token-Persistenz in Shared Environments deaktivieren.

  • Monitoring

    API Usage Dashboards nutzen, um Anomalien frühzeitig zu erkennen.

Code-Beispiele

1. MCP-Handshake (curl)
curl -X POST https://mcp.stromhaltig.de/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <WILLI_MAKO_TOKEN>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {}
  }'
2. Tools auflisten
curl -X POST https://mcp.stromhaltig.de/tools/list \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <WILLI_MAKO_TOKEN>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/list",
    "params": {}
  }'
3. Tool ausführen (Suche)
curl -X POST https://mcp.stromhaltig.de/tools/call \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <WILLI_MAKO_TOKEN>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "willi-mako-semantic-search",
      "arguments": {
        "query": "Wie funktioniert der Lieferantenwechsel?",
        "top_k": 2
      }
    }
  }'
JavaScript / Node.js Beispiel
const headers = {
  'Content-Type': 'application/json',
  Authorization: `Bearer ${process.env.WILLI_MAKO_TOKEN}`
};

// 1. Initialize
await fetch('https://mcp.stromhaltig.de/mcp', {
  method: 'POST',
  headers,
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'initialize',
    params: {}
  })
});

// 2. List tools
await fetch('https://mcp.stromhaltig.de/tools/list', {
  method: 'POST',
  headers,
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 2,
    method: 'tools/list',
    params: {}
  })
});

// 3. Call semantic search
const response = await fetch('https://mcp.stromhaltig.de/tools/call', {
  method: 'POST',
  headers,
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 3,
    method: 'tools/call',
    params: {
      name: 'willi-mako-semantic-search',
      arguments: {
        query: 'Was bedeutet der Fehlercode Z08?',
        top_k: 3
      }
    }
  })
});

const data = await response.json();
console.log(data.result);

Jetzt verbinden und loslegen

Nutzen Sie den verwalteten MCP Endpoint oder betreiben Sie ihn selbst. Alle Tools, Authentifizierungsflüsse und Deployment-Muster stehen bereit, um Willi-MaKo Workflows in Ihre Copiloten zu integrieren.

Hosted Endpoint öffnenIntegrationsleitfaden lesen