Releases
A Release is a deployable AI assistant configuration — its model, prompt, RAG
indexes, theme, and access rules. Your end users chat against a Release id;
divinci.releases is how you create and manage them.
Listing releases in a workspace
Section titled “Listing releases in a workspace”const { data, hasMore } = await divinci.releases.list("ws_123", { limit: 20 });Creating a release
Section titled “Creating a release”const release = await divinci.releases.create({ workspaceId: "ws_123", name: "Support Assistant", // ...model, prompt, and config fields});
console.log(release._id); // the releaseId your client/embed usesReading and updating
Section titled “Reading and updating”const release = await divinci.releases.get("rel_abc123");
// Update a release (top-level)await divinci.releases.update("rel_abc123", { name: "Support Assistant v2" });
// Or update a release within an explicit workspaceawait divinci.releases.updateInWorkspace("ws_123", "rel_abc123", { name: "v2" });Anonymous chat
Section titled “Anonymous chat”A Release can serve anonymous, no-login chat — the pattern behind public marketing pages and embedded landing-page widgets (see the Deploy to Cloudflare Workers guide). Three fields control it, and they layer:
| Field | Default | Purpose |
|---|---|---|
allowAnonymousChat | false | Master switch. While false, anonymous chat is rejected with 403 FORBIDDEN. |
requireSignedAnonymousChat | false | When true, anonymous-chat calls must carry a valid landing-page HMAC signature, so only your signing proxy (e.g. a Cloudflare Worker) can reach the endpoint. Only has an effect while allowAnonymousChat is true. |
maxAnonymousChatMessages | 1 | Per-conversation message cap. Raise it for multi-turn. |
// Secure public anonymous chat: on, signed, multi-turnawait divinci.releases.updateInWorkspace(workspaceId, "rel_abc123", { allowAnonymousChat: true, requireSignedAnonymousChat: true, maxAnonymousChatMessages: 12,});MCP server config
Section titled “MCP server config”A Release can be published as its own MCP server — a curated, tenant-scoped
endpoint your consumers connect their AI assistants to. Set the mcpConfig
object on the release to enable it and choose which tools, guardrails, and
billing apply:
await divinci.releases.updateInWorkspace(workspaceId, "rel_abc123", { mcpConfig: { enabled: true, exposedTools: ["search_knowledge", "send_message"], // omit = all release tools allowAnonymousMcp: false, maxSpendPerTokenCents: 500, // $5.00 cap per token mcpRateLimit: { requestsPerMinute: 60, requestsPerDay: 10000 }, },});| Field | Default | Purpose |
|---|---|---|
enabled | false | Master switch. While false, the tenant MCP endpoint returns 404. |
exposedTools | (all) | Allowlist of tool names. Empty/unset exposes all of the release’s tools. |
allowedScopes | (all) | Subset of platform scopes the release’s tokens may carry. |
allowAnonymousMcp | false | Allow connections with no API key or OAuth token. Public/read-only products only. |
maxSpendPerTokenCents | 1000 | Billing safety cap per token (1000 = $10.00). |
mcpRateLimit | { 60/min, 10000/day } | Per-minute and per-day request ceilings. |
Once enabled and published, consumers connect to
https://mcp.divinci.app/{whitelabelId}/mcp. See
Release as an MCP Server for the endpoint,
authentication options (API key, central OAuth, or your own federated IdP), and
billing modes.
Lifecycle
Section titled “Lifecycle”await divinci.releases.activate("rel_abc123"); // make it the live releaseawait divinci.releases.archive("rel_abc123"); // retire itawait divinci.releases.delete("rel_abc123");Method reference
Section titled “Method reference”| Method | Description |
|---|---|
list(workspaceId, options?) | Paginated releases in a workspace. |
get(releaseId) | Fetch a release. |
create(options) | Create a release (requires workspaceId). |
update(releaseId, options) | Update a release. |
updateInWorkspace(workspaceId, releaseId, options) | Update within an explicit workspace. |
activate(releaseId) | Mark a release active. |
archive(releaseId) | Archive a release. |
delete(releaseId) | Delete a release. |