Zum Inhalt springen

MCP-Überblick

MCP (Model Context Protocol) ist ein Standard, um KI-Modelle mit externen Tools und Datenquellen zu verbinden. Greentic implementiert MCP für:

  • Tool-Ausführung in einer isolierten WASM-Umgebung
  • Sicheren Zugriff auf externe APIs
  • Datenbankabfragen
  • Dateisystemoperationen

WASM-Sandboxing

MCP-Tools laufen aus Sicherheitsgründen in isolierten WebAssembly-Umgebungen.

Tool-Erkennung

Automatische Tool-Registrierung und Bekanntgabe von Fähigkeiten.

Typsicherheit

WIT-Schnittstellen sorgen für typsichere Tool-Aufrufe.

Beobachtbarkeit

Integriertes Tracing und Logging für Tool-Ausführungen.

LLM (with tool use)
▼ Tool Call Request
┌─────────────────────────────────┐
│ greentic-mcp │
│ (MCP Executor / WASI Bridge) │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ WASM Tool Component │
│ (Sandboxed execution) │
└─────────────────────────────────┘
▼ Tool Result
Back to LLM
tools/database-query.yaml
name: database_query
description: Query the customer database
parameters:
- name: query
type: string
description: SQL query to execute
required: true
- name: limit
type: integer
description: Maximum rows to return
default: 10
returns:
type: array
items:
type: object
- id: query_orders
type: mcp-tool
config:
tool: "database_query"
parameters:
query: "SELECT * FROM orders WHERE customer_id = '{{customer_id}}'"
limit: 5
output: orders_result
next: process_orders
- id: agent_step
type: llm
config:
model: "gpt-4"
system_prompt: "You are a helpful assistant with database access."
tools:
- database_query
- send_email
- create_ticket
tool_choice: "auto"
next: handle_response

Greentic stellt mehrere integrierte MCP-Tools bereit:

ToolBeschreibung
http_requestHTTP-Requests ausführen
database_queryDatenbanken abfragen
file_readDateien lesen (isoliert)
file_writeDateien schreiben (isoliert)
send_emailE-Mails senden
create_ticketSupport-Tickets erstellen

Alle MCP-Tools laufen in WASM-Sandboxes:

  • Kein direkter Dateisystemzugriff
  • Kein Netzwerkzugriff, sofern nicht ausdrücklich gewährt
  • Speicherisolation
  • CPU-Zeitlimits

Tools deklarieren benötigte Fähigkeiten:

capabilities:
- network:outbound # Can make outbound requests
- filesystem:read # Can read files in sandbox