Croft MCP
← Croft MCP

Tools

Everything your assistant can do in your workspace over MCP. Explore tools are available to anyone you invite, over the apps they can access; Build & manage tools are for owners, admins and creators.

Explore

read-only
list_apps
Lists the apps in this Croft workspace that the signed-in user can see, with each app's URL, status, owner and last release. Use it when the user asks what apps they have or refers to an app without naming it exactly.
get_app_status
Returns an app's current deploy stage (deploy_state: never_deployed, queued, running, succeeded or failed), whether it is live, its health, and request and error counts for the last hour. Read-only, so it can be called repeatedly to follow a deploy. Use it after deploy_app or rollback_app, or when the user asks whether an app is working.
get_app_metrics
Returns traffic and performance metrics for an app over `window` ("1h", "24h" default, or "7d"): request count, status codes, error rate, latency percentiles, busiest, slowest and failing routes, CPU, memory, restarts, database size and recent scheduled runs. When the app records timings, it also returns where request time is spent (database, external calls, app code). `route` narrows the result to one route. Use it when the user asks whether an app is healthy, busy or slow.
list_queryable_apps
Lists the apps whose databases the signed-in user can query read-only: apps an owner has enabled for assistant access and that the user can access. Use it when the user asks about data stored in one of their Croft apps, then call get_app_data_schema and query_app_data.
get_app_data_schema
Returns the tables and columns of a queryable app's SQLite database. The app must be enabled for assistant access and the user must have access to it. Use it before query_app_data to write a correct query.
query_app_data
Runs one read-only SQL query (SELECT or WITH) against a queryable app's SQLite database and returns the rows, up to 500. Pass values with ? placeholders and `params`. Writes, PRAGMA and ATTACH are rejected, and every query is audited. The app must be enabled for assistant access and the user must have access to it. Use it to answer a question about data stored in that app.

Build & manage

owner / admin / creator
get_platform_conventions
Returns the conventions every app on this Croft workspace follows: language and runtime, file layout, database, sign-in headers, secrets and scheduled tasks, plus the workspace's shared databases and ready connectors. Use it before writing or changing an app's code.
create_app
Creates a new, empty app in this Croft workspace: a git repository, a subdomain and starter files. The app has no features and serves nothing until code is written with write_app_files and deploy_app succeeds. Use it when the user asks to build a new app.
get_app
Returns one app's file list, recent releases, secret names (never values), public paths, schedules and settings_url (its settings page in the Croft panel, where an owner or admin enters secret values). Use it before reading or changing an app's code.
read_app_file
Returns the contents of one file from an app's git repository in this Croft workspace. The path is resolved inside that repository. Use it to inspect an app's code before explaining or changing it.
write_app_files
Writes one or more files ({path, content}) into an app's git repository and commits them, replacing any existing file at the same path. The files are not built or published until deploy_app succeeds. Use it when the user asks to build or change an app.
deploy_app
Builds an app's committed code and releases it on this workspace's Croft server, replacing the release served at the app's URL. Each call creates a new release, even if the code is unchanged. Runs in the background: deploy_state moves through queued and running to succeeded or failed, and the app is live only after it succeeds (check with get_app_status). `message` is a one-line summary of the change, shown in the app's changelog. Use it after write_app_files, or when the user asks to redeploy.
get_app_logs
Returns an app's runtime log lines (stdout and stderr) from the last 7 days, newest last, up to 500. Filter with `since` ("1h", "24h", "7d" or an RFC 3339 time; default 24h), `grep` (case-insensitive text or regex) and `level: "error"`. Requires the owner, admin or creator role. Use it when the user asks why an app is failing or what it logged.
get_app_errors
Returns an app's recent errors (uncaught exceptions with stack traces, 5xx responses and crashes) grouped by cause, with counts, first and last seen, release and a sample route. Pass `error_id` for one group with up to 3 sample events. `since` is "1h", "24h" (default) or "7d". A group is marked resolved once it stops after a newer release. Requires the owner, admin or creator role. Use it when the user asks about errors in an app.
rollback_app
Replaces an app's live release with its previous release. Runs in the background; follow it with get_app_status until deploy_state is succeeded. Each call steps back one more release. Use it when the user asks to undo a deploy.
delete_app
Permanently deletes an app with its data, code and URL. This cannot be undone and does not affect other apps. Nothing is deleted unless `confirm` is true. Use it only when the user explicitly asks to delete a named app.
set_app_icon
Sets the icon shown next to an app in the Croft panel, replacing any existing icon. `svg` is self-contained SVG markup on a square canvas (viewBox "0 0 64 64") with no scripts, images or external references. Use it when the user asks for an app icon, or after creating an app.
list_app_secret_names
Lists the names of an app's secrets (environment variables). Values are never returned. Use it to check which secrets an app has before writing code that reads them.
list_users
Lists the people in this Croft workspace with their role and the apps they can access. Use it when the user asks who has access, or before granting or revoking access.
invite_user
Invites a person to this Croft workspace by email: creates their account, sets their role (member uses apps, creator builds apps, admin manages the workspace) and grants access to "all" apps or a list of apps. Sends them a sign-in email. Requires the owner or admin role. Use it when the user asks to add someone to the workspace.
grant_app_access
Gives an existing workspace member access to one app. The person must already be in the workspace (list_users shows who is). Sends no email. Repeating it has no further effect; undo with revoke_app_access. Use it when the user asks to share an app with someone already in the workspace.
revoke_app_access
Removes a workspace member's access to one app. It takes effect on the workspace's server within about a minute and sends no email. Use it when the user asks to stop someone using an app.
set_public_paths
Sets which paths of an app anyone on the internet can open without signing in. Apps are private by default. Pass the full list of specific paths (e.g. ["/survey"]); each path and everything under it becomes public, and everything else requires the workspace sign-in. An empty list makes the app private again. The root path and wildcards are rejected. The list replaces the previous one. Use it when the user asks for a public form, page or webhook.
set_app_schedules
Sets an app's scheduled tasks, replacing the existing list. Each task is {name, cron, path}: on the cron schedule (5-field, UTC) Croft sends a POST request to that path in the app, which must implement the route. An empty list removes all schedules. Use it when the user wants an app to do something on a recurring schedule, such as a daily email or an hourly sync.
set_database_sharing
Turns sharing of an app's SQLite database with other apps in the same workspace on or off (off by default). When on, other apps' code can query it through Croft's internal data service at http://croft-data:8080/q/<app>; `read_only: true` limits them to SELECT. Apps with public paths cannot read shared data unless an owner or admin passes `allow_public: true`. Use it when one app needs data another app holds, such as an invoicing app reading a CRM's contacts.
allow_public_app_resources
Lets an app that has public paths use its granted connectors and other apps' shared data, which such apps are blocked from by default. Called by an owner or admin, it takes effect immediately; called by a creator, it emails the owner and admins a request to approve in the panel. It changes an app setting only: it returns no data and gives the assistant no access. Use it when a public app the user is building needs a connector or shared data.
list_connectors
Lists this workspace's connectors (the external APIs its apps are set up to call) and the state of each: live, needs_credential, needs_connection, needs_reconnect or disabled. Use it when building an app that needs an external service, to see what is already set up. Connectors are used only by deployed apps: an app's server code calls one through Croft's internal broker (http://croft-data:8080), which is reachable only from inside the workspace's own server. No MCP tool calls a connector, contacts the connected service, or returns data from it, and the credential is never shown to the assistant.
describe_connector
Returns one connector's details for writing app code against it: base URL, auth style and its named operations (method, path, parameters). Never returns the credential. Use it before writing app code that calls the connector. Connectors are used only by deployed apps: an app's server code calls one through Croft's internal broker (http://croft-data:8080), which is reachable only from inside the workspace's own server. No MCP tool calls a connector, contacts the connected service, or returns data from it, and the credential is never shown to the assistant.
create_draft_connector
Creates a draft connector from an API's documentation: base URL, auth style and a map of operations. A workspace owner, admin or creator then adds the credential in the Croft panel; the credential is never passed through this tool. auth_style is bearer, header, query, basic or aws_sigv4; header and query also need auth_param, and aws_sigv4 takes aws_region and aws_service. Does not contact the API. Use it when an app needs an external API that has no connector yet. Connectors are used only by deployed apps: an app's server code calls one through Croft's internal broker (http://croft-data:8080), which is reachable only from inside the workspace's own server. No MCP tool calls a connector, contacts the connected service, or returns data from it, and the credential is never shown to the assistant.
grant_connector
Lets one app's code call a connector. Everyone the app is shared with can then use the service through the app. Connectors marked admins-only need an admin; connectors that need approval are created as "requested" when a creator grants them, and the owner and admins are emailed to approve in the panel. Does not contact the external service. Use it after choosing the connector an app needs. Connectors are used only by deployed apps: an app's server code calls one through Croft's internal broker (http://croft-data:8080), which is reachable only from inside the workspace's own server. No MCP tool calls a connector, contacts the connected service, or returns data from it, and the credential is never shown to the assistant.
list_connector_grants
Lists the connectors one app is allowed to call and whether each grant is active or waiting for approval. Use it to check an app's connector access before writing code that calls one. Connectors are used only by deployed apps: an app's server code calls one through Croft's internal broker (http://croft-data:8080), which is reachable only from inside the workspace's own server. No MCP tool calls a connector, contacts the connected service, or returns data from it, and the credential is never shown to the assistant.

Members get the Explore tools; owners and admins get everything. Every call is scoped to your workspace and written to your activity log.