Just Publish
Server Details
Publish the website you built with AI to a live public URL, straight from chat, with no setup.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 83.5% over 65 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- just-done/just-publish-mcp
- GitHub Stars
- 1
- Server Listing
- Just Publish MCP Server
TDQS
Scored across 3 tools
Each tool has a distinct purpose: deploy creates/replaces a whole site, get_site_files reads the current state, and update_site_file performs a targeted merge. The descriptions explicitly contrast them (e.g. 'deploy REPLACES the whole site ... to change just one file, use update_site_file'), leaving no ambiguity.
get_site_files and update_site_file follow a clear verb_noun pattern, but deploy is a bare verb with no noun, a minor deviation. Still readable and predictable overall.
Three tools cleanly map to the create/read/update lifecycle of publishing a site, and each earns its place. Slightly thin for the domain, since site deletion is only implicit through deploy.
The surface covers create (deploy), read (get_site_files), and update (update_site_file), with thoughtful version/conflict handling. Minor gaps remain: no explicit delete-site tool and no way to delete individual files except by redeploying the whole site.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
deploy4 fields changed- changed
Input schema / properties / email / descriptionPrevious value: -"Email to associate with the site. Captured unverified at first deploy; verification only required later for custom domains and recovery."New value: +"Email address for the site. A link is sent to it to confirm the address; it is also used for recovery and service messages." - changed
Output schema / properties / edit_token / descriptionPrevious value: -"Returned ONLY on first create. Save it — it's the only way to update this site."New value: +"Returned ONLY on first create. Save it - it's the only way to update this site." - changed
Output schema / properties / email_verified / descriptionPrevious value: -"Whether the site's owner email is verified right now. New sites are always false."New value: +"Whether the site's owner email is verified right now. False on a new site unless this address has been verified before." - changed
Output schema / properties / site_id / descriptionPrevious value: -"The site's slug / id — pass back to update it later."New value: +"The site's slug / id - pass back to update it later."
- Changed
get_site_files3 fields changed- changed
Output schema / properties / files / items / properties / encoding / descriptionPrevious value: -"Always 'utf-8' — only text files are inlined."New value: +"Always 'utf-8' - only text files are inlined." - changed
Output schema / properties / truncated / descriptionPrevious value: -"true if some requested file contents were omitted for size — request specific paths to read them."New value: +"true if some requested file contents were omitted for size - request specific paths to read them." - changed
Output schema / properties / version / descriptionPrevious value: -"The site's current version — pass as expected_version to update_site_file to avoid clobbering."New value: +"The site's current version - pass as expected_version to update_site_file to avoid clobbering."
3 tool updates
- Changed
deploy1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "created": { + "description": "true if this call created a new site; false if it updated an existing one.", + "type": "boolean" + }, + "dashboard_url": { + "description": "Deep link to this site in the owner's dashboard.", + "type": "string" + }, + "edit_token": { + "description": "Returned ONLY on first create. Save it — it's the only way to update this site.", + "type": "string" + }, + "email_masked": { + "description": "The owner email, masked for display (e.g. 'a***@example.com').", + "type": "string" + }, + "email_verified": { + "description": "Whether the site's owner email is verified right now. New sites are always false.", + "type": "boolean" + }, + "files_uploaded": { + "description": "Number of files written in this deploy.", + "type": "integer" + }, + "site_id": { + "description": "The site's slug / id — pass back to update it later.", + "type": "string" + }, + "total_bytes": { + "description": "Total size of the site in bytes after this deploy.", + "type": "integer" + }, + "url": { + "description": "The live URL of the published site.", + "type": "string" + }, + "verify_required": { + "description": "true when the owner still needs to verify their email (keys on !email_verified).", + "type": "boolean" + } + }, + "required": [ + "url", + "site_id", + "created", + "email_verified", + "files_uploaded", + "total_bytes", + "email_masked", + "verify_required", + "dashboard_url" + ], + "type": "object" +}
- Changed
get_site_files1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "files": { + "description": "Inlined contents of the requested text files (default: all text files, capped for size).", + "items": { + "properties": { + "content": { + "description": "Full text content of the file.", + "type": "string" + }, + "encoding": { + "description": "Always 'utf-8' — only text files are inlined.", + "enum": [ + "utf-8" + ], + "type": "string" + }, + "path": { + "description": "Path of this file under the site root.", + "type": "string" + } + }, + "required": [ + "path", + "content", + "encoding" + ], + "type": "object" + }, + "type": "array" + }, + "manifest": { + "description": "Every file on the site (always complete, regardless of which contents were inlined).", + "items": { + "properties": { + "content_type": { + "description": "Stored content-type, e.g. 'text/html'.", + "type": "string" + }, + "is_text": { + "description": "Whether the file is a text type eligible to have its content inlined.", + "type": "boolean" + }, + "path": { + "description": "Path under the site root, e.g. 'index.html'.", + "type": "string" + }, + "sha256": { + "description": "Hex sha256 of the file bytes; null if not recorded for this file.", + "type": [ + "string", + "null" + ] + }, + "size_bytes": { + "description": "File size in bytes.", + "type": "integer" + } + }, + "required": [ + "path", + "size_bytes", + "content_type", + "sha256", + "is_text" + ], + "type": "object" + }, + "type": "array" + }, + "site_id": { + "description": "The site's slug / id.", + "type": "string" + }, + "truncated": { + "description": "true if some requested file contents were omitted for size — request specific paths to read them.", + "type": "boolean" + }, + "url": { + "description": "The live URL of the site.", + "type": "string" + }, + "version": { + "description": "The site's current version — pass as expected_version to update_site_file to avoid clobbering.", + "type": "integer" + } + }, + "required": [ + "site_id", + "version", + "url", + "manifest", + "files", + "truncated" + ], + "type": "object" +}
- Changed
update_site_file1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "files_total": { + "description": "Total number of files on the site after the merge.", + "type": "integer" + }, + "files_written": { + "description": "Paths of the files written in this update. All other files were left untouched.", + "items": { + "type": "string" + }, + "type": "array" + }, + "site_id": { + "description": "The site's slug / id.", + "type": "string" + }, + "url": { + "description": "The live URL of the site.", + "type": "string" + }, + "version": { + "description": "The site's new version after the merge.", + "type": "integer" + } + }, + "required": [ + "site_id", + "url", + "version", + "files_written", + "files_total" + ], + "type": "object" +}
2 tool updates
- Added
get_site_files - Added
update_site_file
1 tool update
- First observed
deploy
Related MCP Connectors
Publish websites from your AI chat: pages, multi-file sites, ZIPs or templates, live in seconds.
- DplooyOAuthcom.dplooy
Publish a complete website to a live URL from your AI assistant: forms, bookings, content, chatbot
- dropOAuthio.neuronik
Publish web pages straight from your AI assistant and share them with a link.
- WebTwizzOAuthcom.webtwizz
Build websites and web apps with AI, see them in the chat, and publish them.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenancePublishes AI-generated HTML and Markdown to a hosted, shareable URL with versioning, theming, and access control.1MIT
- AlicenseAqualityCmaintenancePublish live web pages from AI coding agents. Instant shareable URLs for dashboards, landing pages, and reports with password protection.41MIT

SnapHostofficial
AlicenseNot gradedqualityBmaintenanceSend a live, private link to a client from Claude. SnapHost publishes what your assistant builds as a shareable website with a stable URL, updates it in place, restricts viewers by email or password, rolls back bad versions, serves custom domains, and stores form and waitlist data with no backend.MIT- AlicenseAqualityCmaintenanceInstant web hosting for AI agents. Publish a live site in one call, no account needed.5MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.