credential_ceremony
Obtain API credentials with step-by-step instructions for services like OpenAI or Stripe. Lists available ceremonies or provides detailed setup steps, token formats, and documentation links.
Instructions
Get step-by-step instructions for obtaining API credentials for a service. Without a service param, lists all available ceremonies. With a service param, returns detailed steps, token format info, and documentation links. Use this before agent_vault execute mode.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| service | No | Service slug to get the credential ceremony for (e.g. 'openai', 'stripe', 'resend'). Omit to list all available ceremonies. |
Implementation Reference
- packages/mcp/src/tools/ceremony.ts:14-59 (handler)The core handler function implementing the credential_ceremony logic. It calls the client to either retrieve a specific ceremony or list all available ceremonies.
export async function handleCredentialCeremony( input: CredentialCeremonyInput, client: RhumbApiClient ): Promise<CredentialCeremonyOutput> { // If a specific service is requested, return detailed ceremony if (input.service) { const ceremony = await client.getCeremony(input.service); if (!ceremony) { return { count: 0 }; } return { ceremony: { service: ceremony.service_slug, displayName: ceremony.display_name, description: ceremony.description, authType: ceremony.auth_type, difficulty: ceremony.difficulty, estimatedMinutes: ceremony.estimated_minutes, requiresHuman: ceremony.requires_human, documentationUrl: ceremony.documentation_url, steps: ceremony.steps, tokenPrefix: ceremony.token_prefix, tokenPattern: ceremony.token_pattern, verifyEndpoint: ceremony.verify_endpoint, }, count: 1, }; } // List all ceremonies const ceremonies = await client.listCeremonies(); return { ceremonies: ceremonies.map((c) => ({ service: c.service_slug, displayName: c.display_name, description: c.description, authType: c.auth_type, difficulty: c.difficulty, estimatedMinutes: c.estimated_minutes, requiresHuman: c.requires_human, documentationUrl: c.documentation_url, })), count: ceremonies.length, }; } - packages/mcp/src/server.ts:197-208 (registration)The registration of the 'credential_ceremony' tool within the MCP server setup.
server.tool( "credential_ceremony", "Get step-by-step instructions to obtain API credentials for a Service. Returns signup steps, expected token format (prefix, pattern), verification endpoint, estimated time, and whether human intervention is needed. Use before calling in agent_vault mode. Call without params to list all Services with available ceremonies.", { service: z.string().optional().describe(CredentialCeremonyInputSchema.properties.service.description) }, async ({ service }) => { const result = await handleCredentialCeremony({ service }, client); return { content: [{ type: "text" as const, text: JSON.stringify(result) }] }; } - packages/mcp/src/types.ts:277-283 (schema)The input schema definition for the credential_ceremony tool.
export const CredentialCeremonyInputSchema = { type: "object" as const, properties: { service: { type: "string" as const, description: "Service slug (e.g. 'openai', 'stripe', 'resend'). Returns step-by-step signup instructions, expected token format, and verification endpoint. Omit to list all services with available ceremonies." } }, required: [] as const };