Embed governed app access
from your backend
Use the SDKs to create workspaces, connect users, mount approved apps, create MCP servers, issue scoped tokens, and give agents access to 1,000+ app integrations and 12,000+ agent tools.
Install SDKs
Start from the package manager your stack already uses.
npm install @weavz-io/sdkpip install weavz-io-sdkGet started in seconds
Jump from install to API reference, language guides, and LLM-ready docs without hunting through the site.
TypeScript
@weavz-io/sdkCompile-time action names and generated input types for all integrations. Works in Node.js, Deno, Bun, and edge runtimes.
import { WeavzClient } from "@weavz-io/sdk";
const client = new WeavzClient({
apiKey: "wvz_your_api_key",
});
const workspaceId = "550e8400-e29b-41d4-a716-446655440000";
// Execute an action
const result = await client.actions.execute("slack", "send_channel_message", {
workspaceId,
integrationAlias: "office_slack",
input: {
channel: "#general",
text: "Hello from the TypeScript SDK!",
},
});
// Manage connections
const connections = await client.connections.list({
integrationName: "slack",
});
// Create an MCP server
const server = await client.mcpServers.create({
name: "My Server",
workspaceId,
mode: "TOOLS",
});Python
weavz-io-sdkPythonic client with generated Pydantic input models and httpx under the hood. Designed for AI agent frameworks and backend services.
from weavz_sdk import WeavzClient
from weavz_sdk.integrations import SlackSendChannelMessageInput
client = WeavzClient(api_key="wvz_your_api_key")
workspace_id = "550e8400-e29b-41d4-a716-446655440000"
# Validate, then execute an action
result = client.actions.execute_typed(
integration_name="slack",
action_name="send_channel_message",
workspace_id=workspace_id,
integration_alias="office_slack",
input=SlackSendChannelMessageInput(
channel="#general",
text="Hello from the Python SDK!",
),
)
# Manage connections
connections = client.connections.list(
integration_name="slack",
)
# Create an MCP server
server = client.mcp_servers.create(
name="My Server",
workspace_id=workspace_id,
mode="TOOLS",
)What you can do
The SDKs are not only action wrappers. They let your product embed the full Weavz setup path behind your own onboarding, dashboards, and agent harnesses.
Provision customer workspaces
Create one scoped environment per customer, team, project, or agent. Credentials, aliases, state, approvals, and audit stay inside that boundary.
TS await client.workspaces.create({ name: "Acme Agent Workspace", slug: "acme-agents" })PY client.workspaces.create(name="Acme Agent Workspace", slug="acme-agents")Mount approved app access
Add Slack, Gmail, HubSpot, files, state, browser, and custom APIs as stable workspace aliases your product and agents can call.
TS await client.workspaces.addIntegration(workspaceId, { integrationName: "slack", alias: "customer_slack" })PY client.workspaces.add_integration(workspace_id, integration_name="slack", integration_alias="customer_slack")Generate hosted connect links
Register end users, then send them connect URLs for OAuth, API keys, and customer-owned accounts without building every auth flow yourself.
TS await client.endUsers.createConnectToken(endUserId, { workspaceIntegrationId })PY client.end_users.create_connect_token(end_user_id, workspace_integration_id=workspace_integration_id)Create custom MCP servers
Programmatically create Tool Mode or Code Mode MCP servers for each workspace and expose only the integrations the agent should see.
TS await client.mcpServers.create({ name: "Customer Agent Server", workspaceId, mode: "CODE" })PY client.mcp_servers.create(name="Customer Agent Server", workspace_id=workspace_id, mode="CODE")Issue scoped MCP tokens
Generate per-user tokens for your own harness, remote MCP clients, coding agents, and framework runtimes.
TS await client.mcpServers.createBearerToken(serverId, { endUserId })PY client.mcp_servers.create_bearer_token(server_id, end_user_id=end_user_id)Execute governed actions
Call typed actions directly, or let agents execute through MCP while Human Gates, input partials, files, state, and audit stay attached.
TS await client.actions.execute("slack", "send_channel_message", { workspaceId, integrationAlias: "customer_slack", input })PY client.actions.execute_typed("slack", "send_channel_message", workspace_id=workspace_id, input=input)Every resource, one client
Every action, connection, MCP server, approval, trigger, end user, and runtime primitive is documented, generated where possible, and one import away.
Start building today
20,000 free actions/month. Install the SDK, create an API key, and start executing actions in minutes.