Getting Started
Two SDKs — Integrations for agent → vendor APIs, Portal for agent → Fabric.
The Fabric SDK comes in two parts:
| SDK | Package | Purpose |
|---|---|---|
| Integrations SDK | @fabricorg/integrations | Agents call out to vendor APIs (Slack, Stripe, GitHub, etc.) |
| Portal SDK | @fabric/mcp-server | Agents drive the Fabric portal itself (documents, projects, agents, workflows) |
Pick the one that matches what your agent needs to do — most production setups use both.
Integrations SDK (@fabricorg/integrations)
A TypeScript-first plugin runtime: 15 built-in integration plugins, OAuth + webhook + permission lifecycles, multi-tenant entity storage, and an MCP server — all on top of @fabricorg/platform.
pnpm add @fabricorg/integrations @fabricorg/platformimport { createFabric } from '@fabricorg/integrations';
import { slack, stripe } from '@fabricorg/integrations/plugins';
export const fabric = createFabric({
plugins: [
slack({ botToken: process.env.SLACK_BOT_TOKEN }),
stripe({ apiKey: process.env.STRIPE_API_KEY }),
],
});
const channels = await fabric.slack.api.channels.list({});
const customer = await fabric.stripe.api.customers.create({
email: 'customer@example.com',
});Type-checked end to end. Multi-tenant by default. See Plugin catalog for what's in the box.
Portal SDK (@fabric/mcp-server)
An MCP server that exposes the Fabric portal's core resources — agents call it via Claude Desktop, Cursor, Zed, or the portal's own chat. Same primitives the portal UI uses, available conversationally.
pnpm add -g @fabric/mcp-server # registers the `fabric-mcp` binConfigure Claude Desktop:
{
"mcpServers": {
"fabric": {
"command": "fabric-mcp",
"env": { "FABRIC_API_KEY": "fab_..." }
}
}
}Then in any Claude conversation:
> What projects are open in the engineering org?
> Create a new spec doc titled "Webhook idempotency" in the payment-rails project.
> Ask the migration-planner agent to draft a phase plan.
> Trigger the nightly-reconcile workflow.See Portal SDK overview for the full tool inventory.
Which do I need?
- Building an agent that talks to 3rd-party APIs? → Integrations SDK.
- Building an agent that lives on the Fabric portal and runs portal operations? → Portal SDK.
- Both — agent reads a Fabric document, then posts a Slack summary? → Both. The Portal SDK gets the document; the Integrations SDK posts the message.
The two SDKs are designed to compose — they share the same authority/RBAC model, the same MCP transport, and the same identity scope (your FABRIC_API_KEY resolves to the same user across both).