Fabric SDK · @fabricorg/integrations

Plugin runtime for agent-aware integrations.

Typed developer API on top of @fabricorg/platform. One factory per provider, typed dot-paths, automatic auth, per-endpoint permission gates, multi-tenant entity storage, and an MCP server — all in one workspace package.

import { createFabric } from '@fabricorg/integrations';
import { slack, stripe, hubspot } from '@fabricorg/integrations/plugins';

const fabric = createFabric({
  plugins: [
    slack({ botToken: process.env.SLACK_BOT_TOKEN }),
    stripe({ apiKey: process.env.STRIPE_API_KEY }),
    hubspot({ key: process.env.HUBSPOT_KEY }),
  ],
});

// Typed dot-paths, automatic auth, per-endpoint permissions:
await fabric.slack.api.channels.list({});
await fabric.stripe.api.customers.create({ email: 'x@y.com' });
await fabric.hubspot.api.contacts.search({ /* … */ });

15 plugins out of the box

Slack, Stripe, HubSpot, GitHub, Gmail, Notion, Linear, Resend, Asana, Airtable, PostHog, Discord, Twilio, Google Calendar, OpenAI — typed dot-paths, identical shape.

Auth + permissions + webhooks

api_key / oauth_2 / bot_token + HMAC signature verification + cautious/strict permission modes with approval workflow. None of it bolted on.

Multi-tenant by default

fabric.withTenant("org:acme") scopes the entire surface. Entity store, key store, event sink — all tenant-aware. XOR isolation enforced.

Platform pipeline integration

Synthesizes ActionDefinition + AdapterImplementation + PolicyEvaluator per plugin endpoint. Runs on top of @fabricorg/platform, not in place of it.

MCP server included

list_operations, get_schema, run_script — Claude / Cursor / any MCP client can drive the runtime directly. Tools mirror the dot-path tree.

Add a plugin in one file

fabric integrations generate <name> scaffolds the factory. Endpoints, endpointMeta, webhooks, OAuth config — same shape across every plugin.

Companion

Fabric Studio

A local dev tool with eight tabs for inspecting plugins, running operations, approving cautious-mode requests, browsing the entity cache, chatting with Claude over your fabric — and live-reloading from your project-local fabric.integrations.ts.

Open Studio docs →