LangSmith · Capability
LangSmith — sandboxes
LangSmith — sandboxes. 17 operations. Lead operation: Get sandbox access decision. Self-contained Naftiko capability covering one Langsmith business surface.
What You Can Do
GET
Get
— Get sandbox access decision
/v1/auth/sandbox-access
GET
Get
— List sandbox claims
/v1/v2/sandboxes/boxes
POST
Post
— Create a sandbox claim
/v1/v2/sandboxes/boxes
POST
Post
— Batch delete sandbox claims
/v1/v2/sandboxes/boxes/batch-delete
GET
Get
— Get a sandbox claim
/v1/v2/sandboxes/boxes/{name}
DELETE
Delete
— Delete a sandbox claim
/v1/v2/sandboxes/boxes/{name}
PATCH
Patch
— Update a sandbox claim
/v1/v2/sandboxes/boxes/{name}
POST
Post
— Generate a service access token
/v1/v2/sandboxes/boxes/{name}/service-url
POST
Post
— Capture a snapshot from a sandbox
/v1/v2/sandboxes/boxes/{name}/snapshot
POST
Post
— Start a sandbox
/v1/v2/sandboxes/boxes/{name}/start
GET
Get
— Get sandbox claim status
/v1/v2/sandboxes/boxes/{name}/status
POST
Post
— Stop a sandbox
/v1/v2/sandboxes/boxes/{name}/stop
GET
Get
— List snapshots
/v1/v2/sandboxes/snapshots
POST
Post
— Create a snapshot
/v1/v2/sandboxes/snapshots
GET
Get
— Get a snapshot
/v1/v2/sandboxes/snapshots/{snapshot-id}
DELETE
Delete
— Delete a snapshot
/v1/v2/sandboxes/snapshots/{snapshot-id}
GET
Get
— Get sandbox resource usage
/v1/v2/sandboxes/usage
MCP Tools
get-sandbox-access-decision
Get sandbox access decision
read-only
idempotent
list-sandbox-claims
List sandbox claims
read-only
idempotent
create-sandbox-claim
Create a sandbox claim
batch-delete-sandbox-claims
Batch delete sandbox claims
get-sandbox-claim
Get a sandbox claim
read-only
idempotent
delete-sandbox-claim
Delete a sandbox claim
idempotent
update-sandbox-claim
Update a sandbox claim
idempotent
generate-service-access-token
Generate a service access token
capture-snapshot-sandbox
Capture a snapshot from a sandbox
start-sandbox
Start a sandbox
get-sandbox-claim-status
Get sandbox claim status
read-only
idempotent
stop-sandbox
Stop a sandbox
list-snapshots
List snapshots
read-only
idempotent
create-snapshot
Create a snapshot
get-snapshot
Get a snapshot
read-only
idempotent
delete-snapshot
Delete a snapshot
idempotent
get-sandbox-resource-usage
Get sandbox resource usage
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: LangSmith — sandboxes
description: 'LangSmith — sandboxes. 17 operations. Lead operation: Get sandbox access decision. Self-contained Naftiko
capability covering one Langsmith business surface.'
tags:
- Langsmith
- sandboxes
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
LANGSMITH_API_KEY: LANGSMITH_API_KEY
capability:
consumes:
- type: http
namespace: langsmith-sandboxes
baseUri: ''
description: LangSmith — sandboxes business capability. Self-contained, no shared references.
resources:
- name: auth-sandbox-access
path: /auth/sandbox-access
operations:
- name: get
method: GET
description: Get sandbox access decision
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: sandbox_id
in: query
type: string
description: Sandbox claim UUID
required: true
- name: action
in: query
type: string
description: 'Runtime action: exec | file | tunnel | proxy'
required: true
- name: v2-sandboxes-boxes
path: /v2/sandboxes/boxes
operations:
- name: get
method: GET
description: List sandbox claims
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: limit
in: query
type: integer
description: Maximum number of results
- name: offset
in: query
type: integer
description: Pagination offset
- name: name_contains
in: query
type: string
description: Filter by name substring
- name: status
in: query
type: string
description: Filter by status (provisioning, ready, failed, stopped, deleting)
- name: sort_by
in: query
type: string
description: Sort column (name, status, created_at)
- name: sort_direction
in: query
type: string
description: Sort direction (asc, desc)
- name: post
method: POST
description: Create a sandbox claim
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: v2-sandboxes-boxes-batch-delete
path: /v2/sandboxes/boxes/batch-delete
operations:
- name: post
method: POST
description: Batch delete sandbox claims
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: v2-sandboxes-boxes-name
path: /v2/sandboxes/boxes/{name}
operations:
- name: get
method: GET
description: Get a sandbox claim
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: Sandbox claim display name
required: true
- name: delete
method: DELETE
description: Delete a sandbox claim
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: Sandbox claim display name or UUID
required: true
- name: patch
method: PATCH
description: Update a sandbox claim
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: Current sandbox claim display name
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: v2-sandboxes-boxes-name-service-url
path: /v2/sandboxes/boxes/{name}/service-url
operations:
- name: post
method: POST
description: Generate a service access token
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: Sandbox claim display name
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: v2-sandboxes-boxes-name-snapshot
path: /v2/sandboxes/boxes/{name}/snapshot
operations:
- name: post
method: POST
description: Capture a snapshot from a sandbox
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: Sandbox claim display name
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: v2-sandboxes-boxes-name-start
path: /v2/sandboxes/boxes/{name}/start
operations:
- name: post
method: POST
description: Start a sandbox
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: Sandbox claim display name
required: true
- name: v2-sandboxes-boxes-name-status
path: /v2/sandboxes/boxes/{name}/status
operations:
- name: get
method: GET
description: Get sandbox claim status
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: Sandbox claim display name
required: true
- name: v2-sandboxes-boxes-name-stop
path: /v2/sandboxes/boxes/{name}/stop
operations:
- name: post
method: POST
description: Stop a sandbox
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: path
type: string
description: Sandbox claim display name
required: true
- name: v2-sandboxes-snapshots
path: /v2/sandboxes/snapshots
operations:
- name: get
method: GET
description: List snapshots
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: limit
in: query
type: integer
description: Maximum number of results
- name: offset
in: query
type: integer
description: Pagination offset
- name: name_contains
in: query
type: string
description: Filter by name substring
- name: status
in: query
type: string
description: Filter by status (building, ready, failed, deleting)
- name: sort_by
in: query
type: string
description: Sort column (name, status, created_at)
- name: sort_direction
in: query
type: string
description: Sort direction (asc, desc)
- name: post
method: POST
description: Create a snapshot
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: v2-sandboxes-snapshots-snapshot_id
path: /v2/sandboxes/snapshots/{snapshot_id}
operations:
- name: get
method: GET
description: Get a snapshot
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: snapshot_id
in: path
type: string
description: Snapshot UUID
required: true
- name: delete
method: DELETE
description: Delete a snapshot
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: snapshot_id
in: path
type: string
description: Snapshot UUID
required: true
- name: v2-sandboxes-usage
path: /v2/sandboxes/usage
operations:
- name: get
method: GET
description: Get sandbox resource usage
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
authentication:
type: bearer
token: '{{env.LANGSMITH_API_KEY}}'
exposes:
- type: rest
namespace: langsmith-sandboxes-rest
port: 8080
description: REST adapter for LangSmith — sandboxes. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/auth/sandbox-access
name: auth-sandbox-access
description: REST surface for auth-sandbox-access.
operations:
- method: GET
name: get
description: Get sandbox access decision
call: langsmith-sandboxes.get
with:
sandbox_id: rest.sandbox_id
action: rest.action
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/sandboxes/boxes
name: v2-sandboxes-boxes
description: REST surface for v2-sandboxes-boxes.
operations:
- method: GET
name: get
description: List sandbox claims
call: langsmith-sandboxes.get
with:
limit: rest.limit
offset: rest.offset
name_contains: rest.name_contains
status: rest.status
sort_by: rest.sort_by
sort_direction: rest.sort_direction
outputParameters:
- type: object
mapping: $.
- method: POST
name: post
description: Create a sandbox claim
call: langsmith-sandboxes.post
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/sandboxes/boxes/batch-delete
name: v2-sandboxes-boxes-batch-delete
description: REST surface for v2-sandboxes-boxes-batch-delete.
operations:
- method: POST
name: post
description: Batch delete sandbox claims
call: langsmith-sandboxes.post
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/sandboxes/boxes/{name}
name: v2-sandboxes-boxes-name
description: REST surface for v2-sandboxes-boxes-name.
operations:
- method: GET
name: get
description: Get a sandbox claim
call: langsmith-sandboxes.get
with:
name: rest.name
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: delete
description: Delete a sandbox claim
call: langsmith-sandboxes.delete
with:
name: rest.name
outputParameters:
- type: object
mapping: $.
- method: PATCH
name: patch
description: Update a sandbox claim
call: langsmith-sandboxes.patch
with:
name: rest.name
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/sandboxes/boxes/{name}/service-url
name: v2-sandboxes-boxes-name-service-url
description: REST surface for v2-sandboxes-boxes-name-service-url.
operations:
- method: POST
name: post
description: Generate a service access token
call: langsmith-sandboxes.post
with:
name: rest.name
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/sandboxes/boxes/{name}/snapshot
name: v2-sandboxes-boxes-name-snapshot
description: REST surface for v2-sandboxes-boxes-name-snapshot.
operations:
- method: POST
name: post
description: Capture a snapshot from a sandbox
call: langsmith-sandboxes.post
with:
name: rest.name
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/sandboxes/boxes/{name}/start
name: v2-sandboxes-boxes-name-start
description: REST surface for v2-sandboxes-boxes-name-start.
operations:
- method: POST
name: post
description: Start a sandbox
call: langsmith-sandboxes.post
with:
name: rest.name
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/sandboxes/boxes/{name}/status
name: v2-sandboxes-boxes-name-status
description: REST surface for v2-sandboxes-boxes-name-status.
operations:
- method: GET
name: get
description: Get sandbox claim status
call: langsmith-sandboxes.get
with:
name: rest.name
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/sandboxes/boxes/{name}/stop
name: v2-sandboxes-boxes-name-stop
description: REST surface for v2-sandboxes-boxes-name-stop.
operations:
- method: POST
name: post
description: Stop a sandbox
call: langsmith-sandboxes.post
with:
name: rest.name
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/sandboxes/snapshots
name: v2-sandboxes-snapshots
description: REST surface for v2-sandboxes-snapshots.
operations:
- method: GET
name: get
description: List snapshots
call: langsmith-sandboxes.get
with:
limit: rest.limit
offset: rest.offset
name_contains: rest.name_contains
status: rest.status
sort_by: rest.sort_by
sort_direction: rest.sort_direction
outputParameters:
- type: object
mapping: $.
- method: POST
name: post
description: Create a snapshot
call: langsmith-sandboxes.post
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/sandboxes/snapshots/{snapshot-id}
name: v2-sandboxes-snapshots-snapshot-id
description: REST surface for v2-sandboxes-snapshots-snapshot_id.
operations:
- method: GET
name: get
description: Get a snapshot
call: langsmith-sandboxes.get
with:
snapshot_id: rest.snapshot_id
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: delete
description: Delete a snapshot
call: langsmith-sandboxes.delete
with:
snapshot_id: rest.snapshot_id
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/sandboxes/usage
name: v2-sandboxes-usage
description: REST surface for v2-sandboxes-usage.
operations:
- method: GET
name: get
description: Get sandbox resource usage
call: langsmith-sandboxes.get
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: langsmith-sandboxes-mcp
port: 9090
transport: http
description: MCP adapter for LangSmith — sandboxes. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: get-sandbox-access-decision
description: Get sandbox access decision
hints:
readOnly: true
destructive: false
idempotent: true
call: langsmith-sandboxes.get
with:
sandbox_id: tools.sandbox_id
action: tools.action
outputParameters:
- type: object
mapping: $.
- name: list-sandbox-claims
description: List sandbox claims
hints:
readOnly: true
destructive: false
idempotent: true
call: langsmith-sandboxes.get
with:
limit: tools.limit
offset: tools.offset
name_contains: tools.name_contains
status: tools.status
sort_by: tools.sort_by
sort_direction: tools.sort_direction
outputParameters:
- type: object
mapping: $.
- name: create-sandbox-claim
description: Create a sandbox claim
hints:
readOnly: false
destructive: false
idempotent: false
call: langsmith-sandboxes.post
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: batch-delete-sandbox-claims
description: Batch delete sandbox claims
hints:
readOnly: false
destructive: false
idempotent: false
call: langsmith-sandboxes.post
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-sandbox-claim
description: Get a sandbox claim
hints:
readOnly: true
destructive: false
idempotent: true
call: langsmith-sandboxes.get
with:
name: tools.name
outputParameters:
- type: object
mapping: $.
- name: delete-sandbox-claim
description: Delete a sandbox claim
hints:
readOnly: false
destructive: true
idempotent: true
call: langsmith-sandboxes.delete
with:
name: tools.name
outputParameters:
- type: object
mapping: $.
- name: update-sandbox-claim
description: Update a sandbox claim
hints:
readOnly: false
destructive: false
idempotent: true
call: langsmith-sandboxes.patch
with:
name: tools.name
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: generate-service-access-token
description: Generate a service access token
hints:
readOnly: false
destructive: false
idempotent: false
call: langsmith-sandboxes.post
with:
name: tools.name
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: capture-snapshot-sandbox
description: Capture a snapshot from a sandbox
hints:
readOnly: false
destructive: false
idempotent: false
call: langsmith-sandboxes.post
with:
name: tools.name
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: start-sandbox
description: Start a sandbox
hints:
readOnly: false
destructive: false
idempotent: false
call: langsmith-sandboxes.post
with:
name: tools.name
outputParameters:
- type: object
mapping: $.
- name: get-sandbox-claim-status
description: Get sandbox claim status
hints:
readOnly: true
destructive: false
idempotent: true
call: langsmith-sandboxes.get
with:
name: tools.name
outputParameters:
- type: object
mapping: $.
- name: stop-sandbox
description: Stop a sandbox
hints:
readOnly: false
destructive: false
idempotent: false
call: langsmith-sandboxes.post
with:
name: tools.name
outputParameters:
- type: object
mapping: $.
- name: list-snapshots
description: List snapshots
hints:
readOnly: true
destructive: false
idempotent: true
call: langsmith-sandboxes.get
with:
limit: tools.limit
offset: tools.offset
name_contains: tools.name_contains
status: tools.status
sort_by: tools.sort_by
sort_direction: tools.sort_direction
outputParameters:
- type: object
mapping: $.
- name: create-snapshot
description: Create a snapshot
hints:
readOnly: false
destructive: false
idempotent: false
call: langsmith-sandboxes.post
with:
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-snapshot
description: Get a snapshot
hints:
readOnly: true
destructive: false
idempotent: true
call: langsmith-sandboxes.get
with:
snapshot_id: tools.snapshot_id
outputParameters:
- type: object
mapping: $.
- name: delete-snapshot
description: Delete a snapshot
hints:
readOnly: false
destructive: true
idempotent: true
call: langsmith-sandboxes.delete
with:
snapshot_id: tools.snapshot_id
outputParameters:
- type: object
mapping: $.
- name: get-sandbox-resource-usage
description: Get sandbox resource usage
hints:
readOnly: true
destructive: false
idempotent: true
call: langsmith-sandboxes.get
outputParameters:
- type: object
mapping: $.