A cloud-hosted MCP server that gives agents full CRUD control over an organizational knowledge base. You get 179 tools across documents, diagrams (Mermaid, BPMM, D2, PlantUML), plans, tasks, and a self-learning knowledge graph. Agents can provision workspaces, invite members, set RBAC permissions, create folders, edit Markdown documents, insert visualizations, and query the knowledge graph for entity relationships. Supports both Bearer token auth and OAuth 2.1 with dynamic client registration. Works over streamable HTTP, so no local process to manage. Useful when you want Claude or Cursor to not just read your company brain but actively build and maintain it end to end, from billing setup through diagram generation.
Public tool metadata for what this MCP can expose to an agent.
searchToolsSearch available tools by keyword or category. Returns matching tool names and descriptions.2 paramsSearch available tools by keyword or category. Returns matching tool names and descriptions.
querystringcategorystringnavigation · folders · documents · diagrams · images · datalistDiagramTypesList supported diagram types. Use the returned `type` field when calling insertDiagramInDocument.5 paramsList supported diagram types. Use the returned `type` field when calling insertDiagramInDocument.
limitnumberquerystringfieldsarrayoffsetnumberenabledOnlybooleangetDiagramTypeGuideGet DSL writing instructions for a diagram type. Call before writing diagramCode.2 paramsGet DSL writing instructions for a diagram type. Call before writing diagramCode.
typestringfieldsarraylistArchitectureIconsList icons for systemsarchitecture diagrams. Use returned iconPath as-is in D2 code (e.g. icon: dev/docker.svg).5 paramsList icons for systemsarchitecture diagrams. Use returned iconPath as-is in D2 code (e.g. icon: dev/docker.svg).
limitnumberquerystringfieldsarrayoffsetnumbercategorystringgetCdmdLanguageGuideGet the CDMD markdown language specification. Call before createDocument if unfamiliar with syntax.Get the CDMD markdown language specification. Call before createDocument if unfamiliar with syntax.
No parameter schema in public metadata yet.
getCurrentUserReturn 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.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.
No parameter schema in public metadata yet.
listAssignablePrincipalsServer-side searchable, paginated list of USERS and TEAMS that can be assigned as the owner of an improvement/task in a project. Returns two arrays — `users` (with user_id, display_name, email, avatar_url, has_explicit_permission) and `teams` (with team_id, name, member_count,...6 paramsServer-side searchable, paginated list of USERS and TEAMS that can be assigned as the owner of an improvement/task in a project. Returns two arrays — `users` (with user_id, display_name, email, avatar_url, has_explicit_permission) and `teams` (with team_id, name, member_count,...
qstringkindstringall · user · teamlimitnumberoffsetnumberprojectIdstringworkspaceIdstringlistTeamsList 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 workspace's parent org is resolved automatically). Use this when the user asks about...6 paramsList 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 workspace's parent org is resolved automatically). Use this when the user asks about...
qstringlimitnumberoffsetnumberworkspaceIdstringincludeMembersbooleanorganizationIdstringgetTeamGet 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.2 paramsGet 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.
teamIdstringincludeMembersbooleanlistOrganisationsList organisations you have access to. Supports query filtering by name/slug.4 paramsList organisations you have access to. Supports query filtering by name/slug.
limitnumberquerystringfieldsarrayoffsetnumberlistWorkspacesList workspaces you have access to. Supports query filtering by name/slug.7 paramsList workspaces you have access to. Supports query filtering by name/slug.
limitnumberquerystringfieldsarrayoffsetnumbertoDatestringfromDatestringdateFieldstringlistProjectsList projects in a workspace. Supports query filtering by project name.8 paramsList projects in a workspace. Supports query filtering by project name.
limitnumberquerystringfieldsarrayoffsetnumbertoDatestringfromDatestringdateFieldstringworkspaceIdstringlistFoldersList folders in a project. Use parentId for nested folders. For full tree, use getProjectHierarchy instead.9 paramsList folders in a project. Use parentId for nested folders. For full tree, use getProjectHierarchy instead.
limitnumberquerystringfieldsarrayoffsetnumbertoDatestringfromDatestringparentIdstringdateFieldstringprojectIdstringcreateFolderCreate a folder in a project. Supports nesting via parentId.4 paramsCreate a folder in a project. Supports nesting via parentId.
namestringparentIdstringpositionnumberprojectIdstringupdateFolderUpdate a folder (rename/move/reorder). Supports nesting changes via parentId.4 paramsUpdate a folder (rename/move/reorder). Supports nesting changes via parentId.
namestringfolderIdstringparentIdstringpositionnumberdeleteFolderDelete a folder recursively, including all nested folders and documents.1 paramsDelete a folder recursively, including all nested folders and documents.
folderIdstringlistDocumentsList documents in a project, workspace, or folder. Supports query search and date filtering.10 paramsList documents in a project, workspace, or folder. Supports query search and date filtering.
limitnumberquerystringfieldsarrayoffsetnumbertoDatestringfolderIdstringfromDatestringdateFieldstringprojectIdstringworkspaceIdstringgetProjectHierarchyGet the complete folder and document tree for a project in one call. Recommended first call for navigation.8 paramsGet the complete folder and document tree for a project in one call. Recommended first call for navigation.
querystringtoDatestringfolderIdstringfromDatestringmaxDepthnumberdateFieldstringprojectIdstringincludeDocumentsbooleangetFolderHierarchyGet the folder and document tree starting from a specific folder. Alias for getProjectHierarchy with folderId.7 paramsGet the folder and document tree starting from a specific folder. Alias for getProjectHierarchy with folderId.
querystringtoDatestringfolderIdstringfromDatestringmaxDepthnumberdateFieldstringincludeDocumentsbooleangetDocumentRead a document's content with line numbers. Returns numbered lines for use with editDocument. Diagrams/images appear as OMITTED markers with metadata (type, diagramId, nlDescription) — use getDiagramInDocument(diagramId) for full DSL code, or dedicated diagram/image tools to...5 paramsRead a document's content with line numbers. Returns numbered lines for use with editDocument. Diagrams/images appear as OMITTED markers with metadata (type, diagramId, nlDescription) — use getDiagramInDocument(diagramId) for full DSL code, or dedicated diagram/image tools to...
limitnumberfieldsarrayoffsetnumberdocumentIdstringcontentFieldsarraycreateDocumentCreate a document from CDMD markdown. Call getCdmdLanguageGuide first if unfamiliar with syntax. Do not include DIAGRAM/IMAGE markers — insert them after with dedicated tools.5 paramsCreate a document from CDMD markdown. Call getCdmdLanguageGuide first if unfamiliar with syntax. Do not include DIAGRAM/IMAGE markers — insert them after with dedicated tools.
cdmdstringtitlestringfolderIdstringprojectIdstringchangeSummarystringeditDocumentEdit a document with line-based patches. Call getDocument first for line numbers and versionTimestamp. Call getCdmdLanguageGuide if unfamiliar with CDMD syntax. Do not edit DIAGRAM/IMAGE markers manually — use dedicated diagram/image tools.6 paramsEdit a document with line-based patches. Call getDocument first for line numbers and versionTimestamp. Call getCdmdLanguageGuide if unfamiliar with CDMD syntax. Do not edit DIAGRAM/IMAGE markers manually — use dedicated diagram/image tools.
titlestringpatchesarrayfolderIdstringdocumentIdstringchangeSummarystringversionTimestampnumberfindAndReplaceTextInDocumentFind and replace text in a document. Searches for all occurrences and replaces them. Case-sensitive by default. Diagrams/images are automatically protected — only document text is affected.5 paramsFind and replace text in a document. Searches for all occurrences and replaces them. Case-sensitive by default. Diagrams/images are automatically protected — only document text is affected.
findstringreplacestringdocumentIdstringcaseSensitivebooleanchangeSummarystringgetDiagramInDocumentGet a diagram's full details including raw DSL source code. Use diagramId from DIAGRAM_OMITTED markers in getDocument output. Returns diagramCode, type, name, nlDescription, and versionTimestamp.2 paramsGet a diagram's full details including raw DSL source code. Use diagramId from DIAGRAM_OMITTED markers in getDocument output. Returns diagramCode, type, name, nlDescription, and versionTimestamp.
fieldsarraydiagramIdstringinsertDiagramInDocumentInsert a new diagram into a document. Call listDiagramTypes to find your type, then getDiagramTypeGuide for DSL syntax before writing diagramCode.10 paramsInsert a new diagram into a document. Call listDiagramTypes to find your type, then getDiagramTypeGuide for DSL syntax before writing diagramCode.
typestringalignstringleft · center · rightpromptstringcaptionstringafterLinenumbercolorPlanobjectdocumentIdstringdiagramCodestringnlDescriptionstringdocumentVersionTimestampnumberupdateDiagramInDocumentUpdate a diagram's code, description, or properties. Call getDiagramTypeGuide for DSL syntax. Requires documentVersionTimestamp from getDocument. IMPORTANT: To change what the diagram visually shows, you MUST provide diagramCode with the full updated DSL source. The prompt and...8 paramsUpdate a diagram's code, description, or properties. Call getDiagramTypeGuide for DSL syntax. Requires documentVersionTimestamp from getDocument. IMPORTANT: To change what the diagram visually shows, you MUST provide diagramCode with the full updated DSL source. The prompt and...
alignstringleft · center · rightpromptstringcaptionstringcolorPlanobjectdiagramIdstringdiagramCodestringnlDescriptionstringdocumentVersionTimestampnumberdeleteDiagramInDocumentDelete a diagram from a document.1 paramsDelete a diagram from a document.
diagramIdstringdeleteDocumentDelete a document.1 paramsDelete a document.
documentIdstringlistDocumentVersionsList version history for a document. Returns timestamps, creator, change summary, and content.8 paramsList version history for a document. Returns timestamps, creator, change summary, and content.
limitnumberfieldsarrayoffsetnumbertoDatestringfromDatestringdocumentIdstringsortAscendingbooleanversionNumbernumbergetImageInDocumentGet image details including a fresh signed URL (expires after 1 hour). Use storagePath from IMAGE_OMITTED markers in getDocument output.2 paramsGet image details including a fresh signed URL (expires after 1 hour). Use storagePath from IMAGE_OMITTED markers in getDocument output.
documentIdstringstoragePathstringcreateImageUploadSessionCreate a PUT upload URL for a document image (max 10MB). Use the returned assetUrl with insertImageInDocument.4 paramsCreate a PUT upload URL for a document image (max 10MB). Use the returned assetUrl with insertImageInDocument.
sha256stringfileNamestringmimeTypestringdocumentIdstringinsertImageInDocumentInsert an image into a document (max 10MB). Provide imageBase64, imageBinary, or imageUrl. For large files, call createImageUploadSession first then use the returned assetUrl.13 paramsInsert an image into a document (max 10MB). Provide imageBase64, imageBinary, or imageUrl. For large files, call createImageUploadSession first then use the returned assetUrl.
altstringalignstringleft · center · rightwidthnumberheightnumbercaptionstringfileNamestringimageUrlstringafterLinenumberdocumentIdstringimageBase64stringimageBinaryarraynlDescriptionstringdocumentVersionTimestampnumberupdateImageInDocumentUpdate image metadata (alt, caption, dimensions, alignment). Requires documentVersionTimestamp from getDocument for optimistic locking.8 paramsUpdate image metadata (alt, caption, dimensions, alignment). Requires documentVersionTimestamp from getDocument for optimistic locking.
altstringalignstringleft · center · rightwidthnumberheightnumbercaptionstringimageIdstringnlDescriptionstringdocumentVersionTimestampnumberdeleteImageInDocumentDelete an image from a document and storage.1 paramsDelete an image from a document and storage.
imageIdstringcreateVegaDataUploadSessionCreate a PUT upload URL for a Vega/Vega-Lite data file. Use returned assetUrl in your Vega spec.3 paramsCreate a PUT upload URL for a Vega/Vega-Lite data file. Use returned assetUrl in your Vega spec.
fileNamestringdocumentIdstringcontentTypestringdeleteVegaDataFileDelete a data file attachment from a document.2 paramsDelete a data file attachment from a document.
documentIdstringattachmentIdstringcreateDocumentIngestSessionStep 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 createDocumentFromUpload({ sessionId, proj...5 paramsStep 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 createDocumentFromUpload({ sessionId, proj...
fileNamestringfolderIdstringmimeTypestringprojectIdstringsizeBytesnumbercreateDocumentFromUploadStep 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 populated as the worker processes the f...5 paramsStep 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 populated as the worker processes the f...
titlestringfolderIdstringprojectIdstringsessionIdstringchangeSummarystringgetDocumentIngestJobRead the current status of an ingest job. Returns { status, stage, processedImages, totalImages, documentId, error?, lastHeartbeatAt }. Stages: pending → downloaded → extracted → draft_saved → images_processing → finalized → cleaned_up. Status: queued, running, succeeded, fail...1 paramsRead the current status of an ingest job. Returns { status, stage, processedImages, totalImages, documentId, error?, lastHeartbeatAt }. Stages: pending → downloaded → extracted → draft_saved → images_processing → finalized → cleaned_up. Status: queued, running, succeeded, fail...
jobIdstringlistImprovementsList improvements in a project. Supports filtering by status, type, priority, and query.16 paramsList improvements in a project. Supports filtering by status, type, priority, and query.
typestringlimitnumberquerystringfieldsarrayoffsetnumbersourcestringstatusstringprioritystringprojectIdstringscanRunIdstringsortFieldstringagentReadybooleancategoryIdstringframeworkKeystringsortAscendingbooleancomplianceOnlybooleangetImprovementGet 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). Returns versionTimestamp — pass it to updateImprovement for optimistic locki...1 paramsGet 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). Returns versionTimestamp — pass it to updateImprovement for optimistic locki...
improvementIdstringcreateImprovementCreate an improvement item in a project. Requires projectId and title. Auto-assigns friendly ID.38 paramsCreate an improvement item in a project. Requires projectId and title. Auto-assigns friendly ID.
typestringtitlestringsourcestringstatusstringis_taskbooleanplan_idstringurgencystringwhy_nowstringend_datestringowner_idstringphase_idstringprioritystringwbs_codestringchecklistarraynon_goalsarrayprojectIdstringstart_datestringagent_briefstringagent_readybooleancategory_idstringconstraintsarraydescriptionstringtarget_datestringuser_impactstringowner_team_idstringbusiness_impactstringdesired_outcomestringagent_complexitystringagent_confidencenumberpercent_completenumberimpacted_diagramsarrayproblem_statementstringagent_missing_infoarrayimpacted_documentsarrayacceptance_criteriaarrayimpacted_componentsarraylinked_document_idsarrayagent_recommended_actionstringupdateImprovementUpdate 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 dates + completion attribution) and `acceptance_criteria` (objects with per-row...50 paramsUpdate 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 dates + completion attribution) and `acceptance_criteria` (objects with per-row...
typestringtitlestringstatusstringis_taskbooleanplan_idstringurgencystringwhy_nowstringend_datestringmetadataobjectowner_idstringphase_idstringpositionnumberprioritystringwbs_codestringchecklistarraynon_goalsarraystart_datestringagent_briefstringagent_readybooleancategory_idstringconstraintsarraydescriptionstringtarget_datestringuser_impactstringdocs_updatedbooleanimprovementIdstringowner_team_idstringrelationshipsobjectblocked_commentstringbusiness_impactstringdesired_outcomestringagent_complexitystringagent_confidencenumberfollow_up_neededbooleanpercent_completenumberreopened_commentstringversionTimestampnumberimpacted_diagramsarrayproblem_statementstringrejection_commentstringresolution_pr_urlstringagent_missing_infoarraycompletion_commentstringimpacted_documentsarrayresolution_summarystringacceptance_criteriaarrayimpacted_componentsarraylinked_document_idsarrayimpacted_repositoriesarrayagent_recommended_actionstringdeleteImprovementDelete an improvement and all associated evidence and activity.1 paramsDelete an improvement and all associated evidence and activity.
improvementIdstringlistImprovementCategoriesList improvement categories for a project. Returns tree and flat list.1 paramsList improvement categories for a project. Returns tree and flat list.
projectIdstringcreateImprovementCategoryCreate an improvement category or sub-category. Max two levels.8 paramsCreate an improvement category or sub-category. Max two levels.
iconstringnamestringslugstringcolorstringparentIdstringprojectIdstringsortOrdernumberdescriptionstringupdateImprovementCategoryUpdate an improvement category. Cannot modify system categories.7 paramsUpdate an improvement category. Cannot modify system categories.
iconstringnamestringslugstringcolorstringsortOrdernumbercategoryIdstringdescriptionstringdeleteImprovementCategoryDelete an improvement category. Cannot delete system categories.1 paramsDelete an improvement category. Cannot delete system categories.
categoryIdstringreorderImprovementCategoriesReorder improvement categories by setting sort_order values.1 paramsReorder improvement categories by setting sort_order values.
itemsarrayaddImprovementEvidenceAdd evidence to an improvement. Types: document_section, diagram_node, incident_note, feedback, free_text.7 paramsAdd evidence to an improvement. Types: document_section, diagram_node, incident_note, feedback, free_text.
refIdstringrefUrlstringsummarystringpositionnumberrawContentstringevidenceTypestringimprovementIdstringaddImprovementActivityAdd a comment or activity entry to an improvement.7 paramsAdd a comment or activity entry to an improvement.
commentstringmetadataobjectnewValuestringoldValuestringfieldNamestringactivityTypestringimprovementIdstringupdateImprovementCommentUpdate a comment on an improvement. Requires the comment's updated_at as versionTimestamp.3 paramsUpdate a comment on an improvement. Requires the comment's updated_at as versionTimestamp.
commentstringactivityIdstringversionTimestampnumberdeleteImprovementCommentDelete a comment from an improvement.1 paramsDelete a comment from an improvement.
activityIdstringsearchImprovementsSearch improvements using hybrid text + semantic search. Returns ranked results.4 paramsSearch improvements using hybrid text + semantic search. Returns ranked results.
limitnumberquerystringprojectIdstringworkspaceIdstringlistPlansList plans in a project. Supports filtering by status, priority, and query.9 paramsList plans in a project. Supports filtering by status, priority, and query.
limitnumberquerystringfieldsarrayoffsetnumberstatusstringprioritystringprojectIdstringsortFieldstringsortAscendingbooleangetPlanGet full plan details including phases, items, and activity. Returns versionTimestamp — pass it to updatePlan for optimistic locking. Items include percent_complete for progress tracking.1 paramsGet full plan details including phases, items, and activity. Returns versionTimestamp — pass it to updatePlan for optimistic locking. Items include percent_complete for progress tracking.
planIdstringcreatePlanCreate a plan in a project. Requires projectId and title.11 paramsCreate a plan in a project. Requires projectId and title.
iconstringcolorstringtitlestringstatusstringend_datestringprioritystringprojectIdstringstart_datestringdescriptionstringlinked_documentsarraylinked_document_idsarrayupdatePlanUpdate a plan. Requires versionTimestamp from getPlan.13 paramsUpdate a plan. Requires versionTimestamp from getPlan.
iconstringcolorstringtitlestringplanIdstringstatusstringend_datestringmetadataobjectprioritystringstart_datestringdescriptionstringlinked_documentsarrayversionTimestampnumberlinked_document_idsarraydeletePlanDelete a plan, all its phases, and all tasks/improvements within it. This is a destructive operation that cannot be undone.1 paramsDelete a plan, all its phases, and all tasks/improvements within it. This is a destructive operation that cannot be undone.
planIdstringlistPlanPhasesList phases for a plan ordered by position.1 paramsList phases for a plan ordered by position.
planIdstringgetPlanPhaseGet a plan phase by ID with full details. Returns versionTimestamp — pass it to updatePlanPhase for optimistic locking.1 paramsGet a plan phase by ID with full details. Returns versionTimestamp — pass it to updatePlanPhase for optimistic locking.
phaseIdstringcreatePlanPhaseCreate a phase in a plan. Position and wbs_code are auto-computed.10 paramsCreate a phase in a plan. Position and wbs_code are auto-computed.
namestringcolorstring#3b82f6 · #f59e0b · #8b5cf6 · #ec4899 · #06b6d4 · #14b8a6planIdstringstatusstringend_datestringpositionnumberprioritystringwbs_codestringstart_datestringdescriptionstringupdatePlanPhaseUpdate a plan phase. Requires versionTimestamp from getPlanPhase (not getPlan).11 paramsUpdate a plan phase. Requires versionTimestamp from getPlanPhase (not getPlan).
namestringcolorstring#3b82f6 · #f59e0b · #8b5cf6 · #ec4899 · #06b6d4 · #14b8a6statusstringphaseIdstringend_datestringpositionnumberprioritystringwbs_codestringstart_datestringdescriptionstringversionTimestampnumberdeletePlanPhaseDelete a plan phase and all tasks/improvements within it. This is a destructive operation that cannot be undone.1 paramsDelete a plan phase and all tasks/improvements within it. This is a destructive operation that cannot be undone.
phaseIdstringreorderPlanPhasesReorder plan phases by setting position values. WBS codes are recalculated.1 paramsReorder plan phases by setting position values. WBS codes are recalculated.
itemsarrayaddPlanActivityAdd a comment or activity entry to a plan.7 paramsAdd a comment or activity entry to a plan.
planIdstringcommentstringmetadataobjectnewValuestringoldValuestringfieldNamestringactivityTypestringupdatePlanCommentUpdate a comment on a plan. Requires the comment's updated_at as versionTimestamp.3 paramsUpdate a comment on a plan. Requires the comment's updated_at as versionTimestamp.
commentstringactivityIdstringversionTimestampnumberdeletePlanCommentDelete a comment from a plan.1 paramsDelete a comment from a plan.
activityIdstringcreateTaskCreate a task in a plan. Requires planId and title.17 paramsCreate a task in a plan. Requires planId and title.
typestringtitlestringplanIdstringstatusstringphaseIdstringend_datestringowner_idstringpositionnumberprioritystringwbs_codestringchecklistarraystart_datestringdescriptionstringtarget_datestringowner_team_idstringpercent_completenumberacceptance_criteriaarraylistTasksList tasks in a plan. Supports filtering by status, priority, phaseId, and query.9 paramsList tasks in a plan. Supports filtering by status, priority, phaseId, and query.
limitnumberquerystringoffsetnumberplanIdstringstatusstringphaseIdstringprioritystringsortFieldstringsortAscendingbooleangetTaskGet 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 updateTask to modify. Includes percent_complete for progress tracking.1 paramsGet 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 updateTask to modify. Includes percent_complete for progress tracking.
taskIdstringupdateTaskUpdate 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 `checklist`, `acceptance_criteria`, status transitions (blocked/rejected/done...48 paramsUpdate 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 `checklist`, `acceptance_criteria`, status transitions (blocked/rejected/done...
typestringtitlestringstatusstringtaskIdstringplan_idstringurgencystringwhy_nowstringend_datestringmetadataobjectowner_idstringphase_idstringpositionnumberprioritystringwbs_codestringchecklistarraynon_goalsarraystart_datestringagent_briefstringagent_readybooleanconstraintsarraydescriptionstringtarget_datestringuser_impactstringdocs_updatedbooleanowner_team_idstringrelationshipsobjectblocked_commentstringbusiness_impactstringdesired_outcomestringagent_complexitystringagent_confidencenumberfollow_up_neededbooleanpercent_completenumberreopened_commentstringversionTimestampnumberimpacted_diagramsarrayproblem_statementstringrejection_commentstringresolution_pr_urlstringagent_missing_infoarraycompletion_commentstringimpacted_documentsarrayresolution_summarystringacceptance_criteriaarrayimpacted_componentsarraylinked_document_idsarrayimpacted_repositoriesarrayagent_recommended_actionstringgetPlanHierarchyGet the complete plan hierarchy (phases, tasks, improvements) in one call. Recommended first call for plan navigation.1 paramsGet the complete plan hierarchy (phases, tasks, improvements) in one call. Recommended first call for plan navigation.
planIdstringsetPlanItemParentSet or clear the WBS parent-child nesting of a task/improvement (outline hierarchy, no scheduling effect). Same plan and phase required. Max depth: 5.2 paramsSet or clear the WBS parent-child nesting of a task/improvement (outline hierarchy, no scheduling effect). Same plan and phase required. Max depth: 5.
itemIdstringparentIdstringlistTaskDependenciesList 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).4 paramsList 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).
itemIdstringplanIdstringdirectionstringpredecessors · successors · bothprojectIdstringcreateTaskDependencyCreate 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 self-loops, duplicate (pred+succ+type)...4 paramsCreate 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 self-loops, duplicate (pred+succ+type)...
lagDaysintegersuccessorIdstringpredecessorIdstringdependencyTypestringFS · SS · FFupdateTaskDependencyChange 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_end_date` if the change implies a different schedule.3 paramsChange 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_end_date` if the change implies a different schedule.
lagDaysintegerdependencyIdstringdependencyTypestringFS · SS · FFdeleteTaskDependencyRemove a task-dependency edge. Neither item's dates are changed.1 paramsRemove a task-dependency edge. Neither item's dates are changed.
dependencyIdstringacceptTaskDependencyReviewPer-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`.1 paramsPer-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`.
improvementIdstringdismissTaskDependencyReviewPer-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.1 paramsPer-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.
improvementIdstring
The simplest, most complete, end-to-end agent-managed company brain.
Website · Sign up free · Docs · Tool catalogue · llms.txt
Pick the surface that matches how you work — every option talks to the same handlers, the same auth, the same data:
| Surface | What it's for | Install |
|---|---|---|
| MCP server | AI agents (Claude Code, Cursor, Windsurf, ChatGPT, Gemini, Smithery, …). Native protocol with prompts and resources. | Endpoint: api.stablebaseline.io/functions/v1/cloud-serve/mcp. See Quick start below. |
| REST API | Any HTTP client, Postman, OpenAPI codegen, Zapier-style integrators. Tool-RPC + idiomatic resource routes. | Live spec: /api/v1/openapi.json · Interactive docs: /api/v1/docs |
| TypeScript SDK | Node, browsers, Deno, Bun. Typed client.tools.<toolName>(...) surface. | npm i @stablebaseline/sdk — see packages/sdk-typescript |
CLI (sb) | Shells, scripts, CI/CD. sb tool call <name> --json '{...}'. | npm i -g @stablebaseline/cli — see packages/cli |
| Python SDK | Python apps, data work. Sync + async clients. | pip install stablebaseline — see packages/sdk-python |
184 tools across 19 categories. Same brain, same Knowledge Graph, same RBAC — every surface.
One workspace where humans and any MCP-compatible AI agent — Claude Code, Cursor, Windsurf, VS Code, Warp, OpenCode, Antigravity, OpenAI Codex, ChatGPT Developer Mode, Gemini CLI/Extensions, and more — co-author living documents (Markdown-native with a rich superset on top), 40+ visual diagrams (Mermaid, BPMN 2.0, D2, PlantUML, GraphViz, ELK architecture, sequence, state, ERD, Gantt, Excalidraw freehand), plans, timelines, tasks, improvements, and a self-learning Knowledge Graph that IS the company brain.
Lean, fast, secure, and affordable — flexible enough for one person organising a personal mind, through to small businesses, growing businesses, and enterprise.
184 MCP tools across 19 categories let an agent drive end-to-end: sign-up → billing → org/workspace/project → members → teams → permissions → brain scope → docs → diagrams → plans, all without a human touching the UI.
https://api.stablebaseline.io/functions/v1/cloud-serve/mcp
Transport: Streamable HTTP (with SSE fallback)
Auth: OAuth 2.1 with Dynamic Client Registration, or Bearer API key (sta_*)
Discovery manifest: https://stablebaseline.io/.well-known/mcp.json
sta_... key(Or skip this — every client below also supports interactive OAuth on first call.)
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"stable-baseline": {
"url": "https://api.stablebaseline.io/functions/v1/cloud-serve/mcp",
"headers": {
"Authorization": "Bearer sta_YOUR_KEY"
}
}
}
}
Or use the Claude Desktop OAuth flow — set just url and Claude will prompt you to authorize on first call.
claude mcp add --transport http stable-baseline \
https://api.stablebaseline.io/functions/v1/cloud-serve/mcp \
--header "Authorization: Bearer sta_YOUR_KEY"
Or via OAuth:
claude mcp add --transport http stable-baseline \
https://api.stablebaseline.io/functions/v1/cloud-serve/mcp
~/.cursor/mcp.json:
{
"mcpServers": {
"stable-baseline": {
"url": "https://api.stablebaseline.io/functions/v1/cloud-serve/mcp",
"headers": { "Authorization": "Bearer sta_YOUR_KEY" }
}
}
}
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"stable-baseline": {
"serverUrl": "https://api.stablebaseline.io/functions/v1/cloud-serve/mcp",
"headers": { "Authorization": "Bearer sta_YOUR_KEY" }
}
}
}
.vscode/mcp.json (workspace) or user settings:
{
"servers": {
"stable-baseline": {
"type": "http",
"url": "https://api.stablebaseline.io/functions/v1/cloud-serve/mcp",
"headers": { "Authorization": "Bearer ${input:sta_key}" }
}
}
}
Recipes for Warp, OpenCode, Antigravity, OpenAI Codex, ChatGPT Developer Mode, Gemini CLI/Extensions, and a generic recipe are at stablebaseline.io/docs/mcp/setup.
| Category | Sample tools | Docs |
|---|---|---|
| navigation | listOrganisations, getProjectHierarchy, searchTools | → |
| folders | createFolder, listFolders, setPlanItemParent | → |
| documents | createDocument, editDocument, findAndReplaceTextInDocument | → |
| diagrams | insertDiagramInDocument, listDiagramTypes, getCdmdLanguageGuide | → |
| images | createImageUploadSession, insertImageInDocument | → |
| data | createVegaDataUploadSession (CSV/JSON/TSV → Vega charts) | → |
| improvements | createImprovement, searchImprovements, addImprovementEvidence | → |
| plans | createPlan, createPlanPhase, previewTaskDependencyCascade | → |
| knowledge_graph | kg_search, kg_get_entity, kg_related_documents | → |
| organization | createOrganisation, createWorkspace, createProject | → |
| members | inviteMember, updateMemberRole, setMemberActive | → |
| teams | createTeam, grantTeamWorkspaceAccess | → |
| permissions | upsertResourcePermission, setResourcePermissionOverride | → |
| billing | previewSubscriptionChange, applySubscriptionChange, purchaseCreditPackage | → |
| kg_admin | setKgWorkspaceScope, triggerKgRebuild, previewKgRebuild | → |
| settings | getOrgSettings, updateOrgFeatureFlags, updateUserPreferences | → |
Full live catalogue: stablebaseline.io/docs/mcp/tools
previewX → confirm token → applyX.| Method | When to use |
|---|---|
| OAuth 2.1 + Dynamic Client Registration | Default for desktop apps and IDE extensions. Smithery handles it automatically. |
Bearer API key (sta_...) | CI/CD, headless agents, server-to-server. Mint at app.stablebaseline.io/settings/mcp-keys. Project-scoped or global. |
OAuth endpoints:
authorize: https://app.stablebaseline.io/oauth/authorizetoken: https://api.stablebaseline.io/oauth/tokenregister (DCR): https://api.stablebaseline.io/oauth/registerorg_admin, org_billing, org_members, org_teams, org_permissions, org_settings, kg_admin, lifecycle| Surface | URL |
|---|---|
.well-known/mcp.json (manifest) | https://stablebaseline.io/.well-known/mcp.json |
| Official MCP Registry | https://registry.modelcontextprotocol.io/v0/servers?search=io.stablebaseline |
| Smithery | https://smithery.ai/servers/stablebaseline/sb-mcp |
llms.txt | https://stablebaseline.io/llms.txt |
robots.txt | https://stablebaseline.io/robots.txt |
sitemap.xml | https://stablebaseline.io/sitemap.xml |
security.txt | https://stablebaseline.io/.well-known/security.txt |
io.stablebaseline/sb — active, isLatest. Listed.configSchema (Quick Setup). 184 tools / 8 prompts / 6 resources discovered..well-known/mcp.json: live, schema 2024-11-05.api.stablebaseline.io/functions/v1/cloud-serve/mcp — accepts POST with mcp-protocol-version: 2025-03-26..well-known/security.txt — RFC 9116 contact.This repository (README, llms-install.md, brand assets, and any documentation) is licensed under the MIT License — see LICENSE. You can copy, fork, and adapt these docs freely.
The Stable Baseline product itself — the SaaS application, the MCP server implementation, and the company brain Knowledge Graph — is proprietary, closed-source, and provided as a service at https://stablebaseline.io under the Stable Baseline Terms of Service.
Built by Orixian Solutions Pty Ltd, Sydney, Australia.
explorium-ai/vibeprospecting-mcp
io.github.compuute/lead-enrichment
dev.workers.selbyventurecap.cf-worker/apollo-salesforce-mapper
io.github.br0ski777/company-enrichment
com.mcparmory/apollo
mambalabsdev/mcp-gtm-tech-stack-signal-scraper