MCP Fusion/Security and governance/Credenciales

Credenciales

Pregunta a la IA sobre Vinkius

Bring Your Own Credentials: declara los campos de secretos que tu conector necesita y deja que cada comprador configure sus propias claves en el panel de Vinkius mientras el runtime las inyecta por solicitud.

Un conector que incrusta en el código la clave de API de un proveedor solo sirve para un despliegue. Un conector que declara sus campos de credenciales puede publicarse, y cada comprador configura sus propias claves. MCP Fusion llama a esto Bring Your Own Credentials, y es lo que hace que un conector sea publicable en el marketplace.

Declara los campos

typescript
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,
  },
});
Tipo de campoPara qué sirve
api_keyClaves con un prefijo conocido
tokenTokens opacos como los PAT
passwordSecretos que nunca deben mostrarse
uriEndpoints y subdominios, no sensibles

Cómo los configuran los compradores

El comprador abre tu conector en la Vinkius console y rellena el formulario de credenciales. Es el mismo editor documentado en los docs de Cloud en Credentials: insignias de obligatorio, almacenamiento cifrado y un veredicto de prueba de conexión. Tú nunca ves sus valores y ellos nunca ven los tuyos.

Cómo los inyecta el runtime

Cuando tu conector se ejecuta en la Vinkius Edge, el runtime inyecta los secretos del comprador en globalThis.__vinkius_secrets por solicitud, aislados por comprador. Tu servidor los lee a través de un único accessor:

typescript
import { requireCredential } from '@mcpfusion/core';

.handle(async (input, ctx) => {
  const openai = requireCredential('openai_key');
  return callOpenAI(openai, input.prompt);
});

Si falta una credencial obligatoria, aparece un CredentialMissingError tipado con orientación, en lugar de un undefined crudo en lo profundo de una llamada.

Desarrollo local

En local, pon las mismas claves en tu entorno. El framework lee del entorno primero, así que el mismo servidor funciona en tu portátil y en la Edge sin cambios de código. Fusion sigue bloqueando la PII en local por defecto, así que el firewall de salida también funciona en desarrollo.

Los secretos que inyecta el runtime son por solicitud y por comprador. Nada sensible se guarda dentro de tu bundle, y eso es exactamente lo que permite que un solo build de tu conector sirva a todos los compradores con sus propias claves.

Por qué importa

  • Un build, muchos compradores. Publica una vez, cada comprador trae sus propias claves del proveedor.
  • Tú nunca guardas secretos. El almacenamiento cifrado y la inyección por solicitud ocurren en la plataforma.
  • La rotación es una operación de consola. El comprador actualiza una clave en el panel, tu código nunca cambia.

Próximos pasos

  • Deploy: publica el conector en Vinkius Cloud gratis
  • Tools: lee credenciales dentro de los handlers
  • Governance: demuestra que la superficie siguió segura entre releases