# Stable Baseline

**The simplest, most complete, end-to-end agent-managed company brain.**

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y smithery mcp add stablebaseline/sb-mcp

# Browse available tools
npx -y smithery tool list stablebaseline/sb-mcp

# Get full schema for a tool
npx -y smithery tool get stablebaseline/sb-mcp searchTools

# Call a tool
npx -y smithery tool call stablebaseline/sb-mcp searchTools '{}'
```

## Direct MCP Connection

Endpoint: `https://sb-mcp--stablebaseline.run.tools`

**Optional config:**
- `x-api-key` (header) — Optional Stable Baseline MCP API key. Starts with 'sta_'. Mint a key at https://app.stablebaseline.io/settings/mcp-keys. Leave empty to use OAuth — Smithery will guide you through the OAuth 2.1 flow when you first call a tool.

## Tools (163)

- `searchTools` — Search available tools by keyword or category. Returns matching tool names and descriptions.
- `listDiagramTypes` — List supported diagram types. Use the returned `type` field when calling insertDiagramInDocument.
- `getDiagramTypeGuide` — Get DSL writing instructions for a diagram type. Call before writing diagramCode.
- `listArchitectureIcons` — List icons for systemsarchitecture diagrams. Use returned iconPath as-is in D2 code (e.g. icon: dev/docker.svg).
- `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 '…
- `listAssignablePrincipals` — Server-side searchable, paginated list of USERS and TEAMS that can be assigned as the owner of an improvement/task in a…
- `listTeams` — List teams in an organization, with optional search filter and an `includeMembers` flag that fans out to v_team_members…
- `getTeam` — Get a single team by ID with profile-enriched member list (display_name, email, avatar_url, role, joined_at). Set `incl…
- `listOrganisations` — List organisations you have access to. Supports query filtering by name/slug.
- `listWorkspaces` — List workspaces you have access to. 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/move/reorder). Supports nesting changes via parentId.
- `deleteFolder` — Delete a folder recursively, including all nested folders and documents.
- `listDocuments` — List documents in a project, workspace, or folder. Supports query search and date filtering.
- `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 starting from a specific folder. Alias for getProjectHierarchy with folderId.
- `getDocument` — Read a document's content with line numbers. Returns numbered lines for use with editDocument. Diagrams/images appear a…
- `createDocument` — Create a document from CDMD markdown. Call getCdmdLanguageGuide first if unfamiliar with syntax. Do not include DIAGRAM…
- `editDocument` — Edit a document with line-based patches. Call getDocument first for line numbers and versionTimestamp. Call getCdmdLang…
- `findAndReplaceTextInDocument` — Find and replace text in a document. Searches for all occurrences and replaces them. Case-sensitive by default. Diagram…
- `getDiagramInDocument` — Get a diagram's full details including raw DSL source code. Use diagramId from DIAGRAM_OMITTED markers in getDocument o…
- `insertDiagramInDocument` — Insert a new diagram into a document. Call listDiagramTypes to find your type, then getDiagramTypeGuide for DSL syntax …
- `updateDiagramInDocument` — Update a diagram's code, description, or properties. Call getDiagramTypeGuide for DSL syntax. Requires documentVersionT…
- `deleteDiagramInDocument` — Delete a diagram from a document.
- `deleteDocument` — Delete a document.
- `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 ge…
- `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 create…
- `updateImageInDocument` — Update image metadata (alt, caption, dimensions, alignment). Requires documentVersionTimestamp from getDocument for opt…
- `deleteImageInDocument` — Delete an image from a document and storage.
- `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 15…
- `createDocumentFromUpload` — Step 2 of file ingest. After the file is uploaded via the PUT URL from createDocumentIngestSession, call this to start …
- `getDocumentIngestJob` — Read the current status of an ingest job. Returns { status, stage, processedImages, totalImages, documentId, error?, la…
- `listImprovements` — List improvements in a project. Supports filtering by status, type, priority, and query.
- `getImprovement` — Get full details for an improvement item including evidence, activity log, compliance context, and the `checklist` arra…
- `createImprovement` — Create an improvement item in a project. Requires projectId and title. Auto-assigns friendly ID.
- `updateImprovement` — Update an improvement (or a task — tasks share this row, but prefer the symmetric updateTask alias when working from ge…
- `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` — Search improvements using hybrid text + semantic search. Returns ranked results.
- `listPlans` — List plans in a project. Supports filtering by status, priority, and query.
- `getPlan` — Get full plan details including phases, items, and activity. Returns versionTimestamp — pass it to updatePlan for optim…
- `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 und…
- `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.

---
*Response truncated. Use `npx -y smithery` for complete data.*
