Is the Dotsy MCP server down?

mcp-registry/ai.dotsy/mcp · v0.3.0

healthy
Last checked 2026-10-26 20:36 UTC · handshake 598ms

As of 2026-10-26 20:36 UTC, the Dotsy MCP server is up with a Glimind reliability score of 100/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.

uptime (30d checks)
100%
checks observed
3,820
outages (90d)
0
tools
101

Build and publish static sites on Dotsy with draft-first MCP tools, OAuth Connect, and API keys.

Point your MCP client at this streamable-http endpoint: https://mcp.dotsy.ai/mcp

Agent-readiness: C (71/100)

C (71/100): 0 error(s), 5 warning(s) across 101 tool(s); ~40,726 tokens of tool definitions.
Scores higher than 5% of 15,760 MCP servers Glimind has audited.
Its tool list costs an agent ~40,726 tokens per session — more than 99% of servers.
70 → 71 since 2026-10-17
no tool-poisoning patterns
Schemas90
Descriptions60
Safety hints100
Token cost23
Client compatibility70
Protocol100
Reliability100
Stability24

What to fix (7)

4 tool definition(s) exceed ~1,200 tokens each (largest: apply_changeset, ~1,989).

Move long reference material out of descriptions (link a doc or expose a resource), drop repeated examples, and collapse large enums. Trimming these to ~600 tokens saves ~3,786 tokens every session. How to fix →

Tools: apply_changeset, patch_route, put_route, update_brief · saves ~3,786 tokens/session

101 tools on one server. Tool-selection accuracy drops as the menu grows, and some clients (e.g. Cursor) cap the number of active tools.

Group tools by task into smaller servers or toolsets, and merge near-duplicates behind one tool with a mode parameter. How to fix →

112 parameter(s) across 43 tool(s) have no description.

Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →

Tools: adapt_site_analyze, apply_changeset, batch_patch_content, bulk_put_assets, bulk_put_content and 38 more

1 tool(s) have parameters with no type (no type/enum/anyOf/$ref).

Give every parameter a "type" (or "enum"/"anyOf"). Untyped parameters make models guess — strings for numbers, objects for arrays. How to fix →

Tools: update_brief

Loading this server's tool list costs an agent ~40,726 tokens before any work — more than 99% of MCP servers.

Split rarely-used tools into a separate server or a toolset the client can enable, or expose one "search tools" entry point. Many agents load every connected server's tools into every request. How to fix →

No tool declares an outputSchema.

Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →

In the last 30 days: 0 tool(s) removed and 19 schema change(s).

Add new tools or optional parameters instead of renaming or removing; deprecate first (say so in the description) and remove later. Agents cache tool contracts. How to fix →

Auto-fix: 1 corrected tool definition

Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 43 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fai.dotsy%2Fmcp/fixes

update_brief 1 change
{
  "name": "update_brief",
  "description": "Update `_intent/site.md` (site brief) or a page brief when `page` is set. See field descriptions for rules, notes, and head enums.",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "required": [
      "site",
      "context"
    ],
    "properties": {
      "body": {
        "type": "string",
        "maxLength": 50000,
        "description": "Replace narrative body (site ≤50k chars; page ≤10k)."
      },
      "goal": {
        "type": "string",
        "maxLength": 4000,
        "description": "Current goal (site ≤4k chars; page ≤2k)."
      },
      "head": {
        "description": "Head fields to merge. Site: purpose, audience, kind (exploration|production), priorities ({seo,analytics,design,mobile}: must|nice|skip), editingModel (ai|simple-editor|creator), sections, design (strict): palette string[] max 8, type string[] max 6, layout string max 80 chars — no other keys. Page: purpose, design.{direction,hero}.",
        "type": "string"
      },
      "page": {
        "type": "string",
        "description": "Content key — targets that page's brief (`_intent/pages/<key>.md`). Omit for the site brief."
      },
      "site": {
        "type": "string",
        "description": "Site slug, e.g. acme-studio"
      },
      "notes": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 4000
          },
          {
            "type": "object",
            "properties": {
              "seo": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 4000
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "design": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 4000
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "content": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 4000
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Site: free-form ## Notes string (≤4k) OR per-section notes object for Design system / Content & CMS / SEO (null clears one). Page brief: string only (≤2k)."
      },
      "rules": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "id",
            "card",
            "text"
          ],
          "properties": {
            "id": {
              "type": "string",
              "pattern": "^[a-z0-9-]{2,40}$"
            },
            "card": {
              "enum": [
                "intent",
                "design",
                "content",
                "seo"
              ],
              "type": "string"
            },
            "text": {
              "type": "string",
              "maxLength": 160,
              "minLength": 1
            },
            "check": {
              "anyOf": [
                {
                  "anyOf": [
                    {
                      "type": "object",
                      "required": [
                        "type",
                        "max"
                      ],
                      "properties": {
                        "max": {
                          "type": "integer",
                          "maximum": 300,
                          "minimum": 10
                        },
                        "type": {
                          "type": "string",
                          "const": "title-max"
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "type",
                        "suffix"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "const": "title-suffix"
                        },
                        "suffix": {
                          "type": "string",
                          "maxLength": 60,
                          "minLength": 1
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "type",
                        "min",
                        "max"
                      ],
                      "properties": {
                        "max": {
                          "type": "integer",
                          "maximum": 1000,
                          "minimum": 1
                        },
                        "min": {
                          "type": "integer",
                          "maximum": 1000,
                          "minimum": 0
                        },
                        "type": {
                          "type": "string",
                          "const": "description-length"
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "type"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "const": "one-h1"
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "type",
                        "words"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "const": "banned-words"
                        },
                        "words": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "maxLength": 40,
                            "minLength": 1
                          },
                          "maxItems": 50,
                          "minItems": 1
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "type"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "const": "image-alt"
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "type",
                        "colors"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "const": "allowed-colors"
                        },
                        "colors": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "pattern": "^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$"
                          },
                          "maxItems": 24,
                          "minItems": 1
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "type",
                        "fonts"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "const": "allowed-fonts"
                        },
                        "fonts": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "maxLength": 60,
                            "minLength": 1
                          },
                          "maxItems": 12,
                          "minItems": 1
                        }
                      },
                      "additionalProperties": false
                    }
                  ]
                },
                {
                  "type": "null"
                }
              ]
            },
            "level": {
              "enum": [
                "block",
                "warn"
              ],
              "type": "string"
            },
            "locked": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        },
        "maxItems": 30,
        "description": "Rules & guidelines lines to add or change (upsert by id — send only fields you change; omitted fields keep their stored value; check: null turns a Rule into a Guideline). A supported check (title-max, title-suffix, description-length, one-h1, banned-words, image-alt, allowed-colors, allowed-fonts) makes a Rule — use level block for hard musts (banned words, title suffix), warn for softer checks. locked can only be set by a person; locked: false unlocks."
      },
      "context": {
        "type": "string",
        "minLength": 1,
        "description": "One sentence: why you are calling this tool and what you are trying to accomplish. Stored on the site's activity log and visible to everyone on the site — never put secrets or personal data here."
      },
      "guestToken": {
        "type": "string",
        "minLength": 20,
        "description": "Guest token from start_site. Send it on every call until claim_site. Omit when this chat is already signed in to Dotsy."
      },
      "removeRules": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "maxItems": 30,
        "description": "Ids of rules or guidelines to remove (site brief only)."
      },
      "appendHandoff": {
        "type": "string",
        "maxLength": 500,
        "minLength": 1,
        "description": "Append a hand-off log line — site brief only; ignored when page is set."
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "title": "Update site brief",
    "readOnlyHint": false,
    "openWorldHint": false,
    "idempotentHint": true,
    "destructiveHint": true
  }
}

Get alerted

Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:

curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/ai.dotsy/mcp"],"email":"[email protected]"}'

Agents: watch_tool({"toolId": "mcp-registry/ai.dotsy/mcp"}) over MCP.

Passed

Largest tool definitions

Static checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).

Operator? Fix these, then re-check live. Embed the readiness badge:

Markdown
[![MCP agent-readiness](https://glimind.com/v1/readiness/badge/mcp-registry%2Fai.dotsy%2Fmcp.svg)](https://glimind.com/server/mcp-registry%2Fai.dotsy%2Fmcp?ref=badge)
HTML
<a href="https://glimind.com/server/mcp-registry%2Fai.dotsy%2Fmcp?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fai.dotsy%2Fmcp.svg" alt="MCP agent-readiness"></a>
reStructuredText
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fai.dotsy%2Fmcp.svg
   :target: https://glimind.com/server/mcp-registry%2Fai.dotsy%2Fmcp?ref=badge
   :alt: MCP agent-readiness

Tool-definition log

Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:52731e72754114ba…, first seen 2026-10-25, included at leaf 67203 of 75,338. Version history · verify what your client received.

Tools (101)

Compare: most reliable knowledge servers · most reliable files servers · most reliable web servers · most reliable content servers · most reliable security servers

Know before your agent calls it

Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.

Add Glimind — free, no signup:

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http glimind https://glimind.com/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "glimind": {
      "type": "http",
      "url": "https://glimind.com/mcp"
    }
  }
}

FAQ

Is the Dotsy MCP server down right now?

As of 2026-10-26 20:36 UTC, the Dotsy MCP server is up with a Glimind reliability score of 100/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.

How many tools does Dotsy MCP server provide?

Dotsy MCP server advertises 101 tools, including adapt_site_analyze, adapt_site_apply, adapt_site_revert, add_custom_domain, apply_changeset.

How do I install Dotsy MCP server?

Point your MCP client at this streamable-http endpoint: https://mcp.dotsy.ai/mcp

Is the Dotsy MCP server safe to connect to an AI agent?

Glimind scanned all 101 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.

Operator of Dotsy MCP server?

Status page: 90-day uptime, every outage and how long it lasted.

Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.

Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.

Feedback
Help us improve