Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Banquish

NPM · BANQUISH-MCP · 2 COMPONENTS

Answer with the live web: compose live parts of real pages into a Workspace in the Banquish Mac app.

+4 this week 73 Trust /100

Last scanned (9 hours ago)

Scores higher than 45% of npm servers

Category Browser Automation

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency45
Schema Quality & AI Usability53
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 4135 tokens (~217/item across 19 items; 19 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management73
  • Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage67
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "remove_note" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 20 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.

  • 3 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

  • 30 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 25 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

  • 23 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

  • 22 Oct 26 +4
    • Stability: unverified → 0.27 ▲ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/banquish-mcp@0.1.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 0 packages
Packages resolved 0
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 19 exposed · ~3,697 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_note ~293

Add a Note to a Workspace: a few words of your own beside its Panels. Formatted text only, shown in Banquish's own style: "# Heading" (or "## Smaller heading"), paragraphs, "- " or "1. " list items, and [links](https://…); anything else, HTML included, shows as the text it is. At most 2000 characters. Placement is where its Tile goes on the grid, as in arrange; without one it goes full width below the last Tile. With h, a Note's Tile is that tall, even taller than its text. The user can undo it with the rest of your Working stretch. Returns the Fit report: at the user's window, which Tiles are scaled below their Panel's minimum width, have an h taller than their Panel (capped, with the h they got), scroll inside, fell back to crop, are broken or ambiguous, or leave their Tile's width unused, and any gaps between Tiles. A Tile whose page hasn't laid it out at its width yet (one not on screen, say) is settling: a later report says how it fits. While a settling Tile's minimum width isn't known, whether the Workspace shows as one column isn't either: oneColumn is left out, and the summary says so.

NameTypeReqDescription
placementobject––
textstringyes–
workspacestringyes–

No output schema declared.

No examples provided.

add_panel ~477

Propose a Panel from candidate ids of an open page. Banquish confirms it on the page, which the first Panel from it takes over as its own. The page stays open to you for more Panels: its ids stay valid for expand, find, add_panel and update_panel, and each further Panel gets a fresh copy of the page, where Banquish replays your reveals and finds the parts again, which takes a few seconds (refused if they aren't found). reveal and screenshot need the page opened again once a Panel has taken it. Each id is one part; several ids make one Composite Panel, for parts of the page that act on each other (a player and its transcript, a chart and its time picker): they show together in one tile and stay live together. exclude takes ids of candidates inside the chosen parts that the Panel leaves out (an ad, a reply box, the rest of a container whose text you want); any other id is refused with the reason. Mode is "item" (follow this specific thing, the default) or "spot" (whatever occupies this place). Placement is where its Tile goes on the Workspace's grid, as in arrange; without one it goes full width below the last Tile. With h, a Panel's Tile is that tall where its Panel is taller, and its Panel scrolls inside it; h beyond its Panel's own height is capped at that height, and the Fit report says so (capped). Returns the Fit report: at the user's window, which Tiles are scaled below their Panel's minimum width, have an h taller than their Panel (capped, with the h they got), scroll inside, fell back to crop, are broken or ambiguous, or leave their Tile's width unused, and any gaps between Tiles. A Tile whose page hasn't laid it out at its width yet (one not on screen, say) is settling: a later report says how it fits. While a settling Tile's minimum width isn't known, whether the Workspace shows as one column isn't either: oneColumn is left out, and the summary says so.

NameTypeReqDescription
candidatesarrayyes–
excludearray––
modestring––
pagestringyes–
placementobject––
workspacestringyes–

No output schema declared.

No examples provided.

arrange ~407

Place any number of Tiles (Panels and Notes, by id) on a Workspace's grid in one call: x and w in 12 columns, y and h in rows of 8 px at the user's laptop window (1512 px wide; gaps 16 px, margins 24 px). No h means the Tile is as tall as its Panel or Note, at most about two-thirds of the user's window height (a taller Panel scrolls inside it). With h, a Panel's Tile is that tall where its Panel is taller, and its Panel scrolls inside it; h beyond its Panel's own height is capped at that height, and the Fit report says so (capped). With h, a Note's Tile is that tall, even taller than its text. Only the listed Tiles move. Tiles float up: y orders them, and each sits right under whatever is above it in its columns; a Tile placed on others pushes them, and those under them, down, hidden Tiles too. x + w over 12, or a negative or zero value, is refused with the reason, and then nothing moves; so is a Tile you can't see. A width below a Panel's minimum is taken, and the Panel shows scaled. Returns every Tile's placement. Returns the Fit report: at the user's window, which Tiles are scaled below their Panel's minimum width, have an h taller than their Panel (capped, with the h they got), scroll inside, fell back to crop, are broken or ambiguous, or leave their Tile's width unused, and any gaps between Tiles. A Tile whose page hasn't laid it out at its width yet (one not on screen, say) is settling: a later report says how it fits. While a settling Tile's minimum width isn't known, whether the Workspace shows as one column isn't either: oneColumn is left out, and the summary says so.

NameTypeReqDescription
tilesarrayyes–
workspacestringyes–

No output schema declared.

No examples provided.

create_workspace ~32

Create a Workspace, named plainly after the task. By default use one per answer.

NameTypeReqDescription
namestringyes–

No output schema declared.

No examples provided.

expand ~117

Show a candidate's children on an open page as it is now, in at most 40 lines like open_page's, opening the largest first. A candidate with more than 40 children is paged: pass pageNo for the next pages. Says how many candidates the page gained since you last looked (+N new), with new ids. If the page can't be read again, it is closed: open it again with open_page.

NameTypeReqDescription
candidatestringyes–
pagestringyes–
pageNointeger––

No output schema declared.

No examples provided.

find ~94

Find the smallest candidates on an open page, as it is now, whose text, heading, label, id or classes contain every word, in at most 40 lines like open_page's. Says how many candidates the page gained since you last looked (+N new). If the page can't be read again, it is closed: open it again with open_page.

NameTypeReqDescription
pagestringyes–
wordsstringyes–

No output schema declared.

No examples provided.

finish_work ~63

Signal that you've finished working: the working mark clears, Staging pages no Panel came from are discarded, your changes become one step the user can undo, and the user is told your answer is ready on the Workspaces you changed. No Fit report is sent after it.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_workspaces ~60

List the user's Workspaces, most recently viewed first: id, name, Panel count, when the user last viewed it, and whether it is archived. With a query, only Workspaces whose name contains every word.

NameTypeReqDescription
querystring––

No output schema declared.

No examples provided.

open_page ~380

Open a URL as a hidden Staging page with the user's profile: a page you may take Panels from, or one your own tools can't read properly. Find which pages to open with your own search; Banquish has no search. It waits for the page to settle (up to about 10 s), and you get the outline of its Candidate tree: the meaningful parts of the page, largest sections opened first, in at most 40 lines. The result holds the page id and the lines, each one string per candidate: `[id] ^parent kinds tag#htmlId.classes[role=…][aria="label"] @x,y wxh | counts | h:"heading" | "text" | +k`. ^parent is the candidate it sits in (^- for none); kinds are list:N (N items), item, ctl (a control), scrolls:H, fixed, or range a-b of n (a slice of a long level); @x,y wxh is its box on the page in CSS px; counts are the images, media, buttons, inputs and links inside it, left out when none; h: is its heading and "text" the start of its text; +k counts candidates inside it not shown. The result says if the page still shows a loading screen, and names the HTTP status when the page answered with an error (400 or above). Use expand and find to see more, as the page is then; ids stay valid while their candidates are on the page. Only your few most recently used pages keep running: one you leave behind (or unused for a few minutes) is unloaded to save memory and opened again when you next use it, keeping the ids of what's still in the same place. Pages on the user's Private sites are refused.

NameTypeReqDescription
urlstringyes–

No output schema declared.

No examples provided.

read_panel ~139

Read a Panel's current identity and values, kept apart (identity: what it is, e.g. heading, label, link; values: prices, counts, times), with its state and how fresh the read is. Banquish reloads an unloaded page if needed. To protect sites, values read under a minute ago are served as they are, and an unloaded page is reloaded at most every 5 minutes: reads in between get the last values, stale since they were read. A not-responding Panel's page isn't reloaded for a read: it waits for the user to reload it.

NameTypeReqDescription
panelstringyes–

No output schema declared.

No examples provided.

read_workspace ~384

Read a Workspace: every Tile in one list, in reading order (top to bottom, then left to right), and the user's current window size. Each Tile has its kind and placement on the grid: x and w in 12 columns, y and h in rows of 8 px at the user's laptop window (1512 px wide; gaps 16 px, margins 24 px), each y being where the Tile floats up to. No h means the Tile is as tall as its Panel or Note, at most about two-thirds of the user's window height (a taller Panel scrolls inside it). With h, a Panel's Tile is that tall where its Panel is taller, and its Panel scrolls inside it; h beyond its Panel's own height is capped at that height, and the Fit report says so (capped). With h, a Note's Tile is that tall, even taller than its text. A Panel has its id, Source page, mode, state (live while it shows its content; restoring, paused, broken, ambiguous, needs-peek or not-responding otherwise) and Fit status at the user's window, as the Fit report gives it. tier says how its content was last found: exact, healed (found by similarity after a reload), ambiguous (with the candidate ids on its running page that might be it) or not-found; moved means an item-mode Panel found its content somewhere else on the page. A Note has its id, text and when it was last written. A hidden Tile is a Panel from one of the user's Private sites: only its placement, which you can't move or remove. On a Panel or Note, userChanged means the user moved or resized it since you last placed Tiles on this Workspace (with arrange, or add_panel or add_note with a placement).

NameTypeReqDescription
idstringyes–

No output schema declared.

No examples provided.

remove_note ~163

Remove a Note from its Workspace. The user can undo it with the rest of your Working stretch. Returns the Fit report: at the user's window, which Tiles are scaled below their Panel's minimum width, have an h taller than their Panel (capped, with the h they got), scroll inside, fell back to crop, are broken or ambiguous, or leave their Tile's width unused, and any gaps between Tiles. A Tile whose page hasn't laid it out at its width yet (one not on screen, say) is settling: a later report says how it fits. While a settling Tile's minimum width isn't known, whether the Workspace shows as one column isn't either: oneColumn is left out, and the summary says so.

NameTypeReqDescription
notestringyes–

No output schema declared.

No examples provided.

remove_panel ~170

Remove a Panel from its Workspace (a hidden Tile can't be removed). The user can undo it with the rest of your Working stretch. Returns the Fit report: at the user's window, which Tiles are scaled below their Panel's minimum width, have an h taller than their Panel (capped, with the h they got), scroll inside, fell back to crop, are broken or ambiguous, or leave their Tile's width unused, and any gaps between Tiles. A Tile whose page hasn't laid it out at its width yet (one not on screen, say) is settling: a later report says how it fits. While a settling Tile's minimum width isn't known, whether the Workspace shows as one column isn't either: oneColumn is left out, and the summary says so.

NameTypeReqDescription
panelstringyes–

No output schema declared.

No examples provided.

rename_workspace ~41

Rename a Workspace, plainly. The user can undo it with the rest of your Working stretch.

NameTypeReqDescription
idstringyes–
namestringyes–

No output schema declared.

No examples provided.

reveal ~198

Reveal content hidden behind a control on an open page (a tab, an expand toggle, a disclosure, a "more" button): Banquish clicks the candidate for you (or the one button or link inside it, when it holds just one), stopping any request that could write, any navigation and any new window meanwhile, and checks that new content appeared. Returns the updated tree in lines like open_page's: the new candidates, then the outline. Ids you had stay valid; new content gets new ids. A Panel made from the page afterwards comes back in the revealed view after a reload. If the click tries to navigate or open a window, moves the page to another path, or shows nothing new, the reveal is refused with the reason: use content reachable by URL instead. Never on the user's Private sites. Reveals on different pages may run in parallel.

NameTypeReqDescription
candidatestringyes–
pagestringyes–

No output schema declared.

No examples provided.

screenshot ~60

An image of one candidate of an open page, and nothing else, for content text can't describe (a canvas chart, an image). Use it sparingly: the Candidate tree usually says enough.

NameTypeReqDescription
candidatestringyes–
pagestringyes–

No output schema declared.

No examples provided.

update_note ~190

Rewrite a Note's text, in the same formatted text as add_note. It keeps its id and placement; place it with arrange. The user can undo it with the rest of your Working stretch. Returns the Fit report: at the user's window, which Tiles are scaled below their Panel's minimum width, have an h taller than their Panel (capped, with the h they got), scroll inside, fell back to crop, are broken or ambiguous, or leave their Tile's width unused, and any gaps between Tiles. A Tile whose page hasn't laid it out at its width yet (one not on screen, say) is settling: a later report says how it fits. While a settling Tile's minimum width isn't known, whether the Workspace shows as one column isn't either: oneColumn is left out, and the summary says so.

NameTypeReqDescription
notestringyes–
textstringyes–

No output schema declared.

No examples provided.

update_panel ~320

Change a Panel: re-propose its content, change what it leaves out, or switch it between Item and Spot mode, in any combination. Re-proposing is how you resolve an ambiguous or broken Panel when the user asks you to. For an ambiguous Panel, give candidates from the ids read_workspace offers for it. Otherwise open its Source page (or another) with open_page and give that page with candidate ids from it. The page is used as add_panel uses it: the first Panel from it takes it over as its own, and it stays open to you for more Panels; from a page a Panel has taken, the Panel gets a fresh copy where Banquish replays your reveals and finds the parts again (refused if they aren't found, and the Panel gets its old content back). Several ids make a Composite Panel. exclude takes ids of candidates inside the chosen parts that the Panel leaves out. Given without candidates, exclude changes what the Panel leaves out of its parts, with ids from the page you made it from while that page is still open to you; [] brings everything back. mode is "item" (follow this specific thing) or "spot" (whatever occupies this place): from then on the Panel finds its content that way: at once, and again whenever its page loads. The Panel keeps its id and placement; place it with arrange.

NameTypeReqDescription
candidatesarray––
excludearray––
modestring––
pagestring––
panelstringyes–

No output schema declared.

No examples provided.

workspace_image ~109

A JPEG of a Workspace as the user's window shows it now (the part in view). With width (CSS pixels), a preview of the whole Workspace at that window width instead: the placement adapted to that width, each Tile's last frame rescaled, so it's approximate. A Workspace not on the user's screen is previewed at the user's window width. Tiles you can't see (Private sites') are plain boxes labelled "Private site".

NameTypeReqDescription
widthinteger––
workspacestringyes–

No output schema declared.

No examples provided.

Install

How do I install the Banquish MCP server?

Banquish runs locally as an npm package, launched with npx -y banquish-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · banquish-mcp

# add to Claude Code
claude mcp add space-banquish-banquish -- npx -y banquish-mcp
Common questions

What is the Banquish MCP server?

Banquish is an MCP server listed in the public MCP registry as space.banquish/banquish. Answer with the live web: compose live parts of real pages into a Workspace in the Banquish Mac app. This page covers its npm package (banquish-mcp).

Is the Banquish MCP server safe to use?

Banquish scores 73 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Banquish MCP server expose?

Banquish exposes 19 tools: create_workspace, list_workspaces, rename_workspace, open_page, expand, and 14 more. Their descriptions and schemas cost roughly 3,697 tokens of context every time the server is loaded.

Is the Banquish MCP server still maintained?

Banquish is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Banquish MCP server under?

Banquish declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.