MCP Fusion/Security and governance/Credentials
Credentials
Bring Your Own Credentials: deklarieren Sie die Secret-Felder, die Ihr Connector benötigt, und lassen Sie jeden Käufer seine eigenen Keys im Vinkius-Dashboard konfigurieren, während die Runtime sie pro Request injiziert.
Ein Connector, der den API-Key eines Anbieters fest im Code hinterlegt, kann nur eine einzige Bereitstellung bedienen. Ein Connector, der seine Credential-Felder deklariert, kann veröffentlicht werden, und jeder Käufer konfiguriert seine eigenen Keys. MCP Fusion nennt das Bring Your Own Credentials, und genau dadurch lässt sich ein Connector im Marketplace veröffentlichen.
Deklarieren Sie die Felder
import { defineCredentials } from '@mcpfusion/core';
export const credentials = defineCredentials({
openai_key: {
type: 'api_key',
label: 'OpenAI API key',
required: true,
sensitive: true,
validation: /^sk-/,
},
zendesk_subdomain: {
type: 'uri',
label: 'Zendesk subdomain',
required: true,
sensitive: false,
},
});| Feldtyp | Verwendung |
|---|---|
api_key | Keys mit bekanntem Präfix |
token | Intransparente Tokens wie PATs |
password | Secrets, die nie zurückgegeben werden dürfen |
uri | Endpoints und Subdomains, nicht sensibel |
Wie Käufer sie konfigurieren
Der Käufer öffnet Ihren Connector in der Vinkius console und füllt das Credentials-Formular aus. Das ist derselbe Editor, der in der Cloud-Dokumentation unter Credentials beschrieben wird: Pflicht-Badges, verschlüsselter Speicher und ein Testverbindungs-Urteil. Sie sehen deren Werte nie und sie sehen Ihre nie.
Wie die Runtime sie injiziert
Wenn Ihr Connector auf der Vinkius Edge läuft, injiziert die Runtime die Secrets des Käufers pro Request in globalThis.__vinkius_secrets, isoliert pro Käufer. Ihr Server liest sie über einen einzigen Accessor:
import { requireCredential } from '@mcpfusion/core';
.handle(async (input, ctx) => {
const openai = requireCredential('openai_key');
return callOpenAI(openai, input.prompt);
});Fehlt eine erforderliche Credential, erscheint ein typisierter CredentialMissingError mit Hinweisen, anstatt dass irgendwo tief im Aufruf ein nacktes undefined auftaucht.
Lokale Entwicklung
Legen Sie lokal dieselben Keys in Ihrer Umgebung ab. Das Framework liest zuerst die Umgebung, daher läuft derselbe Server auf Ihrem Laptop und auf der Edge ohne Codeänderungen. Fusion blockiert PII auch lokal standardmäßig, daher funktioniert die Egress-Firewall auch in der Entwicklung.
Von der Runtime injizierte Secrets gelten pro Request und pro Käufer. Nichts Sensibles wird in Ihrem Bundle gespeichert, und genau das ermöglicht es, dass ein einziger Build Ihres Connectors jeden Käufer mit dessen eigenen Keys bedient.
Warum das wichtig ist
- Ein Build, viele Käufer. Einmal veröffentlichen, jeder Käufer bringt seine eigenen Anbieter-Keys mit.
- Sie halten nie Secrets. Verschlüsselter Speicher und Injektion pro Request geschehen auf der Plattform.
- Rotation ist eine Konsolen-Operation. Der Käufer aktualisiert einen Key im Dashboard, Ihr Code ändert sich nie.
Nächste Schritte
- Deploy: bringen Sie den Connector kostenlos zu Vinkius Cloud
- Tools: lesen Sie Credentials innerhalb von Handlern
- Governance: weisen Sie nach, dass die Oberfläche über Releases hinweg sicher blieb
