# fuast

> Build, deploy and share small full-stack team apps from your AI chat. No account needed to start.

- name: com.fuast/fuast
- version: 2.2.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 97/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.fuast%2Ffuast
- tools: https://api.protogrid.dev/v1/servers/com.fuast%2Ffuast/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "fuast": {
      "type": "http",
      "url": "https://fuast.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-2d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 97/100 (new)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 300000)

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 94 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 19 of 19 tools declare readOnlyHint or destructiveHint
- warn `tools.directory_hints`: 7 of 19 tools declare all four hints; missing: get_template (destructiveHint, idempotentHint); inspect_app (destructiveHint, idempotentHint); fuast_guide (destructiveHint, idempotentHint); …
- pass `tools.token_cost`: about 4,310 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`, `stability.new_links`: tool history recorded for 1 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 19, about 4,310 tokens to load them all
- tool set hash: 3428065b0625cfe23f185c2a11aec5f1
- badge: [![protogrid quality](https://protogrid.dev/badge/com.fuast/fuast.svg)](https://protogrid.dev/servers/com.fuast/fuast)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://fuast.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (19)

- `call_app`: Runs one query, mutation or action of a deployed app and returns its result and the log lines it wrote, so you can test what you deployed. It runs as the connected person (as: "me", the default), never as anyone else; as: "guest" runs it as a guest visitor and only works on public apps. On a preview deployed without an account every call runs as one guest. Mutations and actions change real data. Only for apps the person owns or administers.
- `check_app`: Builds the files, type checks them and loads the server in a sandbox, without deploying anything. Returns ok with the queries, mutations, tables and tools the app declares, or ok false with diagnostics that carry file, line and message. Call it before deploy_app and fix every diagnostic.
- `delete_app`: Deletes an app and everything in it: its data, stored files, deploys, schedules and custom domains. This cannot be undone. Only the app's owner can do it, and confirm must repeat the app's slug. Do this only when the person explicitly asks for the app to be deleted.
- `deploy_app`: Deploys the files and returns the app's URL. With a connected fuast account it creates a new private app in the person's workspace, or updates the app named in app. Without an account it deploys a temporary preview and returns preview_url, claim_url and edit_token: give the person claim_url so they can make the app theirs, and pass edit_token to later calls to keep working on it. Send every file each time; use update_app_files to change a few. A failed build returns diagnostics with file and line and deploys nothing.
- `fuast_docs`: Read one docs page as markdown (page), or search every page for words (search). With neither, lists the pages. Useful pages: capsule-api (every server and client API), database, auth, limits, storage, schedules, email, teams, examples/todo.
- `fuast_guide`: Call this first. Returns how to build, check, deploy and share a fuast app with these tools, and the rules a fuast app must follow (file layout, server and client APIs, database, auth, UI). fuast apps are small full-stack TypeScript apps called capsules: server/index.ts and client/index.tsx, no npm packages.
- `get_app`: Returns one app: URL, status, sharing, handlers, recent deploys with their ids (for rollback_app), today's usage and limits, and the names (never the values) of its env vars.
- `get_app_source`: Returns the source of the app's live deploy as {path: content}, with the deploy id to pass to update_app_files as expected_deploy_id. Large apps return the file list only: ask again with paths for the files you need. Secrets (.env files, env values) are never returned.
- `get_claim_link`: For a preview that deploy_app deployed without an account: returns the claim link to give to the person, the preview link, and when the preview is deleted if nobody claims it. Opening the claim link and signing in makes the app theirs.
- `get_logs`: Returns recent log entries of an app, oldest first: what its handlers wrote with ctx.log, handler errors with stack traces, and platform events such as deploys. Pass the returned cursor as since to read only newer entries.
- `get_template`: Returns the source files of one starter template as {path: content}: a complete app that passes check_app and can be sent to deploy_app as is. Change the files to build what the person asked for.
- `inspect_app`: Reads one thing about a deployed app. manifest: handlers, schema, indexes, endpoints, read metrics. tables: each table with its fields and row count. rows: rows of one table (give table; at most 100 per call, continue with cursor). usage: today's counters and limits. schedules: cron schedules and their last runs. jobs: scheduled jobs. Only the app's owner and workspace admins can inspect.
- `list_apps`: Lists the fuast apps the connected account can use: its own, its workspace's, and apps shared with it, with URL, sharing mode and whether the account can manage each one.
- `list_templates`: Lists the working starter apps a new fuast app can begin from, with what each one demonstrates. Get a template's files with get_template.
- `rollback_app`: Makes an earlier deploy of the app live again. deploy_id comes from get_app; without it, the most recent earlier deploy that is ready. The app's data stays as it is; if that deploy's schema cannot hold the current data, nothing changes.
- `set_env`: Sets or removes environment variables of an app (read in handlers as ctx.env.NAME). They take effect at once, without a deploy. Values are write-only: no tool returns them, only the names.
- `share_app`: Changes who can open an app. visibility: private (the owner and invited people), workspace (everyone at the owner's company), or public (anyone with the link, guests included). invite adds people by email and sends each an email; remove takes people off the list. Do this only when the person asks for it. Returns the resulting sharing.
- `update_app_files`: Redeploys the app with a few files changed: files maps each path to its new content, or to null to delete it. Every other file stays as it is. expected_deploy_id must be the app's live deploy (from get_app_source or the last deploy result); if someone deployed in between, nothing changes and you are told to read the source again. Builds and type checks like deploy_app.
- `whoami`: Returns the fuast account this connection acts as: email, workspace, role, and what the connection may do. If no account is connected yet, calling it starts sign-in: call it when the person has a fuast account or wants apps deployed into their own workspace instead of as a temporary preview.
