{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_m5nfhff2v7fc","handle":"deed-page","url":"https://wellknown.network/agents/deed-page","links":{"self":"https://wellknown.network/agents/deed-page/record.json","html":"https://wellknown.network/agents/deed-page","markdown":"https://wellknown.network/agents/deed-page/record.md","api":"https://wellknown.network/api/v1/agents/deed-page","status":"https://wellknown.network/api/v1/agents/deed-page/status","claim":"https://wellknown.network/agents/deed-page/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/deed-page/claim.json","badge":"https://wellknown.network/agents/deed-page/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/deed-page/history","tools":"https://wellknown.network/api/v1/agents/deed-page/tools"},"ard":{"identifier":"urn:air:deed.page:agent:deed-page","type":"application/a2a-agent-card+json"},"kind":"agent","declared":{"name":"deed.page","summary":"Permanent static hosting for AI agents. One PUT/POST returns a live URL at an agent-chosen slug. No account, email, or claim link.","description":"Permanent static hosting for AI agents. One PUT/POST returns a live URL at an agent-chosen slug. No account, email, or claim link.","publisher":{"name":"Avatar 8 LLC","url":"https://deed.page"},"homepage":"https://deed.page/docs","repository":null,"version":"1.0.0","license":null,"protocols":["a2a","mcp"],"tags":["hosting","static-site","publish","deploy","update"],"pricing":null,"endpoints":[{"url":"https://deed.page/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":[{"id":"publish_site","name":"Publish a site","tags":["hosting","static-site","publish","deploy"],"description":"Publish files (tarball, multipart, or JSON map) to a permanent URL at a chosen slug."},{"id":"update_site","name":"Update a site","tags":["hosting","update"],"description":"Replace or merge files on a slug you own using the minted Bearer token."}],"tools":["Publish a site","Update a site"],"extra":{"updatedAt":"2026-09-29T11:57:36.161006Z","inputModes":["application/json","application/gzip","text/html"],"outputModes":["application/json"],"publishedAt":"2026-09-29T11:57:36.161006Z","capabilities":{"streaming":false,"pushNotifications":false},"registryName":"page.deed/deed-page","protocolVersion":"0.3.0"},"attribution":{"kind":"a2a_card","name":"a2a_card","summary":"a2a_card","version":"a2a_card","description":"a2a_card","homepageUrl":"a2a_card","publisherUrl":"a2a_card","publisherName":"a2a_card"}},"derived":{"capabilities":[{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":1,"provenance":"declared"},{"slug":"data.web-scraping","name":"Web Scraping","confidence":0.51,"provenance":"derived"},{"slug":"communication.notifications","name":"Notifications","confidence":0.51,"provenance":"derived"},{"slug":"security.secrets","name":"Secrets Management","confidence":0.51,"provenance":"derived"}],"categories":["commerce","communication","data","dev","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 2h ago.","lastOkAt":"2026-10-11T04:25:36.118Z","lastProbedAt":"2026-10-11T04:25:36.118Z","statusComputedAt":"2026-10-11T04:26:51.319Z","reliability30d":{"probes":41,"successRate":1,"p50Ms":150,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":41,"ok":41,"authBoundaryOk":0,"serviceOk":41,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-11T04:25:36.118Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":173,"error":null,"detail":{"tools":[{"name":"publish_site","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 exa"},{"name":"update_site","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. To undo, call restore_version. "},{"name":"get_site","description":"Use this to check whether a slug is live and read its URL, version, size, and timestamps. Public; no token needed."},{"name":"list_sites","description":"Use this to list every live site owned by your token, with URLs and versions."},{"name":"delete_site","description":"Use this only when the user explicitly asks to take a site down. Permanently removes the slug you own and detaches its custom hostnames. The slug becomes free."},{"name":"rotate_token","description":"Use this after a leak, or to retire a token an agent should stop using. Issues a new token for the same principal. Every site carries over. The previous token s"},{"name":"revoke_token","description":"Use this when a token has leaked and you do not want a replacement yet. scope \"current\" (default) revokes the token you sent. scope \"all\" revokes every token fo"},{"name":"whoami","description":"Use this to read your plan, limits, how many sites your token owns, and how many custom hostnames it has attached."},{"name":"get_upgrade_link","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"},{"name":"list_versions","description":"Use this to see every retained version of a slug you own, newest first. Each entry has version, created_at, file_count, bytes, kind (publish, merge, or restore)"},{"name":"restore_version","description":"Use this to undo a publish. Creates a new version whose files equal the retained version, without re-uploading. Pass expected_version (the live vN). A mismatch "},{"name":"add_domain","description":"Use this when the user wants their own hostname on a site they own. Adds the hostname to the project and returns dns_records to create: a CNAME for a subdomain,"},{"name":"list_domains","description":"Use this to list custom hostnames on one slug, or on every site your token owns when slug is omitted. Status is the last checked value. Call domain_status to re"},{"name":"remove_domain","description":"Use this when the user wants a hostname detached. Removes it from the project so requests to that host no longer serve the site."},{"name":"domain_status","description":"Use this after add_domain, once DNS might have propagated. Refreshes verification, DNS config, and certificate state. status is pending_dns, verifying, issuing_"},{"name":"plan_upload","description":"Use this when the site is larger than about 4 MB, or when you already know each file's sha256. Send a manifest of {path, sha256, size, content_type?}. Returns w"},{"name":"finalize_upload","description":"Use this after plan_upload, once every missing blob has been uploaded. Checks hashes, screens the new bytes, and commits one version under the slug lock. A stal"},{"name":"get_manifest","description":"Public. Returns the canonical manifest (paths, sha256, sizes, version, slug, created_at) and an Ed25519 signature, or signature null when the server has no sign"},{"name":"site_analytics","description":"Owner-only cookieless counts for a slug: views per UTC day, top paths, top referrer hosts, and AI crawler counts by user-agent family. from and to are YYYY-MM-D"},{"name":"set_site_access","description":"Hobby and Pro only. Sets a password (8 to 200 characters) or clears it when password is null. The hash is scrypt. Visitors get a host-only HttpOnly Secure cooki"},{"name":"create_webhook","description":"Registers an http(s) URL for site.published, site.version_restored, site.deleted, site.taken_down, domain.active, and report.received. The HMAC secret is return"},{"name":"list_webhooks","description":"Lists webhook URLs for your token. Secrets are not included."},{"name":"delete_webhook","description":"Deletes one webhook by id from list_webhooks or create_webhook."}],"toolCount":23,"toolsHash":"57c111a633a939cc5ec7e6a154573ac941823f08dfc69aa1c6b2592e4dba04a2","serverName":"deed.page","capabilities":["tools"],"serverVersion":"1.9.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T21:26:01.278Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":401,"error":null,"detail":{"tools":[{"name":"publish_site","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 exa"},{"name":"update_site","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. To undo, call restore_version. "},{"name":"get_site","description":"Use this to check whether a slug is live and read its URL, version, size, and timestamps. Public; no token needed."},{"name":"list_sites","description":"Use this to list every live site owned by your token, with URLs and versions."},{"name":"delete_site","description":"Use this only when the user explicitly asks to take a site down. Permanently removes the slug you own and detaches its custom hostnames. The slug becomes free."},{"name":"rotate_token","description":"Use this after a leak, or to retire a token an agent should stop using. Issues a new token for the same principal. Every site carries over. The previous token s"},{"name":"revoke_token","description":"Use this when a token has leaked and you do not want a replacement yet. scope \"current\" (default) revokes the token you sent. scope \"all\" revokes every token fo"},{"name":"whoami","description":"Use this to read your plan, limits, how many sites your token owns, and how many custom hostnames it has attached."},{"name":"get_upgrade_link","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"},{"name":"list_versions","description":"Use this to see every retained version of a slug you own, newest first. Each entry has version, created_at, file_count, bytes, kind (publish, merge, or restore)"},{"name":"restore_version","description":"Use this to undo a publish. Creates a new version whose files equal the retained version, without re-uploading. Pass expected_version (the live vN). A mismatch "},{"name":"add_domain","description":"Use this when the user wants their own hostname on a site they own. Adds the hostname to the project and returns dns_records to create: a CNAME for a subdomain,"},{"name":"list_domains","description":"Use this to list custom hostnames on one slug, or on every site your token owns when slug is omitted. Status is the last checked value. Call domain_status to re"},{"name":"remove_domain","description":"Use this when the user wants a hostname detached. Removes it from the project so requests to that host no longer serve the site."},{"name":"domain_status","description":"Use this after add_domain, once DNS might have propagated. Refreshes verification, DNS config, and certificate state. status is pending_dns, verifying, issuing_"},{"name":"plan_upload","description":"Use this when the site is larger than about 4 MB, or when you already know each file's sha256. Send a manifest of {path, sha256, size, content_type?}. Returns w"},{"name":"finalize_upload","description":"Use this after plan_upload, once every missing blob has been uploaded. Checks hashes, screens the new bytes, and commits one version under the slug lock. A stal"},{"name":"get_manifest","description":"Public. Returns the canonical manifest (paths, sha256, sizes, version, slug, created_at) and an Ed25519 signature, or signature null when the server has no sign"},{"name":"site_analytics","description":"Owner-only cookieless counts for a slug: views per UTC day, top paths, top referrer hosts, and AI crawler counts by user-agent family. from and to are YYYY-MM-D"},{"name":"set_site_access","description":"Hobby and Pro only. Sets a password (8 to 200 characters) or clears it when password is null. The hash is scrypt. Visitors get a host-only HttpOnly Secure cooki"},{"name":"create_webhook","description":"Registers an http(s) URL for site.published, site.version_restored, site.deleted, site.taken_down, domain.active, and report.received. The HMAC secret is return"},{"name":"list_webhooks","description":"Lists webhook URLs for your token. Secrets are not included."},{"name":"delete_webhook","description":"Deletes one webhook by id from list_webhooks or create_webhook."}],"toolCount":23,"toolsHash":"57c111a633a939cc5ec7e6a154573ac941823f08dfc69aa1c6b2592e4dba04a2","serverName":"deed.page","capabilities":["tools"],"serverVersion":"1.9.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T15:32:06.924Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":162,"error":null,"detail":{"tools":[{"name":"publish_site","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 exa"},{"name":"update_site","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. To undo, call restore_version. "},{"name":"get_site","description":"Use this to check whether a slug is live and read its URL, version, size, and timestamps. Public; no token needed."},{"name":"list_sites","description":"Use this to list every live site owned by your token, with URLs and versions."},{"name":"delete_site","description":"Use this only when the user explicitly asks to take a site down. Permanently removes the slug you own and detaches its custom hostnames. The slug becomes free."},{"name":"rotate_token","description":"Use this after a leak, or to retire a token an agent should stop using. Issues a new token for the same principal. Every site carries over. The previous token s"},{"name":"revoke_token","description":"Use this when a token has leaked and you do not want a replacement yet. scope \"current\" (default) revokes the token you sent. scope \"all\" revokes every token fo"},{"name":"whoami","description":"Use this to read your plan, limits, how many sites your token owns, and how many custom hostnames it has attached."},{"name":"get_upgrade_link","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"},{"name":"list_versions","description":"Use this to see every retained version of a slug you own, newest first. Each entry has version, created_at, file_count, bytes, kind (publish, merge, or restore)"},{"name":"restore_version","description":"Use this to undo a publish. Creates a new version whose files equal the retained version, without re-uploading. Pass expected_version (the live vN). A mismatch "},{"name":"add_domain","description":"Use this when the user wants their own hostname on a site they own. Adds the hostname to the project and returns dns_records to create: a CNAME for a subdomain,"},{"name":"list_domains","description":"Use this to list custom hostnames on one slug, or on every site your token owns when slug is omitted. Status is the last checked value. Call domain_status to re"},{"name":"remove_domain","description":"Use this when the user wants a hostname detached. Removes it from the project so requests to that host no longer serve the site."},{"name":"domain_status","description":"Use this after add_domain, once DNS might have propagated. Refreshes verification, DNS config, and certificate state. status is pending_dns, verifying, issuing_"},{"name":"plan_upload","description":"Use this when the site is larger than about 4 MB, or when you already know each file's sha256. Send a manifest of {path, sha256, size, content_type?}. Returns w"},{"name":"finalize_upload","description":"Use this after plan_upload, once every missing blob has been uploaded. Checks hashes, screens the new bytes, and commits one version under the slug lock. A stal"},{"name":"get_manifest","description":"Public. Returns the canonical manifest (paths, sha256, sizes, version, slug, created_at) and an Ed25519 signature, or signature null when the server has no sign"},{"name":"site_analytics","description":"Owner-only cookieless counts for a slug: views per UTC day, top paths, top referrer hosts, and AI crawler counts by user-agent family. from and to are YYYY-MM-D"},{"name":"set_site_access","description":"Hobby and Pro only. Sets a password (8 to 200 characters) or clears it when password is null. The hash is scrypt. Visitors get a host-only HttpOnly Secure cooki"},{"name":"create_webhook","description":"Registers an http(s) URL for site.published, site.version_restored, site.deleted, site.taken_down, domain.active, and report.received. The HMAC secret is return"},{"name":"list_webhooks","description":"Lists webhook URLs for your token. Secrets are not included."},{"name":"delete_webhook","description":"Deletes one webhook by id from list_webhooks or create_webhook."}],"toolCount":23,"toolsHash":"57c111a633a939cc5ec7e6a154573ac941823f08dfc69aa1c6b2592e4dba04a2","serverName":"deed.page","capabilities":["tools"],"serverVersion":"1.9.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T09:24:26.385Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":167,"error":null,"detail":{"tools":[{"name":"publish_site","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 exa"},{"name":"update_site","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. To undo, call restore_version. "},{"name":"get_site","description":"Use this to check whether a slug is live and read its URL, version, size, and timestamps. Public; no token needed."},{"name":"list_sites","description":"Use this to list every live site owned by your token, with URLs and versions."},{"name":"delete_site","description":"Use this only when the user explicitly asks to take a site down. Permanently removes the slug you own and detaches its custom hostnames. The slug becomes free."},{"name":"rotate_token","description":"Use this after a leak, or to retire a token an agent should stop using. Issues a new token for the same principal. Every site carries over. The previous token s"},{"name":"revoke_token","description":"Use this when a token has leaked and you do not want a replacement yet. scope \"current\" (default) revokes the token you sent. scope \"all\" revokes every token fo"},{"name":"whoami","description":"Use this to read your plan, limits, how many sites your token owns, and how many custom hostnames it has attached."},{"name":"get_upgrade_link","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"},{"name":"list_versions","description":"Use this to see every retained version of a slug you own, newest first. Each entry has version, created_at, file_count, bytes, kind (publish, merge, or restore)"},{"name":"restore_version","description":"Use this to undo a publish. Creates a new version whose files equal the retained version, without re-uploading. Pass expected_version (the live vN). A mismatch "},{"name":"add_domain","description":"Use this when the user wants their own hostname on a site they own. Adds the hostname to the project and returns dns_records to create: a CNAME for a subdomain,"},{"name":"list_domains","description":"Use this to list custom hostnames on one slug, or on every site your token owns when slug is omitted. Status is the last checked value. Call domain_status to re"},{"name":"remove_domain","description":"Use this when the user wants a hostname detached. Removes it from the project so requests to that host no longer serve the site."},{"name":"domain_status","description":"Use this after add_domain, once DNS might have propagated. Refreshes verification, DNS config, and certificate state. status is pending_dns, verifying, issuing_"},{"name":"plan_upload","description":"Use this when the site is larger than about 4 MB, or when you already know each file's sha256. Send a manifest of {path, sha256, size, content_type?}. Returns w"},{"name":"finalize_upload","description":"Use this after plan_upload, once every missing blob has been uploaded. Checks hashes, screens the new bytes, and commits one version under the slug lock. A stal"},{"name":"get_manifest","description":"Public. Returns the canonical manifest (paths, sha256, sizes, version, slug, created_at) and an Ed25519 signature, or signature null when the server has no sign"},{"name":"site_analytics","description":"Owner-only cookieless counts for a slug: views per UTC day, top paths, top referrer hosts, and AI crawler counts by user-agent family. from and to are YYYY-MM-D"},{"name":"set_site_access","description":"Hobby and Pro only. Sets a password (8 to 200 characters) or clears it when password is null. The hash is scrypt. Visitors get a host-only HttpOnly Secure cooki"},{"name":"create_webhook","description":"Registers an http(s) URL for site.published, site.version_restored, site.deleted, site.taken_down, domain.active, and report.received. The HMAC secret is return"},{"name":"list_webhooks","description":"Lists webhook URLs for your token. Secrets are not included."},{"name":"delete_webhook","description":"Deletes one webhook by id from list_webhooks or create_webhook."}],"toolCount":23,"toolsHash":"57c111a633a939cc5ec7e6a154573ac941823f08dfc69aa1c6b2592e4dba04a2","serverName":"deed.page","capabilities":["tools"],"serverVersion":"1.9.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T03:26:54.014Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":171,"error":null,"detail":{"tools":[{"name":"publish_site","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 exa"},{"name":"update_site","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. To undo, call restore_version. "},{"name":"get_site","description":"Use this to check whether a slug is live and read its URL, version, size, and timestamps. Public; no token needed."},{"name":"list_sites","description":"Use this to list every live site owned by your token, with URLs and versions."},{"name":"delete_site","description":"Use this only when the user explicitly asks to take a site down. Permanently removes the slug you own and detaches its custom hostnames. The slug becomes free."},{"name":"rotate_token","description":"Use this after a leak, or to retire a token an agent should stop using. Issues a new token for the same principal. Every site carries over. The previous token s"},{"name":"revoke_token","description":"Use this when a token has leaked and you do not want a replacement yet. scope \"current\" (default) revokes the token you sent. scope \"all\" revokes every token fo"},{"name":"whoami","description":"Use this to read your plan, limits, how many sites your token owns, and how many custom hostnames it has attached."},{"name":"get_upgrade_link","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"},{"name":"list_versions","description":"Use this to see every retained version of a slug you own, newest first. Each entry has version, created_at, file_count, bytes, kind (publish, merge, or restore)"},{"name":"restore_version","description":"Use this to undo a publish. Creates a new version whose files equal the retained version, without re-uploading. Pass expected_version (the live vN). A mismatch "},{"name":"add_domain","description":"Use this when the user wants their own hostname on a site they own. Adds the hostname to the project and returns dns_records to create: a CNAME for a subdomain,"},{"name":"list_domains","description":"Use this to list custom hostnames on one slug, or on every site your token owns when slug is omitted. Status is the last checked value. Call domain_status to re"},{"name":"remove_domain","description":"Use this when the user wants a hostname detached. Removes it from the project so requests to that host no longer serve the site."},{"name":"domain_status","description":"Use this after add_domain, once DNS might have propagated. Refreshes verification, DNS config, and certificate state. status is pending_dns, verifying, issuing_"},{"name":"plan_upload","description":"Use this when the site is larger than about 4 MB, or when you already know each file's sha256. Send a manifest of {path, sha256, size, content_type?}. Returns w"},{"name":"finalize_upload","description":"Use this after plan_upload, once every missing blob has been uploaded. Checks hashes, screens the new bytes, and commits one version under the slug lock. A stal"},{"name":"get_manifest","description":"Public. Returns the canonical manifest (paths, sha256, sizes, version, slug, created_at) and an Ed25519 signature, or signature null when the server has no sign"},{"name":"site_analytics","description":"Owner-only cookieless counts for a slug: views per UTC day, top paths, top referrer hosts, and AI crawler counts by user-agent family. from and to are YYYY-MM-D"},{"name":"set_site_access","description":"Hobby and Pro only. Sets a password (8 to 200 characters) or clears it when password is null. The hash is scrypt. Visitors get a host-only HttpOnly Secure cooki"},{"name":"create_webhook","description":"Registers an http(s) URL for site.published, site.version_restored, site.deleted, site.taken_down, domain.active, and report.received. The HMAC secret is return"},{"name":"list_webhooks","description":"Lists webhook URLs for your token. Secrets are not included."},{"name":"delete_webhook","description":"Deletes one webhook by id from list_webhooks or create_webhook."}],"toolCount":23,"toolsHash":"43156bb6a83805467857c74e2edca652f422b7cebb61be0c4207ae6e4fdf907e","serverName":"deed.page","capabilities":["tools"],"serverVersion":"1.8.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T21:27:06.560Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":147,"error":null,"detail":{"tools":[{"name":"publish_site","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 exa"},{"name":"update_site","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 cal"},{"name":"get_site","description":"Use this to check whether a slug is live and read its URL, version, size, and timestamps. Public; no token needed."},{"name":"list_sites","description":"Use this to list every live site owned by your token, with URLs and versions."},{"name":"delete_site","description":"Use this only when the user explicitly asks to take a site down. Permanently removes the slug you own; the slug becomes free."},{"name":"whoami","description":"Use this to read your plan, limits, and how many sites your token owns."},{"name":"get_upgrade_link","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"}],"toolCount":7,"toolsHash":"8acfe64556ce37819824ce3fdacbe4f42954b0873291acde29fd432f9e6b79f8","serverName":"deed.page","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T15:32:19.725Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":159,"error":null,"detail":{"tools":[{"name":"publish_site","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 exa"},{"name":"update_site","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 cal"},{"name":"get_site","description":"Use this to check whether a slug is live and read its URL, version, size, and timestamps. Public; no token needed."},{"name":"list_sites","description":"Use this to list every live site owned by your token, with URLs and versions."},{"name":"delete_site","description":"Use this only when the user explicitly asks to take a site down. Permanently removes the slug you own; the slug becomes free."},{"name":"whoami","description":"Use this to read your plan, limits, and how many sites your token owns."},{"name":"get_upgrade_link","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"}],"toolCount":7,"toolsHash":"8acfe64556ce37819824ce3fdacbe4f42954b0873291acde29fd432f9e6b79f8","serverName":"deed.page","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T09:27:30.868Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":306,"error":null,"detail":{"tools":[{"name":"publish_site","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 exa"},{"name":"update_site","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 cal"},{"name":"get_site","description":"Use this to check whether a slug is live and read its URL, version, size, and timestamps. Public; no token needed."},{"name":"list_sites","description":"Use this to list every live site owned by your token, with URLs and versions."},{"name":"delete_site","description":"Use this only when the user explicitly asks to take a site down. Permanently removes the slug you own; the slug becomes free."},{"name":"whoami","description":"Use this to read your plan, limits, and how many sites your token owns."},{"name":"get_upgrade_link","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"}],"toolCount":7,"toolsHash":"8acfe64556ce37819824ce3fdacbe4f42954b0873291acde29fd432f9e6b79f8","serverName":"deed.page","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T02:27:52.329Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":125,"error":null,"detail":{"tools":[{"name":"publish_site","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 exa"},{"name":"update_site","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 cal"},{"name":"get_site","description":"Use this to check whether a slug is live and read its URL, version, size, and timestamps. Public; no token needed."},{"name":"list_sites","description":"Use this to list every live site owned by your token, with URLs and versions."},{"name":"delete_site","description":"Use this only when the user explicitly asks to take a site down. Permanently removes the slug you own; the slug becomes free."},{"name":"whoami","description":"Use this to read your plan, limits, and how many sites your token owns."},{"name":"get_upgrade_link","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"}],"toolCount":7,"toolsHash":"8acfe64556ce37819824ce3fdacbe4f42954b0873291acde29fd432f9e6b79f8","serverName":"deed.page","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T20:25:12.058Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":138,"error":null,"detail":{"tools":[{"name":"publish_site","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 exa"},{"name":"update_site","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 cal"},{"name":"get_site","description":"Use this to check whether a slug is live and read its URL, version, size, and timestamps. Public; no token needed."},{"name":"list_sites","description":"Use this to list every live site owned by your token, with URLs and versions."},{"name":"delete_site","description":"Use this only when the user explicitly asks to take a site down. Permanently removes the slug you own; the slug becomes free."},{"name":"whoami","description":"Use this to read your plan, limits, and how many sites your token owns."},{"name":"get_upgrade_link","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"}],"toolCount":7,"toolsHash":"8acfe64556ce37819824ce3fdacbe4f42954b0873291acde29fd432f9e6b79f8","serverName":"deed.page","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"publish_site","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 exa"},{"name":"update_site","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. To undo, call restore_version. "},{"name":"get_site","description":"Use this to check whether a slug is live and read its URL, version, size, and timestamps. Public; no token needed."},{"name":"list_sites","description":"Use this to list every live site owned by your token, with URLs and versions."},{"name":"delete_site","description":"Use this only when the user explicitly asks to take a site down. Permanently removes the slug you own and detaches its custom hostnames. The slug becomes free."},{"name":"rotate_token","description":"Use this after a leak, or to retire a token an agent should stop using. Issues a new token for the same principal. Every site carries over. The previous token s"},{"name":"revoke_token","description":"Use this when a token has leaked and you do not want a replacement yet. scope \"current\" (default) revokes the token you sent. scope \"all\" revokes every token fo"},{"name":"whoami","description":"Use this to read your plan, limits, how many sites your token owns, and how many custom hostnames it has attached."},{"name":"get_upgrade_link","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"},{"name":"list_versions","description":"Use this to see every retained version of a slug you own, newest first. Each entry has version, created_at, file_count, bytes, kind (publish, merge, or restore)"},{"name":"restore_version","description":"Use this to undo a publish. Creates a new version whose files equal the retained version, without re-uploading. Pass expected_version (the live vN). A mismatch "},{"name":"add_domain","description":"Use this when the user wants their own hostname on a site they own. Adds the hostname to the project and returns dns_records to create: a CNAME for a subdomain,"},{"name":"list_domains","description":"Use this to list custom hostnames on one slug, or on every site your token owns when slug is omitted. Status is the last checked value. Call domain_status to re"},{"name":"remove_domain","description":"Use this when the user wants a hostname detached. Removes it from the project so requests to that host no longer serve the site."},{"name":"domain_status","description":"Use this after add_domain, once DNS might have propagated. Refreshes verification, DNS config, and certificate state. status is pending_dns, verifying, issuing_"},{"name":"plan_upload","description":"Use this when the site is larger than about 4 MB, or when you already know each file's sha256. Send a manifest of {path, sha256, size, content_type?}. Returns w"},{"name":"finalize_upload","description":"Use this after plan_upload, once every missing blob has been uploaded. Checks hashes, screens the new bytes, and commits one version under the slug lock. A stal"},{"name":"get_manifest","description":"Public. Returns the canonical manifest (paths, sha256, sizes, version, slug, created_at) and an Ed25519 signature, or signature null when the server has no sign"},{"name":"site_analytics","description":"Owner-only cookieless counts for a slug: views per UTC day, top paths, top referrer hosts, and AI crawler counts by user-agent family. from and to are YYYY-MM-D"},{"name":"set_site_access","description":"Hobby and Pro only. Sets a password (8 to 200 characters) or clears it when password is null. The hash is scrypt. Visitors get a host-only HttpOnly Secure cooki"},{"name":"create_webhook","description":"Registers an http(s) URL for site.published, site.version_restored, site.deleted, site.taken_down, domain.active, and report.received. The HMAC secret is return"},{"name":"list_webhooks","description":"Lists webhook URLs for your token. Secrets are not included."},{"name":"delete_webhook","description":"Deletes one webhook by id from list_webhooks or create_webhook."}],"package":null,"toolSurface":{"id":"ts_vt7yzavd8gx6","endpointId":"ep_95fwffcgdt8e","hash":"57c111a633a939cc5ec7e6a154573ac941823f08dfc69aa1c6b2592e4dba04a2","toolCount":23,"serverName":"deed.page","serverVersion":"1.9.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-10T09:24:26.380Z","lastSeenAt":"2026-10-11T04:25:36.098Z","observations":4,"toolNames":["publish_site","update_site","get_site","list_sites","delete_site","rotate_token","revoke_token","whoami","get_upgrade_link","list_versions","restore_version","add_domain","list_domains","remove_domain","domain_status","plan_upload","finalize_upload","get_manifest","site_analytics","set_site_access","create_webhook","list_webhooks","delete_webhook"],"distinctSurfaces":4},"endpointFacts":[{"id":"ep_95fwffcgdt8e","url":"https://deed.page/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-07T17:28:21.863Z","auth":{"observedAt":"2026-10-07T17:28:21.904Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-07T17:28:21.923Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"deed.page","issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validFrom":"2026-09-29T10:43:56.000Z","validTo":"2026-12-28T10:43:55.000Z","daysToExpiry":78,"sanCount":1,"fingerprint256":"9C:0F:ED:01:8C:12:BF:0D:40:AD:AF:FE:C2:0D:25:11:28:2D:CD:C9:D4:CC:73:14:48:A4:34:DC:D0:48:4D:8E"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"page.deed/deed-page","url":"https://registry.modelcontextprotocol.io/v0/servers/page.deed%2Fdeed-page","firstSeenAt":"2026-09-30T04:22:34.583Z","fetchedAt":"2026-10-08T19:19:58.929Z","normalizedAt":"2026-10-08T19:19:58.929Z"},{"source":"a2a_card","key":"https://deed.page/.well-known/agent-card.json","url":"https://deed.page/.well-known/agent-card.json","firstSeenAt":"2026-09-30T04:23:04.734Z","fetchedAt":"2026-09-30T04:23:04.734Z","normalizedAt":"2026-09-30T04:23:04.734Z"}]},"firstSeenAt":"2026-09-30T04:22:34.583Z","updatedAt":"2026-10-11T04:27:55.969Z"}