Stable Baseline

Stable Baseline: живые документы, диаграммы и планы проекта под управлением агента

От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетБез входаГлобальныйБесплатноТолько чтение

Что умеет

  • Искать нужные инструменты и типы диаграмм
  • Создавать и редактировать живые документы и папки
  • Вставлять и получать диаграммы в документах
  • Просматривать организации, рабочие пространства и проекты
  • Управлять командами и участниками

Какие данные видит

Ассистент действует в рамках организации и рабочих пространств пользователя, авторизуясь через OAuth 2.1 или API-ключ.

Нужен ли аккаунт

Не нужен: сервер работает без входа

Stable Baseline — рабочее пространство, где люди и ИИ-агенты вместе ведут документы, более 40 типов диаграмм, планы и граф знаний компании. MCP-сервер из 163 инструментов покрывает весь цикл: от организации и участников до документов, диаграмм и таймлайнов, без участия человека в интерфейсе.

Как подключить

Как подключить Stable Baseline к Claude

Адрес сервера, который нужно вставить в настройках Claude:

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

  1. Откройте Claude (сайт claude.ai или приложение для компьютера).
  2. Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
  3. Нажмите Добавить пользовательский коннектор (Add custom connector).
  4. Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
  5. В чате нажмите + → Коннекторы и включите новый коннектор.

Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.

Авторизация

После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.

Как подключить Stable Baseline к ChatGPT

Адрес сервера, который нужно вставить в настройках ChatGPT:

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

  1. Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
  2. Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
  3. Откройте Настройки → Коннекторы и нажмите Создать (Create).
  4. Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
  5. В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
  6. В новом чате откройте + → Приложения/Коннекторы и включите коннектор.

Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.

Авторизация

При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.

Как подключить Stable Baseline к Cursor

Адрес сервера, который нужно вставить в настройках Cursor:

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

Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.

Вручную:

  1. В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
  2. Вставьте JSON, скопированный ниже, в открывшийся файл ~/.cursor/mcp.json (для одного проекта: .cursor/mcp.json в корне проекта).
  3. Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.

Авторизация

Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.

Список инструментов сервера (60)

Технические названия из tools/list. Нужны только разработчикам.

searchToolsSearch available tools by keyword or category. Returns matching tool names and descriptions.
listDiagramTypesList supported diagram types. Use the returned `type` field when calling insertDiagramInDocument.
getDiagramTypeGuideGet DSL writing instructions for a diagram type. Call before writing diagramCode.
listArchitectureIconsList icons for systemsarchitecture diagrams. Use returned iconPath as-is in D2 code (e.g. icon: dev/docker.svg).
getCdmdLanguageGuideGet the CDMD markdown language specification. Call before createDocument if unfamiliar with syntax.
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.
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, has_explicit_permission). Sources: project-level grants + workspace members + organization members + members of teams granted access. Use BEFORE updateImprovement/updateTask when you need to discover an `owner_id` (kind='user') or `owner_team_id` (kind='team') by name. 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.
listTeamsList 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.
getTeamGet 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.
listOrganisationsList organisations you have access to. Supports query filtering by name/slug.
listWorkspacesList workspaces you have access to. Supports query filtering by name/slug.
listProjectsList projects in a workspace. Supports query filtering by project name.
listFoldersList folders in a project. Use parentId for nested folders. For full tree, use getProjectHierarchy instead.
createFolderCreate a folder in a project. Supports nesting via parentId.
updateFolderUpdate a folder (rename/move/reorder). Supports nesting changes via parentId.
deleteFolderDelete a folder recursively, including all nested folders and documents.
listDocumentsList documents in a project, workspace, or folder. Supports query search and date filtering.
getProjectHierarchyGet the complete folder and document tree for a project in one call. Recommended first call for navigation.
getFolderHierarchyGet the folder and document tree starting from a specific folder. Alias for getProjectHierarchy with folderId.
getDocumentRead 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.
createDocumentCreate a document from CDMD markdown. Call getCdmdLanguageGuide first if unfamiliar with syntax. Do not include DIAGRAM/IMAGE markers — insert them after with dedicated tools.
editDocumentEdit 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.
findAndReplaceTextInDocumentFind 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.
getDiagramInDocumentGet 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.
insertDiagramInDocumentInsert a new diagram into a document. Call listDiagramTypes to find your type, then getDiagramTypeGuide for DSL syntax before writing diagramCode.
updateDiagramInDocumentUpdate 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.
deleteDiagramInDocumentDelete a diagram from a document.
deleteDocumentDelete a document.
listDocumentVersionsList version history for a document. Returns timestamps, creator, change summary, and content.
getImageInDocumentGet image details including a fresh signed URL (expires after 1 hour). Use storagePath from IMAGE_OMITTED markers in getDocument output.
createImageUploadSessionCreate a PUT upload URL for a document image (max 10MB). Use the returned assetUrl with insertImageInDocument.
insertImageInDocumentInsert an image into a document (max 10MB). Provide imageBase64, imageBinary, or imageUrl. For large files, call createImageUploadSession first then use the returned assetUrl.
updateImageInDocumentUpdate image metadata (alt, caption, dimensions, alignment). Requires documentVersionTimestamp from getDocument for optimistic locking.
deleteImageInDocumentDelete an image from a document and storage.
createVegaDataUploadSessionCreate a PUT upload URL for a Vega/Vega-Lite data file. Use returned assetUrl in your Vega spec.
deleteVegaDataFileDelete a data file attachment from a document.
createDocumentIngestSessionStep 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.
createDocumentFromUploadStep 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.
getDocumentIngestJobRead 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.
listImprovementsList improvements in a project. Supports filtering by status, type, priority, and query.
getImprovementGet 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.)
createImprovementCreate an improvement item in a project. Requires projectId and title. Auto-assigns friendly ID.
updateImprovementUpdate 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.
deleteImprovementDelete an improvement and all associated evidence and activity.
listImprovementCategoriesList improvement categories for a project. Returns tree and flat list.
createImprovementCategoryCreate an improvement category or sub-category. Max two levels.
updateImprovementCategoryUpdate an improvement category. Cannot modify system categories.
deleteImprovementCategoryDelete an improvement category. Cannot delete system categories.
reorderImprovementCategoriesReorder improvement categories by setting sort_order values.
addImprovementEvidenceAdd evidence to an improvement. Types: document_section, diagram_node, incident_note, feedback, free_text.
addImprovementActivityAdd a comment or activity entry to an improvement.
updateImprovementCommentUpdate a comment on an improvement. Requires the comment's updated_at as versionTimestamp.
deleteImprovementCommentDelete a comment from an improvement.
searchImprovementsSearch improvements using hybrid text + semantic search. Returns ranked results.
listPlansList plans in a project. Supports filtering by status, priority, and query.
getPlanGet full plan details including phases, items, and activity. Returns versionTimestamp — pass it to updatePlan for optimistic locking. Items include percent_complete for progress tracking.
createPlanCreate a plan in a project. Requires projectId and title.
updatePlanUpdate a plan. Requires versionTimestamp from getPlan.
deletePlanDelete a plan, all its phases, and all tasks/improvements within it. This is a destructive operation that cannot be undone.
listPlanPhasesList phases for a plan ordered by position.