Stable Baseline
by stablebaseline.io in Company & people data
End-to-end agent-managed company brain. Docs, diagrams, plans, Knowledge Graph. Lean & affordable.
https://api.stablebaseline.io/functions/v1/cloud-serve/mcp
Last 30 days
- Uptime
- 100%
- Response time
- 2.0 s typical, 2.7 s slowest 5%
- Last check
- 1 h ago
- Next check
- in 5 h
How to call it
Add it to any MCP client that supports remote servers.
{
"mcpServers": {
"stable-baseline": {
"type": "http",
"url": "https://api.stablebaseline.io/functions/v1/cloud-serve/mcp"
}
}
}219 tools
- searchTools
Search available tools by keyword or category. Returns matching tool names and descriptions.
- listDiagramTypes
List supported diagram types (renderers such as default, mermaid, plantuml, bpmn and d2; 'default' is the platform default renderer). Pass `query` to search by name OR intent (keyword + semantic): e.g. 'circuit diagram', 'wiring harness', 'timing waveform', 'network topology', 'd
- getDiagramTypeGuide
Get DSL writing instructions and an example for a diagram type (a renderer such as 'default', 'mermaid' or 'bpmn'). Also accepts a diagram family slug or name from supportedDiagrams (e.g. 'bpmn-process'), which resolves to that family's default renderer (see resolvedFrom). suppor
- listArchitectureIcons
List and search the full Stable Baseline icon library, including 3,850 library icons. The AWS, Azure, GCP, Development, Essentials and other categories stay intact; library icons join matching categories, with specific Oracle Cloud, Kubernetes, Networking and General categories f
- searchInfographicTemplates
Search the 276 infographic templates by meaning. Call this FIRST when building an `infographic` diagram so you pick the right structure for the content. Describe the intent (e.g. 'compare two options', 'show a process timeline', 'pyramid of priorities', 'org hierarchy', 'flow bet
- 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 like updateImprovement(owner_id=…) or filtering by owner. Read-only.
- listAssignablePrincipals
Server-side searchable, paginated list of the USERS and TEAMS that can be assigned as the owner of an improvement or task in a project, and the canonical source for resolving a person's user_id when @-mentioning them in a document. Users are the people who may be assigned work in
- listTeams
List teams in an organisation, with optional search filter and an `includeMembers` flag that returns each team's members in the same call. Supply EITHER organizationId OR workspaceId (the workspace's parent org is resolved automatically). Use this when the user asks about teams g
- 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-only.
- 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/slug.
- 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 it, move it or reorder it. `parentId` moves it under another folder of its project. To move the folder WITH EVERYTHING IN IT into another project, in any workspace of the same organisation, give `projectId` (the project it moves to) and, if you like, `pare
- 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 sequentially as 0, 1, 2…. To MOVE a folder to a different parent and set its position the
- 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 docs. Each returned document includes `contentMatches: [{line, text, context?}]`
- 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 parentId). Alias for getProjectHierarchy.
- 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 editDocument anchor patches, copy only the text AFTER the tab. Reads paginate by
- 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 frontmatter block is stored and preserved: title/exported_at/generator are mana
- 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 snippet of existing text with new text. oldText must match the document byte-fo
- 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 phrases. For a single targeted change at a known location, prefer editDocument (an
- 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, and versionTimestamp — the diagram's optimistic-lock token for updateDiagramInDo
- 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 write time: broken DSL is rejected with the renderer's error (fix and retry), and
- 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 error — and a valid change is re-rendered + re-thumbnailed immediately (respons
- 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 `[Diagram: name]` placeholders). The response's removedFromBody says whether a mar
- 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 verify a board, and how to edit a large board safely (patch by id, never replace). C
- 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, composes the WHOLE board, renders it, critiques the rendered image, and refines
- 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 self-improving design loop: an agent AUTHORS the component as a declarative templa
- 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 regenerates only the masked region using the prompt and replaces the image IN PLACE (same
- 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 agent builds a polished, on-brand deck and places it on the board; if the brief
- 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 follow-up flow, but it makes ONE on-brand illustration placed on the board (not a s
- 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, or the placed illustration) OR a clarifying question to answer (call the SAME
- exportFromWhiteboard
Export from a whiteboard: a finished design (a deck) as an editable PowerPoint (PPTX), a PDF or PNG images, or the whiteboard canvas itself as a PowerPoint. LARGE EXPORTS FINISH IN THE BACKGROUND: if the export takes longer than one tool call can wait, this returns status:'export
- 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 and topic clusters, an agenda that ticks itself off, and decisions and actions p
- 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 has painted, and the board it is painting. Give it the sessionId returned by sta
Security scan
- Unusually long description in tool:autoDesignWhiteboard
autoDesignWhiteboard Auto-design a complete, visually polished whiteboard from a… - Unusually long description in tool:designDeckInWhiteboard
designDeckInWhiteboard Create or refine a slide deck INSIDE an existing whiteboa… - Unusually long description in tool:addWhiteboardElements
addWhiteboardElements Author shapes onto a whiteboard from high-level specs (you… - Unusually long description in tool:kg_search
kg_search FIND an artefact by its name, friendly id or uuid with artefactMetadat…
Recent checks
| When | Result | HTTP | Time |
|---|---|---|---|
| 1 h ago | Passed | 200 | 2.8 s |
| 11 h ago | Passed | 200 | 1.9 s |
| 20 h ago | Passed | 200 | 2.5 s |
| 30 h ago | Passed | 200 | 2.7 s |
| 39 h ago | Passed | 200 | 1.8 s |
| 2 days ago | Passed | 200 | 2.0 s |