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

+15 this week 72 Trust /100

Last scanned (6 hours ago)

Scores higher than 42% 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 1 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 5 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
gsc_removals_cancel ~74

[mutating] Cancel a pending temporary removal request. URL must match the listed entry exactly.

NameTypeReqDescription
propertystring––
sessionIdstring––
tabIdstring––
urlstringyesURL of the removal request to cancel (must match exactly as listed).

No output schema declared.

No examples provided.

gsc_screenshot ~47

Capture a full-page screenshot of the active GSC tab. Saved via SynaBun image staging.

NameTypeReqDescription
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_security_issues ~83

Read Security Issues. action=list returns active + history. action=request_review clicks "Request review" (mutating, requires fixed issues).

NameTypeReqDescription
actionstring–list (default) returns active issues; request_review submits a reconsideration request.
propertystring––
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_settings ~97

Read or modify property settings — ownership/verification, users, address. action=get returns the settings page summary; action=set_address/change_address mutate.

NameTypeReqDescription
actionstring–Default get. set_address sets the Change-of-address target. change_address opens flow.
newPropertystring–Target property for change_address.
propertystring––
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_shopping ~48

Read Shopping/Merchant Listings report — counts and per-issue example URLs.

NameTypeReqDescription
propertystring––
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_sitemap ~105

Manage sitemaps. action=list returns all submitted sitemaps; action=submit adds a sitemap (mutating); action=delete removes one (mutating); action=view_errors opens the per-sitemap detail and returns issues.

NameTypeReqDescription
actionstringyes–
propertystring––
sessionIdstring––
tabIdstring––
urlstring–Sitemap URL (relative or absolute) for submit/delete/view_errors.

No output schema declared.

No examples provided.

gsc_users ~86

Manage property users. list returns email + role. add invites a user (mutating). remove revokes (mutating). change_role updates permissions (mutating).

NameTypeReqDescription
actionstringyes–
emailstring––
propertystring––
rolestring––
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

gsc_videos_report ~52

Read the Video indexing report — same shape as gsc_pages_report but for video pages.

NameTypeReqDescription
propertystring––
sessionIdstring––
tabIdstring––

No output schema declared.

No examples provided.

image_staged ~177

List, clear, or remove images from SynaBun's image store (data/images/). Images arrive when users paste them in the Neural Interface chat. Use "list" to see available images with their full absolute paths — these paths can be passed to browser_upload, Read, or any tool that accepts file paths. Use "clear" to delete all attachment-type images (auto-clear after use). Use "remove" to delete a specific file.

NameTypeReqDescription
actionstringyesAction: "list" = show all images with paths. "clear" = delete all attachment images. "remove" = delete a specific image.
filenamestring–Filename to remove (for "remove" action).
typestring–Filter by image type. Default: "all". "attachment" = images pasted in chat.

No output schema declared.

No examples provided.

loop ~241

Autonomous loop control. Start a repeating task loop, check status, update progress journal, or stop it. The Stop hook drives iteration. Call "update" after each iteration with a brief summary to maintain context across compactions.

NameTypeReqDescription
actionstringyesstart: begin autonomous loop. stop: end loop. status: check current loop state. update: write iteration journal/progress.
contextstring–Extra context injected each iteration.
iterationsnumber–Max iterations (1-50, default 10).
max_minutesnumber–Time cap in minutes (1-480, default 60).
progressstring–Rolling progress summary replacing the previous one. Used with action "update".
session_idstring–Claude Code session ID. Auto-detected if omitted.
summarystring–Brief summary of what this iteration accomplished (1-2 sentences, for journal). Used with action "update".
taskstring–What to do each iteration (required for start).
templatestring–Load a saved template by name or id. Template values are used as defaults; explicit params override.

No output schema declared.

No examples provided.

memories ~326

Browse recent memories, get statistics, or fetch one memory in FULL by id. Use action "get" with an id to pull a large/consolidated memory untruncated (list actions truncate content to 150 chars). Use to see what you remember about a project, review recent learnings, or check memory health.

NameTypeReqDescription
actionstringyesrecent=latest memories, stats=counts and health, by-category=filter by type, by-project=filter by project, get=FULL untruncated content of one memory by id (no vector search), triage=forget candidate…
categorystring–Category to filter by (for by-category action).
expected_revisioninteger–Required current revision for undo.
feedbackstring–Feedback signal; never treated as proof of correctness.
idstring–Memory id (required for action "get"). Returns that memory's full content untruncated — use to fetch a consolidated/large memory directly.
idsarray–UUIDs for get-batch; maximum 50.
limitnumber–Number of results (default 10).
operationstring–Maintenance operation; default status.
projectstring–Filter by project (for by-project action).
relation_idstring–Relationship to undo.
revisioninteger–Revision to restore for undo.
token_budgetinteger–Estimated token budget for context; default 1500.

No output schema declared.

No examples provided.

morelogin ~239

Manage MoreLogin (anti-detect, multi-account browser) profiles. Actions: "status" (is MoreLogin installed/running, which profile is the default AI browser), "list" (profiles), "create" (new profile), "start"/"stop" (launch/close a profile), "use_default" (set a profile as the default AI browser — afterwards all browser_* tools automatically drive that MoreLogin profile). Requires the MoreLogin desktop app to be running with its local API enabled.

NameTypeReqDescription
actionstringyesMoreLogin action. "status" = installed/running + current default. "list" = browser profiles (environments). "create" = new profile. "start"/"stop" = launch/close a profile. "use_default" = make a pro…
envIdstring–MoreLogin environment (profile) id — required for start, stop, and use_default. Get ids from the "list" action.
namestring–Name for a new profile ("create" action). Defaults to "SynaBun".

No output schema declared.

No examples provided.

recall ~452

Search your persistent memory for relevant information. Use this at the start of any task to check what you already know, or when you need context about past decisions, known issues, or architectural patterns. Prefer format="compact" for discovery; use memories action="get" for full originals.

NameTypeReqDescription
afterstring–Include records created at or after this ISO timestamp.
beforestring–Include records created at or before this ISO timestamp.
categorystring–Optional: filter by category name.
explainboolean–Include retrieval reasons in compact output.
formatstring–Optional compact, budgeted excerpts. Default preserves full legacy output.
include_sessionsboolean–Override session chunk search. Auto-triggers on temporal queries or sparse results. Set true to force, false to disable.
limitnumber–Number of results. User configured: 5. OMIT this parameter to respect the user's setting. Only override if the user explicitly asks for a different count.
min_importancenumber–Minimum importance threshold.
min_scorenumber–Minimum similarity score 0-1. User configured: 0.3. OMIT to use configured setting.
projectstring–Optional: filter by project. If omitted, searches all projects but boosts current project.
querystringyesWhat to search for, in natural language.
recency_boostboolean–Prioritize recent memories. User configured: OFF. OMIT to use configured setting. Shifts scoring to favor recency over semantic similarity (14-day half-life, 55% recency weight). Ideal for session-st…
rerankboolean–Judge the shortlist for relevance after retrieval and reorder it. Slower — worth it when the query is subtle and the top hits look interchangeable.
scopestring–Project requires an explicit project or caller context; never widens the search.
tag_matchstring–Match any tag (default) or require every tag.
tagsarray–Optional: filter by tags (any match).
token_budgetinteger–Total estimated output tokens for compact format; default 1500.

No output schema declared.

No examples provided.

reflect ~267

Update or annotate an existing memory. Use this when you discover additional context, when a decision changes, or when you want to adjust importance based on new information.

NameTypeReqDescription
add_tagsarray–Add tags without replacing existing ones.
categorystring–Change the category name.
contentstring–Updated content. If provided, the embedding vector is regenerated.
expected_revisioninteger–Reject if the memory changed since this revision.
importancenumber–Updated importance score.
memory_idstringyesThe ID of the memory to update. MUST be the full UUID format (e.g., 8f7cab3b-644e-4cea-8662-de0ca695bdf2), not a shortened version. Use recall to get the full UUID.
projectstring–Change the project this memory belongs to (e.g. "my-web-app", "synabun").
related_filesarray–Updated related file paths.
related_memory_idsarray–Link to related memories.
subcategorystring–Updated subcategory.
supersedesstring–Explicitly mark another memory in this project as superseded by this one.
tagsarray–Replace all tags with these.

No output schema declared.

No examples provided.

remember ~417

Store a piece of information in persistent memory. Use this when you learn something important, make a decision, discover a pattern, fix a hard bug, or want to preserve context for future sessions.

NameTypeReqDescription
categorystringyesREQUIRED. Category name (top-level bucket) to file this memory under. Call the category tool with action "list" for valid names, or action "create" if nothing fits. Distinct from subcategory. An unre…
contentstringyesThe information to remember. Be specific and include context.
idempotency_keystring–Retry key scoped to project and category. Same key/content returns the existing UUID.
importancenumber–Set this deliberately on every call: 1=trivial, 5=routine, 7=significant, 8+=critical. Use 8+ for hard-won bug fixes and architecture decisions. Omit only when the work is genuinely routine (defaults…
kindstring–Memory kind; defaults to note.
projectstringyesREQUIRED. Project this belongs to, lowercase kebab-case (e.g. "my-web-app", "synabun"). Use the project named in your session context — this is NOT reliably auto-detected over the HTTP transport, whe…
related_filesarray–File paths this memory relates to.
sourcestring–How this was learned. user-told=user explicitly shared, self-discovered=found during work, auto-saved=session context.
source_refstring–Local session/event identifier or source reference.
subcategorystring–Optional refinement: architecture, bug-fix, api-quirk, performance, config, deployment, etc.
tagsarray–Tags for categorization (e.g. ["redis", "cache", "pricing"])

No output schema declared.

No examples provided.

restore ~43

Restore a trashed memory by ID. Use this to undo a forget operation.

NameTypeReqDescription
memory_idstringyesThe memory ID to restore from trash. Use the full UUID.

No output schema declared.

No examples provided.

style_guide ~651

A project's SynaBun Style Guide: brand, colors (light/dark), type, spacing, motion, components and rules, as a summary, the full DESIGN.md or tokens (CSS variables, Tailwind theme, W3C design tokens). Call it BEFORE UI, design, copy, marketing, image or video work and use its tokens instead of inventing values. Pass projectPath (your working directory). To change the guide, use action "propose": the user reviews proposals; never edit DESIGN.md or the token files by hand.

NameTypeReqDescription
actionstring–"summary": the compact brand block (start here). "get": summary + the full DESIGN.md (or one `section`). "tokens": the tokens in a `format`. "contrast": WCAG ratio + APCA for `fg` on `bg`. "propose":…
bgstring–contrast: the background color, same forms as fg.
changesobject–propose: a JSON merge patch (RFC 7396) against the guide, e.g. {"colors":{"status":{"danger":"#dc2626"}}}. null deletes a key. agents and exports settings cannot be proposed.
fgstring–contrast: the text color — a hex, rgb(), hsl(), oklch(), or an alias like "{semantic.text}" or "{primary.500}".
formatstring–tokens: "json" (resolved values, default), "dtcg" (W3C design tokens), "css" (custom properties), "tailwind-v4" (@theme) or "tailwind-v3" (theme.extend).
formatsarray–export: which files to write (default: the ones the guide has enabled).
modelstring–propose: the authoring model, if known.
projectPathstring–The project root or any path inside it (your working directory). The default is the server's cwd, which is usually NOT your project — pass it.
providerstring–propose: the authoring provider, if known.
reasonstring–propose: why the guide should change (required).
runIdstring–propose: the dispatched run id, if known.
sectionstring–get: only this DESIGN.md section, e.g. "Colors", "Typography", "Components", "Do's and Don'ts".
sizestring–contrast: "large" for text ≥ 24px (or ≥ 18.66px bold) and UI components.
statusstring–proposals: only this status.
taskClassstring–summary: the kind of work (e.g. "image_gen" or "video_gen" puts imagery and the generation prefix first).
themestring–tokens / contrast: one theme (default: the guide's default theme).

No output schema declared.

No examples provided.

sync ~152

Check for stale memories whose related files have changed. Compares stored file checksums against current hashes. Returns compact output (ID + changed files only, no content). IMPORTANT: Always pass "categories" to scope the scan — calling without categories scans ALL memories and may produce output too large to return inline. For large memory sets, call iteratively per category rather than globally. Default limit is 50; increase only when using a narrow category filter.

NameTypeReqDescription
categoriesarray–Optional: filter results to memories in these categories only.
limitnumber–Max stale memories to return (default 50). Keep low to avoid output overflow.
projectstring–Optional: only check memories for this project.

No output schema declared.

No examples provided.

tictactoe ~228

Play Tic Tac Toe on the whiteboard. Actions: "start" sets up the board (piece defaults to X), "move" places the current turn's piece in cell 1-9, "state" shows the current board, "end" closes the game. The board renders visually on the whiteboard. X always goes first. Returns ASCII board + game status after each action.

NameTypeReqDescription
actionstringyesGame action. "start" = set up board (optional piece: X or O). "move" = place piece (requires cell 1-9). "state" = get current board. "end" = tear down game.
cellnumber–Cell number 1-9 (required for "move" action). Layout: 1 | 2 | 3 --------- 4 | 5 | 6 --------- 7 | 8 | 9
piecestring–Which piece you play as (for "start" action). Default: X. X always goes first.

No output schema declared.

No examples provided.

tool_groups ~231

Always-available router for SynaBun's tool groups. When a task needs a SynaBun tool this runtime does not list, call action="get", then action="add" with the group that has it, and continue once the host refreshes its tools. On Codex and Claude Code every SynaBun tool is already reachable on demand, so there it only moves the focus and needs no reload. Do not report a SynaBun capability unavailable before trying this. A change affects only this runtime, never other sessions or the default for new ones.

NameTypeReqDescription
actionstringyesget = this runtime's groups, what they do on this host, and the catalog. add = load more groups for this runtime. set = replace this runtime's groups.
groupsarray–Group ids for add and set, from the catalog that get returns, e.g. ["gsc"] or ["browser_whatsapp"]; "all" is every group. The memory tools, loop, tool_groups and choice are always there; agents, skil…

No output schema declared.

No examples provided.

whiteboard_add ~338

Add elements. Coordinates: px (default) are absolute canvas pixels and are NOT offset — start at the origin reported by whiteboard_read (values are clamped into the usable area). pct = 0-100 of the usable area (offsets applied; also converts arrow/pen points). parent:<sectionId> makes x/y relative to that section and clamps inside it. layout row/column/grid/center overrides x/y using real sizes. Sizes: text/list auto-size (do not pass width/height); shapes default 160x100 (rect, pill, circle, triangle, drawn-circle); sections default per sectionType; images need width/height. Arrows: 2+ points plus optional startAnchor/endAnchor (unknown IDs dropped with a warning; anchored ends snap to the target edge). Returns the FINAL geometry per element after defaults/pct/layout/clamping with the adjustments made, then overflow/overlap warnings for the new elements. Guidance: keep content within ~70-80% of the usable width, centered, fit vertically, ~20px margins.

NameTypeReqDescription
coordModestring–"px" (default): absolute canvas pixels — NOT offset; the usable area starts at the origin whiteboard_read reports and values are clamped into it. "pct": 0-100 of the usable area (or of the parent sec…
elementsarrayyesElements to add (1-100).
layoutstring–Auto-layout using real element sizes; overrides x/y. Runs inside the parent section when parent is set.

No output schema declared.

No examples provided.

whiteboard_read ~200

Read the whiteboard. Returns viewport truth (usable canvas size, origin offset, whether a browser is connected and in Focus mode), every element with its final box x,y,w,h (text/list sizes are browser-measured; ~ marks server estimates not yet measured), z-order, rotation, resolved arrow endpoints and anchors, then a layout analysis: content bounds, elements overflowing the usable area, overlapping pairs, section containment (with spill-outs), z-order and dangling-anchor notes. Call it before placing or moving elements and after edits to verify. format:'json' returns the same as structured JSON; verbose:true prints full text.

NameTypeReqDescription
formatstring–"text" (default): annotated element list + layout analysis. "json": {viewport, connection, elements, analysis} as JSON.
verboseboolean–Text mode only: print full text content (default truncates at 300 chars) and every list item (default 20).

No output schema declared.

No examples provided.

whiteboard_remove ~94

Remove one element ({id}) or several atomically ({ids}). Arrows anchored to a removed element are detached and their endpoint moved to its centre (reported as cascade updates). Omit both to clear the whole board (undoable in the browser with Ctrl+Z).

NameTypeReqDescription
idstring–Element ID to remove.
idsarray–Several element IDs removed atomically (one save, one undo step).

No output schema declared.

No examples provided.

whiteboard_screenshot ~136

Capture the live whiteboard from the primary connected browser window as a JPEG, preceded by a text block with the coordinate mapping (canvas size, image scale: image px ÷ scale = canvas px, usable viewport origin, element count). Fails with a clear message when no browser is connected. Use whiteboard_read for exact numbers; use this to judge visual overlap, legibility and how the board actually looks.

NameTypeReqDescription
cropstring–"full" (default): the whole canvas, so image px ÷ scale = canvas px. "usable": cropped to the usable viewport (origin offset reported in the text block).

No output schema declared.

No examples provided.

whiteboard_update ~292

Update one element ({id, updates}) or many atomically ({items:[{id, updates}]}: one save, one render, one undo step in the browser). Only listed fields change; changing content/items/fontSize re-estimates a text/list size until the browser re-measures it. coordMode pct and parent:<sectionId> work as in whiteboard_add. Positions are clamped into the usable area; unknown anchor IDs are dropped with a warning. Per-item results include the final geometry; a missing ID fails only that item.

NameTypeReqDescription
coordModestring–"px" (default): absolute canvas pixels — NOT offset; the usable area starts at the origin whiteboard_read reports and values are clamped into it. "pct": 0-100 of the usable area (or of the parent sec…
idstring–Single form: element ID (use together with updates).
itemsarray–Batch form: many updates in one save / one render / one undo step. Per-item results; a missing ID fails only that item. (List bullet text goes in updates.items, not here.)
parentstring–Single form: interpret x/y (px or pct) relative to this section and clamp inside it.
updatesobject–Single form: fields to change.

No output schema declared.

No examples provided.

youtube_analytics ~156

Read-only YouTube Analytics (views, watch-time, likes, subscribers, etc.) via the API — needs the YouTube API configured/authorized in Settings → YouTube. Channel-wide or per-video.

NameTypeReqDescription
channelIdstring–Channel id (UC…). Defaults to the configured/owning channel.
endDatestring–YYYY-MM-DD. Default: today.
metricsarray–Metrics, e.g. ["views","estimatedMinutesWatched","likes","subscribersGained"]. Sensible defaults if omitted.
startDatestring–YYYY-MM-DD. Default: 28 days ago.
videoIdstring–Limit the report to one video. Omit for channel-wide.

No output schema declared.

No examples provided.

youtube_channel ~105

Read channel info or list recent uploads from Studio (browser). Use action=list to dedupe the autopilot against videos already on the channel.

NameTypeReqDescription
actionstringyesinfo = channel id/name; list = recent uploads (id, title, visibility) for dedup.
limitnumber–Max videos for action=list (default 30).
sessionIdstring––
tabIdstring–Target a specific tab. Auto-resolved if omitted.

No output schema declared.

No examples provided.

youtube_download ~269

Download a trailer file. Prefers steamMp4Url (direct publisher asset, lowest copyright risk); otherwise yt-dlp on ytId/url. Returns { filePath, bytes, source }. Pass filePath to youtube_upload. [requires yt-dlp + ffmpeg on the host for the YouTube fallback path].

NameTypeReqDescription
appidnumber–Steam appid — used only to name the output file.
filenamestring–Base output filename (without extension). Defaults derived from ytId/appid.
qualitystring–yt-dlp -f format string. Default: best video+audio ≤1080p, merged to mp4.
steamMp4Urlstring–Direct Steam mp4 URL (from youtube_source steamMovies[].mp4). Preferred — no yt-dlp/ffmpeg required.
urlstring–Explicit video URL to download via yt-dlp.
useCookiesboolean–Cookie fallback for the yt-dlp path. The server downloads cookieless first and only retries with browser cookies if YouTube demands auth (age/region/members-gated). Defaults on; pass false to hard-di…
ytIdstring–YouTube video id to download via yt-dlp (fallback for YouTube-only trailers).

No output schema declared.

No examples provided.

youtube_endscreen ~142

Apply an end-screen template to a video (links to a related video/playlist + a subscribe element) via the Studio end-screen editor, then save. [mutating]. End-screen editing is canvas-based and may need a manual touch-up.

NameTypeReqDescription
sessionIdstring––
tabIdstring–Target a specific tab. Auto-resolved if omitted.
templatestring–Which end-screen layout to apply. 'default' = first built-in template; 'last_video_subscribe' = best-for-retention; 'import' = copy from your most recent video.
videoIdstringyesYouTube video id.

No output schema declared.

No examples provided.

youtube_metadata ~171

Edit an existing video's metadata on its Studio edit page: title, description, tags, category, made-for-kids. Saves on completion. [mutating]. Use youtube_schedule for visibility/publish-time.

NameTypeReqDescription
categorystring–Category name, e.g. "Gaming". Set via the Show-more category dropdown.
descriptionstring–New description (replaces existing).
madeForKidsboolean–COPPA audience flag.
sessionIdstring––
tabIdstring–Target a specific tab. Auto-resolved if omitted.
tagsarray–Tags/keywords (replaces existing; revealed under "Show more").
titlestring–New title (≤100 chars).
videoIdstringyesYouTube video id to edit.

No output schema declared.

No examples provided.

youtube_navigate ~106

Open a YouTube Studio section (dashboard, content, analytics, playlists, comments, subtitles, copyright, earn, customization). Auto-creates a browser session on studio.youtube.com using the signed-in Google account. Call before other youtube_* browser tools.

NameTypeReqDescription
sectionstringyesStudio section to open.
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.

youtube_playlist ~145

Manage playlists. action=list enumerates them; action=create makes a new playlist; action=add adds a video to an existing playlist (by name). [mutating for create/add].

NameTypeReqDescription
actionstringyeslist = enumerate playlists; create = make a new playlist; add = add a video to a playlist.
namestring–Playlist name (required for create/add).
sessionIdstring––
tabIdstring–Target a specific tab. Auto-resolved if omitted.
videoIdstring–Video id to add (required for action=add).
visibilitystring–New playlist visibility (create). Default public.

No output schema declared.

No examples provided.

youtube_schedule ~169

Schedule a video to go public at a future time (or set immediate visibility) via the Studio visibility dialog. Pass publishAt for scheduling. [mutating]. Locale-aware date entry (US + pt-BR); the response echoes the picker read-back as scheduledDisplay — verify it matches your intended slot.

NameTypeReqDescription
publishAtstring–Scheduled publish time, ISO ("2026-06-20T18:00") or "YYYY-MM-DD HH:MM". Required unless setting an immediate visibility.
sessionIdstring––
tabIdstring–Target a specific tab. Auto-resolved if omitted.
videoIdstringyesYouTube video id.
visibilitystring–Set immediate visibility, or "schedule" (default when publishAt is given).

No output schema declared.

No examples provided.

youtube_source ~368

Discover FRESH candidate game trailers (already-posted ones are removed automatically via the youtube-videos memory ledger — no manual dedup/recall needed). Searches YouTube for recently published trailers, queries IGDB for games (+ Steam appid and official YouTube trailer ids), and resolves Steam direct mp4 URLs. Returns trimmed candidates: { game, source, igdbId, appid, releaseDate, trailerPublishedAt, trailerTitle, genres, ytTrailerIds, steamMp4Url, summary }. Feed one to youtube_download (prefer steamMp4Url; fall back to a ytTrailerIds value), then pass its game/igdbId/appid/sourceTrailerId back into youtube_upload so it records the ledger.

NameTypeReqDescription
appidsarray–Steam appids to resolve (required for source=steam).
excludePostedboolean–Drop trailers already on the youtube-videos memory ledger (exact igdb/appid/ytid/name match). Default true — leave it on so the autopilot never re-posts. Set false only to inspect the raw pool.
limitnumber–Max candidates (1-50, default 10).
lookbackDaysnumber–For source=youtube: published-after window. For IGDB/auto: release-date lookback window (default from config / 60).
querystring–Game title or trailer search query. For source=youtube, omit to search official game trailers by publish date.
sourcestring–Discovery backend. 'youtube' = YouTube Data API date-ordered recent trailer search; 'auto' (default) = IGDB games enriched with Steam mp4 URLs; 'igdb' = metadata + trailer pointers only; 'steam' = re…

No output schema declared.

No examples provided.

youtube_thumbnail ~104

Upload a custom thumbnail to a video via its Studio edit page (uses the hidden thumbnail file input). Saves on completion. [mutating].

NameTypeReqDescription
filePathstringyesAbsolute path to the thumbnail image (JPG/PNG, ≤2MB, 1280×720 recommended).
sessionIdstring––
tabIdstring–Target a specific tab. Auto-resolved if omitted.
videoIdstringyesYouTube video id.

No output schema declared.

No examples provided.

youtube_upload ~379

Upload a local video file to YouTube Studio, publish it, and record it to the youtube-videos dedup ledger. Opens Create → Upload, sets the file, fills title/description/tags, advances the wizard, sets visibility, clicks Done, then verifies the wizard closed and resolves the new video id. [mutating — publishes to the channel]. Pass game/igdbId/appid/sourceTrailerId so the upload is remembered and never re-posted. Default visibility=private so you can schedule afterwards with youtube_schedule.

NameTypeReqDescription
appidnumber–Steam appid (from youtube_source). Dedup ledger key — pass it whenever known.
descriptionstring–Video description (credits, store link, etc.).
filePathstringyesAbsolute path to the local video file (from youtube_download).
gamestring–Game name (from the youtube_source candidate). Recorded to the youtube-videos dedup ledger.
igdbIdnumber–IGDB id (from youtube_source). Dedup ledger key — pass it whenever known.
madeForKidsboolean–COPPA audience flag. Default false (Not made for kids).
sessionIdstring––
sourcestring–Where the downloaded file came from (recorded for the ledger).
sourceTrailerIdstring–The SOURCE trailer YouTube id you downloaded (a youtube_source ytTrailerIds value). Dedup ledger key.
tabIdstring–Target a specific tab. Auto-resolved if omitted.
tagsarray–Tags/keywords (added under "Show more").
titlestringyesVideo title (≤100 chars). Studio truncates beyond 100.
visibilitystring–Publish visibility. Default: private (schedule/publish later with youtube_schedule).

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 5 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 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 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.