Prototype · Preview: every server in the official registry, synced every 30 minutes. Sign in with Google to write reviews.Prototype · updated every 30 min
PopNx MCPMCP servers for people who use AI · explained in plain words

Squish

by getsquishversion 0.3.1i★ 2iComputer or cloud
Registry nameio.github.getsquish/squish

How to install

What it does

Give AI random access to video: timestamped contact sheets + zoom into any start/end range.

  • Connects Computer or cloud
  • Account or key No key needed
  • Category Design, images & audio

Install

Pick the AI app you use, then copy the settings.

Passed 5/5 checks · What you ask goes through the maker’s server (api.getsquish.app)

First: which AI do you use?

Pick your app and the steps appear below.

Works with Claude · about 2 min

No key, nothing to install · Set it up once on claude.ai or the desktop app, then use it in chat · free accounts can add 1 · on Team/Enterprise an Owner adds it

  1. Open Claude’s Connectors page

    CustomizeConnectors

    CustomizeConnectors1Add2https://…3Add4
  2. Click “Add” → “Custom” → “Web” and fill in these 2 fields

    Copy each value into the field with the same name in Claude, then click Continue

    Name · Name

    Checking the commands · copy buttons appear once they pass

    Remote MCP server URL · Address

    Checking the commands · copy buttons appear once they pass

    Click Continue past the sign-in settings Claude detected · under Authentication choose what the maker says (Sign in now, Sign in when needed or No sign in), then click Add

  3. Turn it on in a chat

    +ConnectorsSquish

  4. Try it

    Use Squish and tell me what you can do for me, then show me one thing

    ✓ If Claude says it is using Squish or shows a Squish tool in the answer, you are connected

Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with ChatGPT, depending on your plan

Full MCP: ChatGPT Business, Enterprise or Edu on the web · Pro: connects with read/fetch permissions, so tools that change data may not work · Plus: not confirmed in OpenAI’s docs; if you see an add-custom-MCP option on the Plugins page you can try these steps · web only

  1. Open ChatGPT’s add-MCP page on the web

    Plugins+Add custom MCP server

    ChatGPTPlugins1+2https://…3Create4
  2. Fill in the name and address

    Enter a name, paste the address under Connection, tick the risk warning and click Create as a plugin

    Name · Name

    Checking the commands · copy buttons appear once they pass

    Connection · Address

    Checking the commands · copy buttons appear once they pass

  3. Pick Squish in a chat

    Start a new chat and pick Squish from your plugins before typing

  4. Try it

    Use Squish and tell me what you can do for me, then show me one thing

    ✓ If ChatGPT says it is using Squish or shows a Squish tool in the answer, you are connected

Menu names checked against OpenAI’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with Claude Code · about 2 min

No key, nothing to install

  1. Open Terminal

    Mac: press Command+Space and type Terminal · Windows: open PowerShell

  2. Paste this command and press Enter

    Checking the commands · copy buttons appear once they pass

  3. Type /mcp in Claude Code

    You should see Squish listed as connected

  4. Try it

    Use Squish and tell me what you can do for me, then show me one thing

    ✓ If Claude Code says it is using Squish or shows a Squish tool in the answer, you are connected

Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with Cursor · about 2 min

No key, nothing to install

  1. Click this button to open Cursor

    Checking the commands · copy buttons appear once they pass

  2. Open the AI chat in Cursor in Agent mode

  3. Try it

    Use Squish and tell me what you can do for me, then show me one thing

    ✓ If Cursor says it is using Squish or shows a Squish tool in the answer, you are connected

Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with VS Code · about 2 min

No key, nothing to install

  1. Click this button to open VS Code

    Checking the commands · copy buttons appear once they pass

  2. Open the AI chat in VS Code in Agent mode

  3. Try it

    Use Squish and tell me what you can do for me, then show me one thing

    ✓ If VS Code says it is using Squish or shows a Squish tool in the answer, you are connected

Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.

See every app that uses MCP →

Address for apps that connect over the web

Address

Checking the commands · copy buttons appear once they pass

JSON settings are under “For developers” below

Stuck? Ask people who use Squish💬 Discussion →
For developers: Terminal commands and JSON settings

Over the web

Claude Code

Checking the commands · copy buttons appear once they pass

Cursor (~/.cursor/mcp.json)

Checking the commands · copy buttons appear once they pass

VS Code (mcp.json)

Checking the commands · copy buttons appear once they pass

Installed on your computer

Claude Code

Checking the commands · copy buttons appear once they pass

Claude Desktop (claude_desktop_config.json)

Checking the commands · copy buttons appear once they pass

Cursor (~/.cursor/mcp.json)

Checking the commands · copy buttons appear once they pass

VS Code (mcp.json)

Checking the commands · copy buttons appear once they pass

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

At a glance

Downloads per weeki
52/wk
Licencei
Apache-2.0
Connection
Computer or cloud
Transport
stdio, streamable-http
Latest versioni
0.3.1
Published to registryi
Jul 18, 2026
Code last changedi
Aug 25, 2026
Maker
getsquish
Packages
npm: @getsquish/squish
Registry status
Active

Which apps can use it

Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.

Connect over the internet in

ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

Run on your computer in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

All apps, with pros and cons →

Related guides

What it can do

Tool names and descriptions exactly as the server reported them on Nov 13, 2026. The maker wrote them, not us; we show them as plain text.

  • squish_video

    Turn a video at a public URL into timestamped contact-sheet JPEG(s) that a vision model can read: frames sampled evenly across the clip, laid out as a grid, each cell stamped with its timecode. Use it when a video is too long to ingest, when the question is about what happens acr

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 13, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account getsquish, which owns the repo

  • ✓ Pass

    Still maintained

    Code last changed 3 months ago

  • ✓ Pass

    Has a licence

    Uses Apache-2.0

  • ✓ Pass

    Endpoint responds

    Responded in 216 ms (HTTP 200)

  • – Not applicable

    Sign-in with OAuth

    No sign-in needed

  • ✓ Pass

    No hidden instructions in tool descriptions

    Read 1 tool descriptions and found no hidden instructions to the AI

Discussion

Ask, share a tip or report that it does not work. Sorted by what people marked helpful.

No posts yet. Be the first to ask or share.

Posts here are written by users, not the PopNx team.

Sign in with Google to post

User reviews

No reviews yet

Sign in with Google to write a review

Compared with others in Design, images & audioi

  • More stars than 85% of the other 3025 servers in this category
  • Published to the registry more recently than 15% of the other 3025 servers in this category
  • Basic checks equal to or better than 100% of the other 3025 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Squish safe?

It passed 5 of 5 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed 3 months ago, and the latest version (0.3.1) reached the registry 4 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT on the web (full MCP on Business and above; Pro read-only).

What can I use instead?

In the same category: Figma Context MCP, AutoClip, Next AI Draw.io

Others in the same category

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Figma Context MCP

Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.

by GLipsWidely used↓ 152.1K/wk★ 16.2KUpdated 5 months ago

Runs on your computer

AutoClip

Clip long videos into short clips with covers and captions. Local CLI and MCP.

by zhouxiaokaWidely used↓ 205/wk★ 10.4KUpdated 16 days ago

Runs on your computer

Next AI Draw.io

draw.io diagrams your AI agent draws on a live browser canvas that you can also edit by hand

by DayuanJiangWidely used↓ 21.7K/wk★ 36.9K Stars for the whole repoUpdated today

Runs on your computer

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

@getsquish/squish

Give AI random access to video. Overview, zoom, cite. Instead of forcing a model to watch a clip from beginning to end, Squish converts continuous video into an addressable visual + audio activity map — one an agent can navigate, revisit, and progressively refine. Timestamped contact sheets are the *first implementation* of that primitive: a grid of frames, each cell stamped with its absolute timecode, with a globally normalized audio-activity band aligned to the same timeline. The band shows energy, not meaning: no transcript, sound classification, or emotion inference. Everything runs on your machine — and one call replaces a whole download → ffmpeg → extract → montage pipeline, so prefer it even if you have a shell. Also works inside Claude Desktop / claude.ai via the hosted connector: add https://api.getsquish.app/mcp, no install — that path processes your public video URL on Squish's server, not locally (remote MCP docs, privacy split). From the makers of getsquish.app.

Agents don't consume videos — they navigate them. Real run: a scene cut pinned to

0.2 s by retrieving 34 frames — not 3,088 (overview → zoom → zoom). Field-proven

across 5 clients and 3 mouths in a single day — Claude Desktop completed the

multi-round loop on its own, down to a sub-second lock, without being taught.

The demo is the primitive. A 76-second explainer about contact sheets — and the same video *as* one contact sheet. One needs a play button; the other you just read:

▶ watch — 76 s, linear

read — one sheet, random access

Why this works

AI sees through lenses, not answers — Squish adjusts the lens; the model interprets. Video is continuous; reasoning is sparse. Most questions touch a tiny fraction of the timeline. Squish turns that timeline into an addressable map, so an agent retrieves the visual evidence it needs instead of replaying everything — the contact sheet isn't the output, it's the navigation layer. Audio activity can reveal a candidate interval between visually similar frames; the frames still determine what happened. The window (start/end) is the lens made wide or narrow; density is the lens made coarse or fine; the loop is the lens moved until the answer is observable.

Install

npm install -g @getsquish/squish     # or one-shot: npx -y @getsquish/squish <video>

Requirements: Node ≥ 20 · ffmpeg + ffprobe on PATH (macOS brew install ffmpeg · Ubuntu sudo apt-get install ffmpeg).

Try it with a video you know

Bring a clip whose answer you already know. Ask AI to find one specific moment without giving it the original video:

  1. Run npx -y @getsquish/squish clip.mov --json.
  2. Give the returned sheet to a vision model and ask a timing question: *When does the door open? When does an object first appear? Where is the unusual audio activity, and what do the nearby frames show?*
  3. Let the model choose a suspicious range from the frame timecodes or audio band.
  4. Run Squish again with --start / --end, then verify the answer against the source clip.

The index proposes; the zoomed visual evidence confirms. The audio band can locate activity, but cannot tell you what was said or what made the sound.

OpenAI Build Week 2026

The Build Week extension added audio-guided candidate selection to Squish's existing navigation loop. Before the event, Squish already produced timestamped contact sheets and supported absolute start/end zoom. Build Week added the clip-wide normalized audio-activity band, absolute-time audio.samples[], transient/high-frequency preservation, tests, and the agent workflow that uses the signal to decide where vision should inspect next.

The demo keeps two proof layers separate:

  • Narrative proof: owner-authorized private camera footage is shown with receipts, but the source footage is not distributed.
  • Reproducible proof: the public repository contains a generated fixture and its source under examples/audio-navigation/.
git clone https://github.com/getsquish/squish.git

cd squish ./examples/audio-navigation/generate-sample.sh npx -y @getsquish/squish@0.3.1 examples/audio-navigation/sample.mp4 --json --out /tmp/squish-overview npx -y @getsquish/squish@0.3.1 examples/audio-navigation/sample.mp4 \ --density 6x6 --start 11.5 --end 13.5 --json --out /tmp/squish-zoom

The overview's activity band proposes the neighborhood. The dense visual sheet confirms the brief pink marker. Public 0.3.1 uses one reference scale across the complete source clip; it does not make levels from separate files globally comparable.

CLI

squish clip.mov                       # sheets land beside the input

squish clip.mov --density 5x5 --json # denser grid + machine-readable output squish clip.mov --start 1:00 --end 1:30 --density 5x5 # zoom into a range

Output: .sheet-N.jpg — a timecoded frame grid with a thin audio-activity band above it. Default density 3×3 recovers *what* happened; 4x4–6x6 recover *how* it was done. --out picks the destination. Videos without an audio track still work and are marked NO AUDIO TRACK.

--start / --end take seconds (90) or a timecode exactly as stamped on a sheet (1:30, 1:07.3) and window the run to that range. Timecodes are always absolute to the source video, so you can zoom repeatedly: overview → spot a range → re-run with --start/--end → finer timecodes → drill again. Short windows stamp sub-second timecodes (1:07.3) so adjacent cells stay distinguishable.

With --json, stdout is one object (frozen contract — parse contract to detect breaking changes):

{

"input": "/abs/path/clip.mov", "duration": 20.275, "frames": 9, "sheets": 1, "files": ["/abs/path/clip.sheet-1.jpg"], "audio": { "present": true, "normalization": "clip_peak", "window": { "start": 0, "end": 20.275 }, "samples": [ { "time": 0.106, "level": 0.08 }, { "time": 0.317, "level": 1 } ] }, "warnings": [], "contract": "squish-cli-v0" }

The example shortens audio.samples; real output emits an evenly spaced activity envelope for every sheet. Sample times are absolute source seconds. Levels are 0..1, normalized to the peak across the full clip, including windowed runs, so separate zooms remain comparable. Exit 0 success · 1 failure (message on stderr). Temp frames are always cleaned up. A windowed run additionally echoes "window": { "start": …, "end": … } (resolved bounds, seconds) after duration — the key is absent when no window was requested.

MCP server

squish mcp        # stdio server

One tool, `squish_video` — { video_path, density?, start?, end?, out_dir? } → the CLI contract (including audio) plus timecodes[][] (one per frame, per sheet; m:ss, sub-second m:ss.d when a window is short), stamped "contract": "squish-mcp-v0". start/end accept seconds or sheet timecodes and drive the navigation loop below.

Works with Claude Code, Claude Desktop, Cursor, Hermes, and any stdio MCP client:

{

"mcpServers": { "squish": { "command": "npx", "args": ["-y", "@getsquish/squish", "mcp"] } } }

Remote MCP — official AI apps, zero install

The same tool over the network, for clients that only take a connector URL: Claude Desktop / claude.ai → Settings → Connectors → Add custom connector → https://api.getsquish.app/mcp. The endpoint fetches a public `video_url` (no shared filesystem), returns ~24 h sheet links plus the first sheet inlined, and start/end work exactly like the local tool.

Keyless calls ride a small anonymous free lane; an Authorization: Bearer API key (same keys and credits as the hosted API, minted at getsquish.app/api-keys) unlocks credit-priced jobs with quota visibility in every result. Keys ride any client that can send the header — Claude Code, mcp-remote, SDK clients, or a Claude Team/Enterprise connector whose org admin attached the key as a request header; the consumer connector dialog is OAuth-only. Full reference: remote MCP docs.

The navigation loop

  1. Overview — call squish_video (MCP) or squish clip.mov --json (CLI) and read the sheet(s) with vision. Cells run in time order, left→right, top→bottom.
  2. Navigate — spot the regions that matter; every cell carries an absolute timecode. Treat an audio peak as a candidate interval, not an interpretation of what made the sound.
  3. Zoom — call again with start/end set to the timecodes you spotted, only where uncertainty remains: denser sheets of a narrower window, addresses still absolute.
  4. Repeat until the answer is observable — never re-read the whole clip at high density when one range matters.
  5. Cite absolute timestamps ("at 0:07 the press comes down").

Privacy

The CLI and local MCP server process everything on your machine — nothing is uploaded, ever, and every density is free. Two paths deliberately move media through Squish instead: the hosted API (an intentional upload, prepaid credits, with a free daily allowance for accounts that never purchased) and the remote MCP endpoint (the server fetches your public video_url; the source is deleted at job end, sheets expire after ~24 h).

Audio activity is available in the local CLI/MCP package. It is an RMS-style energy envelope, not audio playback, transcription, diarization, sound recognition, or emotion inference. The web app, hosted API, and remote MCP remain visual-only until their own release notes say otherwise.


This repository

This is the engine — the CLI + MCP mouths of Squish, published to npm as @getsquish/squish. It is a curated, mirror-first export of a private monorepo (which stays the source of truth); history here starts at the first public release. See CONTRIBUTING.md for how changes flow.

Not in this repo, on purpose:

  • the getsquish.app web app (PWA) — same core planners, browser hands;
  • the hosted API (api.getsquish.app) and its remote MCP endpoint (/mcp, the official-app connector) — the paid rail: intentional upload / server-fetched URLs, prepaid credits, a free daily allowance for never-paid accounts and a small anonymous free lane on th

Only the beginning is shown; read the rest in the repo