import { defineIntegration } from '@ekanos/sdk/integration';
import type { StorageSchemas } from '@ekanos/sdk';
import { z } from 'zod';
export const myStorage = {
account: {
settings: z.object({ region: z.string() }),
},
user: {},
} satisfies StorageSchemas;
export type MyStorage = typeof myStorage;
// Define your integration
export const integration = defineIntegration<MyStorage>({
// Identity — all four required
slug: 'acme-payments', // kebab-case; the route segment and MCP namespace
name: 'Acme Payments', // Display name
description: 'What it does.', // One-liner summary
version: '1.0.0', // semver
// Marketing copy for the detail page (optional)
capabilities: [/* … */],
permissions: [/* … */],
// What renders (optional)
components: {
widgets: [/* … */],
marketplaceTile: TileComponent,
activationForm: FormComponent,
},
// What runs (optional)
tools: [/* … */],
webhooks: [/* … */],
schedules: [/* … */],
oauth: {/* … */},
actions: {/* … */},
onActivate: async (ctx) => {
/* … */
},
// What it may touch (optional)
storage: myStorage,
egress: ['https://api.acme.example'],
// What you propose to a reviewer (optional)
proposes: {/* … */},
});