Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoHTTP transport port.3000
TENKI_API_KEYNoAPI key (`tk_…`). One of this or TENKI_AUTH_TOKEN is required.
TENKI_API_URLNoAlias for TENKI_API_ENDPOINT.https://api.tenki.cloud
TENKI_MCP_AUDITNoSet to '1' to log each tool call name + arg keys to stderr.off
TENKI_AUTH_TOKENNoSession token (`ory_st_…` or cookie value). Takes precedence over TENKI_API_KEY when both are set.
TENKI_API_ENDPOINTNoControl-plane base URL.https://api.tenki.cloud
TENKI_MCP_READONLYNoSet to '1' to register only read tools (no create/run/delete/spend).off
TENKI_MCP_HTTP_HOSTNoHTTP bind host; non-loopback requires TENKI_MCP_HTTP_TOKEN.127.0.0.1
TENKI_MCP_TRANSPORTNoSet to 'http' to serve Streamable HTTP instead of stdio.stdio
TENKI_MCP_HTTP_TOKENNoBearer token for the HTTP endpoint; optional on loopback, required on a non-loopback host.
TENKI_MCP_PUBLIC_URLNoPublic base URL for an OAuth-protected hosted server.
TENKI_MCP_OAUTH_SCOPENoRequired delegated scope.mcp
TENKI_MCP_IDENTITY_URLNoInternal Tenki Identity service endpoint used to exchange OAuth access tokens.
TENKI_MCP_OAUTH_ISSUERNoOAuth authorization-server issuer. Enables delegated OAuth HTTP mode.
TENKI_MCP_DISABLED_TOOLSNoComma-separated tool names to skip registering.
TENKI_MCP_OAUTH_RESOURCENoRFC 8707 resource identifier accepted in access-token audiences. Defaults to `<public URL>/mcp`.
TENKI_MCP_IDENTITY_SERVICE_TOKENNoService credential for the private Identity token-exchange RPC.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
tenki_whoamiA

Return the identity and workspaces for the current API key. Cheap credential test.

tenki_run_codeA

Boot a throwaway microVM, run a snippet (shell/python/javascript), return its stdout/stderr/exit code, and tear the sandbox down. Cost-guarded and self-terminating. Use this for one-shot execution when you don't need a persistent sandbox. Output over ~64KB per stream is truncated head+tail — and the sandbox is gone, so for large output use tenki_create_sandbox + tenki_exec and page through the retained file.

tenki_create_sandboxA

Create a persistent sandbox microVM, optionally from a snapshot or template image. Returns the session (id, state) and its data-plane endpoint. Boots in ~2s. Use tenki_exec / tenki_read_file / tenki_write_file against the returned session_id.

tenki_get_sandboxB

Fetch a sandbox's current state and metadata.

tenki_list_sandboxesC

List sandboxes for the workspace.

tenki_terminate_sandboxA

Terminate (destroy) a sandbox. The microVM and its filesystem are gone after this.

tenki_pause_sandboxA

Pause a sandbox (snapshot + suspend) so it can be resumed later.

tenki_resume_sandboxA

Resume a previously paused sandbox.

tenki_extend_sandboxA

Extend a running sandbox's wall-clock lifetime by N seconds so it isn't auto-terminated at its max-duration cap.

tenki_update_sandboxA

Update mutable fields on an existing sandbox — its name, tags, idle timeout, or max duration.

tenki_terminate_sandboxesA

Terminate MULTIPLE sandboxes in one call (bulk). IRREVERSIBLE — every listed sandbox and its filesystem is destroyed. Use tenki_terminate_sandbox for a single one.

tenki_report_sandbox_activityA

Report client-side activity on a sandbox to reset its idle timer and keep it from being reaped as idle (a keep-alive heartbeat).

tenki_list_workspace_sandboxesA

List every sandbox belonging to a specific workspace (defaults to the API key's workspace) — useful for spotting leaked, still-billing sandboxes across the workspace.

tenki_execA

Run a command in an existing sandbox and return stdout, stderr, and exit code inline. Streams over max_output_bytes (default 64KB) come back as a head+tail preview with the full output retained at stdoutPath/stderrPath in the sandbox.

tenki_read_fileA

Read a UTF-8 text file from a sandbox (paths under /home/tenki).

tenki_write_fileA

Write a UTF-8 text file to a sandbox (paths under /home/tenki).

tenki_list_filesA

List a directory in a sandbox, including dotfiles (.git, .env, .gitignore) by default — set include_hidden false to omit them.

tenki_stat_pathA

Get metadata (size, mode, type, timestamps) for a file or directory in a sandbox. Use to check whether a path exists or inspect it before reading/removing.

tenki_make_dirA

Create a directory in a sandbox. Set recursive to also create any missing parent directories (mkdir -p).

tenki_remove_pathA

Delete a file or directory in a sandbox. Set recursive to remove a non-empty directory and its contents (rm -r).

tenki_move_pathB

Move or rename a file or directory within a sandbox. Both paths are under /home/tenki.

tenki_gitA

Run a git operation in a sandbox. Only clone, checkout, diff, and log are supported by the API — for any other git command (status, add, commit, push, ...) use tenki_exec with git .... clone arg keys: repo (required, the URL), branch?, depth?, directory?. CAVEAT (live-verified): checkout/diff/log run in the session's working directory (/home/tenki), which is not a repository and has no directory arg — so on a repo cloned into a subdirectory they fail with 'not a git repository'. Use tenki_exec with git -C <directory> ... instead (e.g. git -C /home/tenki/hw log -n 2). For reference, their arg keys are — checkout: ref (required), create? ('true' = -b); diff: range? or base?+head?, path?; log: max_count?, range?, path?.

tenki_expose_portA

Expose a port from a sandbox and get a public preview URL. Useful when an agent starts a web server it wants to show.

tenki_list_exposed_portsA

List the ports currently exposed from a sandbox.

tenki_unexpose_portA

Remove an inbound port exposure from a sandbox, taking its public URL/preview offline. Use this to un-publish a port previously exposed with tenki_expose_port.

tenki_create_preview_urlA

Create a shareable public preview URL for a port in a sandbox. The sandbox must have inbound networking enabled (create it with allow_inbound).

tenki_open_previewA

Open a viewer-token-gated (AUTHENTICATED-mode) preview. USE tenki_expose_port OR tenki_create_preview_url INSTEAD for an ordinary web server: for any port other than the web terminal (7681) the API deliberately returns a non-regional fallback host that currently has no edge route, so the URL 404s (live-verified). The returned viewerToken does resolve via tenki_resolve_preview_token; only the URL is unreachable. Requires allow_inbound.

tenki_list_preview_urlsA

List the workspace's preview URLs, newest page first. Pass session_id to keep only the ones bound to that sandbox (filtered here, not server-side — so it applies to the page you fetched; raise page_size or follow next_page_token to widen it). Results are paginated: a nextPageToken in the response means more pages exist.

tenki_get_preview_urlA

Fetch a specific preview URL's details by id.

tenki_delete_preview_urlA

Delete a preview URL by id, taking it permanently offline.

tenki_touch_previewA

Refresh (keep-alive) a live preview by its preview token so it isn't torn down as idle.

tenki_bind_preview_urlA

Bind a named preview URL to a sandbox session and port (advanced routing).

tenki_unbind_preview_urlA

Unbind a named preview URL from its current session/port (advanced routing).

tenki_resolve_preview_tokenA

Resolve a preview token to the sandbox/port it points at (advanced).

tenki_create_snapshotA

Capture a running sandbox's disk and memory as a reusable snapshot (attached volumes are NOT captured); boot a new sandbox from it later with tenki_create_sandbox + snapshot_id.

tenki_get_snapshotA

Fetch one snapshot's status and metadata by ID.

tenki_list_snapshotsB

List the saved snapshots for the workspace (owner inferred from the API key).

tenki_list_session_snapshotsA

List the snapshots captured from a specific sandbox session.

tenki_list_dangling_snapshotsA

List dangling snapshots — those whose source session no longer exists — for the workspace, useful for cleanup.

tenki_update_snapshotA

Update a snapshot's mutable metadata (name and/or expiry).

tenki_delete_snapshotA

Permanently delete a snapshot by ID.

tenki_get_snapshot_download_urlA

Get a short-lived, pre-signed URL to download a snapshot's raw disk image (requires the snapshot to have been created with store_raw_image).

tenki_list_workspace_snapshotsA

List all snapshots in a workspace (defaults to the key's first workspace). Supports pagination.

tenki_create_volumeA

Create a workspace-scoped persistent volume — durable block storage that survives sandbox teardown. Defaults the workspace to the API key's first; override with workspace_id.

tenki_get_volumeA

Fetch a single volume's metadata and current state by its id.

tenki_list_volumesA

List persistent volumes in a workspace (defaults to the key's first workspace). Supports pagination.

tenki_update_volumeA

Rename a volume (update its human-readable name). To change a volume's size use tenki_resize_volume instead.

tenki_delete_volumeA

Permanently delete a volume and destroy its data. Fails with VolumeInUse if the volume is still attached to a session — detach it first.

tenki_resize_volumeA

Grow a volume to a new size in bytes (1 MiB … 100 GiB). Volumes can grow but not shrink.

tenki_attach_volumeA

Mount a volume into a running sandbox at an absolute path. Set read_only to mount without write access.

tenki_detach_volumeB

Unmount a volume from a sandbox session.

tenki_create_templateA

Create a custom-image template (a reusable sandbox-image spec: base image + setup script + default resources). Build it into a bootable image later with tenki_build_template. NOTE: only a TYPED template (created with builder_spec, no legacy fields) can build a named, publishable image (image_name) that tenki_create_sandbox boots via its image arg.

tenki_get_templateA

Retrieve one template by ID.

tenki_list_templatesA

List templates for the workspace, optionally filtered by tags.

tenki_update_templateA

Update mutable fields on a template. Only the fields you provide are changed; pass clear_tags to remove all tags.

tenki_delete_templateA

Delete a template by ID. Pass force to delete even when builds or dependents exist.

tenki_build_templateA

Trigger a build for a template, producing a bootable image. Returns the created build — poll it with tenki_get_template_build until READY; the ready build's imageDigestRef is what tenki_create_sandbox's image arg takes.

tenki_cancel_template_buildA

Cancel an in-progress template build by its build ID.

tenki_get_template_buildA

Retrieve one template build by its build ID (state, progress, and result image). A READY build's imageDigestRef is the reference tenki_create_sandbox's image arg takes.

tenki_list_active_template_buildsA

List the currently active (in-progress) builds for a given template.

tenki_get_workspace_usageA

Get per-second sandbox billing and usage figures for a workspace — use this for cost visibility across all of the workspace's sandboxes.

tenki_get_workspace_settingsA

Read a workspace's sandbox quotas and retention policy: max snapshots/templates/volumes/total bytes, max concurrent and sticky sessions, max preview URLs, and the pause/snapshot retention periods. These are workspace limits — there are no per-session defaults (idle timeout and max duration are set per sandbox at creation).

tenki_update_workspace_settingsA

Update a workspace's sandbox quotas and retention periods. Only the fields you pass change. Each quota has a matching clear_* flag to remove the override and fall back to the platform default; pass the value OR its clear flag, not both. There are no per-session defaults here — idle timeout and max duration are set per sandbox at creation.

tenki_get_snapshot_retention_settingsA

Get the workspace's pause- and snapshot-retention periods. DEPRECATED upstream: this RPC is marked deprecated in the API — tenki_get_workspace_settings returns the same retention fields alongside the quotas. An empty response means no retention override, i.e. kept indefinitely.

tenki_update_snapshot_retention_settingsA

Update the workspace's snapshot-retention policy: how long snapshots are kept before automatic cleanup. Pass retention_days to set it, or clear_retention to keep snapshots indefinitely (the unset state) — exactly one of the two. DEPRECATED upstream: prefer tenki_update_workspace_settings, which sets the same retention (and pause retention) alongside the quotas.

tenki_get_upload_urlA

Get a short-lived signed URL to upload (HTTP PUT) a binary file to a path inside a sandbox. Use for non-text payloads too large or binary for tenki_write_file.

tenki_get_download_urlA

Get a short-lived signed URL to download (HTTP GET) a command artifact from a sandbox by its artifact id (e.g. a command's stdout/stderr artifact). Note: the API supports download-by-artifact-id only, not download-by-path.

tenki_update_ssh_keysA

Set the SSH authorized public keys on a running sandbox, enabling direct SSH access for the given keys.

tenki_issue_ssh_certA

Issue a short-lived SSH certificate for a public key, authorizing SSH access to a sandbox via the SSH gateway.

tenki_list_ssh_gatewaysA

List the currently active SSH gateways for the workspace.

tenki_auth_statusA

Report whether the server has a usable Tenki credential, which kind (API key vs OAuth session token), and the endpoint it targets — verified with a live identity probe. Call this first when other tools fail with auth errors, or when this is the only tool available (which means no credential is configured). Reports status only; it does not log in and never returns the token.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 71 tools

Disambiguation2/5

Multiple tools overlap significantly: tenki_list_sandboxes and tenki_list_workspace_sandboxes have nearly identical purposes, several snapshot listing variants coexist, and deprecated retention-settings tools duplicate workspace-settings tools. Descriptions often clarify when to use what, but the boundary between run_code and create_sandbox+exec, git and exec, and open_preview versus expose_port/create_preview_url still creates real selection risk.

Naming Consistency5/5

Every tool uses the tenki_ prefix with a clear verb_noun pattern: create/get/list/update/delete for resources, plus exec/read/write/move for file operations and expose/unexpose for ports. Singular get_ versus plural list_ conventions are consistent, making the API predictable despite its size.

Tool Count1/5

71 tools is far beyond a well-scoped MCP surface and hits the extreme end of the calibration scale. Even accounting for a broad sandbox-management domain, the count is bloated by near-duplicate list/retrieval variants and deprecated endpoints that could be consolidated.

Completeness5/5

The domain is very thoroughly covered: full sandbox lifecycle, file operations, execution, preview URLs, snapshots, volumes, templates, SSH access, workspace settings, usage billing, and auth diagnostics. There are no obvious dead ends or missing core operations for managing sandboxes and their related resources.

Maintenance

ActivityMaintained
ResponsivenessNo issues