Skip to content
Back to search
100
MCP live MCP 2025-03-26 streamable-http

Stable Baseline

io.stablebaseline/sb

End-to-end agent-managed company brain. Docs, diagrams, plans, Knowledge Graph. Lean & affordable.

Uptime
100.0%
1 direct probes · 30d
Response
5978ms
last probe
Tools
196
callable
Resources
8
readable
Prompts
11
available

Tools · 196

searchTools

Search available tools by keyword or category. Returns matching tool names and descriptions.

listDiagramTypes

List supported diagram types. Pass `query` to search by name OR intent (keyword + semantic): e.g. 'circuit diagram', 'wiring harness', 'timing waveform', 'network topology', 'database schema'. Use the…

getDiagramTypeGuide

Get DSL writing instructions for a diagram type. Call before writing diagramCode.

listArchitectureIcons

SOFTWARE & CLOUD architecture icons ONLY (AWS, Azure, GCP, Docker, Kubernetes, databases, message queues, dev tools, etc.). This catalog has NO general/nature/science/people/business icons — so for an…

searchInfographicTemplates

Semantic search over the 276 AntV Infographic templates — call this FIRST when building an `infographic` diagram so you pick the right structure for the content. Describe the intent (e.g. 'compare two…

getCdmdLanguageGuide

Get the CDMD markdown language specification. Call before createDocument if unfamiliar with syntax.

getCurrentUser

Return the calling user's identity (user_id, display_name, full_name, email, avatar_url). Use this when the user says 'me' / 'mine' / 'I' so you can resolve to their UUID before passing it to tools li…

listAssignablePrincipals

Server-side searchable, paginated list of USERS and TEAMS that can be assigned as the owner of an improvement/task in a project — and the canonical source for resolving a person's user_id when @-menti…

listTeams

List teams in an organization, with optional search filter and an `includeMembers` flag that fans out to v_team_members in a single round-trip. Supply EITHER organizationId OR workspaceId (the workspa…

getTeam

Get a single team by ID with profile-enriched member list (display_name, email, avatar_url, role, joined_at). Set `includeMembers=false` to skip the member fan-out and just return team metadata. Read-…

listOrganisations

List organisations you have access to. Supports query filtering by name/slug.

listWorkspaces

List workspaces you have access to. Scope to one organisation with organisationId (a structural filter — use it rather than `query`, which only searches names/slugs). Supports query filtering by name/…

listProjects

List projects in a workspace. Supports query filtering by project name.

listFolders

List folders in a project. Use parentId for nested folders. For full tree, use getProjectHierarchy instead.

createFolder

Create a folder in a project. Supports nesting via parentId.

updateFolder

Update a folder (rename/move/reorder). Supports nesting changes via parentId.

deleteFolder

Delete a folder recursively, including all nested folders and documents.

reorderFolders

Batch-reorder folders within a parent (or project root) by setting sibling positions. Pass [{folderId, position}, ...] where position is a non-negative integer; usually you renumber siblings sequentia…

listDocuments

List AND grep documents in a project, workspace, or folder. `query` does a full-content search across each document's body (not just the title) and returns the matching lines — like grep across your d…

getProjectHierarchy

Get the complete folder and document tree for a project in one call. Recommended first call for navigation.

getFolderHierarchy

Get the folder and document tree. Pass folderId for the subtree under one folder, or projectId for the project's ENTIRE folder tree from the root (no need to reassemble listFolders' flat list by paren…

getDocument

Read a document's content with line numbers. content.text lines are formatted `NNNNN<TAB>content` (cat -n style); the number+tab prefix is DISPLAY ONLY — never part of the document — so when building …

createDocument

Create a document from CDMD markdown (standard Markdown plus SB extensions — call getCdmdLanguageGuide if unfamiliar). The body goes in `cdmd` (`content` is accepted as an alias). A leading `---` YAML…

editDocument

Edit a document: the PREFERRED tool for small targeted changes. Two patch dialects — do NOT mix them in one call. (1) ANCHOR patches {oldText, newText, before?, after?} — RECOMMENDED: replace an exact…

findAndReplaceTextInDocument

Find and replace EXACT substrings in a document (NOT regex: wildcards and patterns are matched literally). Replaces EVERY occurrence and returns the replacement count; best for renames and repeated ph…

getDiagramInDocument

Get a diagram's full details including raw DSL source code. Use diagramId from DIAGRAM_OMITTED markers in getDocument output. Returns diagramCode, type, name, nlDescription, renderStatus/renderError, …

insertDiagramInDocument

Insert a new diagram into a document. Call listDiagramTypes to find your type, then getDiagramTypeGuide for DSL syntax before writing diagramCode. The diagramCode is COMPILE-CHECKED BY RENDERING at wr…

updateDiagramInDocument

Update a diagram's code, description, or properties. Call getDiagramTypeGuide for DSL syntax. New diagramCode is COMPILE-CHECKED BY RENDERING at write time — broken DSL is rejected with the renderer's…

deleteDiagramInDocument

Delete a diagram: removes the database record AND every reference to it in the document body — the current marker format plus legacy forms (markers without an embedded diagramId, and old plain-text `[…

deleteDocument

Delete a document.

getWhiteboardGuide

Get the Stable Baseline whiteboarding guide (Markdown): when to use stencils vs architecture icons vs code/BPMN diagrams vs plain shapes vs real images vs frames/presentations, how to lay out and veri…

autoDesignWhiteboard

Auto-design a complete, visually polished whiteboard from a natural-language goal using the PREMIUM multi-agent pipeline (the same one the in-app assistant uses): it browses the stencil/icon library, …

designComponent

Design ONE reusable, on-brand SLIDE COMPONENT and add it to the org's component library so every future branded deck (autoDesignWhiteboard designProfile:'branded-executive') can use it. This is the se…

editWhiteboardImageRegion

Mask-edit (inpaint) one region of an image element on a whiteboard. Given the target image element id and a paint MASK (a PNG where WHITE marks the area to regenerate and BLACK is kept), it regenerate…

designDeckInWhiteboard

Create or refine a slide deck INSIDE an existing whiteboard by conversing with the AI design agent. Send a brief for a NEW deck, a change to an EXISTING one, or an answer to the agent's question. The …

designIllustrationInWhiteboard

Create or refine a standalone ILLUSTRATION INSIDE an existing whiteboard by conversing with the AI design agent. This is the illustration sibling of designDeckInWhiteboard: same conversation, same fol…

getDeckReplyInWhiteboard

Get the design agent's reply after calling designDeckInWhiteboard OR designIllustrationInWhiteboard: the status (thinking/building/ready) and EITHER the finished result (a deck's slide count + preview…

exportFromWhiteboard

Export a design that lives in a whiteboard to an editable PowerPoint (PPTX), a PDF, or PNG images. LARGE DECKS FINISH IN THE BACKGROUND: if the export takes longer than one tool call can wait, this re…

startMeetingScribe

Invite the Stable Baseline Meeting Scribe bot to a LIVE meeting (Zoom, Google Meet, Microsoft Teams, or Webex) so it paints a live, editable whiteboard of the conversation as it happens: sticky notes …

getMeetingScribeStatus

Get a meeting scribe's status after startMeetingScribe: the session state (joining, in the waiting room, live in the call, paused, ending, ended, or failed), the live activity feed of what the scribe …

stopMeetingScribe

Stop a running meeting scribe: the bot leaves the meeting and the board is finalised (tidy pass plus a summary frame). Give it the sessionId returned by startMeetingScribe. Billing stops at the curren…

createWhiteboard

Create a whiteboard — an infinite Excalidraw canvas. A whiteboard is a hidden document (it won't appear in listDocuments) that hosts a single freeform canvas, and opens in the immersive whiteboard edi…

listWhiteboards

List AND grep the whiteboards in a project (hidden whiteboard-kind documents). `query` searches the title and friendlyId (substring by default; set isRegex:true for a regular expression, caseSensitive…

getWhiteboard

Read a whiteboard: its metadata plus a summary of the canvas (element count, element types, and text labels on the board). Pass includeElements=true to also return the full Excalidraw scene ({elements…

updateWhiteboardScene

Edit elements on a whiteboard's canvas WITHOUT dropping the rest of the scene. A board may hold many diagrams/elements, so prefer surgical edits: mode='patch' (DEFAULT) shallow-merges each incoming ob…

addWhiteboardElements

Author shapes onto a whiteboard from high-level specs (you do NOT need the full Excalidraw element schema). Appends to the canvas. PLACEMENT ON AN EXISTING BOARD (critical): NEVER guess x/y onto a boa…

duplicateWhiteboardElements

Copy-paste existing whiteboard elements — the MCP equivalent of selecting a group and pressing Ctrl/Cmd+D. Clones the given elements (plus their group peers + bound text/labels) with FRESH ids, offset…

insertWhiteboardImage

Insert a real IMAGE (photo, screenshot, logo, picture) into a whiteboard — the storage-backed equivalent of insertImageInDocument. Provide the image as imageUrl (fetched and re-hosted), imageBase64, o…

insertWhiteboardDiagram

Insert (or re-render in place) a real DIAGRAM (BPMN, Diagrams-as-Code / any DSL: mermaid, d2, plantuml, graphviz, …) on a whiteboard as an editable SB diagram element. Provide documentId, diagramType …

traceImage

Turn a raster image into hand-drawn freedraw strokes on a whiteboard, deterministically. Pass an image (imageUrl OR imageBase64) plus a style; the server fetches and vectorises it server-side and draw…

dataToTable

Render tabular data as an aligned grid of labelled cells on a whiteboard, deterministically. Pass rows (an array of arrays) OR data (an array of objects), with optional headers; the server lays out ev…

listWhiteboardStencils

Search the built-in library of structural whiteboard stencils — ready-made hand-drawn graphics: flowchart/UML/ER/BPMN symbols, scrum columns, org-chart nodes, gantt, lo-fi/UX wireframe widgets (button…

getWhiteboardImage

Render a whiteboard to a raster IMAGE so you can SEE it and confirm your edits look right, then iterate — like taking a screenshot. Returns the rendered board as a viewable image attached to the resul…

deleteWhiteboard

Delete a whiteboard (the host document and its canvas).

renderDiagram

Generate a diagram from its DSL/code and get the IMAGE back — WITHOUT inserting it into any document or whiteboard. For acting as a pure diagram generator. Provide diagramType (e.g. 'mermaid', 'd2', '…

getDiagramImage

Render a diagram that ALREADY exists in a document to an IMAGE (svg/png/jpeg @1x/2x/3x) and return it — a temporary imageUrl available for 1 hour plus, for png/jpeg, the image inline so you can see it…

rebuildPlatformCatalogEmbeddings

Internal maintenance (requires write). Syncs gte-small (384-dim) vector embeddings for every platform catalog (MCP tools, whiteboard stencils, architecture icons, infographic templates, whiteboard des…

reorderDocuments

MOVE documents between folders and/or reorder them — the batch filing tool. Pass [{documentId, folderId?, position?}, ...] and give at least one of folderId/position per item. `folderId` MOVES that do…

listDocumentVersions

List version history for a document. Returns timestamps, creator, change summary, and content.

getImageInDocument

Get image details including a fresh signed URL (expires after 1 hour). Use storagePath from IMAGE_OMITTED markers in getDocument output.

createImageUploadSession

Create a PUT upload URL for a document image (max 10MB). Use the returned assetUrl with insertImageInDocument.

insertImageInDocument

Insert an image into a document (max 10MB). Provide imageBase64, imageBinary, or imageUrl. For large files, call createImageUploadSession first then use the returned assetUrl. nlDescription AND captio…

updateImageInDocument

Update image metadata (alt, caption, nlDescription, dimensions, alignment) — metadata only; to change the picture itself, delete it and insert the new one. Requires the document's versionTimestamp (fr…

deleteImageInDocument

Delete an image: removes the stored file, the database record, AND the image from the document body — both the IMAGE marker in the markdown and the image node in the document's rich-text content, so t…

createVegaDataUploadSession

Create a PUT upload URL for a Vega/Vega-Lite data file. Use returned assetUrl in your Vega spec.

deleteVegaDataFile

Delete a data file attachment from a document.

createDocumentIngestSession

Step 1 of file ingest. Mint a single-use PUT upload URL for a large file (PDF, DOCX, plain text, or markdown — up to 150 MB). Returns { sessionId, uploadUrl, expiresAt, maxBytes }. Upload the raw byte…

createDocumentFromUpload

Step 2 of file ingest. After the file is uploaded via the PUT URL from createDocumentIngestSession, call this to start the async conversion. Returns { jobId, documentId } immediately — the document is…

getDocumentIngestJob

Read the current status of an ingest job. Returns { status, stage, processedImages, totalImages, documentId, error?, lastHeartbeatAt }. Stages: pending → downloaded → extracted → draft_saved → images_…

listImprovements

List AND grep improvements in a project. `query` searches the title, friendlyId and problem statement, not just the title (substring by default; set isRegex:true for a regular expression, caseSensitiv…

getImprovement

Get full details for an improvement item including evidence, activity log, compliance context, and the `checklist` array (each item: id, text, due_date, completed_at, plus server-stamped attribution).…

createImprovement

Create an improvement item in a project. Requires projectId and title. Auto-assigns friendly ID. Accepts every field updateImprovement accepts, so an item can be created complete in one call rather th…

updateImprovement

Update an improvement (or a task — tasks share this row, but prefer the symmetric updateTask alias when working from getTask). Supports the full field set including `checklist` (tick-boxes with due da…

deleteImprovement

Delete an improvement and all associated evidence and activity.

listImprovementCategories

List improvement categories for a project. Returns tree and flat list.

createImprovementCategory

Create an improvement category or sub-category. Max two levels.

updateImprovementCategory

Update an improvement category. Cannot modify system categories.

deleteImprovementCategory

Delete an improvement category. Cannot delete system categories.

reorderImprovementCategories

Reorder improvement categories by setting sort_order values.

addImprovementEvidence

Add evidence to an improvement. Types: document_section, diagram_node, incident_note, feedback, free_text.

addImprovementActivity

Add a comment or activity entry to an improvement.

updateImprovementComment

Update a comment on an improvement. Requires the comment's updated_at as versionTimestamp.

deleteImprovementComment

Delete a comment from an improvement.

searchImprovements

Ranked semantic search over IMPROVEMENTS AND TASKS — hybrid full-text + vector, so it matches meaning rather than just wording. Returns ranked { improvements }, each with a versionTimestamp you can pa…

listPlans

List AND grep plans in a project. `query` searches the title, friendlyId and description, not just the title (substring by default; set isRegex:true for a regular expression, caseSensitive:true for ex…

getPlan

Get full plan details including phases, items, and activity. Returns versionTimestamp — pass it to updatePlan for optimistic locking. Items include percent_complete for progress tracking.

createPlan

Create a plan in a project. Requires projectId and title.

updatePlan

Update a plan. Requires versionTimestamp from getPlan.

deletePlan

Delete a plan, all its phases, and all tasks/improvements within it. This is a destructive operation that cannot be undone.

listPlanPhases

List phases for a plan ordered by position.

getPlanPhase

Get a plan phase by ID with full details. Returns versionTimestamp — pass it to updatePlanPhase for optimistic locking.

createPlanPhase

Create a phase in a plan. Position and wbs_code are auto-computed.

updatePlanPhase

Update a plan phase. Requires versionTimestamp from getPlanPhase (not getPlan).

deletePlanPhase

Delete a plan phase and all tasks/improvements within it. This is a destructive operation that cannot be undone.

reorderPlanPhases

Reorder plan phases by setting position values. WBS codes are recalculated.

addPlanActivity

Add a comment or activity entry to a plan.

updatePlanComment

Update a comment on a plan. Requires the comment's updated_at as versionTimestamp.

deletePlanComment

Delete a comment from a plan.

createTask

Create a task in a plan. Requires planId and title. Accepts every field updateTask accepts, so a task can be created complete in ONE call — no create-then-update, and no window in which other actors r…

listTasks

List AND grep tasks in a plan. `query` searches the title, friendlyId and description, not just the title (substring by default; set isRegex:true for a regular expression, caseSensitive:true for exact…

getTask

Get a task by ID with full details, evidence, activity, and the `checklist` array (each item: id, text, due_date, completed_at, plus server-stamped attribution). Returns versionTimestamp; pass it to u…

updateTask

Update a task. Tasks share a row with improvements (`improvement_items` with `is_task=true`), so this is a thin alias over updateImprovement — every field on updateImprovement is supported, including …

getPlanHierarchy

Get the complete plan hierarchy (phases, tasks, improvements) in one call. Recommended first call for plan navigation.

setPlanItemParent

Set or clear the WBS parent-child nesting of a task/improvement (outline hierarchy, no scheduling effect). Same plan and phase required. Max depth: 5.

listTaskDependencies

List FS/SS/FF task-dependency edges in a plan (the Gantt arrows). Scope by planId, projectId, or itemId. `direction`: 'predecessors' | 'successors' | 'both' (default, only with itemId).

createTaskDependency

Create an FS/SS/FF scheduling edge with lag/lead between two items in the same plan (rendered as a Gantt arrow). FS = Finish-to-Start, SS = Start-to-Start, FF = Finish-to-Finish. `lagDays`: positive =…

updateTaskDependency

Change the type (FS/SS/FF) or lag/lead of an existing task-dependency. Doesn't move dates directly; flags the successor with `needs_dependency_review=true` and fills `suggested_start_date`/`suggested_…

deleteTaskDependency

Remove a task-dependency edge. Neither item's dates are changed. Needs the same 'write' plan permission as createTaskDependency, so an actor that can draw an edge can also undo it — the edge is fully …

acceptTaskDependencyReview

Per-item: apply a successor's `suggested_start_date`/`suggested_end_date` to its real dates and clear `needs_dependency_review`. For a whole-plan cascade use `applyTaskDependencyCascade`.

dismissTaskDependencyReview

Per-item: clear `needs_dependency_review` without changing dates — keeps the edge, ignores the suggestion. Use when the successor should stay put despite the predecessor shifting.

applyTaskDependencyCascade

Auto-schedule every item in a plan so all FS/SS/FF task-dependencies are respected (topological pass, durations preserved). Returns the before/after diff and logs a comment on every item that moves. U…

previewTaskDependencyCascade

Dry-run of `applyTaskDependencyCascade` — returns the diff without writing. Empty items array means the plan is already consistent. Accepts the same `pinnedItemIds` and `forwardOnly` params.

kg_search

Unified Knowledge Graph KNOWLEDGE retrieval — facts, themes and relationships from INSIDE document CONTENT. To LOCATE AN ARTEFACT BY NAME OR ID rather than answer a question, pass artefactMetadataOnly…

kg_evaluate_retrieval

Phase 5 / E3 — Provenance-aware assessor for a set of chunk_ids returned by kg_search. Returns per-chunk bucket (authored-grounded | extracted-high-conf | extracted-low-conf | no-support), overall dis…

kg_get_entity

Fetch a KG entity by id or name, with 1-hop neighbours.

kg_related_documents

Find other sources that share entities with the given source.

kg_scope_status

Check whether Knowledge Graph is in-scope for a given target.

kg_backlinks

Linked-mentions rail: every edge whose dst matches the named entity.

kg_list_communities

List Louvain communities for an org (optionally scoped by project).

kg_get_wiki_page

Fetch a community wiki page (LLM-curated CDMD).

kg_suggest_sample_questions

3 template + 3 LLM-generated sample questions for the knowledge-graph playground.

getOrganisation

Read a single organisation by id. Returns id, name, slug, description, settings (jsonb), created_at, member_count (active members) and plan_tier (subscription_tier). The organisation must match the ca…

getWorkspace

Read a single workspace by id. Auth via the standard workspace-access ladder (credential org match + workspace scope + per-resource read permission). Returns the full v_workspaces row. Read-only.

getProject

Read a single project by id. Auth via the standard project-access ladder. Returns the full v_projects row (id, workspace_id, name, description, icon, created_by/at, updated_by/at). Read-only.

listMembers

List members of an organisation, enriched with email + display name. Auth: org id must match the credential's organisation. Returns paginated list, default limit 50 / max 200.

getMember

Fetch a single organisation member by user_id, enriched with profile (email + display name). Auth: org id must match the credential's organisation.

listInvitations

List organisation invitations. Auth: org id must match the credential's organisation AND the credential must hold the can_manage_members capability. Status defaults to 'pending'. Pass 'all' to disable…

getSubscription

Read the subscription state for an organisation. Returns tier, status, current billing period, seat count, member count, cancellation flag, trial end. Stripe IDs are stripped. Pair with listPaymentMet…

listInvoices

List invoices for an organisation, newest first. Returns hosted Stripe invoice URLs and PDF links. Stripe IDs are stripped.

listPaymentMethods

List saved payment methods for an organisation. Returns masked card metadata only (brand, last4, exp month/year, default flag). NEVER returns full card numbers, CVCs, or any Stripe IDs.

getCreditBalance

Composite credit balance for an organisation: plan_credits (recurring monthly bucket), top_up_credits (purchased one-offs, gross), bonus_credits (admin grants), total, and period_end (next plan reset)…

getCreditPackages

List active credit packages available for purchase (name, credits, bonus_credits, price in cents AUD). Catalog read — visible to any MCP credential. Pair with createCreditPurchaseLink (Phase 6) to sta…

listCreditPurchases

List credit-purchase history for an organisation, newest first. Status, credits purchased, bonus, amount paid in AUD cents, completion timestamp. Stripe IDs stripped.

getPriceForTier

Read the public catalog entry for a single subscription tier (free, pro, enterprise). Pro/Free pricing is publicly advertised; Enterprise pricing is custom — pricing fields are nullified for non-admin…

listResourcePermissions

List explicit permission grants on a resource (workspace/project/folder/document/improvement/plan), including principal type (user|team), level (none|read|write|admin), and 3-state overrides for docum…

getEffectivePermission

Compute a user's effective permission level on a resource (taking team grants, inheritance, and 3-state overrides into account) and the source. Asking about another user requires can_manage_perms on t…

getKgScopeTree

List every kg_scope row for the caller's organisation, optionally narrowed to a workspace or project subtree. Each row carries scope_type, scope_id, state (on|off|inherit), settings, and is augmented …

getOrgSettings

Read an organisation's settings JSON and the derived enabled-features map (plans, documents, improvements, compliance, knowledge_graph — all booleans). The organisation must match the calling credenti…

getCurrentPlanEntitlements

Read the plan entitlements (limits + capability flags) that apply to the caller's organisation. Returns { tier, display_name, limits, features }. The Enterprise row is filtered for non-admin callers b…

getUserPreferences

Read the calling user's preferences. Self-only — no params required. Returns { notifications, grids } where `notifications` is the single notification-preferences row and `grids` is an array of per-gr…

createOrganisation

Create a new organisation owned by the calling credential's user. Auth: server-side eligibility gate via `can_user_create_organization` (free-tier users may only have one org). Per-credential rate lim…

updateOrganisation

Update an organisation's name and/or description. Auth: ceiling — credential must hold `can_admin_org` capability AND user must be org owner/admin. Rate limit 30/min. At least one of name/description …

createWorkspace

Create a new workspace inside the organisation. Auth: ceiling — credential must hold `can_lifecycle` AND user must be org owner/admin. Rate limit 30/min. Slug auto-generated. Caller becomes workspace …

updateWorkspace

Update a workspace's name. Auth: standard workspace-write ladder + user must be workspace owner or admin. Slug is intentionally not editable (URL-embedded). Rate limit 60/min.

createProject

Create a new project inside a workspace. Mirrors the UI Create Project dialog. Auth: write on workspace + credential's `can_lifecycle` capability. Validates name (1..200) and description (0..2000); ic…

updateProject

Update a project's name, description, and/or icon. Mirrors the UI Project General Settings page. Auth: admin on the project (cascades from workspace owner/admin and org admin). Partial updates; at lea…

inviteMember

Invite a person by email to the credential's organisation. Auth: org id must match the credential AND credential must hold can_manage_members. Rate limit 10/h. Returns invitation_id, expiry, and a sea…

cancelInvitation

Cancel a pending invitation by id. Sets status='revoked'. Server resolves the organisation_id from the invitation row; the credential must match that org AND hold can_manage_members. Idempotent. Rate …

resendInvitation

Resend a pending invitation: extends expires_at by 7 days and re-triggers the invitation email. Server resolves the organisation_id from the invitation row. Rate limit 6/h per invitation_id. Use when …

updateMemberRole

Update an organisation member's role (admin or member). Owners cannot be changed via this tool. Refuses self-promotion. Rate limit 30/min. Use when the user asks to promote someone to admin, demote an…

setMemberActive

Soft-deactivate or reactivate an organisation member. Refuses self-deactivation, last-admin/owner deactivation, and deactivation of an owner. Rate limit 30/min. Use when the user asks to deactivate, s…

removeMember

Hard-remove a member from an organisation, cascading to workspace and team memberships and resource permissions. Refuses self-removal and last-owner removal. Stripe seat downgrade is NOT performed her…

updateProfile

Update a user's profile name and/or display email. Self-updates do not require organisation_id; updates to other users require organisation_id and the can_manage_members capability. Self login-email c…

addWorkspaceMember

Add an existing organisation member to a workspace with a workspace-level role. Idempotent — returns the existing membership if already a member. Caller must be a workspace owner or admin.

updateWorkspaceMember

Change an existing workspace member's role. Caller must be a workspace owner or admin. Cannot self-demote from owner/admin to editor/viewer — transfer the role first.

removeWorkspaceMember

Remove a member from a workspace. Caller must be a workspace owner or admin. Refuses to remove the last remaining workspace owner.

createTeam

Create a new team inside an organisation. Caller is added as the team's lead. Subject to plan team limit. Rate limit 30/min.

updateTeam

Update a team's name, description, and/or colour. At least one field required. Slug is intentionally not editable. Rate limit 60/min.

deleteTeam

Delete a team. Cascades: team members and team-granted resource permissions are removed automatically. Destructive; rate limit 5/min.

addTeamMember

Add a user to a team as a regular member. Idempotent — returns already_member=true if already on the team. User must be an active organisation member.

removeTeamMember

Remove a user from a team. Idempotent — returns removed=false if not on the team.

grantTeamWorkspaceAccess

Grant a team read/write/admin access to a workspace. Idempotent. Team and workspace must be in the same organisation.

updateTeamWorkspaceAccess

Update an existing team's workspace access level. Refuses if no grant exists — call grantTeamWorkspaceAccess first. No-op when level matches.

revokeTeamWorkspaceAccess

Revoke a team's workspace access. Idempotent — returns revoked=false if no grant exists.

upsertResourcePermission

Insert or update a resource_permissions row for a user OR team on a workspace/project/folder/document/improvement/plan. Refuses self-escalation. Rate limit 30/min. Use when the user asks to give acces…

updateResourcePermission

Update the access level on an existing permission row. Override flags are NOT touched — use setResourcePermissionOverride for those. Refuses self-escalation. Rate limit 30/min.

deleteResourcePermission

Delete a resource_permissions row. Refuses if the row is the LAST admin grant on the resource. Rate limit 30/min. Use when the user asks to revoke access, remove access, take away access, unshare, or …

setResourcePermissionOverride

Set a single 3-state override on a permission row: null=inherit, true=allow, false=deny. Per-axis (read/write/delete) and per-kind (documents/improvements/plans), matching the OverrideAccessSection UI…

previewSubscriptionChange

Preview a subscription tier or seat change. Returns confirmation_token (10-min TTL) plus proration and next-invoice math. Cross-tier upgrades from Free return requires_checkout=true; the apply step cr…

applySubscriptionChange

Apply a previously previewed subscription change. Same-tier seat changes update Stripe in place; cross-tier upgrades from Free return a hosted Checkout URL. Refuses target=free (use cancelSubscription…

previewSubscriptionCancellation

Preview the consequences of cancelling. Returns confirmation_token plus summary {remaining_credits, prepaid_days, prepaid_value_aud, feature_loss[], at_risk_seats}. Soft cancel only. Rate limit 30/h. …

cancelSubscription

Apply a previewed soft cancellation (cancel_at_period_end=true). Customer keeps full access until period end. Rate limit 5/h. Use only AFTER previewSubscriptionCancellation and after the user confirms…

quoteCreditPackage

Quote a credit-package purchase (first half of the human-in-the-loop ritual). Returns quote_token (10-min TTL) plus package + total_aud. Caller must invoke purchaseCreditPackage(quote_token) within th…

purchaseCreditPackage

Apply a credit-package quote by creating a hosted Stripe Checkout session. Returns checkout_url + session_id. Refuses if catalogued price has drifted. Rate limit 5/h. Use only AFTER quoteCreditPackage…

reactivateSubscription

Reactivate a subscription that was scheduled to cancel at period end (clears cancel_at_period_end). Rate limit 5/h. Use when the user asks to reactivate, uncancel, restore, or keep their subscription …

updateBillingEmail

Update the org's billing email. Validates format, writes private.organizations.billing_email, syncs to Stripe customer. Rate limit 30/h.

getCustomerPortalLink

Mint a single-use Stripe Customer Portal URL for self-serve billing changes. return_url defaults to https://app.stablebaseline.io/settings/billing and must be on a stablebaseline.* host.

setKgWorkspaceScope

Toggle whether a workspace is in the Knowledge Graph (on/off/inherit). 'on' enables the workspace as a gate for indexing its projects; 'off' excludes everything under it; 'inherit' removes the explici…

setKgProjectVisibility

Set the KG visibility mode for a project: 'strict' (multi-source rows hidden unless user can read every source), 'permissive' (one source suffices), or 'open' (any org member). Controls WHO can see th…

setKgFolderScope

Toggle KG-scope override for a folder (on/off/inherit). Folders default to inheriting their project's scope. Requires can_manage_kg + folder write. Rate limit 30/min.

setKgDocumentScope

Toggle KG-scope override for a single document (on/off/inherit). Documents default to inheriting their folder/project gate. Requires can_manage_kg + document write. Rate limit 30/min.

cancelKgBuildBatch

Cancel a single KG rebuild batch. Queued runs flip to 'cancelled' immediately; running runs finish naturally. Requires can_manage_kg. Rate limit 5/min.

cancelAllKgInScope

Emergency stop for KG ingestion: cancels queued/running build runs, queued/running rebuild batches, demotes still-eager unfinished chunks. Optionally narrowed to one project. Requires can_manage_kg + …

resetDocumentInBrain

Wipe + re-ingest a single document in the KG. Drops chunks/mentions/entities, clears pending lazy-extraction, and enqueues a fresh extract pass. Requires can_manage_kg + document write. Rate limit 30/…

previewKgScopeChange

Preview the credit cost, source counts, and ETA of including or excluding KG scope rows. Returns confirmation_token (10-min TTL) plus delta of newly-in-scope vs newly-out-of-scope sources. Rate limit …

applyKgScopeChange

Apply a previously previewed KG scope change. Atomically writes kg_scope rows and dispatches a re-ingest batch (batch_id = token). Idempotent. Rate limit 5/h.

previewKgRebuild

Preview the cost / coverage / ETA of a full KG rebuild for the org (optionally narrowed to a workspace or project). Returns confirmation_token (10-min TTL). Rate limit 20/h.

triggerKgRebuild

Apply a previously previewed KG rebuild. Dispatches the build batch via kg-rebuild and returns batch_id. Rate limit 5/h.

updateOrgSettings

Update an organisation's `settings` JSONB via deep merge. Auth: ceiling — credential must hold can_admin_org AND user must be org owner/admin. Rate limit 30/min. Patches that touch `enabledFeatures` a…

createBrandKit

Create a per-org BRAND KIT so Stable Baseline outputs come out fully on-brand. Upload your branding and it is auto-applied: pass a `logoUrl` (as little as your logo, and the vision model AUTO-EXTRACTS…

listBrandKits

List an organisation's BRAND KITS (palette/fonts/logo), newest first. Use a returned `id` as brandKitId for a design call or setDefaultBrandKit. Auth: can_admin_org.

setDefaultBrandKit

Set or clear the default BRAND KIT at a scope: organization, workspace, project, folder, or document. Defaults cascade most-specific-first, lowest level up: document beats the nearest folder up the (n…

updateOrgFeatureFlags

Toggle organisation feature modules (plans, improvements, compliance, knowledge_graph, documents, meeting_scribe). Auth: can_admin_org + org admin. Rate limit 30/min. A flag can only be ENABLED when t…

updateUserPreferences

Update the calling user's preferences. Self-only. Rate limit 60/min. Partial: only fields supplied are updated. notifications upserts a single row; grids upserts per-row keyed by (user_id, project_id,…

startSignup

Begin an agent-driven sign-up to Stable Baseline. Anonymous-callable. Returns a `verification_url` and a 6-character `user_code` that the agent must show to the user. The user opens the URL in their b…

pollSignupStatus

Poll the status of a signup begun via `startSignup`. Anonymous-callable. Possible status values: `pending` (user has not yet authorized — keep polling), `authorized` (success — response includes `api_…

Resources · 8

CDMD Language Guide

CDMD language specification (Markdown).

sb://cdmd-guide
Diagram Types

List of supported diagram types and their DSL instructions (JSON).

sb://diagram-types
Server Info

Server capabilities, versions, and available primitives (JSON).

sb://server-info
Whiteboarding Guide

How to author Stable Baseline whiteboards: when to use stencils / architecture icons / code & BPMN diagrams / plain shapes / images / frames & presentations, how to lay out and verify a board, and how…

sb://whiteboard-guide
Document Viewer

Interactive document viewer with folder tree sidebar, rendered diagrams, and images.

ui://stablebaseline/document-viewer.html
Plan Viewer

Plan hierarchy viewer with phases, tasks, status badges, and progress stats.

ui://stablebaseline/plan-viewer.html
Item Detail

Full task or improvement detail view with metadata sidebar, acceptance criteria, and activity log.

ui://stablebaseline/item-detail.html
Whiteboard Viewer

Infinite-canvas whiteboard viewer with pan, zoom, Fit and 100% controls.

ui://stablebaseline/whiteboard-viewer.html

Prompts · 11

sb-setup

Onboard a repository into Stable Baseline: discover IDs, analyse the repo, create a bespoke documentation structure, and augment AGENTS.md with sync rules (preserves existing content).

sb-sync

Generate or update the Stable Baseline section in AGENTS.md for cross-IDE auto-sync. Preserves all existing AGENTS.md content — only appends or updates the Stable Baseline section.

sb-create-doc

Guide an assistant to create a new Stable Baseline document (CDMD) using MCP tools, with optional follow-up diagram/image insertion.

sb-create-diagram

Guide an assistant to generate and insert a diagram into an existing document using MCP tools.

sb-edit-doc

Guide an assistant to edit an existing Stable Baseline document using line-based patches or bulk find-and-replace, with proper optimistic locking via versionTimestamp.

sb-manage-images

Guide an assistant to upload, insert, update, or delete images in a Stable Baseline document using the upload-session flow.

sb-manage-data

Guide an assistant to upload, reference, and manage data files (CSV, JSON, TSV) for Vega/Vega-Lite diagrams in a Stable Baseline document.

sb-update

Update Stable Baseline documentation with changes, decisions, and knowledge from the current conversation. Use this mid-conversation when architectural changes, key decisions, or important implementat…

sb-whiteboard-design

Guide an assistant to plan and build an effective Stable Baseline whiteboard (shapes, stencils, architecture icons, connectors, frames) using MCP tools.

sb-whiteboard-diagram

Guide an assistant to add a diagram, BPMN process, or real image onto a Stable Baseline whiteboard using MCP tools.

sb-whiteboard-present

Guide an assistant to build a frame-based slide deck on a Stable Baseline whiteboard (one frame = one slide), ready for Present mode and PPTX export.

How to use

Add to your Claude Desktop / Cursor / Cline MCP config:

{
  "mcpServers": {
    "stable_baseline": {
      "url": "https://api.stablebaseline.io/functions/v1/cloud-serve/mcp",
      "transport": "streamable-http"
    }
  }
}