Stable Baseline
Description
Stable Baseline is a documentation platform with 60+ MCP tools for creating and maintaining structured documents, 40+ diagram types (Mermaid, BPMN, D2, PlantUML, Vega and more), project plans with tasks and phases, and improvement tracking. Connect your AI agent to create, edit, and search documentation, insert interactive diagrams, manage project plans, and track improvements — all through a single MCP server. Documents use the CDMD format with version history, folder organization, and semantic search.
Capabilities
Publisher Intelligence
Insights and recommendations for app publishers. See how your app performs and how to improve discoverability.
Server Status sb v0.4.0
https://api.stablebaseline.io/functions/v1/cloud-serve/mcp Last checked: 6h ago
Technical Details
Tools(165)
Showing 165 of 165 tools
| Tool | Description | Flags | Test | Last Tested | |
|---|---|---|---|---|---|
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`. | — | 0%Latency 3.5s | 1d ago | |
addImprovementActivity | Add a comment or activity entry to an improvement. | — | 0%Latency 3.0s | 1d ago | |
addImprovementEvidence | Add evidence to an improvement. Types: document_section, diagram_node, incident_note, feedback, free_text. | — | 0%Latency 2.3s | 1d ago | |
addPlanActivity | Add a comment or activity entry to a plan. | — | 0%Latency 2.3s | 1d ago | |
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. | — | 0%Latency 2.6s | 1d ago | |
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. | — | 0%Latency 2.4s | 1d ago | |
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. | destructive | 0%Latency 2.6s | 1d ago | |
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). Rate limit 5/h. Use only AFTER previewSubscriptionChange and after the user confirms the preview's pricing — never call apply without the user seeing the preview first. | destructive | 0%Latency 2.4s | 1d ago | |
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 items currently in violation (never pull already-valid items earlier). Use `pinnedItemIds` to keep specific items at their current dates. Pairs with `previewTaskDependencyCascade` (same inputs, dry-run). | — | 0%Latency 2.3s | 1d ago | |
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). Rate limit 5/min. | destructive | 0%Latency 2.3s | 1d ago | |
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 cancel, revoke, or undo a pending invitation — for example to correct a typo'd email address before re-inviting. | — | 0%Latency 2.4s | 1d ago | |
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. | — | 0%Latency 2.4s | 1d ago | |
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 preview first. | destructive | 0%Latency 2.3s | 1d ago | |
createDocument | Create a document from CDMD markdown. Call getCdmdLanguageGuide first if unfamiliar with syntax. Do not include DIAGRAM/IMAGE markers — insert them after with dedicated tools. Supports @-mentioning people: embed `<!-- REFERENCE: {"type":"user","id":"<user_uuid>","label":"Name"} -->` to notify a teammate. Use listAssignablePrincipals to look up the user_id from a name; mentions of users outside the project are silently dropped. | — | 0%Latency 2.4s | 1d ago | |
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 populated as the worker processes the file. Poll getDocumentIngestJob({ jobId }) to track progress. Idempotent: calling twice with the same sessionId returns the same job/document. | — | 0%Latency 2.4s | 1d ago | |
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 createDocumentFromUpload({ sessionId, projectId }) to start the conversion. The file is auto-deleted once the document is created. | — | 0%Latency 2.4s | 1d ago | |
createFolder | Create a folder in a project. Supports nesting via parentId. | — | 0%Latency 2.5s | 1d ago | |
createImageUploadSession | Create a PUT upload URL for a document image (max 10MB). Use the returned assetUrl with insertImageInDocument. | — | 0%Latency 2.3s | 1d ago | |
createImprovement | Create an improvement item in a project. Requires projectId and title. Auto-assigns friendly ID. | — | 0%Latency 2.3s | 1d ago | |
createImprovementCategory | Create an improvement category or sub-category. Max two levels. | — | 0%Latency 2.3s | 1d ago | |
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 org is OUTSIDE the credential's current scope (credentials are bound to one org); to use the new org from MCP, mint a fresh credential. | — | 0%Latency 2.3s | 1d ago | |
createPlan | Create a plan in a project. Requires projectId and title. | — | 0%Latency 2.2s | 1d ago | |
createPlanPhase | Create a phase in a plan. Position and wbs_code are auto-computed. | — | 0%Latency 2.3s | 1d ago | |
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 '📁' if omitted. Server-side limit gate via `can_create_project_in_workspace`. Rate limit 30/min. | — | 0%Latency 2.3s | 1d ago | |
createTask | Create a task in a plan. Requires planId and title. | — | 0%Latency 2.3s | 1d ago | |
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 self-loops, duplicate (pred+succ+type) edges, cross-plan edges, and cycles. | — | 0%Latency 2.2s | 1d ago | |
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. | — | 0%Latency 2.4s | 1d ago | |
createVegaDataUploadSession | Create a PUT upload URL for a Vega/Vega-Lite data file. Use returned assetUrl in your Vega spec. | — | 0%Latency 2.4s | 1d ago | |
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_LIMIT_REACHED errors. | — | 0%Latency 2.3s | 1d ago | |
deleteDiagramInDocument | Delete a diagram from a document. | destructive | 0%Latency 2.1s | 1d ago | |
deleteDocument | Delete a document. | destructive | 0%Latency 2.3s | 1d ago | |
deleteFolder | Delete a folder recursively, including all nested folders and documents. | destructive | 0%Latency 2.4s | 1d ago | |
deleteImageInDocument | Delete an image from a document and storage. | destructive | 0%Latency 2.5s | 1d ago | |
deleteImprovement | Delete an improvement and all associated evidence and activity. | destructive | 0%Latency 2.3s | 1d ago | |
deleteImprovementCategory | Delete an improvement category. Cannot delete system categories. | destructive | 0%Latency 2.3s | 1d ago | |
deleteImprovementComment | Delete a comment from an improvement. | destructive | 0%Latency 2.3s | 1d ago | |
deletePlan | Delete a plan, all its phases, and all tasks/improvements within it. This is a destructive operation that cannot be undone. | destructive | 0%Latency 2.2s | 1d ago | |
deletePlanComment | Delete a comment from a plan. | destructive | 0%Latency 2.3s | 1d ago | |
deletePlanPhase | Delete a plan phase and all tasks/improvements within it. This is a destructive operation that cannot be undone. | destructive | 0%Latency 2.2s | 1d ago | |
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 delete a permission grant on a specific resource. | destructive | 0%Latency 2.4s | 1d ago | |
deleteTaskDependency | Remove a task-dependency edge. Neither item's dates are changed. | destructive | 0%Latency 2.1s | 1d ago | |
deleteTeam | Delete a team. Cascades: team members and team-granted resource permissions are removed automatically. Destructive; rate limit 5/min. | destructive | 0%Latency 2.3s | 1d ago | |
deleteVegaDataFile | Delete a data file attachment from a document. | destructive | 0%Latency 2.3s | 1d ago | |
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. | — | 0%Latency 2.2s | 1d ago | |
editDocument | Edit 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. To @-mention a person in your patch, insert `<!-- REFERENCE: {"type":"user","id":"<user_uuid>","label":"Name"} -->`; look up the user_id via listAssignablePrincipals. Mentioned users are notified automatically. | — | 0%Latency 2.3s | 1d ago | |
findAndReplaceTextInDocument | Find 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. Note: when the `replace` value contains a `<!-- REFERENCE: {...} -->` marker (e.g. inserting a user mention), it round-trips losslessly through the editor and triggers notifications if it adds a new user mention. | — | 0%Latency 2.3s | 1d ago | |
getCdmdLanguageGuide | Get the CDMD markdown language specification. Call before createDocument if unfamiliar with syntax. | read-only | 0%Latency 2.3s | 1d ago | |
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). | read-only | 0%Latency 2.3s | 1d ago | |
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 start a checkout. | read-only | 0%Latency 2.2s | 1d ago | |
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 by the underlying view. Read-only. | read-only | 0%Latency 2.4s | 1d ago | |
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. | read-only | 0%Latency 2.2s | 1d ago | |
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. | read-only | 0%Latency 2.4s | 1d ago | |
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, and versionTimestamp. | read-only | 0%Latency 2.2s | 1d ago | |
getDiagramTypeGuide | Get DSL writing instructions for a diagram type. Call before writing diagramCode. | read-only | 0%Latency 2.3s | 1d ago | |
getDocument | Read 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 manage them. | read-only | 0%Latency 2.3s | 1d ago | |
getDocumentIngestJob | Read 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, failed, cancelled. The associated document_id is populated immediately and progressively filled in as images are processed. | read-only | 0%Latency 2.1s | 1d ago | |
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 the org. Use when the user asks 'can X access this', 'what level of access does X have', 'why can X see this', or to debug an unexpected permission outcome. | read-only | 0%Latency 2.1s | 1d ago | |
getFolderHierarchy | Get the folder and document tree starting from a specific folder. Alias for getProjectHierarchy with folderId. | read-only | 0%Latency 2.2s | 1d ago | |
getImageInDocument | Get image details including a fresh signed URL (expires after 1 hour). Use storagePath from IMAGE_OMITTED markers in getDocument output. | read-only | 0%Latency 2.3s | 1d ago | |
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). Returns versionTimestamp — pass it to updateImprovement for optimistic locking. (For tasks specifically, use getTask + updateTask which are symmetric aliases.) | read-only | 0%Latency 2.4s | 1d ago | |
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 with scope_name + parent_id for tree rendering. Capped at 500 rows. | read-only | 0%Latency 2.1s | 1d ago | |
getMember | Fetch a single organisation member by user_id, enriched with profile (email + display name). Auth: org id must match the credential's organisation. | read-only | 0%Latency 2.1s | 1d ago | |
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 calling credential's organisation. Read-only. | read-only | 0%Latency 2.2s | 1d ago | |
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 credential's organisation. Read-only. | read-only | 0%Latency 2.2s | 1d ago | |
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. | read-only | 0%Latency 2.1s | 1d ago | |
getPlanHierarchy | Get the complete plan hierarchy (phases, tasks, improvements) in one call. Recommended first call for plan navigation. | read-only | 0%Latency 2.3s | 1d ago | |
getPlanPhase | Get a plan phase by ID with full details. Returns versionTimestamp — pass it to updatePlanPhase for optimistic locking. | read-only | 0%Latency 2.1s | 1d ago | |
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 callers. | read-only | 0%Latency 2.3s | 1d ago | |
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. | read-only | 0%Latency 2.3s | 1d ago | |
getProjectHierarchy | Get the complete folder and document tree for a project in one call. Recommended first call for navigation. | read-only | 0%Latency 2.4s | 1d ago | |
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 listPaymentMethods/listInvoices for the full billing dashboard. Use when the user asks 'what plan am I on', 'how many seats do I have', 'when does my subscription renew', or to check current billing status. | read-only | 0%Latency 2.2s | 1d ago | |
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 updateTask to modify. Includes percent_complete for progress tracking. | read-only | 0%Latency 2.6s | 1d ago | |
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. | read-only | 0%Latency 2.2s | 1d ago | |
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-grid view rows. Read-only. | read-only | 0%Latency 2.2s | 1d ago | |
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. | read-only | 0%Latency 2.3s | 1d ago | |
grantTeamWorkspaceAccess | Grant a team read/write/admin access to a workspace. Idempotent. Team and workspace must be in the same organisation. | — | 0%Latency 2.2s | 1d ago | |
insertDiagramInDocument | Insert a new diagram into a document. Call listDiagramTypes to find your type, then getDiagramTypeGuide for DSL syntax before writing diagramCode. | — | 0%Latency 2.4s | 1d ago | |
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. | — | 0%Latency 2.3s | 1d ago | |
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 seat-billing-impact summary. Email-existence is opaque: the response shape never reveals whether the email is already a member, already invited, or new. Use when the user asks to invite a teammate, friend, colleague, or new user to their organisation, or to onboard someone. | — | 0%Latency 2.1s | 1d ago | |
kg_backlinks | Linked-mentions rail: every edge whose dst matches the named entity. | — | 0%Latency 2.2s | 1d ago | |
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 distribution, dominant_bucket, and recommend_refusal. Pure metadata read - no LLM cost. Used by the agent's response policy to decide whether to answer confidently, caveat, or refuse. | — | 0%Latency 2.1s | 1d ago | |
kg_get_entity | Fetch a KG entity by id or name, with 1-hop neighbours. | — | 0%Latency 2.1s | 1d ago | |
kg_get_wiki_page | Fetch a community wiki page (LLM-curated CDMD). | — | 0%Latency 2.4s | 1d ago | |
kg_list_communities | List Louvain communities for an org (optionally scoped by project). | — | 0%Latency 2.2s | 1d ago | |
kg_related_documents | Find other sources that share entities with the given source. | — | 0%Latency 2.2s | 1d ago | |
kg_scope_status | Check whether Knowledge Graph is in-scope for a given target. | — | 0%Latency 2.1s | 1d ago | |
kg_search | Unified Knowledge Graph retrieval. PICK THE MODE THAT FITS THE QUERY: • mode='local' (default) — for SPECIFIC factual questions ("what does §15 say about deposits?", "who is the Chief Counsel?"). FTS+vector RRF over individual document chunks. Returns precise excerpts with citations. • mode='global' — for THEMATIC / OVERVIEW / SUMMARY questions ("what are the main themes", "give me an overview of the project", "what topics does this cover"). Returns Louvain community summaries + curated wiki pages — far better than 'local' for big-picture queries because community summaries already aggregate across many chunks. ALWAYS PREFER over 'local' when the user asks for themes / summary / overview / topic landscape. • mode='graph' — for RELATIONSHIP questions ("what's connected to entity X?", "who cites Section 5?"). 1-hop entity-neighbourhood walk. Pass query OR srcEntityId. • mode='path' — for CONNECTION questions ("how does X relate to Y?"). Shortest path between two entities. Pass srcEntityId AND dstEntityId. • mode='ppr' — for MULTI-HOP discovery ("what's relevant to X, even indirectly?"). Personalised PageRank over AUTHORED-vs-EXTRACTED weighted edges, seeded by query-similar entities. Best when 'local' returns too few results and the answer requires walking through several entity hops. Quick decision tree: - User asks for an overview/summary/themes → 'global' - User asks a specific question with a clear answer → 'local' - User asks 'how is X connected to Y' → 'path' (with both entity IDs) - User asks 'what's near entity X' → 'graph' (with srcEntityId) - 'local' returned nothing useful and the question is broad → retry with 'ppr' | — | 0%Latency 2.0s | 1d ago | |
kg_suggest_sample_questions | 3 template + 3 LLM-generated sample questions for the knowledge-graph playground. | — | 0%Latency 2.3s | 1d ago | |
listArchitectureIcons | List icons for systemsarchitecture diagrams. Use returned iconPath as-is in D2 code (e.g. icon: dev/docker.svg). | read-only | 0%Latency 2.2s | 1d ago | |
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 @-mentioning them in a document. Returns two arrays — `users` (with user_id, display_name, email, avatar_url, has_explicit_permission) and `teams` (with team_id, name, member_count, has_explicit_permission). Sources: project-level grants + workspace members + organization members + members of teams granted access. Use BEFORE: (1) updateImprovement/updateTask when you need an `owner_id` (kind='user') or `owner_team_id` (kind='team'); (2) inserting a `<!-- REFERENCE: {"type":"user","id":"…","label":"…"} -->` mention in document content via createDocument / editDocument / findAndReplaceTextInDocument. Supports `q` for ILIKE search on names/emails (users) or team names. Pass `kind='user'` or `kind='team'` to scope to a single section, or 'all' (default) for both. Pagination via limit (1-100, default 20) + offset. | read-only | 0%Latency 2.1s | 1d ago | |
listCreditPurchases | List credit-purchase history for an organisation, newest first. Status, credits purchased, bonus, amount paid in AUD cents, completion timestamp. Stripe IDs stripped. | read-only | 0%Latency 2.2s | 1d ago | |
listDiagramTypes | List supported diagram types. Use the returned `type` field when calling insertDiagramInDocument. | read-only | 0%Latency 2.3s | 1d ago | |
listDocuments | List documents in a project, workspace, or folder. Supports query search and date filtering. | read-only | 0%Latency 2.2s | 1d ago | |
listDocumentVersions | List version history for a document. Returns timestamps, creator, change summary, and content. | read-only | 0%Latency 2.1s | 1d ago | |
listFolders | List folders in a project. Use parentId for nested folders. For full tree, use getProjectHierarchy instead. | read-only | 0%Latency 2.3s | 1d ago | |
listImprovementCategories | List improvement categories for a project. Returns tree and flat list. | read-only | 0%Latency 2.3s | 1d ago | |
listImprovements | List improvements in a project. Supports filtering by status, type, priority, and query. | read-only | 0%Latency 2.2s | 1d ago | |
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 filtering. | read-only | 0%Latency 2.4s | 1d ago | |
listInvoices | List invoices for an organisation, newest first. Returns hosted Stripe invoice URLs and PDF links. Stripe IDs are stripped. | read-only | 0%Latency 2.0s | 1d ago | |
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. | read-only | 0%Latency 2.3s | 1d ago | |
listOrganisations | List organisations you have access to. Supports query filtering by name/slug. | read-only | 0%Latency 2.3s | 1d ago | |
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. | read-only | 0%Latency 2.1s | 1d ago | |
listPlanPhases | List phases for a plan ordered by position. | read-only | 0%Latency 2.2s | 1d ago | |
listPlans | List plans in a project. Supports filtering by status, priority, and query. | read-only | 0%Latency 2.3s | 1d ago | |
listProjects | List projects in a workspace. Supports query filtering by project name. | read-only | 0%Latency 2.1s | 1d ago | |
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 documents/improvements/plans. Read-only. Use when the user asks 'who can see this', 'who has access', 'what permissions are set on this', or to audit existing access on a resource. | read-only | 0%Latency 2.4s | 1d ago | |
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). | read-only | 0%Latency 2.2s | 1d ago | |
listTasks | List tasks in a plan. Supports filtering by status, priority, phaseId, and query. | read-only | 0%Latency 2.3s | 1d ago | |
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 workspace's parent org is resolved automatically). Use this when the user asks about teams generically (e.g. 'show me my teams') or before assigning a team via updateImprovement(owner_team_id=…). Read-only. | read-only | 0%Latency 2.3s | 1d ago | |
listWorkspaces | List workspaces you have access to. Supports query filtering by name/slug. | read-only | 0%Latency 2.2s | 1d ago | |
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_key`, `organization_id`, `user_id`, `user_email`; the api_key is returned ONCE), `consumed` (already returned the api_key on a previous poll — stop polling), `denied` (user clicked Deny), `expired` (10-minute TTL exceeded — call startSignup again), `not_found` (invalid device_code), `slow_down` (you're polling faster than the interval — back off). | — | 100%Latency 4.2s | May 11, 2026 | |
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. | read-only | 0%Latency 2.2s | 1d ago | |
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 20/h. | read-only | 0%Latency 2.1s | 1d ago | |
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. Use when the user asks to cancel, end, or stop their subscription — ALWAYS call this first to show the cost of cancelling before passing the token to cancelSubscription. | read-only | 0%Latency 2.3s | 1d ago | |
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 creates a hosted Stripe Checkout session. Rate limit 30/h. Use when the user asks to upgrade their plan (free→pro), downgrade, add seats, increase seats, or change subscription tier — ALWAYS call this preview first, then applySubscriptionChange with the returned token after the user confirms. | read-only | 0%Latency 2.0s | 1d ago | |
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. | read-only | 0%Latency 2.2s | 1d ago | |
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 and after the user confirms — never start a checkout without the quote step first. | — | 0%Latency 2.2s | 1d ago | |
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 the TTL. Use when the user asks to buy credits, purchase credits, top up credits, or add more credits — ALWAYS call this first then purchaseCreditPackage after the user confirms. | — | 0%Latency 2.1s | 1d ago | |
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 after they previously cancelled but before the period ends. | — | 0%Latency 2.3s | 1d ago | |
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 here — pair with a Phase 6 billing tool. Rate limit 5/min. Use when the user asks to remove, kick out, fire, offboard, or fully terminate a member's access to the organisation. | — | 0%Latency 2.3s | 1d ago | |
removeTeamMember | Remove a user from a team. Idempotent — returns removed=false if not on the team. | — | 0%Latency 2.3s | 1d ago | |
removeWorkspaceMember | Remove a member from a workspace. Caller must be a workspace owner or admin. Refuses to remove the last remaining workspace owner. | — | 0%Latency 2.4s | 1d ago | |
reorderDocuments | Batch-reorder documents within a folder (or project root) by setting sibling positions. Pass [{documentId, position}, ...] where position is a non-negative integer; usually you renumber siblings sequentially as 0, 1, 2…. Position-only update — does not bump version or create a snapshot. To MOVE a document to a different folder, use editDocument({folderId, position}) instead. | — | 0%Latency 2.6s | 1d ago | |
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 there, use updateFolder({parentId, position}) instead. | — | 0%Latency 2.2s | 1d ago | |
reorderImprovementCategories | Reorder improvement categories by setting sort_order values. | — | 0%Latency 2.1s | 1d ago | |
reorderPlanPhases | Reorder plan phases by setting position values. WBS codes are recalculated. | — | 0%Latency 2.3s | 1d ago | |
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 the user asks to resend, re-send, or re-trigger an invitation email — typically because the recipient lost it or the original expired. | — | 0%Latency 2.3s | 1d ago | |
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/min. | destructive | 0%Latency 2.3s | 1d ago | |
revokeTeamWorkspaceAccess | Revoke a team's workspace access. Idempotent — returns revoked=false if no grant exists. | — | 0%Latency 2.1s | 1d ago | |
searchImprovements | Search improvements using hybrid text + semantic search. Returns ranked results. | read-only | 0%Latency 2.4s | 1d ago | |
searchTools | Search available tools by keyword or category. Returns matching tool names and descriptions. | read-only | 0%Latency 2.6s | 1d ago | |
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. | — | 0%Latency 2.2s | 1d ago | |
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. | — | 0%Latency 2.2s | 1d ago | |
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 the project's KG rows. Requires can_manage_kg + project write. Rate limit 30/min. | — | 0%Latency 2.2s | 1d ago | |
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 explicit override. No re-ingest happens here. Requires can_manage_kg + workspace write. Rate limit 30/min. | — | 0%Latency 2.3s | 1d ago | |
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, suspend, freeze, reactivate, or unfreeze a member without fully removing them. | — | 0%Latency 2.4s | 1d ago | |
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. | — | 0%Latency 2.2s | 1d ago | |
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. Rate limit 30/min. | — | 0%Latency 2.5s | 1d ago | |
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 browser, signs in or signs up if necessary, enters the code, and clicks Authorize. The agent meanwhile polls `pollSignupStatus({device_code})` every `poll_interval_seconds` until the status changes to `authorized`, at which point it receives an `api_key` it can use for subsequent MCP calls. The whole flow has a 10-minute TTL. | — | 100%Latency 4.2s | May 11, 2026 | |
triggerKgRebuild | Apply a previously previewed KG rebuild. Dispatches the build batch via kg-rebuild and returns batch_id. Rate limit 5/h. | destructive | 0%Latency 2.4s | 1d ago | |
updateBillingEmail | Update the org's billing email. Validates format, writes private.organizations.billing_email, syncs to Stripe customer. Rate limit 30/h. | — | 0%Latency 2.3s | 1d ago | |
updateDiagramInDocument | Update 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 nlDescription fields are metadata only and do NOT change the rendered diagram. | — | 0%Latency 2.3s | 1d ago | |
updateFolder | Update a folder (rename/move/reorder). Supports nesting changes via parentId. | — | 0%Latency 2.4s | 1d ago | |
updateImageInDocument | Update image metadata (alt, caption, dimensions, alignment). Requires documentVersionTimestamp from getDocument for optimistic locking. | — | 0%Latency 2.3s | 1d ago | |
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 dates + completion attribution) and `acceptance_criteria` (objects with per-row updated_by/at attribution). Requires versionTimestamp from getImprovement for optimistic locking. Status transitions: blocked needs blocked_comment, rejected needs rejection_comment, done needs completion_comment. Assignment: pass `owner_id=<uuid>` to assign to a user, `owner_team_id=<uuid>` to assign to a team (mutually exclusive — a DB CHECK constraint enforces this). To unassign, pass `owner_id=null` AND `owner_team_id=null`. To switch from a user owner to a team owner, send `owner_id=null, owner_team_id=<uuid>` in the SAME call (sending only one side leaves the stale value and triggers the XOR check). Use listAssignablePrincipals or listTeams to discover valid IDs. | — | 0%Latency 2.4s | 1d ago | |
updateImprovementCategory | Update an improvement category. Cannot modify system categories. | — | 0%Latency 2.4s | 1d ago | |
updateImprovementComment | Update a comment on an improvement. Requires the comment's updated_at as versionTimestamp. | — | 0%Latency 2.1s | 1d ago | |
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 admin to member, or change a teammate's role. | — | 0%Latency 2.3s | 1d ago | |
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 required. Returns updated row. | — | 0%Latency 2.3s | 1d ago | |
updateOrgFeatureFlags | Toggle feature flags on settings.enabledFeatures (plans, improvements, compliance, knowledge_graph, documents). Auth: can_admin_org + org admin. Rate limit 30/min. Plan-tier gated: enabling knowledge_graph requires Pro/Enterprise. | — | 0%Latency 2.5s | 1d ago | |
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` are rejected — use updateOrgFeatureFlags instead. | — | 0%Latency 2.5s | 1d ago | |
updatePlan | Update a plan. Requires versionTimestamp from getPlan. | — | 0%Latency 2.4s | 1d ago | |
updatePlanComment | Update a comment on a plan. Requires the comment's updated_at as versionTimestamp. | — | 0%Latency 2.3s | 1d ago | |
updatePlanPhase | Update a plan phase. Requires versionTimestamp from getPlanPhase (not getPlan). | — | 0%Latency 2.2s | 1d ago | |
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 changes must be done via the UI (verification round-trip). | — | 0%Latency 2.3s | 1d ago | |
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 least one of name/description/icon must be supplied. Rate limit 60/min. | — | 0%Latency 2.2s | 1d ago | |
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. | — | 0%Latency 2.3s | 1d ago | |
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 `checklist`, `acceptance_criteria`, status transitions (blocked/rejected/done need their respective comments), dates, owner, percent_complete, etc. Requires versionTimestamp from getTask for optimistic locking. To edit checklist items: call getTask, modify the `checklist` array (preserving each row's `id` to keep its attribution stamps), and pass the full array back here — array order is the sort order. Assignment: pass `owner_id=<uuid>` to assign to a user, `owner_team_id=<uuid>` to assign to a team (mutually exclusive — the DB enforces with a CHECK constraint). To unassign, pass `owner_id=null` AND `owner_team_id=null`. To switch owner kind, send the new value AND null the old one in the SAME call. | — | 0%Latency 2.2s | 1d ago | |
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_end_date` if the change implies a different schedule. | — | 0%Latency 2.1s | 1d ago | |
updateTeam | Update a team's name, description, and/or colour. At least one field required. Slug is intentionally not editable. Rate limit 60/min. | — | 0%Latency 2.2s | 1d ago | |
updateTeamWorkspaceAccess | Update an existing team's workspace access level. Refuses if no grant exists — call grantTeamWorkspaceAccess first. No-op when level matches. | — | 0%Latency 2.3s | 1d ago | |
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, grid_key, view_name). | — | 0%Latency 2.1s | 1d ago | |
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. | — | 0%Latency 2.2s | 1d ago | |
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. | — | 0%Latency 2.0s | 1d ago | |
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 access to, share with, grant access, add a permission, make accessible, or invite someone to a specific workspace/project/folder/document — i.e. resource-level access (not org-level membership; that's inviteMember). | — | 0%Latency 2.1s | 1d ago |
Discoverability Score
Fair
55 of 100 — how easily AI agents find your app
- Description quality20/20
- Example prompts0/20
- Keyword coverage0/15
- Tool metadata20/20
- Visual assets5/20
- Endpoint health10/10
- Data freshness11/15
How to Improve
Add at least 2 example prompts. Prompt examples strongly improve app matching and click-through intent.
Increase keyword coverage (discovery + trigger) to improve retrieval for long-tail queries.
Provide a stable HTTPS logo URL (avoid connectors://) so cards render consistently across clients.
Add at least 2 screenshots that show real workflows to increase confidence and conversion.
Technical Details
- Status
- ENABLED
- Type
- AI-Powered App
- Auth
- Requires Login
- Listed on
- ChatGPT
- Added
- April 3, 2026
- Last synced
- May 3, 2026
- Last checked
- 6h ago
- Version
- 0.4.0
- Distribution
- Ecosystem Directory