Skip to content

MCP Server

paws ships an MCP server that lets AI agents manage servers, sessions, daemons, and fleet status directly from tools like Claude Code, Cursor, Windsurf, and VS Code.

Terminal window
claude mcp add paws -- bunx @paws/mcp-server

Then set your environment:

Terminal window
export PAWS_URL=http://your-control-plane:3000
export PAWS_API_KEY=your-api-key

Or configure it in your project’s .mcp.json:

{
"mcpServers": {
"paws": {
"command": "bunx",
"args": ["@paws/mcp-server"],
"env": {
"PAWS_URL": "http://your-control-plane:3000",
"PAWS_API_KEY": "your-api-key"
}
}
}
}

Add to .cursor/mcp.json:

{
"mcpServers": {
"paws": {
"command": "npx",
"args": ["-y", "@paws/mcp-server"],
"env": {
"PAWS_URL": "http://your-control-plane:3000",
"PAWS_API_KEY": "your-api-key"
}
}
}
}

Add to your VS Code settings or .vscode/mcp.json:

{
"servers": {
"paws": {
"command": "npx",
"args": ["-y", "@paws/mcp-server"],
"env": {
"PAWS_URL": "http://your-control-plane:3000",
"PAWS_API_KEY": "your-api-key"
}
}
}
}
ToolDescription
list-sessionsList recent sessions with status and output
create-sessionRun a workload in an isolated Firecracker VM
get-sessionGet session details, output, exit code
cancel-sessionCancel a running or pending session
wait-for-sessionPoll until a session reaches a terminal state
ToolDescription
list-daemonsList all daemons with status and trigger config
get-daemonGet daemon details and recent sessions
create-daemonCreate a new daemon (webhook or schedule trigger)
update-daemonUpdate daemon description or configuration
delete-daemonStop and remove a daemon
trigger-webhookManually trigger a daemon with a payload
ToolDescription
fleet-overviewWorker count, active sessions, queue depth
list-workersAll worker nodes with health and capacity
cost-summaryvCPU-seconds usage by daemon
list-snapshotsAvailable VM snapshots
ToolDescription
test-connectionTest SSH connectivity before adding a server
add-serverAdd a worker via SSH (password or private key)
add-server-ec2Launch and bootstrap an AWS EC2 instance
list-serversList registered servers with status
delete-serverRemove a server

For remote access without API keys, paws supports OAuth 2.1 with PKCE. This lets MCP clients authenticate through the paws dashboard login instead of manually managing API keys.

The control plane exposes standard OAuth discovery endpoints:

EndpointPurpose
/.well-known/oauth-protected-resourceResource metadata (RFC 9728)
/.well-known/oauth-authorization-serverServer metadata (RFC 8414)
/oauth/registerDynamic client registration
/oauth/authorizeAuthorization (login + consent)
/oauth/tokenToken exchange

OAuth requires HTTPS. Set the EXTERNAL_URL environment variable on the control plane to your public URL (e.g., https://fleet.example.com) for the discovery endpoints to return correct URLs.

VariableDefaultDescription
PAWS_URLhttp://localhost:4000Control plane URL
PAWS_API_KEY(required)API key for authentication
LOG_LEVELinfoLog level (debug, info, warn, error)

Ask your AI agent to:

  • “List all paws sessions from the last hour”
  • “Create a session that runs echo hello in the test-minimal snapshot”
  • “Show me the fleet health”
  • “Add my server at 65.108.10.170 with password auth”
  • “Test the SSH connection to 10.0.0.1 on port 2222”
  • “Trigger the pr-reviewer daemon with this PR payload”