# Publish checks (/dashboard/publish-checks)

Before you distribute a server, to your users, the MCP registry, or an app directory, the **Checklist** tab in the **Publish** section helps you verify it's ready. It works for Manufact-hosted and external (URL-connected) servers.## Checklist [#checklist]The **Checklist** tab runs an automated audit of your server for protocol compliance and platform readiness: initialization behavior, tool schemas, error handling, metadata quality, and more. The basic checklist is available on every plan and is billed at [$0.10 per run](/dashboard/billing).![Checklist tab before running](/screenshots/dashboard/publish-checks/checklist-idle.png)1) Open your server, go to **Publish → Checklist**, and click **Run checklist**.![Checklist run in progress](/screenshots/dashboard/publish-checks/checklist-running.png)2) Each check reports as **passed**, a **warning**, an **error**, or **skipped**, with an explanation. The summary card shows your score and counts by status.While a run is in progress, use **Stop** to cancel it. Partial results streamed so far are kept.### End-to-end checks (ChatGPT & Claude) [#end-to-end-checks-chatgpt--claude]On [Hobby and above](/dashboard/billing), the checklist also includes **end-to-end checks** that exercise your server live in ChatGPT and Claude. These verify tool calls and widget rendering in real clients, not just protocol compliance. E2E checks are billed at [$2 per run](/dashboard/billing).Free plans run the basic checklist only. Upgrade to Hobby to unlock E2E checks.![Checklist results with score and category breakdown](/screenshots/dashboard/publish-checks/checklist-results.png)3) Expand a category with issues to read **How to fix** guidance for each failed check.![Failed check with how-to-fix guidance](/screenshots/dashboard/publish-checks/checklist-failed-check.png)4) For fixable issues you can copy a **fix prompt** into your own coding agent, or run the built-in **autofix** flow (requires a connected GitHub repository). In-flight autofix jobs can be stopped from the dashboard.![Copy fix prompt and Auto fix actions](/screenshots/dashboard/publish-checks/autofix-button-row.png)![Copy fix prompt dialog](/screenshots/dashboard/publish-checks/copy-fix-prompt-dialog.png)Run it again after deploying fixes; runs are kept so you can track progress over time.## Automatic runs after deployment [#automatic-runs-after-deployment]On Manufact-hosted servers, you can start a checklist automatically after each successful deployment from **Settings → Checklist automation**:- **Production branch only** — run after production deployments (recommended).
- **All deployed branches** — run for production and every branch that finishes deploying.
- **Selected branches** — run only when the deployed branch matches one or more branch patterns.Automatic runs use the same checklist and billing as manual runs. The **Deployments** tab shows the latest completed score for each deployment. Manual runs from **Publish → Checklist** are always available.## Recommended publish flow [#recommended-publish-flow]1) Pass the **Checklist** with no failures.
2) Validate behavior with [test suites](/dashboard/testing) across clients and models.
3) Try it end to end via [Public Chat](/dashboard/public-chat) or your own client setup.
4) Generate a [submission pack](/dashboard/submission-pack) and submit to the app directory.
