Is the Carryo Website Publisher MCP server down?

mcp-registry/io.carryo/website-publisher · v0.1.0

healthy
Last checked 2026-10-26 19:17 UTC · handshake 521ms

As of 2026-10-26 19:17 UTC, the Carryo Website Publisher 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
4,962
outages (90d)
0
tools
13

Publish and update HTML websites, landing pages, reports and proposals from AI chat. OAuth sign-in.

Point your MCP client at this streamable-http endpoint: https://mcp.carryo.io/mcp

Agent-readiness: B (84/100)

B (84/100): 0 error(s), 3 warning(s) across 13 tool(s); ~7,176 tokens of tool definitions.
Scores higher than 42% of 15,766 MCP servers Glimind has audited.
Its tool list costs an agent ~7,176 tokens per session — more than 65% of servers.
82 → 84 since 2026-10-17
no tool-poisoning patterns
Schemas100
Descriptions74
Safety hints100
Token cost78
Client compatibility50
Protocol100
Reliability100
Stability96

What to fix (4)

3 tool definition(s) exceed ~1,200 tokens each (largest: website.publish, ~1,573).

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 ~2,841 tokens every session. How to fix →

Tools: website.publish, website.edit, website.save_draft · saves ~2,841 tokens/session

13 tool name(s) contain "." or exceed 64 characters, which OpenAI-compatible function calling rejects (^[a-zA-Z0-9_-]{1,64}$).

Use "_" or "-" instead of "." and keep names to 64 characters, so clients built on OpenAI-style tool calling don't have to rename (or drop) them. How to fix →

Tools: account.check_publishing, team.list, website.edit, website.edit_images, website.library and 8 more

12 parameter(s) across 3 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: website.library, website.list, website.read_form_responses

In the last 30 days: 0 tool(s) removed and 1 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: 13 corrected tool definitions

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

account.check_publishing 1 change
{
  "name": "account_check_publishing",
  "description": "Checks publishing availability, remaining Personal website capacity, reset timing, hosted-image allowances, custom URL endings, branding capabilities, and inactivity policies for the connected Carryo account. Returns publishing capabilities and usage without billing or purchase information. Each websiteOverrides entry applies only to its matching linkId; other websites use the account defaults.",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "properties": {}
  },
  "annotations": {
    "readOnlyHint": true,
    "openWorldHint": false,
    "destructiveHint": false
  },
  "title": "Check Publishing Availability"
}
team.list 1 change
{
  "name": "team_list",
  "description": "Lists Carryo teams accessible to the connected account, including team names, workspaceId values, roles, and available actions. Supports finding a team the user has chosen. Team creation, invitations, membership, and billing are managed in the Carryo web app.",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "properties": {}
  },
  "annotations": {
    "readOnlyHint": true,
    "openWorldHint": false,
    "destructiveHint": false
  },
  "title": "Find Carryo Teams"
}
website.edit 1 change
{
  "name": "website_edit",
  "description": "Replaces the complete HTML of an existing Carryo website while preserving its linkId and URL. Suitable for updating, fixing, or republishing a known page. Returns the website link and a Carryo management link. Access and edit limits are checked for the website identified by linkId. expectedVersionNumber detects conflicting edits. Supports adding or replacing hosted images and removing paths through removeAssetPaths. Pass attached images through imageFiles. For one attachment, assets needs only i",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "required": [
      "linkId",
      "htmlContent"
    ],
    "properties": {
      "forms": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "key",
            "title",
            "fields"
          ],
          "properties": {
            "key": {
              "type": "string",
              "pattern": "^[a-z][a-z0-9_-]{0,63}$"
            },
            "title": {
              "type": "string",
              "maxLength": 120,
              "minLength": 1
            },
            "closed": {
              "type": "boolean"
            },
            "fields": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "name",
                  "label",
                  "type"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "pattern": "^[a-z][a-z0-9_-]{0,63}$"
                  },
                  "type": {
                    "enum": [
                      "text",
                      "email",
                      "tel",
                      "number",
                      "date",
                      "textarea",
                      "select",
                      "checkbox",
                      "radio"
                    ],
                    "type": "string"
                  },
                  "label": {
                    "type": "string",
                    "maxLength": 120,
                    "minLength": 1
                  },
                  "options": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 200,
                      "minLength": 1
                    },
                    "maxItems": 100,
                    "minItems": 1
                  },
                  "required": {
                    "type": "boolean"
                  },
                  "maxLength": {
                    "type": "integer",
                    "maximum": 3000,
                    "minimum": 1
                  }
                },
                "additionalProperties": false
              },
              "maxItems": 30,
              "minItems": 1
            },
            "notifyOwner": {
              "type": "boolean"
            },
            "acknowledgementEmailField": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "maxItems": 5,
        "description": "Optional definitions for JavaScript/React forms using window.CarryoForms.submit(key, values), which resolves on acceptance and rejects on failure. Stable keys and field names identify forms across edits. Static collection forms are inferred from data-carryo-form=\"key\" and named controls without duplicate definitions; placeholder submit handlers can block collection. Local calculator/filter forms use data-carryo-local and do not collect responses. Existing external endpoints retain their destination. Visitor acknowledgement is disabled unless explicitly enabled."
      },
      "assets": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "path"
          ],
          "properties": {
            "path": {
              "type": "string",
              "maxLength": 512,
              "minLength": 1
            },
            "fileId": {
              "type": "string",
              "maxLength": 512,
              "minLength": 1,
              "description": "Known attachment file_id matching an imageFiles entry. Prefer fileIndex if the host-generated ID is not visible. Mutually exclusive with fileIndex and sourceUrl."
            },
            "fileIndex": {
              "type": "integer",
              "maximum": 19,
              "minimum": 0,
              "description": "Zero-based position in imageFiles: 0 selects its first attachment. Use this when the host generates file IDs during upload. May be omitted when imageFiles contains exactly one attachment. Mutually exclusive with fileId and sourceUrl."
            },
            "sourceUrl": {
              "type": "string",
              "maxLength": 4096,
              "minLength": 1,
              "description": "Fetchable HTTP(S) image URL for Carryo to import and host. Mutually exclusive with fileId and fileIndex. Data URLs and base64 bytes are unsupported."
            },
            "contentType": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            }
          },
          "additionalProperties": false
        },
        "maxItems": 20,
        "description": "Optional image assets to add or replace. Each entry requires a relative website path. With one imageFiles attachment, path alone uses that attachment. Otherwise select exactly one source: fileIndex (zero-based imageFiles position), a known fileId, or a fetchable HTTP(S) sourceUrl. Never guess generated file IDs. Existing images are preserved when omitted; replacing an existing path does not use another slot. Base64 bytes and data URLs are unsupported."
      },
      "linkId": {
        "type": "string",
        "maxLength": 255,
        "minLength": 1,
        "description": "Carryo page link identifier to update"
      },
      "fileName": {
        "type": "string",
        "maxLength": 255,
        "minLength": 1,
        "description": "Optional replacement file name"
      },
      "expiresAt": {
        "type": "string",
        "description": "Optional ISO-8601 expiration timestamp"
      },
      "imageFiles": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "download_url",
            "file_id"
          ],
          "properties": {
            "file_id": {
              "type": "string",
              "maxLength": 512,
              "minLength": 1
            },
            "file_name": {
              "type": "string",
              "maxLength": 1024,
              "minLength": 1
            },
            "mime_type": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "download_url": {
              "type": "string",
              "maxLength": 4096,
              "minLength": 1
            }
          },
          "additionalProperties": false
        },
        "maxItems": 20,
        "description": "Optional image attachments supplied through the host's file upload support. The host supplies file_id and download_url. Map each attachment to a website path in assets: with one attachment, path alone is sufficient; with multiple attachments, use fileIndex. The assistant does not need to know generated file IDs or download URLs. Temporary URLs are import sources, not hosted image URLs. Clients without file input support can omit this field."
      },
      "htmlContent": {
        "type": "string",
        "maxLength": 5242880,
        "minLength": 1,
        "description": "Updated complete HTML for the Carryo page while keeping the same URL."
      },
      "sharingMode": {
        "enum": [
          "public"
        ],
        "type": "string",
        "description": "Optional replacement publishing mode. Only public live links are supported here."
      },
      "removeAssetPaths": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 512,
          "minLength": 1
        },
        "maxItems": 20,
        "description": "Optional relative asset paths to remove from the page asset bundle."
      },
      "expectedVersionNumber": {
        "type": "integer",
        "description": "Expected current website version number for detecting conflicting edits.",
        "exclusiveMinimum": 0
      }
    },
    "additionalProperties": false
  },
  "annotations": {
    "readOnlyHint": false,
    "openWorldHint": true,
    "destructiveHint": true
  },
  "title": "Edit a Live Website"
}

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/io.carryo/website-publisher"],"email":"[email protected]"}'

Agents: watch_tool({"toolId": "mcp-registry/io.carryo/website-publisher"}) 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%2Fio.carryo%2Fwebsite-publisher.svg)](https://glimind.com/server/mcp-registry%2Fio.carryo%2Fwebsite-publisher?ref=badge)
HTML
<a href="https://glimind.com/server/mcp-registry%2Fio.carryo%2Fwebsite-publisher?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.carryo%2Fwebsite-publisher.svg" alt="MCP agent-readiness"></a>
reStructuredText
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.carryo%2Fwebsite-publisher.svg
   :target: https://glimind.com/server/mcp-registry%2Fio.carryo%2Fwebsite-publisher?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:341be9a45f48a4c2…, first seen 2026-10-17, included at leaf 3942 of 74,962. Version history · verify what your client received.

Tools (13)

Compare: most reliable productivity servers · most reliable communication servers · most reliable web 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 Carryo Website Publisher MCP server down right now?

As of 2026-10-26 19:17 UTC, the Carryo Website Publisher 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 Carryo Website Publisher MCP server provide?

Carryo Website Publisher MCP server advertises 13 tools, including account.check_publishing, team.list, website.edit, website.edit_images, website.library.

How do I install Carryo Website Publisher MCP server?

Point your MCP client at this streamable-http endpoint: https://mcp.carryo.io/mcp

Is the Carryo Website Publisher MCP server safe to connect to an AI agent?

Glimind scanned all 13 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 Carryo Website Publisher 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