MCP Fusion/Integrations and federation/OpenAPI- und Prisma-Generatoren

OpenAPI- und Prisma-Generatoren

Frag die KI über Vinkius

Verwandeln Sie vorhandene Schemas in sichere MCP-Connectoren: OpenAPI- oder Swagger-Endpunkte werden zu Tools und Presentern, während Prisma-Annotationen feldbasierte Sicherheit und tenant-bewussten Code erzeugen.

Die meisten Teams haben bereits eine Quelle der Wahrheit. Mit dem OpenAPI- und dem Prisma-Generator können Sie diese Quelle in MCP Fusion übernehmen, ohne jeden Endpunkt von Hand zu kopieren. Beide erzeugen MVA-förmigen Code, sodass die Ausgabe im selben Sicherheits- und Governance-Modell wie handgeschriebene Tools startet.

OpenAPI und Swagger

Installieren Sie das Generatorpaket und führen Sie die Binärdatei aus:

bash
npm install @mcpfusion/openapi-gen
openapi-gen generate \
  --input ./openapi.yaml \
  --output ./src/mcp \
  --base-url https://api.example.com \
  --server-name billing

Die CLI akzeptiert -i/--input, -o/--output, -c/--config, --base-url, --context und --server-name. Tag-Filter werden in der Generator-Konfiguration mit includeTags und excludeTags eingerichtet.

Programmgesteuert ist die Pipeline explizit:

typescript
import {
  parseOpenAPI,
  mapEndpoints,
  mergeConfig,
  emitFiles,
} from '@mcpfusion/openapi-gen';

const spec = parseOpenAPI(await readFile('./openapi.yaml', 'utf8'));
const mapped = mapEndpoints(spec);
const files = emitFiles(mapped, mergeConfig({
  features: { tags: true, presenters: true, toonDescription: true },
}));

Der Generator löst $refs auf, konvertiert Swagger 2.0 zu OpenAPI 3, kompiliert Eingabe- und Antwortschemas zu Zod, leitet Annotationen ab und erzeugt Dateien für Models, Presenter, Tools, ein Register und einen Server-Einstieg. Der generierte Server ist ein Ausgangspunkt. Ergänzen Sie vor dem produktiven Einsatz Auth-Middleware, Tenant-Auflösung, Credential-Deklarationen und domänenspezifische Regeln.

Die Konfigurationsoberfläche umfasst features (Tags, Annotationen, Presenter, Beschreibungen, Umgang mit deprecated, TOON-Beschreibungen und Serverdatei), naming (snake_case oder camelCase und Deduplizierung), context.import, server-Einstellungen und Tag-Filter. Die Laufzeit exportiert loadOpenAPI und buildHandler, wenn Sie eine generierte Operation in einem bestehenden Server benötigen.

Generierte Schemas beschreiben die API, nicht Ihre Autorisierungsrichtlinie. Prüfen Sie jede generierte Presenter-Allowlist, ergänzen Sie Tenant-Einschränkungen und verbinden Sie die Authentifizierung, bevor Sie den Connector deployen.

Prisma

Die Prisma-Generierung ist ein echter Prisma-Generator und kein separater Befehl, den Sie gegen eine beliebige Datenbank ausführen. Registrieren Sie ihn in schema.prisma:

prisma
generator mcp {
  provider = "@mcpfusion/prisma-gen"
  output   = "../src/tools/database"
}

Annotieren Sie die Modellfelder, die eine Wahrnehmungs- oder Tenant-Regel benötigen:

prisma
model User {
  id        String @id @default(cuid())
  email     String /// @mcpfusion.hide
  tenantId  String /// @mcpfusion.tenantKey
  name      String /// @mcpfusion.describe("Display name for the agent")
}

Führen Sie npx prisma generate aus. Der Generator analysiert das Prisma-DMMF mit parseAnnotations und erzeugt anschließend Presenter- und Tool-Dateien mit emitPresenter und emitTool. Das Paket enthält Benennungshelfer wie toSnakeCase, toPascalCase und pluralize.

Quellannotationen sind der Vertrag: @mcpfusion.hide entfernt ein Feld aus der Agentenoberfläche, @mcpfusion.describe(...) wird zu Schema-Hinweisen und @mcpfusion.tenantKey markiert das Feld, das der generierte Code einschränken muss. Prüfen Sie die installierte Parser-Version, bevor Sie ältere README-Beispiele mit der veralteten Schreibweise @fusion.* übernehmen.

Was beide Generatoren nicht wissen

Keiner der Generatoren kann ableiten, welche Datensätze eine Rolle sehen darf, welche Upstream-Fehler wiederholbar sind oder welche Aktionen in Ihrem Geschäft destruktiv sind. Behandeln Sie generierten Code als sicheres Gerüst und ergänzen Sie die Richtlinienschicht:

  1. prüfen Sie die generierten Presenter-Schemas
  2. fügen Sie requireJwt oder requireApiKey an
  3. lösen Sie den Tenant-Kontext vor dem Handler auf
  4. ergänzen Sie .redactPII(), Limits und Invalidierungshinweise
  5. generieren und prüfen Sie mcpfusion.lock

Nächste Schritte