Stable Baseline is an MCP server with 196 tools an agent can call, among them acceptTaskDependencyReview, addImprovementActivity, addImprovementEvidence. It answers at https://api.stablebaseline.io/functions/v1/cloud-serve/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 11 September 2026; the last check, on 24 October 2026, succeeded.
End-to-end agent-managed company brain. Docs, diagrams, plans, Knowledge Graph. Lean & affordable.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
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`. Inputs: improvementId |
addImprovementActivity | Add a comment or activity entry to an improvement. Inputs: projectId, improvementId, activityType, comment, fieldName, oldValue |
addImprovementEvidence | Add evidence to an improvement. Types: document_section, diagram_node, incident_note, feedback, free_text. Inputs: projectId, improvementId, summary, evidenceType, refId, refUrl |
addPlanActivity | Add a comment or activity entry to a plan. Inputs: projectId, planId, activityType, comment, fieldName, oldValue |
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. Inputs: team_id, user_id |
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 board that already has content — guessed co |
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. Inputs: workspace_id, user_id, workspace_role |
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. Inputs: confirmation_token |
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) and target=enterprise (sales-led). Rat Inputs: confirmation_token |
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. Use `forwardOnly: true` to only shift ite Inputs: planId, pinnedItemIds, forwardOnly |
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, cr Inputs: goal, title, documentId, projectId, confirm, designProfile |
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 + (project write if project_id supplied). Inputs: organisation_id, project_id |
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 limit 30/min. Use when the user asks to Inputs: invitation_id |
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. Inputs: batch_id |
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 — never cancel without showing the prev Inputs: confirmation_token |
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 your palette and fonts), or an `officeU Inputs: organizationId, name, logoUrl, officeUrl, tokens, guidance |
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 preserv Inputs: projectId, folderId, title, cdmd, content, position |
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 created as a draft and progressively po Inputs: sessionId, projectId, folderId, title, changeSummary |
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 bytes to uploadUrl with PUT, then call creat Inputs: projectId, folderId, fileName, mimeType, sizeBytes |
createFolder | Create a folder in a project. Supports nesting via parentId. Inputs: projectId, parentId, name, position |
createImageUploadSession | Create a PUT upload URL for a document image (max 10MB). Use the returned assetUrl with insertImageInDocument. Inputs: projectId, documentId, fileName, mimeType, sha256 |
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 than create-then-update. Inputs: projectId, title, type, priority, status, source |
createImprovementCategory | Create an improvement category or sub-category. Max two levels. Inputs: projectId, name, parentId, slug, description, icon |
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 limit 3/day. Slug auto-generated. The new o Inputs: name, description |
createPlan | Create a plan in a project. Requires projectId and title. Inputs: projectId, title, description, status, priority, icon |
createPlanPhase | Create a phase in a plan. Position and wbs_code are auto-computed. Inputs: planId, name, description, status, priority, position |
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); icon defaults to a folder emoji if omitted Inputs: workspace_id, name, description, icon |
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 read a half-written record. Inputs: planId, title, phaseId, description, type, status |
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 = lag, negative = lead/overlap. Rejects s Inputs: predecessorId, successorId, dependencyType, lagDays |
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. Inputs: organisation_id, name, description, color |
createVegaDataUploadSession | Create a PUT upload URL for a Vega/Vega-Lite data file. Use returned assetUrl in your Vega spec. Inputs: projectId, documentId, fileName, contentType |
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 editor in the app. Returns documentId + dia Inputs: projectId, title, folderId |
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 owner. Plan limits surface as WORKSPACE_ Inputs: organisation_id, name |
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 evenly-spaced cells so you do NOT place ea Inputs: projectId, documentId, rows, data, headers, cellWidth |
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 respo Inputs: diagramId, versionTimestamp |
deleteDocument | Delete a document. Inputs: documentId, projectId |
deleteFolder | Delete a folder recursively, including all nested folders and documents. Inputs: folderId |
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 the picture stops appearing on every read Inputs: imageId, versionTimestamp |
deleteImprovement | Delete an improvement and all associated evidence and activity. Inputs: projectId, improvementId |
deleteImprovementCategory | Delete an improvement category. Cannot delete system categories. Inputs: categoryId |
deleteImprovementComment, deletePlan, deletePlanComment, deletePlanPhase, deleteResourcePermission, deleteTaskDependency, deleteTeam, deleteVegaDataFile, deleteWhiteboard, designComponent, designDeckInWhiteboard, designIllustrationInWhiteboard, dismissTaskDependencyReview, duplicateWhiteboardElements, editDocument, editWhiteboardImageRegion, exportFromWhiteboard, findAndReplaceTextInDocument, getCdmdLanguageGuide, getCreditBalance, getCreditPackages, getCurrentPlanEntitlements, getCurrentUser, getCustomerPortalLink, getDeckReplyInWhiteboard, getDiagramImage, getDiagramInDocument, getDiagramTypeGuide, getDocument, getDocumentIngestJob, getEffectivePermission, getFolderHierarchy, getImageInDocument, getImprovement, getKgScopeTree, getMeetingScribeStatus, getMember, getOrgSettings, getOrganisation, getPlan, getPlanHierarchy, getPlanPhase, getPriceForTier, getProject, getProjectHierarchy, getSubscription, getTask, getTeam, getUserPreferences, getWhiteboard, getWhiteboardGuide, getWhiteboardImage, getWorkspace, grantTeamWorkspaceAccess, insertDiagramInDocument, insertImageInDocument, insertWhiteboardDiagram, insertWhiteboardImage, inviteMember, kg_backlinks, kg_evaluate_retrieval, kg_get_entity, kg_get_wiki_page, kg_list_communities, kg_related_documents, kg_scope_status, kg_search, kg_suggest_sample_questions, listArchitectureIcons, listAssignablePrincipals, listBrandKits, listCreditPurchases, listDiagramTypes, listDocumentVersions, listDocuments, listFolders, listImprovementCategories, listImprovements, listInvitations, listInvoices, listMembers, listOrganisations, listPaymentMethods, listPlanPhases, listPlans, listProjects, listResourcePermissions, listTaskDependencies, listTasks, listTeams, listWhiteboardStencils, listWhiteboards, listWorkspaces, pollSignupStatus, previewKgRebuild, previewKgScopeChange, previewSubscriptionCancellation, previewSubscriptionChange, previewTaskDependencyCascade, purchaseCreditPackage, quoteCreditPackage, reactivateSubscription, rebuildPlatformCatalogEmbeddings, removeMember, removeTeamMember, removeWorkspaceMember, renderDiagram, reorderDocuments, reorderFolders, reorderImprovementCategories, reorderPlanPhases, resendInvitation, resetDocumentInBrain, revokeTeamWorkspaceAccess, searchImprovements, searchInfographicTemplates, searchTools, setDefaultBrandKit, setKgDocumentScope, setKgFolderScope, setKgProjectVisibility, setKgWorkspaceScope, setMemberActive, setPlanItemParent, setResourcePermissionOverride, startMeetingScribe, startSignup, stopMeetingScribe, traceImage, triggerKgRebuild, updateBillingEmail, updateDiagramInDocument, updateFolder, updateImageInDocument, updateImprovement, updateImprovementCategory, updateImprovementComment, updateMemberRole, updateOrgFeatureFlags, updateOrgSettings, updateOrganisation, updatePlan, updatePlanComment, updatePlanPhase, updateProfile, updateProject, updateResourcePermission, updateTask, updateTaskDependency, updateTeam, updateTeamWorkspaceAccess, updateUserPreferences, updateWhiteboardScene, updateWorkspace, updateWorkspaceMember, upsertResourcePermission
Every block below points at https://api.stablebaseline.io/functions/v1/cloud-serve/mcp. Pick your client and copy.
claude mcp add --transport http stable-baseline https://api.stablebaseline.io/functions/v1/cloud-serve/mcp
{
"mcpServers": {
"stable-baseline": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.stablebaseline.io/functions/v1/cloud-serve/mcp"]
}
}
}{
"mcpServers": {
"stable-baseline": {
"url": "https://api.stablebaseline.io/functions/v1/cloud-serve/mcp"
}
}
}{
"servers": {
"stable-baseline": {
"type": "http",
"url": "https://api.stablebaseline.io/functions/v1/cloud-serve/mcp"
}
}
}{
"context_servers": {
"stable-baseline": {
"url": "https://api.stablebaseline.io/functions/v1/cloud-serve/mcp"
}
}
}{
"mcpServers": {
"stable-baseline": {
"serverUrl": "https://api.stablebaseline.io/functions/v1/cloud-serve/mcp"
}
}
}{
"mcpServers": {
"stable-baseline": {
"url": "https://api.stablebaseline.io/functions/v1/cloud-serve/mcp"
}
}
}name: Stable Baseline
version: 0.0.1
schema: v1
mcpServers:
- name: Stable Baseline
type: streamable-http
url: https://api.stablebaseline.io/functions/v1/cloud-serve/mcp{
"mcpServers": {
"stable-baseline": {
"httpUrl": "https://api.stablebaseline.io/functions/v1/cloud-serve/mcp"
}
}
}{
"mcpServers": {
"stable-baseline": {
"type": "http",
"url": "https://api.stablebaseline.io/functions/v1/cloud-serve/mcp"
}
}
}{
"mcpServers": {
"stable-baseline": {
"url": "https://api.stablebaseline.io/functions/v1/cloud-serve/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fapi.stablebaseline.io%2Ffunctions%2Fv1%2Fcloud-serve%2Fmcp&type=streamable_http&id=stable-baseline&name=Stable%20Baseline
It answered our last check on 24 October 2026 in 1109 ms. Over 6 checks since 11 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by stablebaseline.io and served from api.stablebaseline.io, the vendor's own domain: https://api.stablebaseline.io/functions/v1/cloud-serve/mcp.
196, as returned by the server's own tools/list on 22 September 2026: acceptTaskDependencyReview, addImprovementActivity, addImprovementEvidence, addPlanActivity, addTeamMember, addWhiteboardElements, addWorkspaceMember, applyKgScopeChange, and 188 more.
It answered our last check on 24 October 2026 in 1109 ms. Over 6 checks since 11 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://api.stablebaseline.io/functions/v1/cloud-serve/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.stablebaseline. Endpoint host: api.stablebaseline.io. ARD identifier: urn:air:io.stablebaseline:mcp:sb.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.