Alpha · two SDKs · MCP-native

FabricFabricSDK

Two SDKs that compose. The Integrations SDK gives agents typed access to vendor APIs (Slack, Stripe, GitHub, and 57 more). The Portal SDK lets them drive Fabric itself — documents, projects, agents, workflows.

Two SDKs

Pick the one that matches what your agent does.

Most production setups use both — Integrations for vendor calls, Portal for Fabric-side state. They share auth, RBAC, and identity, so the same FABRIC_API_KEY works across both.

Integrations SDK

agent → vendor APIs
@fabricorg/integrations

A typed plugin runtime. Each provider is a factory; together they expose a single fabric instance with autocomplete-friendly dot-paths, permission gates, and webhook handlers.

  • 60 plugins out of the box
  • OAuth + HMAC webhook verification
  • Cautious / strict / readonly permissions
  • Multi-tenant via fabric.withTenant()
$pnpm add @fabricorg/integrations

Portal SDK

agent → Fabric portal
@fabric/mcp-server

An MCP server that exposes Fabric's documents, projects, agents, and workflows as tools. Wire it into Claude Desktop, Cursor, or Zed and ask in natural language.

  • ~20 tools across 6 resource groups
  • Identity / Workspaces / Documents
  • Projects / Agents / Workflows
  • Same RBAC the portal applies in the UI
$pnpm add -g @fabric/mcp-server

Authoring

One factory per provider. Same shape every time.

Pass a list of plugin factories to createFabric. Each one returns a typed namespace with dot-path completion across endpoints, webhooks, and entity-store methods. Switch to the @fabric/mcp-server surface for the Portal SDK — same shape, different scope.

fabric.integrations.ts
1import { createFabric } from '@fabricorg/integrations';
2import { slack, stripe, hubspot } from '@fabricorg/integrations/plugins';
3
4export const fabric = createFabric({
5 plugins: [
6 slack({ botToken: process.env.SLACK_BOT_TOKEN }),
7 stripe({ apiKey: process.env.STRIPE_API_KEY }),
8 hubspot({ key: process.env.HUBSPOT_KEY }),
9 ],
10});
11
12// Typed dot-paths, automatic auth, per-endpoint permissions:
13await fabric.slack.api.channels.list({});
14await fabric.stripe.api.customers.create({ email: 'x@y.com' });
15await fabric.hubspot.api.contacts.search({ /* … */ });

Catalog

60 providers out of the box.

Identical contract across every plugin. Add a 61st in one file with fabric integrations generate.

Slack
channels · chat · users
Gmail
messages · labels
GitHub
repos · issues · prs
Notion
pages · databases · blocks
Linear
issues · teams
HubSpot
contacts · companies · deals
Stripe
customers · charges · subscriptions
Google Calendar
events · calendars
Resend
transactional email
Asana
tasks · projects
Airtable
records · bases
PostHog
events · feature flags
Discord
guilds · channels · messages
Twilio
sms · voice
OpenAI
chat · embeddings · assistants
Cal.com
bookings · event types
Google Sheets
values · spreadsheets
Jira
issues · projects · transitions
Telegram
messages · updates · bot
Firecrawl
scrape · crawl · search
Calendly
events · cancel
Trello
boards · lists · cards
PagerDuty
incidents · ack · resolve
Tavily
web search · extract
Exa
neural search · similar
Sentry
issues · projects
Zoom
meetings · users
Reddit
subreddit · submit · me
GitLab
projects · issues · MRs
Intercom
contacts · conversations
Hacker News
stories · items · users
OpenWeatherMap
current · forecast
YouTube
search · videos · channels
Spotify
search · player
Webflow
sites · CMS · publish
X (Twitter)
tweets · search · me
Dropbox
files · search · move
Box
folders · files
Todoist
tasks · projects
Fireflies
transcripts · summary
Figma
files · me
Monday
boards · GraphQL
Typeform
forms · responses
Outlook
messages · send
Datadog
events · monitors
Razorpay
orders · payments
Vapi
voice calls
Strava
activities · athlete
Shopify
orders · products
Google Drive
files · search · delete
OneDrive
files · delete
MS Teams
teams · channels
Amplitude
events · track
Grafana
dashboards · alerts
Oura
sleep · readiness
Smartsheet
sheets · rows
SendGrid
mail · send
Mailchimp
audiences · members
DodoPayments
payments · subs
Klaviyo
profiles · track

Runtime

Hard parts done at the runtime layer.

Permissions, by default

Every endpoint declared with a risk level. Cautious mode auto-gates destructive ops behind an approval workflow — no policy code to write.

OAuth + signature verification

PKCE, signed state, refresh tokens, and HMAC verifiers (Stripe, Resend, Asana, Twilio) shipped with the runtime. Your handler stays small.

Multi-tenant from the first call

fabric.withTenant("org:acme") scopes every plugin namespace, key store, entity cache, and event sink to that tenant. No XOR drift.

MCP server included

list_operations, get_schema, run_script — every plugin shows up as a tool in Claude Desktop / Cursor / Zed. Same primitives the SDK exposes.

Studio

Local dev tool with the same primitives.

Eight tabs over your fabric instance. Browse plugins, run operations, approve pending requests, query the entity cache, and chat with Claude over the same MCP tools — all from localhost:4317. Live-reloads from your project's fabric.integrations.ts.