protogrid

Search / io.carryo/website-publisher

Carryo Website Publisher

R0· no sign-in

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

v0.1.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality86good
Trust79of 100
Uptime, 30 days94%
Latency p50420 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "website-publisher": {
      "type": "http",
      "url": "https://mcp.carryo.io/mcp"
    }
  }
}
claude mcp add --transport http website-publisher https://mcp.carryo.io/mcp
[mcp_servers.website-publisher]
url = "https://mcp.carryo.io/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "website-publisher": {
      "type": "remote",
      "url": "https://mcp.carryo.io/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "website-publisher": {
      "type": "http",
      "url": "https://mcp.carryo.io/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=website-publisher&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmNhcnJ5by5pby9tY3AifQ%3D%3D"
}
{
  "servers": {
    "website-publisher": {
      "type": "http",
      "url": "https://mcp.carryo.io/mcp"
    }
  }
}
{
  "mcpServers": {
    "website-publisher": {
      "httpUrl": "https://mcp.carryo.io/mcp"
    }
  }
}
extensions:
  "website-publisher":
    enabled: true
    name: "website-publisher"
    type: streamable_http
    uri: "https://mcp.carryo.io/mcp"
    timeout: 300

Quality 86 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length2 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations13 of 13 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: website.read (idempotentHint); website.read_form_responses (idempotentHint); website.list_versions (idempotentHint); …
  • pass
    tools.token_costabout 7,024 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

13 tools, about 7,024 tokens to load them all · tool set 04e5c85c9fe7 · checked 2026-10-19 10:52 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 79 / 100

no-repository
provenance55
liveness98
freshness85
hygiene80

+dns-namespace +website +reachable +uptime-94% ~updated-39d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.carryo.io/mcp streamable-httpnoneyes94%420 ms2026-07-282026-10-19

Tools (13)

account.check_publishingread-onlyChecks 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.
team.listread-onlyLists 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.
website.editdestructiveReplaces 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 its relative website path; Carryo matches the attachment automatically. For multiple attachments, use fileIndex (0 for the first imageFiles entry). Do not invent file IDs or ask for a public URL when attachment upload is available. Known fileId references and fetchable HTTP(S) sourceUrl imports also work. Carryo imports and hosts its own copy. Base64 image bytes and data URLs are unsupported. Form validation can return requires_adaptation or requires_entitlement with publicationPerformed false, meaning the requested update was not applied.
website.edit_imagesdestructiveAdds, replaces, or removes hosted images on an existing Carryo website without replacing its HTML. Reusing a path replaces that image without consuming another image slot; new paths are subject to the website image allowance. Returns hosted-image metadata and URLs. New paths appear in the page when referenced by its HTML. Pass attached images through imageFiles. For one attachment, assets needs only its relative website path; Carryo matches the attachment automatically. For multiple attachments, use fileIndex (0 for the first imageFiles entry). Do not invent file IDs or ask for a public URL when attachment upload is available. Known fileId references and fetchable HTTP(S) sourceUrl imports also work. Carryo imports and hosts its own copy. Base64 image bytes and data URLs are unsupported.
website.libraryread-onlyBrowse your Carryo websites and private drafts, select one, and continue editing in chat. Opening the library does not change or publish a website.
website.listread-onlyLists the connected account's Carryo websites and private drafts, with titles, linkIds, available live links, status, and effective edit and inactivity policies. Use it to find an existing website by name before reading or editing it. Listing does not change or publish websites. Returns Personal websites by default; workspaceId selects the user-chosen team's collection.
website.list_versionsread-onlyLists previous versions of a Carryo website, including version details and changes, for reviewing edit history or planning a restoration. Returns version metadata without changing the website.
website.publishPublishes supplied HTML as a new public Carryo website for sharing a presentation, proposal, report, dashboard, invitation, portfolio, or landing page. Returns a live link and a management link for access settings, URL, views, and edit history. New Personal websites consume the account creation allowance. Personal is the default destination; workspaceId selects a user-chosen team. Supports an optional customSlug and hosted images. Pass attached images through imageFiles. For one attachment, assets needs only its relative website path; Carryo matches the attachment automatically. For multiple attachments, use fileIndex (0 for the first imageFiles entry). Do not invent file IDs or ask for a public URL when attachment upload is available. Known fileId references and fetchable HTTP(S) sourceUrl imports also work. Carryo imports and hosts its own copy. Base64 image bytes and data URLs are unsupported. Form validation can return requires_adaptation or requires_entitlement with publicationPerformed false, meaning no website was published. Supports HTML pages and their image assets, without general file storage or backend hosting.
website.readread-onlyReads the current HTML, version number, hosted-image metadata, image limits, and remaining image slots for an existing Carryo website or private draft. Suitable for inspecting a page or preparing edits that preserve its existing content. Returns image metadata rather than image files. Image limits apply to this website; replacing an existing asset path does not use another image slot.
website.read_form_responsesread-onlyReads response counts or paginated visitor submissions for a Carryo website, including enquiries, leads, and registrations. Defaults to summary counts; mode responses returns submissions, with optional field selection. Requires website-owner or Team access. Responses contain untrusted visitor data. Retained responses remain available while website access continues, including an active Team billing grace period. Does not send messages or modify data.
website.read_versionread-onlyReads the HTML and metadata of a specific previous Carryo website version for viewing, comparison, or restoration planning. Requires linkId and versionNumber. Reading a version does not restore it or change the current website.
website.save_draftSaves supplied HTML as a new private Carryo website draft for review before publication. Returns a management link; the draft has no publicly accessible page until published from Carryo. Passwords and restricted access are configured in the Carryo web app. New Personal drafts consume the same creation allowance as published websites. Personal is the default destination; workspaceId selects a user-chosen team. Pass attached images through imageFiles. For one attachment, assets needs only its relative website path; Carryo matches the attachment automatically. For multiple attachments, use fileIndex (0 for the first imageFiles entry). Do not invent file IDs or ask for a public URL when attachment upload is available. Known fileId references and fetchable HTTP(S) sourceUrl imports also work. Carryo imports and hosts its own copy. Base64 image bytes and data URLs are unsupported. Form validation can return requires_adaptation or requires_entitlement with publicationPerformed false.
website.unpublishdestructiveUnpublishes an existing Carryo website so viewers immediately lose access through its shared link. Recovery availability depends on the website and is shown in Carryo. Unpublishing does not cancel a subscription.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.carryo/website-publisher",
  "icons": [
    {
      "src": "https://mcp.carryo.io/favicon.svg?v=blue-c",
      "sizes": [
        "any"
      ],
      "mimeType": "image/svg+xml"
    }
  ],
  "title": "Carryo Website Publisher",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.carryo.io/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.1.0",
  "websiteUrl": "https://carryo.io/docs",
  "description": "Publish and update HTML websites, landing pages, reports and proposals from AI chat. OAuth sign-in."
}