---
title: "while.sh MCP tools: what your agent can do"
url: https://while.sh/en/docs/reference/mcp-tools/
updated: 2026-11-09
---

# MCP tools

Your agent acts on while through 82 MCP tools, with your permissions and never more. Sensitive actions wait for a person's approval.

## Connect the server

while's MCP server is at `https://app.while.sh/mcp`. Your agent connects to it with OAuth: on the first call, a page opens in your browser, and you authorize while.

Without an account, the trial server `https://app.while.sh/essai` offers 19 of these tools, with no sign-in, to deploy an app as a trial.

## What a tool can do

A read-only tool changes nothing. The others act with your permissions, never more, and a token can limit them to a project, to reading or to some environments. A sensitive action, like destroying a production database or making an app public, waits for a person's approval: the tool then gives the link to the request. When you authorize your agent, you choose its level: Read, Read and act, or Administer. At the Read and act level, an administration action you can do yourself, like inviting a member or creating a token, waits for your confirmation: a while page says what the action is, for whom and on what, and you confirm it in one click.

## Tool groups

At the Read and Read and act levels, your agent first gets 40 tools, which fits in editors that limit their number, like Cursor; at the Administer level, it gets them all at once. For an action that is not among them, it loads a group with `load_tools`: `alerts` (alerts, incidents, channels), `feedback_and_docs` (page notes, feedback, searching the docs), `environments_and_storage` (domains, access links, internal apps, git repository, buckets, destroying or restarting an environment) or `administer` (members, groups, roles, access, tokens, service accounts, usage, projects, the organization). The group stays with the agent from one session to the next, and you remove it in My agents. Claude Code and VS Code see its tools right away; Cursor, Claude and ChatGPT after reconnecting while.

## Deploy

### Read while's catalog

`get_catalog` only reads. It is also on the trial server.

Parameters: `format`, `language`, `block`.

### Read the project's code

`read_source` only reads. It is also on the trial server.

Parameters: `project`, `environment`, `version`, `format`, `archive`, `path`, `start`.

### Send code from a terminal

`upload_source` acts on your projects. It is also on the trial server.

Parameters: `project`, `environment`, `terminal`.

### Write project files

`write_files` acts on your projects. It is also on the trial server.

Parameters: `project`, `files` (required), `delete`, `message`.

### Link a git repository

`link_git_repo` acts on your projects. It is in the `environments_and_storage` group.

Parameters: `project`, `forge`, `repo`, `token`, `base_url`, `unlink`.

### Plan a deployment

`plan_deploy` only reads. It is also on the trial server.

Parameters: `project`, `environment`, `plan_id`, `intent`, `from_state`, `timeout_seconds`.

### Deploy an app

`deploy_app` acts on your projects. It is also on the trial server.

Parameters: `project`, `environment`, `source_archive_base64`, `release`, `redeploy`, `image`, `digest`, `intent`, `confirm_overwrite`, `wait`, `timeout_seconds`.

### Apply a plan

`apply_plan` acts on your projects.

Parameters: `plan_id` (required), `project`, `wait`, `timeout_seconds`, `discard`.

### Roll back to a previous version

`rollback_app` acts on your projects.

Parameters: `project`, `environment`, `to`, `wait`, `approval_id`.

### Read an app's status

`get_app_status` only reads. It is also on the trial server.

Parameters: `project`, `environment`, `include`, `since`, `probe`.

### Read pending approvals

`list_approvals` only reads. It is also on the trial server.

Parameters: `id`.

## Configure an environment

### Read an environment

`get_environment` only reads. It is also on the trial server.

Parameters: `view`, `project`, `environment`, `database`.

### Set variables and secrets

`set_env` acts on your projects. It is also on the trial server.

Parameters: `project`, `environment`, `values`, `secret`, `file`, `build`, `delete`, `key`, `value`.

### Create a preview

`create_preview` acts on your projects.

Parameters: `project`, `name`, `branch`, `from`, `copy_database`, `ttl_hours`, `wait`.

### Destroy an environment

`destroy_environment` acts on your projects. It is in the `environments_and_storage` group.

Parameters: `project`, `environment` (required), `reason`, `approval_id`.

### Restart a service

`restart_app` acts on your projects. It is in the `environments_and_storage` group.

Parameters: `project`, `environment`, `service` (required).

### Verify a domain

`verify_domain` acts on your projects. It is in the `environments_and_storage` group.

Parameters: `project`, `environment`, `domain` (required).

### Request an access link

`request_access_link` acts on your projects. It is in the `environments_and_storage` group.

Parameters: `project`, `environment`, `name`, `days`.

## Data

### Read a database with SQL

`query_database` only reads. It is also on the trial server.

Parameters: `format`, `project`, `environment`, `database`, `sql` (required), `limit`, `max_bytes`, `timeout_seconds`.

### Back up a database

`backup_database` acts on your projects.

Parameters: `project`, `environment`, `database`, `test_restore`, `wait`.

### Restore a database

`restore_backup` acts on your projects.

Parameters: `project`, `environment`, `database`, `backup_id`, `instant`, `approval_id`, `wait`, `reason`.

### Read a bucket

`read_bucket` only reads. It is in the `environments_and_storage` group.

Parameters: `project`, `environment`, `bucket` (required), `key`, `minutes`, `download_link`, `prefix`, `next`.

### Create an upload link to a bucket

`create_upload_link` acts on your projects. It is in the `environments_and_storage` group.

Parameters: `project`, `environment`, `bucket` (required), `key` (required), `minutes`.

### Change an environment's S3 key

`rotate_s3_key` acts on your projects. It is in the `environments_and_storage` group.

Parameters: `project`, `environment`, `immediate`.

## Scheduled jobs

### List the scheduled jobs

`list_tasks` only reads.

Parameters: `project`, `environment`, `task`, `limit`.

### Run a job

`run_task` acts on your projects.

Parameters: `project`, `environment`, `task` (required), `args`, `env`, `catch_up`, `wait`, `timeout_seconds`, `approval_id`.

## Observe

### Read logs

`get_logs` only reads. It is also on the trial server.

Parameters: `project`, `environment`, `build_id`, `query`, `limit`.

### Understand what is happening

`observe_app` only reads. It is also on the trial server.

Parameters: `view`, `project`, `environment`, `query`, `range`, `trace_id`, `service`, `operation`, `since_minutes`, `min_duration`, `errors`, `limit`, `since`, `fingerprint`, `until`, `families`, `version`, `window_minutes`, `database`, `question`.

### Read alerts

`list_alerts` only reads. It is in the `alerts` group.

Parameters: `view`, `project`, `status_page`, `organization`.

### Set an alert rule

`set_alert_rule` acts on your projects. It is in the `alerts` group.

Parameters: `project`, `name`, `source`, `condition`, `window_minutes`, `severity`, `message`, `channels`, `environment`, `active`, `delete`, `default`, `mute`, `public_page`.

### Acknowledge an incident

`acknowledge_incident` acts on your projects. It is in the `alerts` group.

Parameters: `project`, `incident` (required), `reason`.

### Create an alert channel

`create_alert_channel` acts on your projects. It is in the `alerts` group.

Parameters: `organization`, `type` (required), `name` (required), `address`, `url`, `min_severity`.

### Delete an alert channel

`delete_alert_channel` acts on your projects. It is in the `alerts` group.

Parameters: `organization`, `channel` (required).

### Test an alert channel

`test_alert_channel` acts on your projects. It is in the `alerts` group.

Parameters: `organization`, `channel` (required).

## Connections

### Read connections

`list_connections` only reads.

Parameters: `view`, `organization`, `connection`, `since`, `until`, `refusal`.

### Declare a connection

`declare_connection` acts on your projects.

Parameters: `organization`, `name` (required), `model`, `domain`, `secondary_domains`, `authentication`, `rules`, `post_read`, `learning_days`, `rate_per_minute`, `owner`, `label`, `project`, `apps`, `direction`, `update`.

### Configure a connection

`update_connection` acts on your projects.

Parameters: `organization`, `connection`, `method`, `pattern`, `approve_each_call`, `read`, `reason`, `lock`, `caller`, `window`, `calls`, `remove_limit`.

### Request or configure a federated binding

`set_connection_binding` acts on your projects.

Parameters: `organization`, `connection` (required), `binding`, `reason`, `resume`, `approve_production_deploys`, `project`, `caller`.

### Remove a binding

`remove_connection_binding` acts on your projects.

Parameters: `organization`, `connection` (required), `binding` (required), `reason`.

### Call a connection's API

`call_connection` acts on your projects.

Parameters: `organization`, `connection` (required), `method`, `path`, `body`, `type`, `call`.

## Projects

### Read projects

`get_project` only reads. It is also on the trial server.

Parameters: `project`, `include`.

### Create a project

`create_project` acts on your projects. It is also on the trial server.

Parameters: `project` (required), `name`, `budget_eur`, `organization`.

### Change a project's settings

`update_project_settings` acts on your projects. It is in the `administer` group.

Parameters: `project`, `budget_eur`, `owner`, `add_webhook`, `types`, `remove_webhook`.

### Delete a project

`delete_project` acts on your projects. It is in the `administer` group.

Parameters: `project` (required), `confirm` (required), `approval_id`.

### Read the organization's activity log

`get_activity_log` only reads.

Parameters: `organization`, `tab`, `person`, `via`, `family`, `project`, `resource`, `who`, `assignment`, `since`, `until`, `limit`, `cursor`, `verify`.

## Access and permissions

### Explain access

`explain_access` only reads.

Parameters: `organization`, `project`, `scope`, `who`, `permission`, `activity`.

### Cancel an access request

`cancel_access_request` acts on your projects. It is in the `administer` group.

Parameters: `organization`, `id` (required), `reason`.

### Review the access

`review_access` only reads. It is in the `administer` group.

Parameters: `view`, `organization`, `role`, `request`, `project`, `scope`, `unused_days`.

### Grant a role

`grant_role` acts on your projects.

Parameters: `organization`, `who` (required), `role` (required), `scope` (required), `until`, `days`, `reason` (required).

### Revoke a role

`revoke_role` acts on your projects.

Parameters: `organization`, `assignment` (required), `reason` (required).

### Keep a reviewed access

`keep_access` acts on your projects. It is in the `administer` group.

Parameters: `organization`, `assignment` (required), `reason`.

### Define a role

`define_role` acts on your projects. It is in the `administer` group.

Parameters: `organization`, `role` (required), `name`, `description`, `permissions`, `reason`.

### Delete a role

`delete_role` acts on your projects. It is in the `administer` group.

Parameters: `organization`, `role` (required), `reason`.

### Read sign-ins through the enterprise connection

`list_sign_ins` only reads. It is in the `administer` group.

Parameters: `organization`, `project`.

### Request access

`request_access` acts on your projects.

Parameters: `organization`, `role`, `permission`, `scope`, `days`, `reason` (required), `renew`, `for`.

## The organization

### Read organizations

`get_organization` only reads.

Parameters: `view`, `organization`.

### Read usage

`get_usage` only reads. It is in the `administer` group.

Parameters: `view`, `project`, `organization`, `period`.

### Invite a person

`invite_member` acts on your projects.

Parameters: `organization`, `email` (required), `role`, `reason`, `resend`.

### Change a member's role or groups

`update_member` acts on your projects. It is in the `administer` group.

Parameters: `organization`, `email` (required), `role`, `reason`, `add_groups`, `remove_groups`.

### Remove a member

`remove_member` acts on your projects. It is in the `administer` group.

Parameters: `organization`, `email` (required).

### Create a group

`create_group` acts on your projects. It is in the `administer` group.

Parameters: `organization`, `group` (required), `sso`.

### Delete a group

`delete_group` acts on your projects. It is in the `administer` group.

Parameters: `organization`, `group` (required).

### Change the organization's settings

`update_organization_settings` acts on your projects. It is in the `administer` group.

Parameters: `organization`, `retention_months`, `confirm`, `call_retention_days`, `language`, `rules`, `budget_eur`, `approvals`, `no_budget`, `add_approvers`, `subject_type`, `resource_type`, `resource`, `remove_approvers`, `group`, `sso_group`.

## Tokens and service accounts

### List tokens and service accounts

`list_tokens` only reads. It is in the `administer` group.

Parameters: `view`, `organization`, `account`, `scope`, `project`, `environment`.

### Create an API token

`create_token` acts on your projects.

Parameters: `scope`, `project`, `organization`, `name`, `permissions`, `environments`, `days`.

### Shorten a token's life

`update_token_expiry` acts on your projects. It is in the `administer` group.

Parameters: `id` (required), `days` (required).

### Revoke a token

`revoke_token` acts on your projects. It is in the `administer` group.

Parameters: `app_session`, `token`.

### Create a service account

`create_service_account` acts on your projects. It is in the `administer` group.

Parameters: `organization`, `name` (required), `description`, `project`, `reason` (required).

### Enable or disable a service account

`update_service_account` acts on your projects. It is in the `administer` group.

Parameters: `organization`, `account` (required), `reason` (required), `enabled` (required).

### Delete a service account

`delete_service_account` acts on your projects. It is in the `administer` group.

Parameters: `organization`, `account` (required), `reason` (required).

### Create a service account key

`create_service_account_key` acts on your projects. It is in the `administer` group.

Parameters: `organization`, `account` (required), `replace`, `name`, `until`, `days`, `overlap_hours`.

### Revoke a service account key

`revoke_service_account_key` acts on your projects. It is in the `administer` group.

Parameters: `organization`, `account` (required), `key_id` (required), `reason` (required).

### Get a one-hour git credential

`get_git_credentials` acts on your projects.

Parameters: `project`.

### Open an internal app

`open_internal_app` acts on your projects. It is in the `environments_and_storage` group.

Parameters: `project`, `service`, `environment`, `address`, `read_only`, `approval_id`.

## Feedback, docs and tool groups

### Send feedback to the while team

`send_feedback` acts on your projects. It is also on the trial server.

Parameters: `kind` (required), `message` (required), `project`, `organization`, `tool`, `route`, `reference`, `service`, `usage`, `block`, `volume`, `authentication`, `documentation`.

### Read feedback and replies

`list_feedback` only reads. It is in the `feedback_and_docs` group. It is also on the trial server.

Parameters: `organization`.

### Acknowledge an announcement

`acknowledge_announcement` acts on your projects.

Parameters: `id` (required).

### Read page notes

`list_page_notes` only reads. It is in the `feedback_and_docs` group.

Parameters: `project`, `state`, `limit`.

### Mark a page note

`update_page_note` acts on your projects. It is in the `feedback_and_docs` group.

Parameters: `project`, `id` (required), `state` (required), `version`, `note`.

### Open page notes in production

`update_page_notes_settings` acts on your projects. It is in the `feedback_and_docs` group.

Parameters: `project`, `production_open` (required), `environment`.

### Search while's docs

`search_docs` only reads. It is in the `feedback_and_docs` group. It is also on the trial server.

Parameters: `query` (required), `lang`.

### Load a tool group

`load_tools` changes your agent's tool list.

Parameters: `group` (required).

## Next steps

- [Connect Claude Code](/en/guides/connect-claude-code/)
- [The REST API, operation by operation](/en/docs/reference/api/)
- [How while works](/en/docs/get-started/how-while-works/)
