{"name":"ai.shiplight/shiplight","slug":"shiplight","title":"Shiplight","description":"An MCP server that provides browser automation","url":"https://mcp.market/server/shiplight","rating":null,"grade":"C","score":60,"certified":false,"status":"active","category":"scraping","tags":["scraping"],"presence":{"score":19,"stars":null,"forks":null,"downloads_week":1672,"last_push_at":null,"license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":null,"website":"https://www.shiplight.ai","version":"0.2.2","remotes":[],"packages":[{"registryType":"npm","identifier":"@shiplightai/mcp","version":"0.2.2","transport":{"type":"stdio"},"environmentVariables":[{"description":"Must be set to \"console\". Enables Playwright semantic locator generation (getByRole, getByTestId) for action entities. Without it, only XPath locators are available.","value":"console","name":"PWDEBUG"}]}],"tools":[{"name":"attach_to_browser","description":"Connect to a browser for testing. Two modes: 1. Direct CDP: pass cdp_url (e.g. from a debugger's /api/browser-cdp endpoint) to connect directly via Chrome DevTools Protocol. 2. Extension relay: omit cdp_url to auto-discover Chrome tabs via the Shiplight AI Chrome extension. Returns session_id for use with inspect_page, act, get_page_info, switch_tab, etc.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clear_execution_history","description":"Clear the execution history for a session. The execution history tracks past browser operations within a session. Clear it to start fresh or reduce memory usage.","write_action":false,"price_micros":0,"input_schema":null},{"name":"clear_logs","description":"Clear console and network logs for a session","write_action":false,"price_micros":0,"input_schema":null},{"name":"close_all","description":"Close all browser sessions","write_action":false,"price_micros":0,"input_schema":null},{"name":"close_session","description":"Close a browser session. Omit session_id entirely to close ALL open sessions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_html_report","description":"Generate a self-contained HTML session report. Can be called while the session is live OR after close_session. Embeds per-step screenshots, an optional video player, and a Playwright trace viewer link. The session must have been started with record_evidence: true. Pass local_video_path (returned by close_session) to embed the video. Pass local_trace_path (returned by close_session) to include trac","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_browser_console_logs","description":"Get console logs from the browser (errors, warnings, etc.)","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_browser_network_logs","description":"Get network request logs from the browser","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_local_artifact","description":"Get a local artifact file (screenshot, DOM snapshot, etc.) from a live browser session. Only accepts local file paths, NOT S3 URIs. For test run artifacts, use get_step_artifacts instead.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_locators","description":"Extract Playwright locators for one or more elements by index. Call inspect_page first. Returns locator, xpath, frame path, tag name, and text for each element. Use this to collect locator data for building test flows without interacting with the page. Pass multiple indices in a single call to save round-trips.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_page_info","description":"Get basic page information (URL and title) without taking a screenshot. Use this as a lightweight way to check what page you're on. For visual inspection, use inspect_page.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_relay_status","description":"Get extension relay server status and tab mapping","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_session_state","description":"Get current state of a session (URL, session type)","write_action":false,"price_micros":0,"input_schema":null},{"name":"inspect_page","description":"Inspect the current page: extracts the DOM tree and saves a Set-of-Mark screenshot. Returns the DOM file path (with element indices [0], [1], etc. for the act tool) and a screenshot file path. The DOM and screenshot are captured atomically so element indices always match. IMPORTANT: Read the DOM file to understand page state and decide actions. Only view the screenshot file when the DOM is insuffi","write_action":false,"price_micros":0,"input_schema":null},{"name":"new_session","description":"Create a new browser session with optional device emulation. Returns a session_id for subsequent operations. Use storage_state_path to restore a previously saved session (cookies, localStorage, IndexedDB). SCREEN RECORDING: Set browser_options.record_evidence=true only when you believe implementation is complete and are doing a final verification pass \\u2014 not for exploration, investigation, or ","write_action":true,"price_micros":0,"input_schema":null},{"name":"save_storage_state","description":"Save the browser session's storage state (cookies, localStorage, IndexedDB) to a file. Use this after logging in to cache the session for fast restores via new_session's storage_state_path.","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_variables","description":"Update session variables for use in subsequent browser operations. Variables are key-value pairs that can be referenced in browser tasks. Mark sensitive values (passwords, tokens) with sensitive_keys to prevent logging. Example: variables: { username: \"john\", password: \"secret123\" } sensitive_keys: [\"password\"]","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":60,"grade":"C","scanned_at":"2026-09-20T05:05:18.739Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T05:05:18.684Z","components":{"code":{"score":20,"max":25,"notes":["6 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"dist/index.js: …()}function j(e,t){let i=Je(t);return i?new Function(\"page\",`return ${i}`)(e):null}async func…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"@shiplightai/mcp","version":"0.2.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":32,"publishedAt":"2026-09-06T20:01:50.913Z","repositoryUrl":"git+https://github.com/ShiplightAI/shiplight-cli.git","weeklyDownloads":1672}],"repo":{"found":false,"owner":"ShiplightAI","repo":"shiplight-cli","error":"repo not found"},"icon":{"url":"https://www.shiplight.ai/favicon.ico","source":"site","width":595,"height":682},"presence":{"stars":null,"forks":null,"downloadsWeek":1672,"license":"MIT","lastPushAt":null,"score":19}}}},"grade_history":[],"reviews":[]}