MCP Fusion/Integrations and federation/OpenAPI- und Prisma-Generatoren
OpenAPI- und Prisma-Generatoren
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:
npm install @mcpfusion/openapi-gen
openapi-gen generate \
--input ./openapi.yaml \
--output ./src/mcp \
--base-url https://api.example.com \
--server-name billingDie 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:
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:
generator mcp {
provider = "@mcpfusion/prisma-gen"
output = "../src/tools/database"
}Annotieren Sie die Modellfelder, die eine Wahrnehmungs- oder Tenant-Regel benötigen:
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:
- prüfen Sie die generierten Presenter-Schemas
- fügen Sie
requireJwtoderrequireApiKeyan - lösen Sie den Tenant-Kontext vor dem Handler auf
- ergänzen Sie
.redactPII(), Limits und Invalidierungshinweise - generieren und prüfen Sie
mcpfusion.lock
Nächste Schritte
- Authentication: generierte Tools schützen
- Multi-tenant connectors: generierte Abfragen einschränken
- Contracts: Drift der generierten Oberfläche prüfen
