Skip to content

Connecting an assistant

Periskopos includes an MCP server, so any AI assistant that speaks MCP (Claude Code, Claude Desktop, Cursor, VS Code, Windsurf…) can answer “is Nova-Shop up, is my last push live, how many visitors this week?” in any session. It is a thin client of the running Periskopos app (it doesn’t read your keys itself), so the app must be running.

Settings → AI assistants → Connection is where it stands: on or off, whether the MCP server can start (it’s in the install, and node 24 or later is on PATH), and who’s connected (“Claude Code is connected · last request 20s ago”).

Assistants are shut out until you switch on Let AI assistants use Periskopos there. Switching it off, or Cut off AI assistants in the tray, withdraws anything one is waiting on.

Settings, AI assistants tab: assistants switched on, the MCP server, and the commands to connect Claude Code or another assistant. Settings, AI assistants tab: assistants switched on, the MCP server, and the commands to connect Claude Code or another assistant.
Settings → AI assistants.

Connecting needs no token. Connection → Connect an assistant gives the command with this install’s path. In Claude Code (PowerShell too):

Terminal window
claude mcp add --scope user periskopos node "C:\Users\you\AppData\Local\Programs\periskopos\resources\app\mcp\main.ts"

/mcp in Claude Code then lists periskopos as connected.

Claude Desktop, Cursor, VS Code and others take the same as JSON in their MCP settings (for Claude Desktop, claude_desktop_config.json: Settings → Developer → Edit config, then restart Claude).

The MCP server finds the running app’s token by itself (the installed app’s data folder first, then a checkout’s data/; PERISKOPOS_DATA_DIR points it elsewhere), and connects as the assistant This PC. Periskopos is told which tool is calling (it introduces itself over MCP), and the approval dialog and History name it: “Cursor asks to run Purge cache…”.

Nine tools only read:

Tool What it answers
list_apps Every app and how it’s doing
get_app Every check on one app, including a Cloudflare Worker’s deploys, the domain’s health and the host’s runtime errors
check_app Checks one app now, like Check now, so an assistant can confirm a fix or a deploy
get_failure_log The last 150 lines of each failed CI job’s log on GitHub (up to 3 jobs), and of a failed Cloudflare Workers build, so it can tell you why a build fails
get_configuration What’s set up wrong and how to fix it
get_history Uptime and events over time
get_traffic Requests, visitors, cache and errors from the app’s Cloudflare domain, and Web Analytics when it’s on
list_services Your accounts
list_actions The actions an app has

In Claude Code you can let it use them without asking:

{
"permissions": {
"allow": [
"mcp__periskopos__list_apps",
"mcp__periskopos__get_app",
"mcp__periskopos__check_app",
"mcp__periskopos__get_failure_log",
"mcp__periskopos__get_configuration",
"mcp__periskopos__get_history",
"mcp__periskopos__get_traffic",
"mcp__periskopos__list_services",
"mcp__periskopos__list_actions"
]
}
}

The tenth, run_action, changes production. Limits and approvals says how it’s kept in check.