periscope
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@periscopego to books.toscrape.com and extract the book listings as JSON"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
periscope
A command-line browser for AI agents on macOS. It runs Safari's engine (WebKit), so websites see a normal Safari, and it keeps sessions open between commands.
periscope navigate https://books.toscrape.com/ --session demo
periscope text --session demo # the page as markdown
periscope extract --session demo # the page's records as JSON
periscope click "text:Next" --session demoInstall
brew install oskar-szulc/tap/periscope
periscope install-skill # adds the agent skill to this projectWithout Homebrew: curl -fsSL https://raw.githubusercontent.com/oskar-szulc/periscope/main/install.sh | sh
To build from source instead (Xcode 26): swift build -c release, then copy
.build/release/periscope onto your PATH.
For agents
Claude Desktop: download
periscope-<version>.mcpbfrom the latest release and open itClaude Code:
/plugin marketplace add oskar-szulc/periscope, then/plugin install periscope@periscopeCodex, Cursor and others:
npx skills add oskar-szulc/periscopeMCP clients: listed in the MCP Registry as
io.github.oskar-szulc/periscope; the command isperiscope mcp, e.g.claude mcp add periscope -- periscope mcp, or in a JSON config:{"mcpServers": {"periscope": {"command": "periscope", "args": ["mcp"]}}}Any agent with a shell:
periscope docsprints the full reference
Related MCP server: Safari MCP Server
Reading a page
Command | Returns | Use it to |
| The page's main content as markdown, links included | Read an article or a post |
| URL, title, headings, the start of the content, and every clickable element with a selector and a number ( | Decide what to click or fill next |
| JSON: the page's repeated items (cards, results, table rows), its structured data, and the next-page link | Scrape a list of jobs, products or results |
| Every link on the page as an absolute URL ( | Collect URLs to visit next |
| A PNG of the page as displayed | See the layout, or check visual content |
What else you can do
Act:
click,fill,type,select,scroll,mouse, targeting CSS or what a person sees (text:Next,label:Email)Stay logged in: named sessions persist;
loginandshowlet you take over the windowKnow when you're blocked: CAPTCHA and bot-check pages exit with code 5
Full reference: PERISCOPE.md.
Requirements
macOS 26 or newer, in a logged-in desktop session with the display on
Not inside a shell sandbox (periscope exits with a message if it is)
License
MIT. Contributions: see CONTRIBUTING.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
A real browser for your agent: render any page, or 25 pages of a site, to clean text.
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with web browsers using natural language, featuring automated browsing, form filling, vision-based element detection, and structured JSON responses for systematic browser control.62MIT
- AlicenseBqualityDmaintenanceProvides AI assistants with Safari browser automation and developer tools access, enabling LLMs to control Safari, access console logs, monitor network activity, and perform browser automation tasks.139 npm33MIT
- AlicenseAqualityCmaintenanceEnables visual web access and browser automation through Safari, with tools for navigation, screenshots, element interaction, and tab management.1716 npmBSD 3-Clause
- AlicenseAqualityCmaintenanceEnables AI agents to fully control a browser for web automation, including navigation, clicking, typing, scrolling, screenshots, and DOM inspection, with session persistence and anti-bot bypass.4033 npmMIT