Noodle Seed
Guides

Deploy & operate

Deploy, version, share, observe, recover, and retire an MCP server on Noodle Seed Cloud.

First deploy

Local development needs no account. When your server is ready to share, sign in and deploy from the project directory:

noodle login
noodle deploy

A first deploy creates the hosted target and starts at version 1. The result includes its deployment ID, both MCP endpoint styles, dashboard, current access mode, and useful next commands:

deploymentId: support-4f9c1a2b
Version: 1
Endpoint: https://acme.cloud.noodleseed.dev/support/v1/mcp
Default: https://acme.cloud.noodleseed.dev/support/mcp
Dashboard: https://cloud.noodleseed.dev/projects/acme/support
Access: owner-only
Next: noodle logs --tail --org acme --app support --env prod
Next: noodle smoke --org acme --app support --env prod
Next: noodle connect claude-code --endpoint https://acme.cloud.noodleseed.dev/support/v1/mcp

Give clients the version-pinned endpoint when you want a stable contract. The unversioned endpoint is the follow-latest endpoint. See the deploy command reference for every flag.

Target resolution

Bare noodle deploy resolves one org > app > env target. It uses your signed-in default organization, the project name as the app name, and prod as the environment. Inspect the effective values and where each came from before deploying:

noodle target show

For a one-off target, pass flags directly:

noodle deploy --org acme --app support --env staging

To save that selection for the project, use noodle link. Linking is optional and creates no hosted state:

noodle link --org acme --app support --env staging

Target precedence is command flag, project link, saved target, then the local default. See the target, link, and deploy references for complete options.

Deploy transaction

noodle deploy owns one safe transaction:

  1. It compiles and validates server.ts locally.
  2. It runs a read-only preflight for identity, organization access, target availability, the compiled surface, and every required managed variable and secret. Missing apps and environments are reported as will-create, not created yet.
  3. It collects missing managed configuration, then reruns preflight.
  4. Once preflight is ready, it creates the app or environment when needed, uploads missing hosted assets, records the deployment, activates it, and verifies hosted readiness.

If a network or readiness step fails, rerun the unchanged command. The saved idempotency key resumes the unfinished deploy without duplicating the app, environment, or deployment. After a successful readiness check, a later intentional deploy creates normal history.

Managed configuration

Declare hosted configuration in TypeScript with variable("NAME") and secret("NAME"). An interactive deploy can offer to copy matching names from the project-root .env; the prompt names the exact target and defaults to No, and values stay hidden. JSON, CI, plugin, and other non-interactive deploys never import .env. They return one value-free checklist so you can set each value explicitly:

noodle variables set REGION --scope env --from-env REGION
noodle secrets set WEATHER_API_KEY --scope env --from-env WEATHER_API_KEY
noodle deploy

Secrets are encrypted at rest and never appear in manifests, logs, artifacts, preflight responses, or deploy retry state. See the variables and secrets references for scopes and input options.

Versioning

New apps start at version 1. On an existing target, a bare deploy reuses the version resolved from this project's saved deployment metadata or the hosted app's single active version. Deploy never auto-increments. Publishing a new contract is explicit:

noodle deploy --version 2

Redeploying the same version creates a history record and repoints only that version's pinned endpoint. It does not change another version-pinned endpoint. The unversioned endpoint follows the highest active numeric version.

TargetEndpointBehavior
Production, version 1https://acme.cloud.noodleseed.dev/support/v1/mcpPinned to version 1
Production, defaulthttps://acme.cloud.noodleseed.dev/support/mcpFollows the highest active version
Staging, version 1https://acme.cloud.noodleseed.dev/support/env/staging/v1/mcpPinned to staging version 1
Staging, defaulthttps://acme.cloud.noodleseed.dev/support/env/staging/mcpFollows staging's highest active version

Access

Every deployment has an access mode. New manual deploys default to owner-only.

ModeWho can call it
owner-onlyOnly the recorded deployer.
org-membersMembers of the platform organization.
authenticatedAny signed-in Noodle Seed platform identity.
publicAnyone, without authentication.
mixedAnonymous callers, plus optional signed-in platform identity.
customersUsers authenticated by your app's configured identity provider. Alpha

For unattended backend workers, scheduled jobs, and CI automation, use an organization service principal instead of a human login. Follow Machine-to-machine MCP authentication to grant one workload access to an exact app and environment without changing or redeploying the app.

Set access during deploy or change an active version later:

noodle deploy --access org-members
noodle access set org-members --version 1

Only organization owners can mutate access. The service rejects public when the compiled server requires ${user}. A mixed server must define behavior that is safe without caller identity, while still accepting verified optional identity. customers requires compiled customer authentication; follow the customer auth guide before sharing it.

public and the anonymous path of mixed expose tools without sign-in. Review tool effects, data access, rate limits, and anonymous behavior before enabling either mode.

See the access command reference for exact targeting options.

Verify and connect

These commands answer different questions:

CommandUse it for
noodle statusCompact active-target, endpoint, access, and health status.
noodle inspectSafe hosted metadata, including the compiled MCP and widget surface, without secret material.
noodle smokeReadiness diagnostics and exact external MCP Inspector and mcpjam commands.
noodle openOpen or print the latest linked deployment URL, or open its dashboard.
noodle connect <client>Print or write client-specific connection setup for a deployed endpoint.
noodle status
noodle inspect
noodle smoke
noodle open --dashboard
noodle connect claude-code

See the status, inspect, smoke, open, and connect references for exhaustive flags and supported clients.

Observe and recover

Tail tenant-safe application logs, summarize MCP health, and inspect the request-event stream:

noodle logs --tail
noodle metrics
noodle events

Use deployment history to select the exact record you want to inspect or restore:

noodle deployments list --org acme --app support --env prod
noodle deployments inspect support-4f9c1a2b --org acme
noodle rollback support-4f9c1a2b --org acme --app support --env prod \
  --reason "restore the last healthy deployment"

Rollback requires an organization owner and reactivates the stored deployment in that deployment's version scope. It does not redeploy source, delete later history, or change the stable endpoint URL.

See the logs, metrics, events, deployment history, and rollback references for filters and machine-readable output.

Retire safely

noodle archive retires the whole app, including every environment and version. There is no environment-scoped archive. Its endpoints return 410 Gone, and normal deployment-history lists hide its records:

noodle archive --org acme --app support
noodle deployments list --org acme --app support --archived

An organization owner can restore the app within the configured retention window:

noodle restore --org acme --app support

After the retention window, the archived app is hard-deleted and cannot be restored. See the archive and restore references for the full confirmation and targeting contract.

Export

As an optional eject path, compile the authored TypeScript locally and write its portable manifest:

noodle export manifest --output manifest.json

This command needs no account or hosted service. See the export reference for the complete portable-output options.

On this page