For the complete documentation index, see llms.txt. This page is also available as Markdown.

Logs and usage

Read per-server runtime logs and resource usage over time.

Read per-server runtime logs and resource usage over time.

These are action names. In default compact mode, call the indicated group tool with {"action":"<action-name>","params":{...}}; the arguments below go inside params. In ?mode=all, call the action name directly with those arguments. browse_github and read_docs are direct tools in both modes. Expand each schema for nested fields, enum values and validation constraints. Successful results are JSON in both text content and structuredContent; failures use isError and structuredContent.error.

get_app_logs

Read a page of container logs for an app. Paging starts at the newest lines and moves back in time by default; inside a page, chunks and lines run oldest to newest, so the last line is the most recent.

Group: apps · Behavior: Read

Compact tool: apps · Action: get_app_logs

MCP annotations: readOnlyHint: true · destructiveHint: false · idempotentHint: true · openWorldHint: false

Permissions and REST equivalents

Operation
REST
Required scopes

apps.logs

GET /projects/{projectId}/apps/{appId}/logs

monitoring:read

Arguments

Argument
Type
Required
Description

projectId

string

Yes

Project id

appId

string

Yes

App id

nodes

array<string>

No

Server addresses to read from; omit for every server the app ran on

cursorNs

string

No

Cursor from a previous page (nextCursorNs)

cursor

integer

No

Unix time in milliseconds to seek to when no cursorNs is given; 0 or omitted means now

pageSize

integer

No

Lines per page, at most 1000 (default 200)

direction

"older" / "newer"

No

Which way the next page moves from the cursor: older (the default) or newer. Lines inside a page are always chronological

Complete input schema

Result

  • logs (array<object>): Chunks in chronological order, consecutive lines from one server merged into a chunk that from and to span; the last line of the last chunk is the newest

  • nextCursorNs (string or null): Pass as cursorNs to fetch the next page in the same direction; null at the end

  • hasMore (boolean): See the complete response schema below.

  • totalLines (integer): Lines in this page across every chunk

Response schema: apps.logs

get_app_usage

Resource usage of an app over a time range, bucketed per server

Group: apps · Behavior: Read

Compact tool: apps · Action: get_app_usage

MCP annotations: readOnlyHint: true · destructiveHint: false · idempotentHint: true · openWorldHint: false

Permissions and REST equivalents

Operation
REST
Required scopes

apps.usage

GET /projects/{projectId}/apps/{appId}/usage

monitoring:read

Arguments

Argument
Type
Required
Description

projectId

string

Yes

Project id

appId

string

Yes

App id

start

string

No

Range start (ISO 8601); defaults to one hour before end

end

string

No

Range end (ISO 8601); defaults to now. At most 30 days after start

Complete input schema

Result

  • start (string): ISO 8601 timestamp (UTC)

  • end (string): ISO 8601 timestamp (UTC)

  • intervalSeconds (integer): Width of each bucket

  • series (array<object>): One series per server the app ran on; each point sums the bucket

Response schema: apps.usage

export_logs

The app's container logs as one text, oldest first. Every line is stamped with its time and server, up to maxBytes (1 MiB by default, 4 MiB at most). For a page at a time use apps.logs instead.

Group: apps · Behavior: Read

Compact tool: apps · Action: export_logs

MCP annotations: readOnlyHint: true · destructiveHint: false · idempotentHint: true · openWorldHint: false

Permissions and REST equivalents

Operation
REST
Required scopes

apps.logs.export

GET /projects/{projectId}/apps/{appId}/logs/export

monitoring:read

Arguments

Argument
Type
Required
Description

projectId

string

Yes

Project id

appId

string

Yes

App id

nodes

array<string>

No

Server addresses to include; omit for all

maxBytes

integer

No

Stop after this many bytes of text; 1048576 by default

Complete input schema

Result

  • text (string): The log lines, newline-separated

  • lines (integer): See the complete response schema below.

  • truncated (boolean): maxBytes was reached before the end; the newest lines are missing

Response schema: apps.logs.export

Operation-specific errors: 429 too_many_attempts.

get_log_retention

How long the app's container logs are kept

Group: apps · Behavior: Read

Compact tool: apps · Action: get_log_retention

MCP annotations: readOnlyHint: true · destructiveHint: false · idempotentHint: true · openWorldHint: false

Permissions and REST equivalents

Operation
REST
Required scopes

apps.logs.retention.get

GET /projects/{projectId}/apps/{appId}/logs/retention

apps:read

Arguments

Argument
Type
Required
Description

projectId

string

Yes

Project id

appId

string

Yes

App id

Complete input schema

Result

  • days (integer): How many days of container logs are kept

  • isDefault (boolean): The platform default applies; no per-app setting

Response schema: apps.logs.retention.get

set_log_retention

Set how many days the app's container logs are kept. 1 to 180; 0 goes back to the platform default

Group: apps · Behavior: Write

Compact tool: apps_write · Action: set_log_retention

MCP annotations: readOnlyHint: false · destructiveHint: true · idempotentHint: true · openWorldHint: false

Permissions and REST equivalents

Operation
REST
Required scopes

apps.logs.retention.update

PATCH /projects/{projectId}/apps/{appId}/logs/retention

apps:write

Arguments

Argument
Type
Required
Description

days

integer

Yes

Days to keep; 0 for the default

projectId

string

Yes

Project id

appId

string

Yes

App id

Complete input schema

Result

  • days (integer): How many days of container logs are kept

  • isDefault (boolean): The platform default applies; no per-app setting

Response schema: apps.logs.retention.update

Operation-specific errors: 429 too_many_attempts.

clear_logs

Delete the app's container logs older than a point in time. Cannot be undone.

Group: apps · Behavior: Write

Compact tool: apps_write · Action: clear_logs

MCP annotations: readOnlyHint: false · destructiveHint: true · idempotentHint: false · openWorldHint: false

Requires confirm: true for this irreversible action.

Permissions and REST equivalents

Operation
REST
Required scopes

apps.logs.clear

POST /projects/{projectId}/apps/{appId}/logs/clear

apps:write

Arguments

Argument
Type
Required
Description

olderThan

string

Yes

Lines before this instant are deleted

projectId

string

Yes

Project id

appId

string

Yes

App id

confirm

true

Yes

Must be true: this action cannot be undone

Complete input schema

Result

  • deletedCount (integer): Lines deleted

Response schema: apps.logs.clear

Operation-specific errors: 429 too_many_attempts.

Was this helpful?