Server definition
- Hash
- sha256:3f2a2161f0231a58a36b2e739cc5fb8e0464a2b78b807108fd501c0100904af7
- What it is
- What a remote MCP server returned when asked what it offers: 7 tools
The blob, as servednamed by its sha256
{
"instructions": "deed.page publishes static files to a permanent public HTTPS URL. No account, email code, or claim link.\nFlow: call publish_site with a files map and a slug. The first call without a token returns \"token\" once: keep it and pass it (Authorization: Bearer header or the \"token\" argument) to update_site, delete_site, list_sites. There is no way to recover a lost token.\nSlugs must already match ^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$ (lowercase, 1-63, no leading or trailing hyphen). They are not rewritten. Reserved names (www, api, hello, my-page, and other docs examples) return an error.\nFile paths are stored exactly as given. merge=true overwrites only the paths you send and leaves every other path alone.\nSites never expire unless ttl_seconds is set. Up to ~4 MB per call; for bigger sites call update_site again with merge=true to add files. Custom domains are not supported. Previous file sets are not stored; publish the earlier files again to undo a change.",
"tools": [
{
"description": "Use this only when the user explicitly asks to take a site down. Permanently removes the slug you own; the slug becomes free.",
"inputSchema": {
"properties": {
"slug": {
"description": "Slug you own.",
"type": "string"
},
"token": {
"description": "Bearer token returned by your first publish (deed_tok_...). Optional if the MCP client sends Authorization: Bearer.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "delete_site",
"outputSchema": null
},
{
"description": "Use this to check whether a slug is live and read its URL, version, size, and timestamps. Public; no token needed.",
"inputSchema": {
"properties": {
"slug": {
"description": "Slug to look up.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_site",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"properties": {
"plan": {
"description": "Plan to buy.",
"enum": [
"hobby",
"pro"
],
"type": "string"
},
"token": {
"description": "Bearer token returned by your first publish (deed_tok_...). Optional if the MCP client sends Authorization: Bearer.",
"type": "string"
}
},
"required": [
"plan"
],
"type": "object"
},
"name": "get_upgrade_link",
"outputSchema": null
},
{
"description": "Use this to list every live site owned by your token, with URLs and versions.",
"inputSchema": {
"properties": {
"token": {
"description": "Bearer token returned by your first publish (deed_tok_...). Optional if the MCP client sends Authorization: Bearer.",
"type": "string"
}
},
"type": "object"
},
"name": "list_sites",
"outputSchema": null
},
{
"description": "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. Paths are stored exactly. Returns {url, slug, version, token?}. The token appears only on the first anonymous publish; store it. There is no recovery if you lose it.",
"inputSchema": {
"properties": {
"files": {
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"properties": {
"base64": {
"type": "string"
},
"content": {
"type": "string"
}
},
"type": "object"
}
]
},
"description": "Map of relative path to file contents. Paths are stored exactly as given (a single top-level directory is not removed). Text as a string, binary as {\"base64\":\"...\"}. Example: {\"index.html\":\"<!doctype html><h1>Hi</h1>\",\"img/logo.png\":{\"base64\":\"iVBOR...\"}}",
"type": "object"
},
"merge": {
"description": "Add or overwrite only these exact paths on the existing site. Paths omitted from this call are left unchanged. Nothing is moved to the site root.",
"type": "boolean"
},
"slug": {
"description": "Exact slug matching ^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$ (lowercase letters, digits, hyphens, 1-63, no leading or trailing hyphen). Invalid slugs return slug_invalid and are not rewritten. Reserved names (hello, my-page, www, api, docs, admin, mcp, blog, app, status, and other docs examples) return slug_reserved on a new claim. A token that already owns one can still update it. Omit for a random slug.",
"type": "string"
},
"spa": {
"description": "Serve index.html for unknown paths (single-page apps).",
"type": "boolean"
},
"token": {
"description": "Bearer token returned by your first publish (deed_tok_...). Optional if the MCP client sends Authorization: Bearer.",
"type": "string"
},
"ttl_seconds": {
"description": "Opt-in expiry in seconds. Omit for a permanent site.",
"type": "integer"
}
},
"required": [
"files"
],
"type": "object"
},
"name": "publish_site",
"outputSchema": null
},
{
"description": "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. There is no restore-version call; send the previous files again to undo. Returns the same shape as publish_site with a bumped version.",
"inputSchema": {
"properties": {
"files": {
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"properties": {
"base64": {
"type": "string"
},
"content": {
"type": "string"
}
},
"type": "object"
}
]
},
"description": "Map of relative path to file contents. Paths are stored exactly as given (a single top-level directory is not removed). Text as a string, binary as {\"base64\":\"...\"}. Example: {\"index.html\":\"<!doctype html><h1>Hi</h1>\",\"img/logo.png\":{\"base64\":\"iVBOR...\"}}",
"type": "object"
},
"merge": {
"description": "Keep every path you do not send, and add or overwrite only these exact paths.",
"type": "boolean"
},
"slug": {
"description": "Slug you own. Must match ^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$. Not rewritten. Reserved slugs are rejected.",
"type": "string"
},
"spa": {
"description": "Serve index.html for unknown paths.",
"type": "boolean"
},
"token": {
"description": "Bearer token returned by your first publish (deed_tok_...). Optional if the MCP client sends Authorization: Bearer.",
"type": "string"
}
},
"required": [
"slug",
"files"
],
"type": "object"
},
"name": "update_site",
"outputSchema": null
},
{
"description": "Use this to read your plan, limits, and how many sites your token owns.",
"inputSchema": {
"properties": {
"token": {
"description": "Bearer token returned by your first publish (deed_tok_...). Optional if the MCP client sends Authorization: Bearer.",
"type": "string"
}
},
"type": "object"
},
"name": "whoami",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:3f2a2161f0231a58a36b2e739cc5fb8e0464a2b78b807108fd501c0100904af7 | sha256sum