deed.page

Publish static sites to permanent URLs in one call. No account, email code, or claim link.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
97%
Calidad de los nombres
97%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,148Tokens (definiciones de herramientas)
~1.2 KBTamaño de respuesta típico
Impacto moderado en la atención (0.90% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "deed-page": {
      "url": "https://deed.page/mcp"
    }
  }
}

Puntos de conexión remotos

https://deed.page/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (7)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟡publish_site(slug, files, spa, ttl_seconds, merge, ...)

Use this when the user wants something put online, shared as a link, or hosted. Publishes files to a live permanent URL at the chosen slug. Returns {url, slug, version, token?}. The token appears only on the first anonymous publish; store it to update later.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Lowercase letters, digits, hyphens (1-63). Omit for a random slug."
    },
    "files": {
      "type": "object",
      "description": "Map of relative path to file contents. Text as a string, binary as {\"base64\":\"...\"}. Example: {\"index.html\":\"<!doctype html><h1>Hi</h1>\",\"img/logo.png\":{\"base64\":\"iVBOR...\"}}",
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "object",
            "properties": {
              "base64": {
                "type": "string"
              },
              "content": {
                "type": "string"
              }
            }
          }
        ]
      }
    },
    "spa": {
      "type": "boolean",
      "description": "Serve index.html for unknown paths (single-page apps)."
    },
    "ttl_seconds": {
      "type": "integer",
      "description": "Opt-in expiry in seconds. Omit for a permanent site."
    },
    "merge": {
      "type": "boolean",
      "description": "Add these files to the existing site instead of replacing it."
    },
    "token": {
      "type": "string",
      "description": "Bearer token returned by your first publish (deed_tok_...). Optional if the MCP client sends Authorization: Bearer."
    }
  },
  "required": [
    "files"
  ]
}
🔴update_site(slug, files, spa, merge, token)

Use this to replace (or with merge=true, add to) the files of a slug you already own. Requires the token from the first publish. Returns the same shape as publish_site with a bumped version.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Slug you own."
    },
    "files": {
      "type": "object",
      "description": "Map of relative path to file contents. Text as a string, binary as {\"base64\":\"...\"}. Example: {\"index.html\":\"<!doctype html><h1>Hi</h1>\",\"img/logo.png\":{\"base64\":\"iVBOR...\"}}",
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "object",
            "properties": {
              "base64": {
                "type": "string"
              },
              "content": {
                "type": "string"
              }
            }
          }
        ]
      }
    },
    "spa": {
      "type": "boolean",
      "description": "Serve index.html for unknown paths."
    },
    "merge": {
      "type": "boolean",
      "description": "Keep existing files and add/overwrite only these paths."
    },
    "token": {
      "type": "string",
      "description": "Bearer token returned by your first publish (deed_tok_...). Optional if the MCP client sends Authorization: Bearer."
    }
  },
  "required": [
    "slug",
    "files"
  ]
}
🟢get_site(slug)

Use this to check whether a slug is live and read its URL, version, size, and timestamps. Public; no token needed.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Slug to look up."
    }
  },
  "required": [
    "slug"
  ]
}
🟢list_sites(token)

Use this to list every live site owned by your token, with URLs and versions.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "description": "Bearer token returned by your first publish (deed_tok_...). Optional if the MCP client sends Authorization: Bearer."
    }
  }
}
🔴delete_site(slug, token)

Use this only when the user explicitly asks to take a site down. Permanently removes the slug you own; the slug becomes free.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Slug you own."
    },
    "token": {
      "type": "string",
      "description": "Bearer token returned by your first publish (deed_tok_...). Optional if the MCP client sends Authorization: Bearer."
    }
  },
  "required": [
    "slug"
  ]
}
🟢whoami(token)

Use this to read your plan, limits, and how many sites your token owns.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "description": "Bearer token returned by your first publish (deed_tok_...). Optional if the MCP client sends Authorization: Bearer."
    }
  }
}
🟢get_upgrade_link(plan, token)

Use this only when the user asks for higher limits. Returns a Stripe Checkout URL for Hobby ($3/mo) or Pro ($15/mo) tied to your token. A human must open it and pay; nothing is charged by this call.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "enum": [
        "hobby",
        "pro"
      ],
      "description": "Plan to buy."
    },
    "token": {
      "type": "string",
      "description": "Bearer token returned by your first publish (deed_tok_...). Optional if the MCP client sends Authorization: Bearer."
    }
  },
  "required": [
    "plan"
  ]
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada7 herramientas