MCP Fusion/Security and governance/Credenciais
Credenciais
Bring Your Own Credentials: declare os campos de segredos que seu conector precisa e deixe cada comprador configurar as próprias chaves no painel da Vinkius enquanto o runtime injeta tudo por requisição.
Um conector que mantém a chave de API de um fornecedor fixa no código só serve uma implantação. Um conector que declara seus campos de credenciais pode ser publicado, e cada comprador configura as próprias chaves. O MCP Fusion chama isso de Bring Your Own Credentials, e é o que torna um conector publicável no marketplace.
Declare os campos
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 campo | Use para |
|---|---|
api_key | Chaves com um prefixo conhecido |
token | Tokens opacos, como PATs |
password | Segredos que nunca podem ser ecoados |
uri | Endpoints e subdomínios, não sensíveis |
Como os compradores os configuram
O comprador abre seu conector no Vinkius console e preenche o formulário de credenciais. Esse é o mesmo editor documentado nos docs da Cloud em Credentials: selos de campo obrigatório, armazenamento criptografado e um veredito de teste de conexão. Você nunca vê os valores deles e eles nunca veem os seus.
Como o runtime os injeta
Quando seu conector roda na Vinkius Edge, o runtime injeta os segredos do comprador em globalThis.__vinkius_secrets por requisição, isolados por comprador. Seu servidor os lê por meio de um único accessor:
import { requireCredential } from '@mcpfusion/core';
.handle(async (input, ctx) => {
const openai = requireCredential('openai_key');
return callOpenAI(openai, input.prompt);
});Se uma credencial obrigatória estiver ausente, um CredentialMissingError tipado aparece com orientações, em vez de um undefined bruto em algum lugar profundo de uma chamada.
Desenvolvimento local
Localmente, coloque as mesmas chaves no seu ambiente. O framework lê do ambiente primeiro, então o mesmo servidor roda no seu laptop e na Edge sem mudanças de código. O Fusion ainda bloqueia PII localmente por padrão, então o firewall de saída também funciona no desenvolvimento.
Segredos injetados pelo runtime são por requisição e por comprador. Nada sensível é armazenado dentro do seu bundle, e é exatamente isso que permite que um único build do seu conector atenda todos os compradores com as chaves deles.
Por que isso importa
- Um build, muitos compradores. Publique uma vez, cada comprador traz as próprias chaves do fornecedor.
- Você nunca guarda segredos. Armazenamento criptografado e injeção por requisição acontecem na plataforma.
- A rotação é uma operação do console. O comprador atualiza uma chave no painel, seu código nunca muda.
Próximos passos
- Deploy: envie o conector para a Vinkius Cloud de graça
- Tools: leia credenciais dentro dos handlers
- Governance: prove que a superfície permaneceu segura entre releases
