Перейти к содержимому

MCP-сервер Dotsy

Какие серверы из официального реестра MCP принадлежат Dotsy, отвечают ли они и что умеют. Всё это проверила программа, а не переписал человек со страницы продукта.

прочитано 2026-10-23

← Назад к Dotsy

Чей это сервер
  • Имя в реестреai.dotsy/mcpподтверждён в реестре MCP

Имя в реестре лежит в пространстве dotsy.ai. Реестр пускает в такое пространство только того, кто доказал владение доменом через DNS или HTTP.

Что он ответилпроверено 2026-10-23
  • Состояниеотвечаетпроверено 2026-10-23
  • Инструменты98
  • Сервер называет себяpaige
  • Версия сервера0.3.0
  • Версия протокола2025-06-18

2026-10-23 сервер ответил на initialize и tools/list без входа. Первый ответ за 532 мс.

Стоит ли агенту его подключатьПока не ясно
  • Делают ли инструменты работу продукта, ещё не проверено.
  • Проверок пока 2 из 7, нужных, чтобы судить о надёжности.

После подключения

  • create_site, update_brief, set_analytics_provider, update_site, publish_site меняют данные без входа: вызвать их может любой, у кого есть адрес.
  • Описания занимают около 36299 токенов контекста: включайте только нужные задаче инструменты.
  • У 43 из 98 инструментов параметры без типа или описания: проверяйте аргументы перед вызовом.

Вывод сделан правилами по замерам выше. Вероятный первый вызов выбрала модель по списку инструментов: прочитайте описание, прежде чем на него полагаться.

Замер каждый деньежедневных проверок: 2, первая 2026-10-23
  • Оценка INITE MCPчерез неделюдля оценки нужно 7 ежедневных проверок, пока 2
  • Отвечалидёт замерпроверок пока 2, долю покажем после 7
  • Медиана первого ответа773 мс
  • Место в контексте агента≈ 36 299 токеновописания всех инструментов (98), агент держит их в контексте на каждом ходу
  • Описания инструментовA · 93 из 100
  • Типизированные ответы0 из 98 инструментовобъявлен outputSchema: ответ приходит с типами и читается сразу
  • Параметры без типа: в 1 из 98
  • Параметры без описания: в 43 из 98

На что посмотреть

  • Инструменты, которые меняют данные, на сервере, который отвечает без входа: create_site, update_brief, set_analytics_provider, update_site, publish_site

Программа проверяет сервер раз в день: initialize и tools/list, без модели. Токены - это длина описаний из расчёта примерно четыре символа на токен. Оценка - среднее шести проверок имени, описания, схемы и аннотаций каждого инструмента. Она говорит, насколько понятно описаны инструменты, а не о том, работают ли они. Оценка складывается только из замеренного: отвечает ли сервер (30%), делает ли работу продукта (25%), описания (20%), контекст (10%) и использование (15%). Незамеренная часть не учитывается, а скрытая инструкция ограничивает оценку 40 баллами. Состояние MCP-серверов вендоров: методика и цифры →

Инструменты сервераинструментов: 98 · прочитано 2026-10-23
  • create_site

    Create empty site; seeds brief. Globally taken slugs auto-suffix to `{slug}-{adjective}-{noun}` (default); pass onSlugTaken:"fail" to get a 409 instead of a renamed site.

  • get_site

    Site detail, stats, publicUrl, brief head (default-on), and readiness flags. pages[] is a ~25-entry head by default (stats.pages has the true count) — pass pages: true for the full array (capped at 1000), or enumerate everything with…

  • update_brief

    Update `_intent/site.md` (site brief) or a page brief when `page` is set. See field descriptions for rules, notes, and head enums.

  • get_analytics

    Read-only traffic overview (default) or full breakdowns via include[]; optional bot id for crawler page drill-down.

  • set_analytics_provider

    Connect a third-party analytics provider (GA4, Plausible, Fathom, Umami) or remove it (provider 'none'). Dotsy adds the provider's script to the <head> of every live page — live immediately, no publish needed. Replaces any earlier…

  • update_site

    Update site settings: title, keyConvention, or editingMode ('live' = each editor save publishes immediately; 'staged' = saves stay drafts until publish_site). Slug is the hostname — change it with rename_site, not this tool. Set 'staged'…

  • rename_site

    Rename the site slug (public hostname {slug}.dotsy.site). Owner-only. After success: use the returned slug in every later tool. Published site: the old slug redirects on the API (301 for reads, 308 for writes) while it stays reserved; the…

  • publish_site

    Publish draft to live. feedback and handoff required (use dummy feedback + one-line handoff if clean).

  • get_draft_status

    Pending draft changes: content keys and routes with status. May include requiredDecision (publish_confirm) before publish_site.

  • discard_drafts

    Discard unpublished drafts: all (omit key/keys/routes), one content key (key), or a selection (keys, routes). Destructive — check get_draft_status first.

  • delete_site

    Permanently delete site; confirmSlug must equal slug.

  • bulk_put_content

    Stage many content keys (pages, layouts, fragments). Content only — not routes or assets. Each body ≤60KB and the whole call ≤80KB; larger pages use stage_content_chunk, dotsy push, or PUT content-raw. May queue above the inline threshold.

  • get_site_manifest

    Content keys + hashes only (optional routes=true) — static files live in list_assets, not manifest. Diff keys+hashes before apply_changeset; stage only changed bodies.

  • find_replace

    Case-insensitive find→replace across pages in one staged commit. Batch all replacements into ONE call — never parallelize find_replace on the same key (concurrent edits surface as per-key conflict). find/replace ≤60KB.

  • search_content

    Find pages containing a phrase (grep without reading bodies). Requires do-sqlite — graduate_site first if search_unavailable.

  • graduate_site

    Enable site search & collections (kv → do-sqlite), one-way. Unlocks search_content, collection indexes, visitor /__paige/search, and moves any R2 form-submission ledger into SiteDb. 409 blocked covers three unrelated gates: an unsupported…

  • apply_changeset

    Stage writes[] + deletes[] in one call; attach routes via writes[].route. writes[].ifMatch (hash from get_site_manifest; "" = must not exist) guards each key (a delete takes { key, ifMatch } too); atomic:true makes one stale key write…

  • import_site_from_url

    Import URL to draft. On complete, response may include requiredDecision — preview then ask mirror vs editable before structure_*.

  • get_structure_status

    Flat vs structured page counts; informs user — do not auto-run analyze/apply while requiredDecision pending.

  • structure_site_analyze

    Propose shared layout + fragments; persist:false first. Wait for mirror-vs-editable answer if requiredDecision pending.

  • decompose_analyze

    Deprecated — use structure_site_analyze.

  • structure_site_apply

    Rewrite flat pages to layout + fragments (draft). Do not call while requiredDecision pending — user must pick editable first. It extracts header/footer only: afterwards share_section with no arguments lists the other repeated blocks…

  • get_structure_result

    Last structure apply job result (structuredKeys, conflicts, partial).

  • adapt_site_analyze

    Propose nav wiring + blog collectionization for an imported mirror (draft, opt-in). Read-only; returns per-adapter reports + proposalEtag. Nav decline may include nextStep (e.g. mega-menu → edit fragments/header.html). Wait for…

  • adapt_site_apply

    Apply the adapt proposal (draft): wire nav into the menu store and/or rewrite the blog index to a live <dotsy-collection>. One undo covers the whole apply; a second apply is refused until adapt_site_revert (or force). Queued applies are…

  • adapt_site_revert

    Atomically restore everything the last adapt_site_apply wrote (fragments, the menu doc when the op touched it, index, member configs, routes).

  • get_adapt_status

    Read adapt state: proposal summary + proposalEtag (+ applied/consumed flag), undo-record presence, active or queued job progress. Use to resume in a fresh session.

  • list_content

    List content keys (HTML/md); not assets — use list_assets. Defaults to 50 keys per page — raise limit (max 1000) or pass cursor (from nextCursor) to page through the rest. Per-row `size`/`missing` are measured automatically only on pages…

  • get_content

    Read one content key; optional selector (region) or published=true (live body). Bodies over 40KB without a selector return a truncated summary — use selector, batch_patch_content, or dotsy pull.

  • put_content

    Stage one content key. Body ≤60KB. Larger pages: stage_content_chunk + apply_changeset bodyStaging, dotsy push, or PUT content-raw. Edits to an existing large page: batch_patch_content.

  • stage_content_chunk

    Append one ≤60KB chunk of a large new page. Omit stagingId on seq 0; pass the returned stagingId on later seq. Set finalize:true on the last chunk, then apply_changeset with writes[].bodyStaging.

  • patch_content

    Edit one content key via ops[] (selector ops or replace-string; wrap/unwrap/move restructure siblings). Stages draft; op shapes in schema.

  • batch_patch_content

    patch_content on multiple keys; all-or-nothing validation. Preferred edit path for pages over 60KB. replace-string value/replace ≤60KB; whole call ≤80KB.

  • delete_content

    Delete content key (tombstone if published). A fragments/* section that pages still place is refused with section_in_use (lists the pages) — detach it or remove it first.

  • rename_content

    Re-key a page by slug (draft or published static). Server-side hash copy — no body round-trip. Default deletes static routes (obscure-URL); movePath:true repoints the route, rewrites menu refs and other redirects aimed at the old path…

  • put_post

    Stage a blog post via structured meta+body (?format=post). Key e.g. blog/my-post.html. Declared membership: meta.collections; schedule: meta.visibleAt; SEO title override: meta.seoTitle (card always shows meta.title); custom fields…

  • inspect_collection

    Collection state — count, server.mode, sample entries, tag (membershipKind, match=) when discovered; plus name, noun, URL pattern, layout, where it's listed, and post fields used. Pass status/q/cursor/limit (any one, even empty) for a…

  • list_collections

    Collections on the site — name, noun, item count (or 'not published yet'), URL pattern, and whether any member is staged. Includes a collection only a draft page lists. Returns a bare array (not wrapped in an object) — pass each row's key…

  • update_collection

    Rename a collection's display name and/or noun (e.g. the generic 'posts' key shown as 'Recipes' / 'recipe') — cosmetic only, stored separately from the tag that defines membership; doesn't need publish. Provide at least one of name/noun…

  • new_post_template

    Read-only scaffold for a new post — suggested key/path, membership meta, blank or duplicate body. Then put_post (+ optional put_route).

  • get_collection_schema

    Read the site's collection field definitions (`_data/collections.json`, draft view): { schema: { v: 1, collections: { "<key>": { fields[], settings? } } }, hash }. hash is null when no schema exists yet — pass it as put_collection_schema…

  • put_collection_schema

    Replace the whole field schema (draft; publish makes it live). Read it with get_collection_schema first and send it back edited. Collection keys exactly as list_collections returns them ("blog/" or an id). Field: { key, type, label?…

  • infer_collection_schema

    Suggest fields for one collection from a sample of its items' meta.custom values (published data, else drafts) — writes nothing. Returns { sampled, suggestions: [{ field: { key, type, options? }, count, samples, defined }], skipped }…

  • reindex_collection

    Build/finish collection indexes after publish returns collectionDataPending or collectionSqlPending.

  • preview_page

    Verify-only composed HTML check; home preview may include requiredDecision — ask mirror vs editable before structure_*.

  • verify_page

    Pre-publish lint (tags, assets, layout). Pair with preview_page — see get_skill('verify').

  • preflight_site

    Plan check before publish or large build (counts, route soft limit, seo suggestions). When ok is false, blocking lists the failed suggestion codes. Read-only.

  • start_edit_session

    Open a draft session. Returns preview/edit URLs for the person (see linkGuidance). draftEditorUrl only when the site gives AI agents Full access. path defaults to '/'.

  • get_site_outline

    Site shape: every layout and shared section (`sections`: fragments/* by name, with page count, whether the file exists and staged-change flag), whether a layout is missing, redirects count, menus grouped by where they show, and…

  • share_section

    Make a block that repeats on several pages one shared section, or change where one shows. No arguments: lists blocks repeated on 3+ pages. sourceKey + selector (or selectors: a sibling run, one wrapper): a dry run finds every page with…

  • detach_section

    Give one page its own copy of a shared section; every other page keeps the shared one. A draft — publish_site to go live. A section the layout places is hidden on that page instead (share_section name + hide).

  • get_route

    Get one route by path (home is '/').

  • put_route

    Create/replace route; contentKey derived from path if omitted. On a field that accepts null (contentKey, redirectTo, redirectStatus, preserveQuery), sending null clears it back to its default.

  • patch_route

    Partial route update (only sent fields change; an OMITTED field is left alone). On a field that accepts null (contentKey, redirectTo, redirectStatus, preserveQuery), sending null CLEARS it back to its default — different from omitting it…

  • rename_page

    Change a page's URL: moves its route from `from` to `to`. Menu links and other redirects that pointed at the old path retarget automatically; a 301 is left at the old path by default (leaveRedirect). Retry-safe (resend the same call after…

  • delete_route

    Remove a route by path.

  • list_goals

    List site conversion goals (pageview paths and form submits). Required before start_test.

  • put_goals

    Create or replace all site conversion goals (≤50). Required before start_test when no goal exists.

  • estimate_test

    Estimate days to reach promote readiness for a page (traffic baseline). Read-only.

  • start_test

    Start a same-URL A/B test (draft or live source). Rules → get_skill('verify') § A/B.

Первые 60 из 98, в порядке сервера.

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

Добавьте сервер в конфиг MCP-клиента. Claude Desktop, Cursor и большинство других клиентов понимают такой вид:

{
  "mcpServers": {
    "dotsy": {
      "type": "http",
      "url": "https://mcp.dotsy.ai/mcp"
    }
  }
}

Подключить

Claude Code, в терминале

claude mcp add --transport http dotsy https://mcp.dotsy.ai/mcp

Добавить в CursorДобавить в VS Code

claude.ai, ChatGPT и другие клиенты: добавьте https://mcp.dotsy.ai/mcp как свой коннектор в настройках.

OpenAPI-спецификация

Путей: 87, прочитано 2026-10-23. Открыть спецификацию ↗

Каждую строку нашла программа: запись в реестре, ответ самого сервера, спецификация, которая разбирается. Если строки нет, значит, мы этого не нашли, а не что этого нет.