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.

SynaBun

NPM · SYNABUN

Persistent memory MCP server for Claude Code, Codex and OpenCode, stored locally in SQLite

Available components

72 Trust /100

Last scanned (23 hours ago)

Scores higher than 43% of npm servers

Category Memory and Knowledge

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 Security83
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects sharp 0.34.5, reached via @huggingface/transformers > sharp. A fixed version is available. View diagnostics → Fail
  • Declares code that runs automatically (postinstall) and that we could not recognise. It may be perfectly ordinary, but we have not established what it does. View diagnostics → Partial
  • 103 of 344 dependencies flagged as unhealthy (2 deprecated). View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to danilokhury/Synabun). View diagnostics → Pass
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability59
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 28604 tokens (~210/item across 136 items; 136 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 Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage96
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 87% of tool parameters carry a description.Partial
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; "browser_evaluate" implies "execute" 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 137 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

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.

  • 31 Oct 26 0
    • CVE-2026-118764 affects this package: high ▼ security
    • CVE-2026-118773 affects this package: high ▼ security
  • 30 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 29 Oct 26 57

    First indexed and scored.

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 4 Nov 2026 · Analysed npm/synabun@2.1.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo danilokhury/Synabun
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/danilokhury/Synabun/.github/workflows/publish.yml@refs/heads/main
Rekor log index 3573834448
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:1c4b761b56b7857d10478ba776d5a406b3c9876cb8d256436a5842be90541bb7b15a0d51f74fa8fdb08a0b6041144ab70a838ecb49884a27058d6cea6

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
postinstall unreviewed node postinstall.js

Background: Why install scripts are a supply-chain risk →

Vulnerabilities 5 findings
ID CVE Severity Vector Fix available
GHSA-3g3m-2fjr-6pw4 CVE-2026-118773 medium yes
GHSA-g3hv-75wg-m249 CVE-2026-118764 medium yes
GHSA-f88m-g3jw-g9cj CVE-2026-114113 high yes
GHSA-rgj7-g3m4-5g8c CVE-2026-114112 high yes
GHSA-wq5f-xc86-pv6w CVE-2026-114111 high yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 344 packages
Packages resolved 344
Deprecated 2
Stale 94
No linked repository 8
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 136 exposed · ~27,468 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
browser_reload ~68

Reload the current page. Useful after making changes or when content is stale.

NameTypeReqDescription
sessionIdstring–Browser session ID. If omitted, auto-selects the only open session.
tabIdstring–Target a specific tab within the session. Auto-resolved from environment if omitted.

No output schema declared.

No examples provided.

browser_screenshot ~403

Take a screenshot of the current page (localhost pages included): the viewport as JPEG, downscaled to 1024 px wide, by default. For visual QA pass width/height (breakpoints 375 / 768 / 1440 — emulated for this capture only), fullPage for the whole page, and save or path to write a PNG and get its path. Prefer browser_snapshot to read structure; it is far more token-efficient.

NameTypeReqDescription
formatstring–Image format. Default: JPEG for the returned image, PNG for a saved file.
fullPageboolean–Capture the whole scrollable page instead of the viewport.
heightinteger–Viewport height in CSS px for this capture only (default: the current height).
maxWidthinteger–Downscale the returned image to this width in px (default 1024). 0 = native resolution. A saved file is always full resolution.
pathstring–Absolute .png / .jpg / .jpeg file to save to, inside a registered project or the screenshots folder (implies save). Parent folders are created; only an existing image is ever replaced.
qualityinteger–JPEG quality 10-100 (default 60 for the returned image, 90 for a saved JPEG).
saveboolean–Also save the full-resolution image as a file (default folder ~/.synabun/data/media/screenshots/<date>/) and return its path.
sessionIdstring–Browser session ID. If omitted, auto-selects the only open session.
tabIdstring–Target a specific tab within the session. Auto-resolved from environment if omitted.
widthinteger–Viewport width in CSS px for this capture only, e.g. 375, 768 and 1440 for breakpoints. Emulated on the tab (mobile below 768) and reset right after.

No output schema declared.

No examples provided.

browser_scroll ~212

Scroll the page or a scrollable container (by ref or selector). Essential for infinite-scroll feeds — but for harvesting feed data, prefer the browser_extract_* tools with their scrolls param, which scroll+extract+dedupe in one call.

NameTypeReqDescription
directionstringyesDirection to scroll.
distancenumber–Pixels to scroll (default: 500).
refstring–Scroll within the container with this ref from browser_snapshot.
returnSnapshotobject–Legacy inline snapshot (tree modes). Prefer the "snapshot" param, which returns ref-based AI snapshots.
selectorstring–Scroll within a specific scrollable element instead of the window.
sessionIdstring–Browser session ID. If omitted, auto-selects the only open session.
snapshotstring–Optionally include an AI snapshot after scrolling ("diff" = only what changed).
tabIdstring–Target a specific tab within the session. Auto-resolved from environment if omitted.

No output schema declared.

No examples provided.

browser_select ~235

Select an option from a <select> dropdown by ref or selector, and option value.

NameTypeReqDescription
nthMatchinteger–If the selector matches multiple elements, select from the Nth one (0-indexed).
refstring–Element ref from browser_snapshot, e.g. "e12". Preferred over selector — exact match, no guessing.
selectorstring–Playwright selector for the <select> element (CSS, text="...", :has-text("..."), role=..., [data-testid="..."]). Fallback when you have no ref. NEVER use :contains().
sessionIdstring–Browser session ID. If omitted, auto-selects the only open session.
tabIdstring–Target a specific tab within the session. Auto-resolved from environment if omitted.
textHintstring–What the dropdown is for, in words (e.g. "Country"). If the selector matches nothing, the server tries an exact role+name match and the visible candidates are ranked against this phrase. Advisory.
valuestringyesThe option value to select.

No output schema declared.

No examples provided.

browser_session ~101

Manage browser sessions — list open sessions, create a new browser, or close an existing one.

NameTypeReqDescription
actionstringyes"list" = list open sessions, "create" = open a new browser, "close" = close a session.
sessionIdstring–Session ID for "close" action. Required for close when multiple sessions exist.
urlstring–Starting URL for "create" action (default: about:blank).

No output schema declared.

No examples provided.

browser_snapshot ~439

Observe page structure and element refs for click/fill/type. Scope with selector on complex pages. AI mode deduplicates delivered observations and supports snapshot IDs and diffs. Refs target elements in the latest captured scope; refresh after navigation or a stale-ref error.

NameTypeReqDescription
baselineIdstring–Diff against this delivered snapshot ID. A missing or incompatible baseline returns a full view.
depthinteger–Limit tree depth (mode="ai" only). Use 10-14 on deep feed pages to shrink output.
diffboolean–Return only the changed region vs your previous snapshot of this tab (mode="ai" only).
forceboolean–Return the full snapshot even if the page is unchanged since your last snapshot.
formatstring–Only meaningful with mode="interactive": "json" = compact array.
intentstring–What you want to do on this page, in words (e.g. "open account settings"). mode="ai" only: the refs of THIS snapshot are ranked against it and the best one is named in a "Jev target:" line. Advisory…
maxCharsinteger–Cap snapshot text in characters, excluding brief metadata (default 30000). Truncates at complete lines.
modestring–"ai" (default) = compact YAML with [ref=eN] element refs — pass ref to browser_click/fill/type to act on elements. "interactive" = flat list of clickable elements with selector hints. "full" = legacy…
selectorstring–Scope snapshot to a specific element's subtree. Dramatically reduces output on complex pages.
sessionIdstring–Browser session ID. If omitted, auto-selects the only open session.
tabIdstring–Target a specific tab within the session. Auto-resolved from environment if omitted.
viewportboolean–Drop off-screen nodes (legacy modes only; ignored for mode="ai" — use depth/selector instead).

No output schema declared.

No examples provided.

browser_type ~293

Type text (simulates keystrokes; appends). Target by ref from browser_snapshot (preferred), selector, or omit both to type into the focused element. Prefer over browser_fill for contenteditable/rich-text editors.

NameTypeReqDescription
modestring–"sequential" = per-key events. "insert" = bulk insertText, fast, safe for modal composers. "paragraphs" = Escape+Enter between paragraphs (never on modals — Escape closes them). See browser_cheatshee…
nthMatchinteger–If the selector matches multiple elements, type into the Nth (0-indexed).
refstring–Element ref from browser_snapshot, e.g. "e12". Preferred over selector — exact match, no guessing.
selectorstring–Playwright selector for the element to type into. If both ref and selector are omitted, types into the focused element.
sessionIdstring–Browser session ID. If omitted, auto-selects the only open session.
tabIdstring–Target a specific tab within the session. Auto-resolved from environment if omitted.
textstringyesThe text to type character by character (appends to existing content).
textHintstring–Auto-heal: if the selector matches 0 elements, server retries with role=*[name~="<textHint>"].

No output schema declared.

No examples provided.

browser_upload ~260

Upload files via a file input element (by ref or selector). For hidden/gated inputs, click the visible upload button first to reveal the input. See browser_cheatsheet for per-platform upload flows.

NameTypeReqDescription
filePathsarrayyesAbsolute file paths to upload.
nthMatchinteger–If the selector matches multiple file inputs, upload to the Nth (0-indexed).
refstring–Element ref from browser_snapshot, e.g. "e12". Preferred over selector — exact match, no guessing.
selectorstring–Playwright selector for the file input element (CSS, text="...", :has-text("..."), role=..., [data-testid="..."]). Fallback when you have no ref. NEVER use :contains().
sessionIdstring–Browser session ID. If omitted, auto-selects the only open session.
tabIdstring–Target a specific tab within the session. Auto-resolved from environment if omitted.
textHintstring–What the upload control is, in words (e.g. "Add photo"). If the file input is not found, the visible controls are ranked against this phrase — usually the button that reveals the hidden input. Adviso…

No output schema declared.

No examples provided.

browser_wait ~216

Wait for an element to reach a certain state, a page load state, or a fixed timeout. Useful after navigation or clicks that trigger async content loading. Use loadState="networkidle" after posting on Twitter/X or after navigation to ensure all async requests have settled.

NameTypeReqDescription
loadStatestring–Page load state to wait for. Use "networkidle" after posting a tweet to confirm XHR requests settled. Takes priority over selector when provided.
selectorstring–CSS selector to wait for. If omitted and loadState also omitted, waits for timeout.
sessionIdstring–Browser session ID. If omitted, auto-selects the only open session.
statestring–Element state to wait for (default: "visible"). Only used with selector.
tabIdstring–Target a specific tab within the session. Auto-resolved from environment if omitted.
timeoutnumber–Timeout in ms (default: 10000 for element waits, 15000 for loadState).

No output schema declared.

No examples provided.

browser_x_compose_state ~537

Inspect the X/Twitter compose surface in ONE call (read-only). Returns: composerOpen, composerText (read back from [data-testid="tweetTextarea_0"]), charCount, overLimit; quoteCard {present, type:"quote"|"link"|"none", author, handle, text, url} — type "quote" means a real embedded quoted-tweet card rendered (safe to post a quote), "link" means only a plain link-preview card (posting would publish a bare reply — do NOT post; fix the status URL or skip the target), "none" means nothing embedded; submitButton {testid:"tweetButtonInline"|"tweetButton", present, enabled, selector} (tweetButtonInline for inline replies, tweetButton for the compose dialog); isModal (the glitchy centered reply dialog is open — close it and retry inline), composerCount (>1 ⇒ pass nthMatch to disambiguate the two reply textareas), hasStaleDraft (duplicated/garbled leftover text — discard and reopen), warnings[]; and recommendedAction {submit|type|open-composer|fix-quote-url|trim-text|unknown} — the deterministic next step. QUOTE flow: navigate x.com/compose/tweet, browser_type the full status URL, call this probe, post via submitButton.selector ONLY if quoteCard.type==="quote". REPLY flow: click the reply icon, call this probe, if isModal close it and retry inline, type, post via submitButton.selector. After submitting, re-call this probe (composer should have cleared) and confirm with browser_extract_tweets on the author profile /with_replies (a NEW, higher status id = published). On loop tabs a server-side gate ALSO blocks a tweetButton click when a status URL is in the body but quoteCard.type!=="quote" (response carries quoteGuard) — so a quote can never silently misfire into a bare reply. Read-only — never types or clicks. When recommendedAction is "unknown" or warnings[] is non-empty, an additive `judgment` {advisory:true, state, confidence, suggestedControl?, note} may appear: a Jev reading of the ambiguous probe built from booleans and counts only (never the composer text or the quot…

NameTypeReqDescription
sessionIdstring–Browser session ID. If omitted, auto-selects the only open session.
tabIdstring–Target a specific tab within the session. Auto-resolved from environment if omitted.

No output schema declared.

No examples provided.

card_close ~61

Close a memory card by its UUID, or close all open cards if no memoryId is provided. Use card_list first to see which cards are open.

NameTypeReqDescription
memoryIdstring–UUID of the card to close. Omit to close ALL open cards.

No output schema declared.

No examples provided.

card_list ~60

List all currently open memory cards in the Neural Interface. Returns each card's memory UUID, position, size, compact/pin state, content preview, and the current viewport dimensions (width x height). Use this before placing cards to know the available screen size.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

card_open ~216

Open a memory as a floating card in the Neural Interface. Use card_list first to see viewport size. Coordinate modes (coordMode): "px" (default) = absolute pixels. "pct" = percentage of viewport (0-100), e.g. left:50 top:50 = center of screen. If the card is already open, it is brought to the front. Omit left/top for auto-cascade positioning.

NameTypeReqDescription
compactboolean–Open in compact mode (220x120px mini-card). Default: false.
coordModestring–Coordinate mode. "px" (default) = absolute pixels. "pct" = percentage of viewport (0-100). left:50 top:50 = center of screen.
leftnumber–X position from left edge. Omit for auto-cascade.
memoryIdstringyesUUID of the memory to open as a floating card
topnumber–Y position from top edge. Omit for auto-cascade.

No output schema declared.

No examples provided.

card_screenshot ~43

Take a visual screenshot of the Neural Interface showing all open memory cards in their current positions. Returns a JPEG image. Requires the Neural Interface to be open in a browser.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

card_update ~198

Update an open memory card's position, size, compact/expand state, or pin state. Set coordMode to "pct" to use percentage-based positioning. Only specified fields are changed; others remain untouched. Changes appear in real-time.

NameTypeReqDescription
compactboolean–true = switch to compact mode (220x120px), false = expand to full size
coordModestring–Coordinate mode for position/size values. "pct" = percentage of viewport.
heightnumber–New height (ignored in compact mode)
leftnumber–New X position
memoryIdstringyesUUID of the card to update (must be currently open)
pinnedboolean–true = pin card (locked position, dimmed, z-index 180), false = unpin
topnumber–New Y position
widthnumber–New width (ignored in compact mode)

No output schema declared.

No examples provided.

category ~227

Manage memory categories. Actions: create, update, delete, list. Categories persist across sessions.

NameTypeReqDescription
actionstringyesAction to perform: create, update, delete, or list categories.
colorstring–Color hex code, e.g. "#3b82f6". Empty string "" to remove.
descriptionstring–Category description (required for create, optional for update).
formatstring–Output format for list action: flat, tree (default), or parents-only.
is_parentboolean–Make this a parent/cluster category (create only).
namestring–Category name (required for create/update/delete).
new_namestring–Rename category to this (update only).
parentstring–Parent category name. Empty string "" to remove parent.
reassign_children_tostring–Reassign child categories to this parent when deleting a parent. Empty string "" for top-level (delete only).
reassign_tostring–Reassign memories to this category before deleting (delete only).

No output schema declared.

No examples provided.

choice ~85

Ask the user blocking multiple-choice questions through MCP form elicitation. Use this for SynaBun choices in Codex Default mode. If the result reports supported=false, ask the same numbered choices once in plain text and wait; do not call another question tool.

NameTypeReqDescription
questionsarrayyesOne to three blocking multiple-choice questions. Each question must have two to four mutually exclusive options.

No output schema declared.

No examples provided.

discord_channel ~347

Discord channel management. Actions: create, edit, delete, list, permissions. Handles text, voice, categories, forums, stages.

NameTypeReqDescription
actionstringyesAction: create, edit, delete, list, or permissions.
allowstring–Permission flags to allow, comma-separated (permissions). E.g. "SEND_MESSAGES,VIEW_CHANNEL".
bitratenumber–Voice bitrate in bps (voice channels, create/edit).
channelstring–Channel name or ID (required for edit/delete/permissions).
denystring–Permission flags to deny, comma-separated (permissions). E.g. "SEND_MESSAGES".
guild_idstring–Guild ID. Defaults to DISCORD_GUILD_ID env var.
namestring–Channel name (create required, edit optional).
nsfwboolean–NSFW flag (create/edit).
parentstring–Parent category name or ID (create/edit). Empty string to remove.
positionnumber–Sort position (create/edit).
reasonstring–Audit log reason.
slowmodenumber–Slowmode in seconds, 0-21600 (create/edit).
targetstring–Role or user name/ID (permissions action). Use "type:role" or "type:user" prefix, or bare name/ID.
topicstring–Channel topic/description (create/edit).
typestring–Channel type (create only, default: text). Use "category" for channel categories.
user_limitnumber–Voice user limit, 0=unlimited (voice channels, create/edit).

No output schema declared.

No examples provided.

discord_guild ~116

Discord server overview and listing. Actions: info, channels, members, roles, audit_log.

NameTypeReqDescription
actionstringyesAction: info (server details), channels (list all), members (list), roles (list all), audit_log (recent actions).
action_typenumber–Audit log action type filter (audit_log only).
guild_idstring–Guild ID. Defaults to DISCORD_GUILD_ID env var.
limitnumber–Max results for members/audit_log (default 50).

No output schema declared.

No examples provided.

discord_member ~168

Discord member moderation. Actions: info, kick, ban, unban, timeout, nickname.

NameTypeReqDescription
actionstringyesAction: info, kick, ban, unban, timeout, nickname.
delete_daysnumber–Days of messages to delete, 0-7 (ban action, default 0).
durationnumber–Timeout duration in minutes (timeout action). 0 to remove timeout.
guild_idstring–Guild ID. Defaults to DISCORD_GUILD_ID env var.
memberstringyesUser name, tag, or ID (required for all actions).
nicknamestring–New nickname (nickname action). Empty string to reset.
reasonstring–Moderation reason for audit log (kick/ban/timeout).

No output schema declared.

No examples provided.

discord_message ~298

Discord message operations. Actions: send, edit, delete, pin, unpin, react, bulk_delete, list.

NameTypeReqDescription
actionstringyesAction: send, edit, delete, pin, unpin, react, bulk_delete, list.
afterstring–Fetch messages after this message ID (list action).
beforestring–Fetch messages before this message ID (list action).
channelstringyesChannel name or ID (required for all actions).
contentstring–Message text (send required, edit optional).
embedobject–Embed object: {title?, description?, color? (int), fields?: [{name, value, inline?}], footer?: {text}, image?: {url}, thumbnail?: {url}}. (send/edit)
emojistring–Emoji for react action. Unicode emoji or custom format "name:id".
guild_idstring–Guild ID for channel name resolution. Defaults to DISCORD_GUILD_ID env var.
limitnumber–Max messages to fetch (list action, default 50, max 100).
message_idstring–Message ID (required for edit/delete/pin/unpin/react).
message_idsarray–Array of message IDs for bulk_delete (2-100 messages, max 14 days old).
reply_tostring–Message ID to reply to (send only).

No output schema declared.

No examples provided.

discord_onboarding ~288

Discord server onboarding and setup. Actions: get, set_welcome, set_rules, set_verification, set_onboarding.

NameTypeReqDescription
actionstringyesAction: get (current config), set_welcome (welcome screen), set_rules (rules channel), set_verification (level), set_onboarding (prompts & defaults).
default_channelsarray–Default channel IDs for new members (set_onboarding).
descriptionstring–Welcome screen description text (set_welcome).
enabledboolean–Enable/disable onboarding (set_onboarding).
guild_idstring–Guild ID. Defaults to DISCORD_GUILD_ID env var.
promptsarray–Onboarding prompts array (set_onboarding). Each: {title, options: [{title, description?, emoji_name?, channel_ids?, role_ids?}], single_select?, required?, in_onboarding?}
rules_channelstring–Channel name or ID for rules (set_rules).
system_channelstring–Channel name or ID for system messages (set_rules).
verification_levelstring–Verification level (set_verification). none=unrestricted, low=email, medium=5min, high=10min, very_high=phone.
welcome_channelsarray–Welcome screen channels: [{channel_id, description, emoji_name?}] (set_welcome).

No output schema declared.

No examples provided.

discord_role ~229

Discord role management. Actions: create, edit, delete, list, assign (role to member), remove (role from member).

NameTypeReqDescription
actionstringyesAction: create, edit, delete, list, assign (to member), remove (from member).
colorstring–Hex color e.g. "#ff0000" (create/edit).
guild_idstring–Guild ID. Defaults to DISCORD_GUILD_ID env var.
hoistboolean–Display separately in sidebar (create/edit).
memberstring–User name or ID (assign/remove actions).
mentionableboolean–Allow @mention by anyone (create/edit).
namestring–Role name (create required, edit optional).
permissionsstring–Permission flags, comma-separated (create/edit). E.g. "SEND_MESSAGES,MANAGE_CHANNELS".
positionnumber–Sort position (edit only).
reasonstring–Audit log reason.
rolestring–Role name or ID (required for edit/delete/assign/remove).

No output schema declared.

No examples provided.

discord_thread ~189

Discord thread management. Actions: create (from message or standalone), archive, unarchive, lock, delete.

NameTypeReqDescription
actionstringyesAction: create, archive, unarchive, lock, delete.
auto_archivenumber–Auto-archive duration in minutes: 60, 1440, 4320, or 10080 (create only).
channelstring–Parent channel name or ID (create only).
guild_idstring–Guild ID for channel name resolution. Defaults to DISCORD_GUILD_ID env var.
message_idstring–Create thread from this message (create only). Omit for standalone thread.
namestring–Thread name (create required).
privateboolean–Create private thread (create only, default false).
threadstring–Thread ID (required for archive/unarchive/lock/delete).

No output schema declared.

No examples provided.

discord_webhook ~203

Discord webhook management. Actions: create, edit, delete, list, execute (send message as webhook).

NameTypeReqDescription
actionstringyesAction: create, edit, delete, list, execute.
avatar_urlstring–Avatar URL (create/edit).
channelstring–Channel name or ID (required for create/list).
contentstring–Message content (execute).
embedsarray–Embeds array (execute). Each: {title?, description?, color?, fields?: [{name, value}]}.
guild_idstring–Guild ID for channel name resolution. Defaults to DISCORD_GUILD_ID env var.
namestring–Webhook name (create required, edit optional).
usernamestring–Override display name (execute).
webhook_idstring–Webhook ID (required for edit/delete/execute).
webhook_tokenstring–Webhook token (required for execute).

No output schema declared.

No examples provided.

fb_groups ~1,090

Structured Facebook group directory + per-group posting checklist (SQLite-backed; the single source of truth that replaces the free-text seed-queue). Actions: worklist {currency|region, offerSlug, limit?, freshDays?=14, includePending?=false, reset?} — returns the groups STILL to post to for this offer: joined, promo not forbidden, region/currency match, not pending/cooldown, not already posted for this offer within freshDays; never-posted first, then least-recently-posted, then largest. Re-call it to RESUME (it returns only what is left); a new offerSlug (or reset:true) starts FRESH. mark {url, offerSlug, currency, status, postUrl?, note?} — record ONE group right after posting (durable checklist; call after EACH group, never batch). status posted=visible-post, pending=pending-approval (success; engages a 48h cooldown so the worklist skips it), failed=posting-failed, skipped. import {fromMemoryIds?, fromExtract?} — (re)build the directory from the surviving memories and/or a live browser_extract_fb_groups payload (idempotent). set {url | groups:[…]} with region/lang/currency/country/name/member_count/allows_promo — curation: authoritatively classify one or many groups (currency must be a SUPPORTED deal currency: USD/GBP/EUR/BRL/TRY/CAD/AUD). exclude {url, reason} — mark a group promo-forbidden (permanently dropped from worklists). list/stats {region?} — coverage counts by region, pending/cooldown, last-posted per offer. recategorize {} — one-shot cleanup: re-derive region/lang/currency/country for every group from name + post history and backfill allows_promo from confirmed visible posts (idempotent). Region buckets: UK, US, EU, Brazil, LatAm, Turkey, Australia, Canada, Unknown.

NameTypeReqDescription
actionstringyesworklist: ordered groups still to post to (region/currency + offerSlug). mark: tick one group after posting. set: curate classification (region/lang/currency) for one or many groups. import: (re)buil…
allows_promostring–set: promo permission.
cooldownHoursnumber–mark: hours a pending-approval group is held out of the worklist (default 48).
countrystring–descriptive country label. set: classify a group. worklist: narrow to one country.
currencystring–GBP | USD | EUR | BRL | TRY | AUD | CAD. Preferred worklist filter (authoritative seed-queue currency). USD covers both US and LatAm — add lang:"es" to target LatAm groups specifically.
freshDaysnumber–worklist: skip groups already posted this offer within N days (default 14).
fromExtract––import: a browser_extract_fb_groups JSON payload (object or JSON string) — the authority for currently-joined groups + region buckets.
fromMemoryIdsarray–import: specific memory ids to parse. Omit to use the default seed/ledger ids + facebook-groups-* subcategory scan.
groupsarray–set (bulk): array of group classifications to write in one call.
includePendingboolean–worklist: include pending-approval / cooldown groups (default false).
langstring–language code (pt/en/de/fr/es/tr/pl/it/nl). set: classify a group. worklist: narrow a currency bucket to one language (e.g. EUR + de for German-copy groups).
limitnumber–worklist max groups (default 20).
member_countnumber–set: approximate member count.
namestring–set: group display name.
notestring–mark: short note (e.g. skip reason or failure detail).
offerSlugstring–Offer/campaign slug, e.g. "spring-sale". Required for worklist and mark.
postUrlstring–mark: the resulting post URL, if known.
reasonstring–exclude: why promo is forbidden (group rules).
regionstring–UK | US | EU | Brazil | LatAm | Turkey | Australia | Canada | Unknown (case-insensitive). Alternative to currency for worklist/list/stats. LatAm = Spanish-speaking Latin America (posts the USD link).
resetboolean–worklist: ignore prior posts for this offer (re-seed the whole region from scratch).
sessionIdstring–mark: loop/session id for provenance.
statusstring–mark status: posted/visible-post, pending/pending-approval (cooldown 48h, counts as success), failed/posting-failed, or skipped. Synonyms accepted.
urlstring–Group URL (normalized internally). Required for mark and exclude.

No output schema declared.

No examples provided.

forget ~70

Move a specific memory to trash by ID. The memory can be restored from the Neural Interface trash panel or via the restore tool. Use this to clean up outdated, incorrect, or superseded information.

NameTypeReqDescription
memory_idstringyesThe memory ID to move to trash. Use the full UUID from recall results.

No output schema declared.

No examples provided.

git ~227

Git repository operations. Actions: "status" shows branch and changed files, "diff" returns raw diff content for analysis, "commit" stages and commits with a message, "log" shows recent commit history, "branches" lists all branches. Use "diff" to analyze changes before generating commit messages.

NameTypeReqDescription
actionstringyesGit action. "status" = branch + changes list. "diff" = raw diff content for analysis. "commit" = stage and commit. "log" = recent commit history. "branches" = list all branches.
countnumber–Number of commits to return (default 10). Only used for "log" action.
filesarray–Specific files to stage for "commit". If omitted, stages all changes (git add -A).
max_linesnumber–Max lines of diff output (default 500). Only used for "diff" action.
messagestring–Commit message (required for "commit" action).
pathstringyesAbsolute path to the git repository working directory.

No output schema declared.

No examples provided.

gsc_associations ~99

Manage Associations (Analytics / Merchant / Ads / Play / YouTube / Actions / Chrome Web Store). list returns existing associations; add/remove mutate.

NameTypeReqDescription
actionstringyes–
identifierstring–Service-specific ID (e.g. GA4 measurement ID, Merchant Center account ID).
propertystring––
servicestring––
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_crawl_stats ~65

Read Crawl Stats — totals (requests, download size, response time) and breakdowns by host status, response code, file type, Googlebot type.

NameTypeReqDescription
propertystring––
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_cwv_report ~71

Read Core Web Vitals report for mobile or desktop. Returns counts of poor / needs-improvement / good URLs and per-issue URL group examples.

NameTypeReqDescription
devicestringyes–
propertystring––
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_disavow ~97

[mutating for upload/delete — affects how Google trusts links to your site] Manage the Disavow Links file. download exports current; upload replaces (use sparingly).

NameTypeReqDescription
actionstringyes–
filePathstring–Absolute path of disavow .txt file (action=upload).
propertystring––
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_enhancements ~104

Read a structured-data Enhancements report. Returns valid / warnings / errors counts and per-issue URL examples. Reports: breadcrumbs, faq, sitelinks, videos, products, recipes, review, events, jobposting, speakable, qa, logos, sitenames, dataset, practice, math, merchant.

NameTypeReqDescription
propertystring––
reportstringyes–
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_extract_table ~66

Generic GSC grid → JSON extractor. Useful when no specific gsc_*_report tool covers a panel.

NameTypeReqDescription
selectorstring–CSS scope selector (default: [role="grid"]).
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_https_report ~56

Read the HTTPS report — counts of HTTPS vs non-HTTPS URLs and reasons for non-HTTPS URLs with examples.

NameTypeReqDescription
propertystring––
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_inspect_request_indexing ~128

[mutating — affects Google's crawl queue] Submit a URL to Google's indexing queue. Clicks "Request indexing" on the inspection result page (running a live test first if needed). Polls for the success/error modal and returns `{ requested, queued, error }`. Quota: ~10/day per property.

NameTypeReqDescription
sessionIdstring––
tabIdstring––
timeoutMsinteger–Polling timeout (default 60000).
urlstring–URL to inspect first. Skip if already on the inspect result page.

No output schema declared.

No examples provided.

gsc_inspect_test_live ~123

Click the "Test live URL" button on the URL Inspection page and poll up to 90s for results. Useful to verify a live page after a fix without waiting for re-indexing. Returns same shape as gsc_inspect_url with `liveTest:true`.

NameTypeReqDescription
sessionIdstring––
tabIdstring––
timeoutMsinteger–Polling timeout (default 90000 — live test is slow).
urlstring–URL to inspect first (skip if already on the inspect result page).

No output schema declared.

No examples provided.

gsc_inspect_url ~163

Run URL Inspection on a URL — opens the inspect tool, fills the URL, polls up to 30s for the result panel, returns structured JSON (pageIndexed, verdict, indexingState, coverage, canonicalUser, canonicalGoogle, lastCrawl, crawlStatus, crawlAllowed, fetchStatus, robotsAllowed, sitemap, referringPage, httpStatus, enhancements, summary, fullText).

NameTypeReqDescription
propertystring–Override active property (e.g. "sc-domain:example.com").
sessionIdstring––
tabIdstring––
timeoutMsinteger–Polling timeout in ms (default 30000).
urlstringyesAbsolute URL to inspect (must belong to the active GSC property).

No output schema declared.

No examples provided.

gsc_inspect_view_crawled ~87

Open the "View crawled page" panel from the URL Inspection result and switch to the requested view (html / screenshot / http_response / more_info). Use browser_screenshot or browser_snapshot afterwards to capture content.

NameTypeReqDescription
sessionIdstring––
tabIdstring––
viewstringyesWhich crawled-page view to open.

No output schema declared.

No examples provided.

gsc_links_export ~59

Trigger Links report Export menu. Browser handles file download.

NameTypeReqDescription
propertystring––
scopestringyesExport scope from the Links report Export menu.
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_links_report ~86

Read a Links report section. top_linked_external / top_linking_sites / top_linking_text / top_linked_internal. Returns full table.

NameTypeReqDescription
limitinteger–Max rows to scroll-load (default 100).
propertystring––
sectionstringyes–
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_manual_actions ~92

Read Manual Actions. action=list returns penalties (or "No issues detected"). action=reconsideration submits a reconsideration request with `body` (mutating).

NameTypeReqDescription
actionstring––
bodystring–Reconsideration request body text. Required for action=reconsideration.
propertystring––
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_navigate ~287

Open a Google Search Console page (overview, performance, inspect, pages, sitemaps, removals, links, security, settings, etc.). Always call before any gsc_* tool to land on the right report. Pages: overview, insights, performance_search, performance_discover, performance_news, inspect, pages, videos, sitemaps, removals, cwv_mobile, cwv_desktop, https, security, manual_actions, enhancements_breadcrumbs, enhancements_faq, enhancements_sitelinks, enhancements_videos, enhancements_products, enhancements_recipes, enhancements_review, enhancements_events, enhancements_jobposting, enhancements_speakable, enhancements_qa, enhancements_logos, enhancements_sitenames, enhancements_dataset, enhancements_practice, enhancements_math, enhancements_video_indexing, links, achievements, settings, crawl_stats, users, change_address, associations, disavow, shopping, merchant.

NameTypeReqDescription
pagestringyesGSC section to open. Property is preserved from current resource_id unless `property` is set.
propertystring–Property to load (e.g. "sc-domain:example.com" or "https://example.com/"). Defaults to active property.
sessionIdstring–Browser session ID. Auto-resolved or auto-created.
tabIdstring–Target a specific tab. Auto-resolved if omitted.

No output schema declared.

No examples provided.

gsc_pages_report ~109

Read the Pages (Coverage/Indexação) report — totals indexed/notIndexed and per-reason buckets with counts and trends. Pass `reason` to drill into a bucket and list URL examples.

NameTypeReqDescription
propertystring––
reasonstring–Drill into a specific reason (e.g. "Not found (404)", "Excluded by ‘noindex’ tag"). Returns URL examples for that bucket.
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_pages_validate_fix ~98

[mutating — starts a Google validation cycle] Open a Pages-report reason bucket and click "Validate fix" so Google re-checks the URLs. Returns confirmation status.

NameTypeReqDescription
propertystring––
reasonstringyesReason name for which to start a "Validate fix" run (e.g. "Server error (5xx)").
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_performance_chart_screenshot ~45

Capture a screenshot scoped to the Performance chart panel only — useful for visual reports.

NameTypeReqDescription
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_performance_export ~78

Trigger Performance report export menu in the active tab. Format: csv → ZIP download; excel → XLSX; google_sheets → opens a new Sheet. Browser handles the actual download to its default download dir.

NameTypeReqDescription
formatstringyesExport format.
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_performance_query ~228

Run a Performance report query — sets searchType, dateRange (preset or custom), primary dimension, chip filters, and optional comparison; returns total clicks/impressions/CTR/position plus full table rows as JSON. Auto-scrolls the grid to load up to `limit` rows.

NameTypeReqDescription
compareboolean–Enable date-range comparison.
customEndstring–YYYY-MM-DD end (with dateRange="custom").
customStartstring–YYYY-MM-DD start (with dateRange="custom").
dateRangestring–Preset range or "custom" with customStart/customEnd.
dimensionstring–Primary dimension to group by. Default: query.
filtersarray–Chip filters to apply. Op default: contains.
limitinteger–Max rows (default 200, GSC table caps at 1000 visible).
propertystring––
searchTypestring–Search type filter. Default: web.
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_property ~177

Manage GSC property selection — list registered properties, switch the active one (re-navigates current page), read the active property from the URL, or open the Add Property dialog. [mutating for action=add — adds a new property to the Google account]

NameTypeReqDescription
actionstringyeslist = enumerate properties from picker; select = switch active property; current = read URL property; add = open Add Property dialog.
propertystring–Property string (e.g. "sc-domain:example.com" or "https://example.com/") for select. For add: domain or URL prefix value.
sessionIdstring––
tabIdstring–Target a specific tab. Auto-resolved if omitted.
typestring–For add action: property type. Default: domain.

No output schema declared.

No examples provided.

gsc_removals ~135

Manage URL removals. list_* returns existing requests; action=new submits a new removal (mutating). removalType: temporary (6-month hide), outdated_content (refresh Google's cached version), safe_search (report adult content).

NameTypeReqDescription
actionstringyes–
propertystring––
removalTypestring–Required for action=new.
scopestring–For action=new + temporary: remove only this URL or all URLs starting with this prefix.
sessionIdstring––
tabIdstring––
targetstring–URL or prefix for action=new.

No output schema declared.

No examples provided.

Install

How do I install the SynaBun MCP server?

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

npm · synabun

# add to Claude Code
claude mcp add danilokhury-synabun -- npx -y synabun
Common questions

What is the SynaBun MCP server?

SynaBun is an MCP server listed in the public MCP registry as io.github.danilokhury/synabun. Persistent memory MCP server for Claude Code, Codex and OpenCode, stored locally in SQLite. This page covers its npm package (synabun).

Is the SynaBun MCP server safe to use?

SynaBun scores 72 out of 100 on VerifyMCP. We recorded 5 known advisories against it as of 4 November 2026. Its build provenance is signed and verified. 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 SynaBun MCP server expose?

SynaBun exposes 136 tools: remember, recall, forget, restore, reflect, and 131 more. Their descriptions and schemas cost roughly 27,468 tokens of context every time the server is loaded.

Is the SynaBun MCP server still maintained?

SynaBun is still listed as active in the MCP registry. We last reached this channel on 4 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 SynaBun MCP server under?

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