{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_wgddvmu5u4pz","handle":"aft-page","url":"https://wellknown.network/agents/aft-page","links":{"self":"https://wellknown.network/agents/aft-page/record.json","html":"https://wellknown.network/agents/aft-page","markdown":"https://wellknown.network/agents/aft-page/record.md","api":"https://wellknown.network/api/v1/agents/aft-page","status":"https://wellknown.network/api/v1/agents/aft-page/status","claim":"https://wellknown.network/agents/aft-page/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/aft-page/claim.json","badge":"https://wellknown.network/agents/aft-page/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:mcp.aft.page:server:aft-page","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"aft.page","summary":"Deploy HTML or dist/ to a live HTTPS URL. No account. Drop, MCP, or CLI.","description":"Deploy HTML or dist/ to a live HTTPS URL. No account. Drop, MCP, or CLI.","publisher":{"name":"page.aft","url":null},"homepage":"https://aft.page/mcp","repository":"https://github.com/vaibhavmule/aft.page","version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.aft.page/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-08-30T16:56:40.025724Z","publishedAt":"2026-08-30T16:56:40.025724Z","registryName":"page.aft/mcp"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":0.885,"provenance":"derived"}],"categories":["dev"]},"observed":{"status":"live","statusReason":"Responded 51m ago.","lastOkAt":"2026-09-08T12:24:03.369Z","lastProbedAt":"2026-09-08T12:24:03.369Z","statusComputedAt":"2026-09-08T12:45:11.611Z","reliability30d":{"probes":3,"successRate":1,"p50Ms":30},"latestObservations":[{"at":"2026-09-08T12:24:03.369Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":38,"error":null,"detail":{"tools":[{"name":"deploy","description":"Publish to a live URL. Pass html (one page) OR files (built site). Plain HTML → html. Vite/React → npm run build, then files from dist/. Next static export → fi"},{"name":"deploy_repo","description":"Same engine as aft.page/run: public GitHub URL → detect → build → live URL. Static is instant; Vite and Next.js build in the background (polls until live or fai"},{"name":"aft_deploys","description":"List rollback-able deploys for a slug. Needs edit_token from .aft/state.json (or the first deploy). Same history the project UI shows after claim."},{"name":"aft_rollback","description":"Point the live slug at a prior deployId from aft_deploys. Same URL. Needs edit_token from .aft/state.json. Claim not required."},{"name":"aft_health","description":"Ping the aft.page deploy API."}],"toolCount":5,"serverName":"aft-page","capabilities":["tools"],"serverVersion":"0.6.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-08T06:25:02.732Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":30,"error":null,"detail":{"tools":[{"name":"deploy","description":"Publish to a live URL. Pass html (one page) OR files (built site). Plain HTML → html. Vite/React → npm run build, then files from dist/. Next static export → fi"},{"name":"deploy_repo","description":"Same engine as aft.page/run: public GitHub URL → detect → build → live URL. Static is instant; Vite and Next.js build in the background (polls until live or fai"},{"name":"aft_deploys","description":"List rollback-able deploys for a slug. Needs edit_token from .aft/state.json (or the first deploy). Same history the project UI shows after claim."},{"name":"aft_rollback","description":"Point the live slug at a prior deployId from aft_deploys. Same URL. Needs edit_token from .aft/state.json. Claim not required."},{"name":"aft_health","description":"Ping the aft.page deploy API."}],"toolCount":5,"serverName":"aft-page","capabilities":["tools"],"serverVersion":"0.6.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-08T00:20:08.200Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":23,"error":null,"detail":{"tools":[{"name":"deploy","description":"Publish to a live URL. Pass html (one page) OR files (built site). Plain HTML → html. Vite/React → npm run build, then files from dist/. Next static export → fi"},{"name":"deploy_repo","description":"Same engine as aft.page/run: public GitHub URL → detect → build → live URL. Static is instant; Vite and Next.js build in the background (polls until live or fai"},{"name":"aft_deploys","description":"List rollback-able deploys for a slug. Needs edit_token from .aft/state.json (or the first deploy). Same history the project UI shows after claim."},{"name":"aft_rollback","description":"Point the live slug at a prior deployId from aft_deploys. Same URL. Needs edit_token from .aft/state.json. Claim not required."},{"name":"aft_health","description":"Ping the aft.page deploy API."}],"toolCount":5,"serverName":"aft-page","capabilities":["tools"],"serverVersion":"0.6.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-07T17:21:57.108Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":53,"error":null,"detail":{"tools":[{"name":"deploy","description":"Publish to a live URL. Pass html (one page) OR files (built site). Plain HTML → html. Vite/React → npm run build, then files from dist/. Next static export → fi"},{"name":"deploy_repo","description":"Same engine as aft.page/run: public GitHub URL → detect → build → live URL. Static is instant; Vite and Next.js build in the background (polls until live or fai"},{"name":"aft_deploys","description":"List rollback-able deploys for a slug. Needs edit_token from .aft/state.json (or the first deploy). Same history the project UI shows after claim."},{"name":"aft_rollback","description":"Point the live slug at a prior deployId from aft_deploys. Same URL. Needs edit_token from .aft/state.json. Claim not required."},{"name":"aft_health","description":"Ping the aft.page deploy API."}],"toolCount":5,"serverName":"aft-page","capabilities":["tools"],"serverVersion":"0.6.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-07T09:29:50.893Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":54,"error":null,"detail":{"tools":[{"name":"deploy","description":"Publish to a live URL. Pass html (one page) OR files (built site). Plain HTML → html. Vite/React → npm run build, then files from dist/. Next static export → fi"},{"name":"deploy_repo","description":"Same engine as aft.page/run: public GitHub URL → detect → build → live URL. Static is instant; Vite and Next.js build in the background (polls until live or fai"},{"name":"aft_deploys","description":"List rollback-able deploys for a slug. Needs edit_token from .aft/state.json (or the first deploy). Same history the project UI shows after claim."},{"name":"aft_rollback","description":"Point the live slug at a prior deployId from aft_deploys. Same URL. Needs edit_token from .aft/state.json. Claim not required."},{"name":"aft_health","description":"Ping the aft.page deploy API."}],"toolCount":5,"serverName":"aft-page","capabilities":["tools"],"serverVersion":"0.6.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"deploy","description":"Publish to a live URL. Pass html (one page) OR files (built site). Plain HTML → html. Vite/React → npm run build, then files from dist/. Next static export → fi"},{"name":"deploy_repo","description":"Same engine as aft.page/run: public GitHub URL → detect → build → live URL. Static is instant; Vite and Next.js build in the background (polls until live or fai"},{"name":"aft_deploys","description":"List rollback-able deploys for a slug. Needs edit_token from .aft/state.json (or the first deploy). Same history the project UI shows after claim."},{"name":"aft_rollback","description":"Point the live slug at a prior deployId from aft_deploys. Same URL. Needs edit_token from .aft/state.json. Claim not required."},{"name":"aft_health","description":"Ping the aft.page deploy API."}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"page.aft/mcp","url":"https://registry.modelcontextprotocol.io/v0/servers/page.aft%2Fmcp","firstSeenAt":"2026-09-07T08:20:41.218Z","fetchedAt":"2026-09-07T08:20:41.218Z","normalizedAt":"2026-09-07T08:20:41.218Z"}]},"firstSeenAt":"2026-09-07T08:20:41.218Z","updatedAt":"2026-09-08T12:45:50.431Z"}