CrowNest
API reference

Capability matrix

Compare CrowNest resources across MCP tools, CLI commands, TypeScript SDK methods, and Python SDK methods.

This matrix maps each CrowNest operation to the surfaces that expose it. It is checked against the live MCP registry, CLI command table, and SDK method lists in this repository.

To refresh it, compare:

  • MCP: packages/mcp/src/tools.ts
  • CLI: packages/cli/src/index.ts (canonicalCliCommands)
  • TypeScript SDK: packages/sdk/src/client-types.ts and packages/sdk/src/sandbox-handle.ts
  • Python SDK: packages/python-sdk/src/crownest/_resources.py

Then run pnpm --filter @crownest/mcp test, pnpm check:cli-surface, pnpm check:sdk-surface, and pnpm test:python-sdk.

Projects and usage

ResourceOperationMCP toolCLI commandTypeScript SDKPython SDK
ProjectList-crownest projects listclient.projects.list()client.projects.list()
ProjectCreatecreate_project-client.projects.create()client.projects.create()
UsageReadget_usage-client.usage()client.usage()

Sandboxes

ResourceOperationMCP toolCLI commandTypeScript SDKPython SDK
SandboxCreatecreate_sandboxcrownest sandboxes createclient.sandboxes.create()client.sandboxes.create()
SandboxListlist_sandboxescrownest sandboxes listclient.sandboxes.list()client.sandboxes.list()
SandboxGetget_sandbox-client.sandboxes.get()client.sandboxes.get()
SandboxExtend TTLextend_sandboxcrownest sandboxes extendclient.sandboxes.extend(), sandbox.extend()client.sandboxes.extend(), sandbox.extend()
SandboxKillkill_sandboxcrownest sandboxes killclient.sandboxes.kill(), sandbox.kill()client.sandboxes.kill(), sandbox.kill()

MCP tools that accept sandbox_id can omit it to use the session's lazy default Sandbox. The first omitted sandbox_id call creates that Sandbox; later calls reuse it until it expires, is killed, or the MCP server exits.

Commands

ResourceOperationMCP toolCLI commandTypeScript SDKPython SDK
CommandRun and waitrun_commandcrownest commands runclient.commands.run(), sandbox.commands.run()client.commands.run(), sandbox.commands.run()
CommandStart-crownest commands startclient.commands.start(), sandbox.commands.start()client.commands.start(), sandbox.commands.start()
CommandGetget_command-client.commands.get()client.commands.get()
CommandLogsstream_command_logscrownest logsclient.commands.logs(), client.commands.streamLogs()client.commands.logs(), client.commands.stream_logs()
CommandCancelcancel_commandcrownest commands cancelclient.commands.cancel(), sandbox.commands.cancel()client.commands.cancel(), sandbox.commands.cancel()

Commands are persisted process invocation records. For interpreter state, use Code Contexts and Code Runs.

Code Contexts and Code Runs

ResourceOperationMCP toolCLI commandTypeScript SDKPython SDK
Code RunRunrun_codecrownest code runclient.code.run(), sandbox.code.run()client.code.run(), sandbox.code.run()
Code RunStream-crownest code runclient.code.runStream(), sandbox.code.runStream()client.code.run_stream(), sandbox.code.run_stream()
Code ContextCreate--client.code.createContext(), sandbox.code.createContext()client.code.create_context(), sandbox.code.create_context()
Code ContextListlist_code_contexts-client.code.listContexts(), sandbox.code.listContexts()client.code.list_contexts(), sandbox.code.list_contexts()
Code ContextGetget_code_context-client.code.getContext(), sandbox.code.getContext()client.code.get_context(), sandbox.code.get_context()
Code ContextDelete--client.code.deleteContext(), sandbox.code.deleteContext()client.code.delete_context(), sandbox.code.delete_context()

run_code uses artifact promotion by default. Inline display outputs stay inline when safe; rich outputs are promoted to Artifacts; oversized, unsafe, or unsupported outputs are reported as rejected outputs.

Workspace files

ResourceOperationMCP toolCLI commandTypeScript SDKPython SDK
Workspace fileRead textread_filecrownest files readclient.files.read(), sandbox.files.read()client.files.read(), sandbox.files.read()
Workspace fileWrite textwrite_filecrownest files writeclient.files.write(), sandbox.files.write()client.files.write(), sandbox.files.write()
Workspace fileUpload local file-crownest files uploadclient.files.write()client.files.write()
Workspace fileList directorylist_filescrownest files listclient.files.list(), sandbox.files.list()client.files.list(), sandbox.files.list()
Workspace fileStatstat_filecrownest files statclient.files.stat(), sandbox.files.stat()client.files.stat(), sandbox.files.stat()
Workspace fileMake directorymake_directorycrownest files mkdirclient.files.mkdir(), sandbox.files.mkdir()client.files.mkdir(), sandbox.files.mkdir()
Workspace fileMove or renamemove_filecrownest files moveclient.files.move(), sandbox.files.move()client.files.move(), sandbox.files.move()
Workspace fileDeletedelete_filecrownest files deleteclient.files.delete(), sandbox.files.delete()client.files.delete(), sandbox.files.delete()
Workspace fileDownload URL--client.files.downloadUrl(), sandbox.files.downloadUrl()client.files.download_url(), sandbox.files.download_url()
Workspace fileRead bytes--client.files.readBytes(), sandbox.files.readBytes()client.files.read_bytes(), sandbox.files.read_bytes()
Workspace fileWrite bytes--client.files.writeBytes(), sandbox.files.writeBytes()client.files.write_bytes(), sandbox.files.write_bytes()

Public file APIs operate inside the Sandbox Workspace. Use /workspace paths unless a lower-level runtime command intentionally reads elsewhere.

Artifacts

ResourceOperationMCP toolCLI commandTypeScript SDKPython SDK
ArtifactCreate from Workspace filecreate_artifactcrownest artifacts createclient.artifacts.create(), sandbox.artifacts.create()client.artifacts.create(), sandbox.artifacts.create()
ArtifactList for Sandboxlist_artifactscrownest artifacts listclient.artifacts.list(), sandbox.artifacts.list()client.artifacts.list(), sandbox.artifacts.list()
ArtifactGet metadataget_artifact-client.artifacts.get()client.artifacts.get()
ArtifactDownload bytesdownload_artifactcrownest artifacts downloadclient.artifacts.download()client.artifacts.download()
ArtifactDownload URL--client.artifacts.downloadUrl()client.artifacts.download_url()
ArtifactDeletedelete_artifactcrownest artifacts deleteclient.artifacts.delete()client.artifacts.delete()

Artifacts are durable outputs copied out of the Workspace and indexed by CrowNest. A file becomes an Artifact only when you explicitly create one or when Code Run output promotion succeeds.

Previews

ResourceOperationMCP toolCLI commandTypeScript SDKPython SDK
PreviewCreatecreate_previewcrownest previews createclient.previews.create(), sandbox.previews.create()client.previews.create(), sandbox.previews.create()
PreviewList for Sandboxlist_previewscrownest previews listclient.previews.list(), sandbox.previews.list()client.previews.list(), sandbox.previews.list()
PreviewGet metadataget_preview-client.previews.get()client.previews.get()
PreviewRevokerevoke_previewcrownest previews revokeclient.previews.revoke()client.previews.revoke()

Preview URLs are authenticated or token-mode private browser links. Public unauthenticated Preview URLs are not part of v1.

API Keys

ResourceOperationMCP toolCLI commandTypeScript SDKPython SDK
API KeyCreate-crownest keys create--
API KeyList metadatalist_api_keyscrownest keys listclient.apiKeys.list()client.api_keys.list()
API KeyGet metadata--client.apiKeys.get()client.api_keys.get()
API KeyRevokerevoke_api_key-client.apiKeys.revoke()client.api_keys.revoke()

API Key creation stays dashboard and CLI owned. Programmatic surfaces can inspect and revoke metadata, but secret key values are only shown once at creation.

Next steps

  • Agent patterns has multi-step recipes that use the matrix above.
  • MCP documents the default Sandbox model for MCP hosts.
  • Authentication lists the scopes each operation requires.

On this page