Reference

Tools Reference

Complete reference for every MCP tool exposed by Pagerunner, organized by category. Each entry shows the tool name, parameters with types, and a short example.

Session Management

list_profiles
list_profiles()
// List all configured profiles
 
No parameters.
open_session
open_session({
  profile: string,               // required
  stealth: bool,                // default: false
  allowed_domains: string[],     // optional
  max_navigations: number,       // optional
  sanitize_content: bool,        // default: false
  scan_injections: bool,         // default: false
  allowed_tools: string[],       // optional
  blocked_tools: string[],       // optional
  anonymize: bool,             // default: false
  anonymization_profile: string// optional
  anonymization_entities: string[], // optional
  anonymization_mode: string,   // optional
})
 
// Open a new browser session with the specified profile
// Example: open_session({ profile: "work" })
attach_session
attach_session({
  debug_port: number,  // optional
  debug_url: string,  // optional
  profile: string,    // optional
})
 
// Attach to an already-running Chrome instance
// Example: attach_session({ debug_port: 9222 })
close_session
close_session({
  session_id: string  // required
})
 
// Close a session and its Chrome instance
list_sessions
list_sessions()
// List all active sessions
list_tabs
list_tabs({
  session_id: string  // required
})
 
// List tabs in a session
new_tab
new_tab({
  session_id: string,  // required
  url: string,        // optional
})
 
// Open a new tab
// Example: new_tab({ session_id: "s1", url: "https://example.com" })
close_tab
close_tab({
  session_id: string,  // required
  target_id: string,   // required
})
 
// Close a specific tab

Navigation & Interaction

navigate
navigate({
  session_id: string,  // required
  target_id: string,   // required
  url: string,        // required
})
 
// Navigate a tab to a URL
get_content
get_content({
  session_id: string,  // required
  target_id: string,   // required
})
 
// Get page content (text, links, forms)
screenshot
screenshot({
  session_id: string,  // required
  target_id: string,   // required
})
 
// Take a screenshot of the current page
evaluate
evaluate({
  session_id: string,        // required
  target_id: string,         // required
  expression: string,       // required
  store_as_secret: string,  // optional — save result as a named secret
})
 
// Execute JavaScript in the page
// Example: evaluate({ ..., expression: "document.title" })
click
click({
  session_id: string,  // required
  target_id: string,   // required
  selector: string,    // required
})
 
// Click an element
// Example: click({ ..., selector: "#submit-btn" })
type_text
type_text({
  session_id: string,  // required
  target_id: string,   // required
  text: string,        // required
  selector: string,    // optional — focus element first
})
 
// Type text (keyboard events)
fill
fill({
  session_id: string,  // required
  target_id: string,   // required
  selector: string,    // required
  value: string,       // required
})
 
// Fill a form field with a value
// Example: fill({ ..., selector: "#email", value: "user@example.com" })
select
select({
  session_id: string,  // required
  target_id: string,   // required
  selector: string,    // required
  value: string,       // required
})
 
// Select an option from a dropdown
scroll
scroll({
  session_id: string,  // required
  target_id: string,   // required
  x: number,          // optional
  y: number,          // optional
  selector: string,    // optional — scroll within element
})
 
// Scroll the page or an element
wait_for
wait_for({
  session_id: string,  // required
  target_id: string,   // required
  selector: string,    // optional — wait for element
  url: string,        // optional — wait for navigation
  ms: number,         // optional — wait N milliseconds
  timeout_ms: number,  // optional — max wait time
})
 
// Wait for a condition
// Example: wait_for({ ..., selector: ".loaded" })

State Management

save_snapshot
save_snapshot({
  session_id: string,  // required
  target_id: string,   // required
  origin: string,      // optional — defaults to current page origin
})
 
// Save cookies + localStorage for an origin
restore_snapshot
restore_snapshot({
  session_id: string,    // required
  target_id: string,     // required
  origin: string,        // required
  from_profile: string,  // optional — restore from a different profile
})
 
// Restore a saved snapshot
list_snapshots
list_snapshots({
  latest_only: bool,   // optional
  profile: string,     // optional
})
 
// List all saved snapshots
delete_snapshot
delete_snapshot({
  profile: string,    // required
  origin: string,     // required
  saved_at: string,   // optional — delete specific version
})
 
// Delete a snapshot
save_tab_state / restore_tab_state
save_tab_state({
  session_id: string  // required
})
 
restore_tab_state({
  session_id: string  // required
})
 
// Save / restore all tab URLs and order
save_session_checkpoint
save_session_checkpoint({
  session_id: string,  // required
  name: string,        // optional
})
 
// Save full session state (cookies, localStorage, tabs)
restore_session_checkpoint
restore_session_checkpoint({
  session_id: string,     // required
  checkpoint_id: string,  // required
})
 
// Restore from a checkpoint
list_session_checkpoints / delete_session_checkpoint
list_session_checkpoints({
  profile: string  // required
})
 
delete_session_checkpoint({
  profile: string,        // required
  checkpoint_id: string,  // required
})

KV Store

kv_set
kv_set({
  namespace: string,  // required
  key: string,        // required
  value: string,      // required
})
 
// Store a value
// Example: kv_set({ namespace: "brief", key: "revenue", value: "$1.2M" })
kv_get
kv_get({
  namespace: string,  // required
  key: string,        // required
})
 
// Retrieve a value
kv_delete
kv_delete({
  namespace: string,  // required
  key: string,        // required
})
 
// Delete a key
kv_list
kv_list({
  namespace: string,        // required
  prefix: string,           // optional
  include_values: bool,     // default: false
})
 
// List keys in a namespace
kv_clear
kv_clear({
  namespace: string  // required
})
 
// Clear all keys in a namespace

Secrets

extract_secret
extract_secret({
  session_id: string,  // required
  target_id: string,   // required
  expression: string,  // required — JS expression
  name: string,        // required — secret name
})
 
// Extract a value from a page and store as secret
use_secret
use_secret({
  name: string,      // required — secret name
  command: string[],  // required — CLI command args
})
 
// Inject a secret into a CLI command via stdin
// Example: use_secret({ name: "api-key", command: ["curl", "-H", "Authorization: Bearer $SECRET"] })
list_secrets / delete_secret
list_secrets()
// List secret names (values never shown)
 
delete_secret({
  name: string  // required
})

Network & Console

get_network_log
get_network_log({
  session_id: string,         // required
  target_id: string,          // optional
  url_pattern: string,        // optional
  method: string,             // optional — GET, POST, etc.
  status_min: number,         // optional
  status_max: number,         // optional
  lookback_ms: number,        // optional
  limit: number,              // optional
  include_request_body: bool,  // default: false
  full_response: bool,        // default: false
  all_tabs: bool,             // default: false
})
 
// Query captured network requests
// Example: get_network_log({ ..., url_pattern: "/api/", method: "POST" })
get_console_log
get_console_log({
  session_id: string,  // required
  target_id: string,   // required
  limit: number,       // optional
})
 
// Get browser console messages

Site Knowledge

get_site_knowledge
get_site_knowledge({
  origin: string  // required — e.g. "https://github.com"
})
 
// Get learned knowledge about a site
register_adapter
register_adapter({
  origin: string,          // required
  name: string,            // required — adapter name
  description: string,     // required
  js_code: string,         // required — JavaScript to execute
  params_schema: object,    // optional — JSON Schema for params
})
 
// Register a site adapter (reusable JS function for a site)
call_site_api
call_site_api({
  session_id: string,  // required
  target_id: string,   // required
  origin: string,      // required
  name: string,        // required — adapter name
  params: object,      // optional
})
 
// Call a registered adapter
generate_adapter
generate_adapter({
  origin: string,      // required
  name: string,        // required
  description: string,  // optional
})
 
// Auto-generate an adapter (requires ANTHROPIC_API_KEY)

Recordings

start_recording
start_recording({
  session_id: string,  // required
  target_id: string,   // required
  name: string,        // optional
  tags: string[],      // optional
  flow: string,        // optional
})
 
// Start recording a session
stop_recording
stop_recording({
  session_id: string  // required
})
 
// Stop recording
add_marker
add_marker({
  session_id: string,    // required
  label: string,         // required
  description: string,   // optional
})
 
// Add a timestamped marker to the recording
list_recordings
list_recordings({
  profile: string,  // optional
  flow: string,     // optional
  tag: string,      // optional
})
 
// List recordings
get_recording / delete_recording
get_recording({
  recording_id: string  // required
})
 
delete_recording({
  recording_id: string  // required
})
render_recording
render_recording({
  recording_id: string,  // required
  format: string,        // optional — "mp4", "gif", "webm"
  with_overlays: bool,    // default: false
  position: string,       // optional
  font: string,           // optional
  font_size: number,      // optional
  text_color: string,     // optional
  bg_color: string,       // optional
  bar_height: number,     // optional
})
 
// Render recording to video
// Example: render_recording({ recording_id: "r1", format: "mp4", with_overlays: true })

Notifications

notify
notify({
  title: string,       // required
  body: string,        // optional
  level: string,       // optional — "info", "warning", "error"
  session_id: string,  // optional
})
 
// Send a macOS notification
// Example: notify({ title: "Done", body: "Report ready", level: "info" })

Autonomous Agent

agent_run
agent_run({
  goal: string,       // required — what the agent should accomplish
  profile: string,    // optional
  model: string,      // optional
  max_steps: number,  // optional
})
 
// Run an autonomous browsing agent
// Example: agent_run({ goal: "Find the pricing for Acme Corp", profile: "research" })

Next: Examples →